:root{--bg:#f6f5f1;--surface:#fff;--ink:#252b28;--muted:#68716b;--line:#e3e6df;--primary:#ae492d;--primary-hover:#933b24;--sage:#e8f1eb;--green:#316553;--amber:#fbf0d7;--ochre:#8a611c;--rust:#f8e8e1;--radius:16px;--shadow:0 3px 14px #252b2805;font-family:'Segoe UI',system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:inherit;text-decoration:none}button{color:inherit}button,.btn,a,input,select,textarea{transition:background .18s,border-color .18s,color .18s,box-shadow .18s}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ae492d70;outline-offset:3px}input,select,textarea{border:1px solid #d9ded6;background:var(--surface);border-radius:9px;padding:11px 13px;width:100%;min-height:44px;color:var(--ink)}input:hover,select:hover,textarea:hover{border-color:#a4b0a5}input:focus,select:focus,textarea:focus{border-color:var(--primary)}input::placeholder,textarea::placeholder{color:#737d75}textarea{resize:vertical}input:disabled,select:disabled{background:#f3f4ef;color:var(--muted)}h1,h2,h3,p{margin:0}h1{font-size:34px;line-height:1.2;letter-spacing:-1px;font-weight:650}h2{font-size:17px;line-height:1.4;font-weight:650;letter-spacing:-.3px}h3{font-size:15px;font-weight:600}.icon{display:inline-block;flex-shrink:0;vertical-align:middle}.btn{border:1px solid transparent;border-radius:9px;min-height:44px;padding:10px 16px;display:inline-flex;gap:9px;justify-content:center;align-items:center;font-weight:600;white-space:nowrap;font-size:14px}.primary{background:var(--primary);color:#fff;box-shadow:0 2px 3px #71301e10}.primary:hover{background:var(--primary-hover)}.secondary{border-color:var(--line);background:#fff}.secondary:hover{background:#f5f6f2;border-color:#c4ccbf}.ghost{background:transparent}.ghost:hover{background:#eaece5}.danger-ghost{background:transparent;color:#a53e30}.danger-ghost:hover{background:#faeee8}.wide{width:100%}.icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:38px;border:0;background:transparent;border-radius:8px;color:var(--muted)}.icon-button:hover{background:#ecefe8;color:var(--ink)}.wordmark{font-size:31px;font-weight:750;letter-spacing:-1.6px;display:flex;align-items:baseline;width:max-content;line-height:1}.brand-dot{width:7px;height:7px;border-radius:50%;background:var(--primary);display:inline-block;margin-left:3px}.subtle{color:var(--muted);font-size:14px}.mini-label,.eyebrow{display:block;font-size:14px;font-weight:650;letter-spacing:1.6px;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-80px;left:20px;z-index:100;background:white;padding:14px;border-radius:8px}.skip-link:focus{top:10px}.initial-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;font-size:40px;font-weight:750;letter-spacing:-1px}.initial-loading span{font-size:14px;font-weight:400;letter-spacing:0;color:var(--muted)}
.app-shell{display:grid;grid-template-columns:226px minmax(0,1fr);min-height:100vh}.sidebar{background:#fcfcfa;border-right:1px solid var(--line);padding:34px 18px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar .wordmark{margin:0 20px 35px}.venue{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:11px 10px;margin:0 2px 28px;background:white;min-width:0}.venue-icon{background:var(--sage);color:var(--green);width:32px;height:36px;border-radius:7px;display:grid;place-items:center;flex-shrink:0}.venue>div{min-width:0}.venue strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:650}.venue span:not(.venue-icon){font-size:14px;color:var(--muted)}.nav-label{font-size:14px;letter-spacing:1.3px;color:var(--muted);margin:0 13px 14px;font-weight:600}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav-item{display:flex;align-items:center;gap:12px;padding:12px;border:0;border-radius:8px;background:transparent;text-align:left;font-size:14px;color:#677069;min-height:46px}.nav-item .icon{width:19px;height:19px}.nav-item:hover{background:#eeefe9;color:var(--ink)}.nav-item.selected{background:#f1e7df;color:#903c25;font-weight:600}.nav-count{margin-left:auto;font-size:14px;background:#e4cabc;border-radius:5px;padding:1px 5px;min-width:19px;text-align:center;color:#803c28}.sidebar-bottom{margin-top:auto}.connection{display:flex;align-items:center;gap:7px;font-size:14px;color:var(--muted);margin:20px 12px}.connection>span{width:6px;height:6px;background:#56886e;border-radius:50%}.profile{border:0;background:transparent;width:100%;display:flex;align-items:center;gap:9px;text-align:left;padding:16px 7px 0;border-top:1px solid var(--line)}.profile>span:nth-child(2){flex:1}.profile strong{display:block;font-size:14px;font-weight:600}.profile small{font-size:14px;color:var(--muted)}.profile>.icon{width:17px}.avatar{width:37px;height:37px;background:#f2eee6;border:1px solid #e7e1d4;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:#76674e;font-size:14px;font-weight:650;letter-spacing:.2px}.avatar.sage,.admin-avatar{background:#e6eee4;color:#486548;border-color:#dce6d8}.avatar.small{width:30px;height:30px;font-size:14px}.content{min-width:0;display:flex;flex-direction:column}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted);background:#fcfcfa}.topbar strong{font-weight:500;color:var(--ink)}.breadcrumb{margin:0 12px;color:#9fa69e}.topbar-right{display:flex;align-items:center;gap:18px;font-size:14px}#main{padding:33px 34px 22px;flex:1;outline:none}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.page-heading .mini-label{font-size:14px;letter-spacing:1.4px;margin-bottom:9px}.page-heading p{color:var(--muted);margin-top:10px;font-size:14px}.page-heading>.btn{margin-top:12px}.app-footer{display:flex;justify-content:space-between;gap:15px;margin:10px 34px 0;padding:17px 0 20px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:26px}.stat-card{background:white;border:1px solid var(--line);border-radius:13px;padding:17px 18px 14px;box-shadow:var(--shadow)}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;color:#566258}.stat-icon{display:inline-flex;align-items:center;justify-content:center;background:#f2f3ed;border-radius:8px;width:31px;height:31px;color:#637a64;flex-shrink:0}.stat-icon .icon{width:16px;height:16px}.tone-1{background:var(--sage);color:var(--green)}.tone-2{background:var(--rust);color:var(--primary)}.tone-3{background:var(--amber);color:var(--ochre)}.stat-card>strong{display:block;font-size:31px;font-weight:600;letter-spacing:-1px;line-height:1.1;margin:10px 0}.stat-card>strong>span{font-size:14px;font-weight:400;letter-spacing:0;color:var(--muted);margin-left:7px}.stat-card p{font-size:14px;color:var(--muted)}.day-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.date-control{display:flex;align-items:center;gap:4px}.date-control>.icon-button{min-width:31px;min-height:35px}.date-picker{position:relative;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;padding:6px;cursor:pointer}.date-picker .icon{width:17px;color:var(--muted)}.date-picker input{position:absolute;inset:0;opacity:0;cursor:pointer;padding:0;min-height:0}.date-picker:focus-within{outline:2px solid #ae492d70;border-radius:6px}.today-btn{font-size:14px;padding:6px 11px;border:1px solid var(--line);background:transparent;border-radius:6px;margin-left:10px}.today-btn:hover,.today-btn.is-today{background:#fff}.toolbar-actions{display:flex;align-items:center;gap:4px}.toolbar-actions>.btn{font-weight:500;font-size:14px;min-height:35px;padding:5px 12px}.toolbar-actions .icon{width:16px}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 244px;gap:20px;align-items:start}.panel{border:1px solid var(--line);border-radius:var(--radius);background:white;box-shadow:var(--shadow);min-width:0}.reservations-panel{overflow:hidden}.list-toolbar{padding:10px 15px 0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:10px}.tabs{display:flex;align-items:stretch;gap:16px;min-width:0}.tab{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:14px 0;font-size:14px;white-space:nowrap}.tab:hover{color:var(--ink)}.tab>span{font-size:14px;background:#f0f1ec;padding:2px 5px;border-radius:4px;margin-left:7px}.active-tab{border-color:var(--primary);color:var(--primary);font-weight:600}.active-tab>span{background:#f6e9e0;color:#913e27}.view-switch{display:flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:7px;margin-bottom:6px;background:#f6f7f3}.view-switch>.icon-button{min-width:27px;min-height:25px;border-radius:4px}.view-switch .icon{width:14px;height:14px}.view-switch .chosen{background:#fff;color:var(--ink);box-shadow:0 1px 3px #00000014}.search-row{padding:15px;display:flex;align-items:center;justify-content:space-between;gap:14px}.search-input{position:relative;display:flex;align-items:center;flex:1;max-width:305px}.search-input .icon{position:absolute;left:10px;width:16px;color:#68736a}.search-input input{padding:9px 12px 9px 34px;background:#fafbf8;font-size:14px;min-height:36px;line-height:16px;border-radius:7px}.list-caption{font-size:14px;color:var(--muted);white-space:nowrap}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:14px}th{font-size:14px;font-weight:500;color:var(--muted);background:#fafbf8;padding:12px 13px;border-top:1px solid #eef0ea;border-bottom:1px solid #eef0ea}td{padding:15px 13px;border-bottom:1px solid #eef0ea}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfcf9}.booking-table th:first-child,.booking-table td:first-child{padding-left:18px}.booking-table th:last-child,.booking-table td:last-child{padding-right:10px;padding-left:0}td strong{font-weight:600;font-size:14px}td small{display:block;font-size:14px;color:var(--muted);margin-top:4px}.guest-link{display:flex;align-items:center;gap:9px;border:0;padding:0;background:transparent;text-align:left;min-height:40px}.guest-link strong{display:block;color:var(--ink);font-size:14px;font-weight:600}.guest-link small{margin-top:3px;font-size:14px;letter-spacing:.1px}.guest-link .avatar{width:32px;height:32px;font-size:14px}.time-main{font-variant-numeric:tabular-nums}.party{display:flex;align-items:center;gap:5px}.party .icon{width:14px;color:var(--muted)}.party small{font-size:14px;display:inline;margin:0;white-space:nowrap}.table-tag{display:inline-flex;min-width:28px;height:25px;padding:1px 7px;border:1px solid var(--line);border-radius:5px;background:#fafbf7;align-items:center;justify-content:center;font-size:14px;font-weight:600}.badge{font-size:14px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;padding:4px 7px;border-radius:5px;line-height:1.6;font-weight:500}.status-dot{width:4px;height:4px;border-radius:50%;background:currentColor;display:inline-block}.badge.pending{background:var(--amber);color:var(--ochre)}.badge.confirmed{background:var(--sage);color:var(--green)}.badge.seated{background:var(--rust);color:#a44329}.badge.completed{background:#f0f1ed;color:#657365}.badge.cancelled,.badge.no_show{background:#f4eeee;color:#84605c}.source-name{font-size:14px;color:var(--muted);max-width:100px;overflow:hidden;text-overflow:ellipsis;display:block}.row-arrow{min-width:24px;min-height:35px}.row-arrow .icon{width:14px}.table-footer{border-top:1px solid var(--line);padding:14px 18px;display:flex;justify-content:space-between;gap:15px;font-size:14px;color:var(--muted)}.table-footer>span{display:flex;align-items:center;gap:4px}.table-footer .icon{width:11px;height:11px}
.day-aside{display:flex;flex-direction:column;gap:17px}.occupancy-panel,.arrivals-panel{padding:19px 18px}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.panel-title h2{font-size:14px;letter-spacing:0}.panel-title>.icon{width:16px;color:#8d978b}.panel-title p{margin-top:5px;font-size:14px;color:var(--muted)}.peak{display:flex;align-items:center;gap:14px;margin:8px 0 24px}.peak>strong{font-size:36px;line-height:1.1;letter-spacing:-1.2px;font-weight:600}.peak>strong span{font-size:20px;color:#879382;letter-spacing:0}.peak>p{font-size:14px;color:var(--ink);line-height:1.8}.peak>p>span{color:var(--muted)}.histogram{height:83px;display:flex;gap:6px;align-items:stretch;border-bottom:1px solid var(--line);padding-bottom:18px}.histogram-column{flex:1;position:relative;display:flex;align-items:flex-end}.bar{width:100%;background:#d6e3d6;border-radius:3px 3px 0 0;min-height:3px}.bar.peak-bar{background:#689476}.histogram-column>span{position:absolute;top:calc(100% + 5px);font-size:14px;width:100%;text-align:center;color:var(--muted)}.chart-legend{font-size:14px;color:var(--muted);margin-top:14px;display:flex;align-items:center;gap:6px}.legend-dot{display:inline-block;border-radius:3px;width:8px;height:8px}.legend-dot.sage{background:#759a7b}.legend-dot.amber{background:#bc944e}.legend-dot.rust{background:#b3674b}.count-pill{font-size:14px;border-radius:5px;background:#f0f2ec;min-width:21px;padding:2px 6px;color:var(--muted);text-align:center}.arrival{display:flex;align-items:center;gap:11px;width:100%;border:0;background:transparent;border-top:1px solid #eef0e8;padding:14px 0;text-align:left}.arrival:last-child{padding-bottom:2px}.arrival>span:nth-child(2){flex:1;min-width:0}.arrival strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600}.arrival small{display:block;font-size:14px;color:var(--muted);margin-top:3px}.arrival>.icon{width:12px;color:var(--muted)}.arrival-time{font-size:14px;font-weight:600;background:#f4f5f0;border-radius:5px;padding:6px;font-variant-numeric:tabular-nums}.arrival:hover{color:var(--primary)}.quiet-empty{font-size:14px;color:var(--muted);line-height:1.8;margin:5px 0}.tip-card{display:flex;gap:10px;padding:5px 7px}.tip-card>.icon{width:20px;color:#7d977a}.tip-card strong{font-size:14px;font-weight:600;color:#50644f}.tip-card p{font-size:14px;line-height:1.8;color:var(--muted);margin-top:5px}.empty{padding:46px 25px;text-align:center;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:11px}.empty-icon{background:#f2f4ed;border-radius:12px;width:47px;height:47px;display:grid;place-items:center;color:#6b8269;margin-bottom:4px}.empty h3{color:var(--ink);font-size:15px}.empty p{font-size:14px;max-width:350px}.empty>.btn{margin-top:7px}.timeline{padding:20px 18px}.timeline-group{display:flex;gap:20px;padding:8px 0 14px}.timeline-hour{font-size:14px;color:var(--muted);min-width:38px;padding-top:14px;font-variant-numeric:tabular-nums}.timeline-cards{flex:1;display:flex;flex-direction:column;gap:8px;border-left:1px solid #e4e7dd;padding-left:20px}.timeline-card{border:1px solid var(--line);border-left:3px solid #83a288;background:#fafbf8;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;text-align:left}.timeline-card.pending{border-left-color:#bc944e}.timeline-card.seated{border-left-color:#b3674b}.timeline-card:hover{background:#f4f5ee}.timeline-card strong{display:block;font-size:14px}.timeline-card small{display:block;font-size:14px;color:var(--muted);margin-top:4px}
.inline-label{display:flex;gap:12px;align-items:center;font-size:14px;color:var(--muted)}.inline-label input{width:106px;min-height:36px;padding:5px 9px;background:white}.floor-layout{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:22px;align-items:start}.floor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding:4px 24px 0}.floor-map{height:530px;position:relative;margin:26px;background-color:#fbfbf7;background-image:radial-gradient(#d6dbd0 1px,transparent 1px);background-size:20px 20px;border:3px solid #e0e5da;border-radius:12px;overflow:hidden}.window-wall{position:absolute;top:-3px;left:13%;right:13%;height:7px;background:#c7d8d9;border:2px solid #aabfc3;border-top:0}.window-wall>span{position:absolute;top:10px;width:100%;text-align:center;font-size:14px;letter-spacing:2px;color:#799292}.floor-label{position:absolute;left:20px;top:16px;font-size:14px;color:#818e7f}.floor-table{position:absolute;width:82px;height:77px;border:2px solid #a5bc9d;background:#eff5e9;border-radius:12px;transform:translate(-50%,-50%);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:1;color:#506e49;padding:3px;box-shadow:0 3px 0 #bfcfb437;font-size:14px}.floor-table.round{border-radius:50%;width:85px;height:85px}.floor-table.capacity-large{width:112px}.floor-table.reserved{border-color:#d2b171;background:#fcf4dc;color:#8a672a}.floor-table.occupied{border-color:#c18a71;background:#f9e8de;color:#a35236}.floor-table strong{font-size:19px;font-weight:600;line-height:1.3}.floor-table>small{font-size:14px;margin-top:4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.floor-table:hover{box-shadow:0 3px 12px #3b532326;filter:brightness(.97)}.seat{position:absolute;border:1px solid #b5c6ac;background:#e2ebd9;z-index:-1}.reserved .seat{background:#f4e5c0;border-color:#d9bd86}.occupied .seat{background:#f0d6c8;border-color:#ce9c82}.seat-top,.seat-bottom{width:27px;height:12px;left:calc(50% - 13.5px);border-radius:5px}.seat-top{top:-19px}.seat-bottom{bottom:-19px}.seat-left,.seat-right{height:27px;width:12px;top:calc(50% - 13.5px);border-radius:5px}.seat-left{left:-19px}.seat-right{right:-19px}.floor-entrance{position:absolute;bottom:14px;left:42%;font-size:14px;letter-spacing:1.6px;color:#899184;display:flex;align-items:center;gap:8px}.floor-entrance .icon{width:17px;transform:rotate(-90deg)}.plant{position:absolute;width:35px;height:35px;border-radius:50%;background:#e3ebdb;display:grid;place-items:center;color:#779967}.plant-one{top:14px;right:14px}.plant-two{bottom:12px;left:12px}.floor-legend{display:flex;justify-content:center;gap:22px;padding:4px 16px 22px;font-size:14px;color:var(--muted)}.floor-legend>span{display:flex;align-items:center;gap:6px}.floor-summary{padding:23px 20px}.floor-summary h2{font-size:15px}.floor-count{display:flex;align-items:center;gap:16px;margin:20px 0}.floor-count>strong{font-size:40px;line-height:1;color:#58744c;font-weight:600}.floor-count>span{font-size:14px;color:var(--muted)}.divider{border-top:1px solid var(--line);margin:21px 0}.floor-summary h3{font-size:14px;margin-bottom:10px}.floor-summary .table-tag{height:32px;min-width:32px}.floor-help{font-size:14px;color:var(--muted);line-height:1.8;margin:20px 8px;display:flex;align-items:flex-start;gap:8px}.floor-help>.icon{width:15px;height:15px;margin-top:3px}
.guests-banner{display:flex;align-items:center;gap:15px;background:#eaf0e5;border:1px solid #dde6d6;border-radius:12px;padding:20px 25px;margin:0 0 24px}.guests-banner>.icon{width:27px;height:27px;color:#698361}.guests-banner strong{font-size:14px;display:block;font-weight:600}.guests-banner span{display:block;margin-top:4px;font-size:14px;color:var(--muted)}.integration-hero{display:flex;align-items:center;gap:24px;padding:32px;background:#ecefe4;border:1px solid #dce3d3;border-radius:16px;margin-bottom:25px}.integration-symbol{width:70px;height:70px;border-radius:18px;display:grid;place-items:center;background:#dce5d0;color:#56714a;flex-shrink:0}.integration-symbol .icon{width:33px;height:33px}.integration-hero h2{font-size:26px;letter-spacing:-.6px;margin:5px 0 9px}.integration-hero p{font-size:14px;color:#5d6e58;line-height:1.8}.api-version{margin-left:auto;align-self:flex-start;background:white;border:1px solid #d5ddcd;border-radius:6px;padding:5px 10px;font-size:14px;color:#647359;white-space:nowrap}.integration-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.keys-panel,.api-guide{padding:24px}.key-row{display:flex;align-items:center;gap:12px;padding:18px 0;border-bottom:1px solid var(--line)}.key-row>div{flex:1;min-width:0}.key-row strong{display:block;font-size:14px;font-weight:600}.key-row code{display:block;font-size:14px;color:#61745d;margin-top:4px;overflow-wrap:anywhere}.key-row small{display:block;font-size:14px;color:var(--muted);margin-top:4px}.key-row .btn{font-size:14px;min-height:34px;padding:5px 8px}.key-icon{background:#f1f3eb;border-radius:8px;color:#697e60;width:36px;height:36px;display:grid;place-items:center}.note{display:flex;align-items:flex-start;gap:9px;font-size:14px;color:var(--muted);line-height:1.8;padding:16px 0 0}.note>.icon{width:16px;height:16px;margin-top:3px}.text-link{font-size:14px;display:flex;align-items:center;gap:5px;color:var(--primary)}.text-link:hover{text-decoration:underline}.text-link .icon{width:13px;height:13px}.endpoint{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:8px 8px 0 0;background:#e9ede4;font-size:14px}.endpoint>span,.method{font-size:14px;font-weight:700;color:#577348;letter-spacing:.6px}code{font-family:Consolas,'Courier New',monospace;font-size:14px}pre{background:#253129;color:#dce8d9;margin:0;border-radius:0 0 8px 8px;padding:20px;line-height:1.9;overflow:auto;font-size:14px}pre code{font-size:14px}.api-fields{padding-top:18px}.api-fields>span{font-size:14px;color:var(--muted)}.api-fields p{font-family:Consolas,monospace;font-size:14px;color:#4a6046;margin:3px 0 12px;overflow-wrap:anywhere}.endpoint-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}.endpoint-card{padding:20px}.endpoint-card>code{display:block;font-size:14px;margin:9px 0}.endpoint-card p{font-size:14px;color:var(--muted);line-height:1.8}.method.patch{color:#9b663b}.settings-layout{display:grid;grid-template-columns:minmax(0,430px) minmax(0,1fr);gap:25px;align-items:start}.settings-card,.settings-tables{padding:25px}.settings-card>.subtle{margin-top:8px}.settings-card form{margin-top:24px;display:flex;flex-direction:column;gap:18px}.settings-card form>.btn{margin-top:6px;align-self:flex-start}.settings-table-row{display:flex;align-items:center;gap:13px;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:16px 0;text-align:left}.settings-table-row>span:nth-child(2){flex:1}.settings-table-row strong{font-size:14px;display:block}.settings-table-row small{display:block;font-size:14px;color:var(--muted);margin-top:3px}.settings-table-row>.icon{width:15px;color:var(--muted)}.settings-table-row:hover{color:var(--primary)}.inactive-table{opacity:.6}.history-row{padding:16px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.history-row strong{font-size:14px}.history-row small{display:block;font-size:14px;color:var(--muted);margin-top:5px}
dialog{padding:0;border:1px solid var(--line);border-radius:18px;width:min(610px,calc(100% - 32px));max-height:calc(100dvh - 40px);box-shadow:0 25px 90px #1720113d;color:var(--ink);background:white}dialog::backdrop{background:#24302555;backdrop-filter:blur(3px)}.modal-header{padding:25px 28px 20px;display:flex;align-items:flex-start;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line)}.modal-header h2{font-size:23px;margin:8px 0 4px;letter-spacing:-.5px}.modal-header p{font-size:14px;color:var(--muted)}.modal-body{padding:22px 28px;display:flex;flex-direction:column;gap:17px}.modal-body>p{font-size:14px;line-height:1.8}.modal-footer{padding:18px 28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;background:#fcfcf9;border-radius:0 0 18px 18px;position:sticky;bottom:0;z-index:2}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}label:not(.date-picker):not(.search-input):not(.inline-label){display:block;font-size:14px;font-weight:500}label>input,label>select,label>textarea{display:block;margin-top:7px;font-size:14px;font-weight:400}.required{color:var(--primary)}.optional{font-size:14px;color:var(--muted);font-weight:400;margin-left:4px}.form-section-label{display:flex;align-items:center;gap:8px;color:#778370;font-size:14px;font-weight:600;letter-spacing:1.5px;margin:2px 0 -3px}.form-section-label>.icon{width:15px;height:15px}.form-section-label>.subtle{margin-left:auto;font-size:14px;letter-spacing:0}.availability-hint{font-size:14px;color:var(--green);background:#f0f6ed;border-radius:7px;padding:9px 12px;margin-top:-7px}.availability-hint.no-availability{background:#fbefe5;color:#a3502b}.form-error{background:#fcf0eb;color:#9e3e2a;border:1px solid #f0d6ca;padding:10px 13px;border-radius:8px;font-size:14px;line-height:1.7}.form-error[hidden]{display:none}.checkbox-label{display:flex!important;gap:10px;align-items:center}.checkbox-label input{display:inline;width:18px;min-height:18px;margin:0;accent-color:var(--primary)}.new-key{padding:17px;border:1px solid #dce3d5;background:#f7f9f3;border-radius:8px;display:block;overflow-wrap:anywhere;font-size:14px;user-select:all}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:50;background:#273d2d;color:#fff;box-shadow:0 6px 24px #21391a26;padding:13px 21px;border-radius:10px;font-size:14px;max-width:calc(100% - 30px);transition:transform .2s,opacity .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}
.login{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.login-brand{background:#e9eee2;padding:46px 10%;position:relative;display:flex;flex-direction:column;overflow:hidden}.login-story{margin:auto 0}.login-story .eyebrow{font-size:14px;letter-spacing:2px;color:#63775e}.login-story h1{font-size:clamp(36px,4.5vw,66px);font-weight:600;letter-spacing:-2px;line-height:1.13;margin:20px 0;color:#324431}.login-story p{font-size:15px;color:#647460;line-height:1.8}.login-art{position:relative;height:250px;width:350px;margin-top:30px;max-width:100%;border:2px solid #cdd8c3;border-radius:22px;background-image:radial-gradient(#c5cfbc 1px,transparent 1px);background-size:18px 18px}.art-table{position:absolute;width:96px;height:96px;display:grid;place-items:center;background:#d4e0c9;border:2px solid #acc39b;color:#5b794b;font-size:26px;font-weight:600}.art-table.round{border-radius:50%;top:36px;left:28px}.art-table.square{border-radius:12px;bottom:30px;right:42px;background:#ecdcc0;border-color:#d1b787;color:#94784b}.art-table:before,.art-table:after{content:'';position:absolute;width:39px;height:13px;background:#c3d4b5;border:1px solid #b1c49e;border-radius:6px;left:calc(50% - 19px)}.art-table:before{top:-22px}.art-table:after{bottom:-22px}.art-table.square:before,.art-table.square:after{background:#e4cda7;border-color:#ceb286}.art-ticket{position:absolute;top:23px;right:-32px;background:#fff;border:1px solid #dde4d8;border-radius:10px;padding:14px 16px;box-shadow:0 8px 24px #65745713;font-size:14px;display:flex;align-items:center;gap:8px;transform:rotate(3deg);color:#5a7153}.art-ticket .icon{width:13px;margin-left:12px}.tiny-dot{width:5px;height:5px;border-radius:50%;background:#77916b}.art-leaf{position:absolute;bottom:28px;left:27px;color:#7a976d}.art-leaf .icon{width:35px;height:35px}.login-footer{font-size:14px;letter-spacing:1.5px;color:#798775;margin-top:35px}.login-form{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:60px;background:#fafbf7}.login-form form{width:100%;max-width:350px}.login-form h2{font-size:28px;font-weight:600;letter-spacing:-.8px;margin:12px 0}.login-form form>p{font-size:14px;color:var(--muted);margin-bottom:32px}.login-form label{font-size:14px;margin-bottom:8px}.login-form input{padding:13px;min-height:48px}.login-form .btn{margin-top:18px;justify-content:space-between;padding:13px 17px;font-size:14px}.login-form .form-error{margin-top:12px}.login-help{font-size:14px;color:var(--muted);line-height:1.9;margin-top:25px;display:flex;align-items:flex-start;gap:9px}.login-help .icon{width:16px;height:16px;flex-shrink:0;margin-top:4px}
@media(min-width:1600px){#main{padding-left:45px;padding-right:45px}.booking-layout{grid-template-columns:minmax(0,1fr) 280px}.stat-card{padding:21px 23px}td{padding:18px}.guest-link strong{font-size:14px}.badge{font-size:14px}.day-aside .panel{padding:23px}.panel-title h2{font-size:15px}}
@media(max-width:1250px){.app-shell{grid-template-columns:205px minmax(0,1fr)}.sidebar{padding:30px 12px 20px}#main{padding:27px 24px 20px}.topbar{padding:0 24px}.booking-layout{grid-template-columns:minmax(0,1fr)}.day-aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.tip-card{display:none}.occupancy-panel{min-height:185px}.arrivals-panel{min-height:185px}.histogram{height:65px}.peak{margin:8px 0 15px}.stats-grid{gap:10px}.stat-card{padding:14px 12px}.stat-top{font-size:14px}.stat-card p{font-size:14px}.floor-layout{grid-template-columns:minmax(0,1fr) 220px;gap:18px}.floor-map{margin:20px;height:485px}.floor-table{width:70px;height:68px}.floor-table.round{width:73px;height:73px}.floor-table.capacity-large{width:92px}.floor-table strong{font-size:16px}.floor-table>small{font-size:14px}.seat-left{left:-16px}.seat-right{right:-16px}.floor-legend{font-size:14px;gap:16px}.endpoint-grid{gap:13px}.endpoint-card{padding:17px}.endpoint-card code{font-size:14px}}
@media(max-width:1000px){.page-heading h1{font-size:29px}.page-heading p{font-size:14px}.page-heading>.btn{font-size:14px;padding:9px 12px}.floor-layout{grid-template-columns:minmax(0,1fr)}.floor-layout>aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.floor-map{height:490px}.floor-count{margin:14px 0}.integration-layout{grid-template-columns:1fr}.settings-layout{grid-template-columns:1fr}.endpoint-grid{grid-template-columns:1fr}.endpoint-card{display:flex;align-items:center;gap:15px}.endpoint-card p{margin-left:auto}.login-brand{padding-left:9%;padding-right:9%}.login-art{width:285px;height:245px}.art-ticket{right:-8px}}
@media(max-width:900px){.app-shell{display:block}.sidebar{position:static;height:auto;padding:18px 20px 0;border-right:0;border-bottom:1px solid var(--line);display:block}.sidebar .wordmark{margin:0 0 17px;font-size:28px}.venue,.nav-label,.sidebar-bottom{display:none}.sidebar nav{flex-direction:row;gap:10px;overflow-x:auto;padding-bottom:10px}.nav-item{padding:9px 12px;min-height:40px;white-space:nowrap;font-size:14px;flex-shrink:0}.nav-count{margin-left:2px}.nav-item .icon{width:16px;height:16px}.topbar{height:48px;padding:0 24px}.topbar-right{gap:12px}.topbar-right .avatar{width:26px;height:26px}#main{padding:26px 24px}.app-footer{margin:0 24px}.stats-grid{gap:13px}.stat-card{padding:15px}.stat-top{font-size:14px}.stat-card p{font-size:14px}.floor-map{height:520px}.floor-table{width:86px;height:79px}.floor-table.round{width:87px;height:87px}.floor-table.capacity-large{width:112px}.floor-table strong{font-size:19px}.floor-table>small{font-size:14px}.seat-left{left:-19px}.seat-right{right:-19px}.sidebar nav::-webkit-scrollbar{height:0}}
@media(max-width:680px){body{font-size:14px}#main{padding:22px 16px}.sidebar{padding:18px 16px 0}.sidebar nav{gap:6px}.nav-item{font-size:14px;gap:7px;padding:9px 10px}.topbar{padding:0 16px;font-size:14px}.topbar-right #timezone{display:none}.page-heading{align-items:flex-start;flex-direction:column;gap:14px;margin-bottom:22px}.page-heading h1{font-size:28px}.page-heading p{font-size:14px;line-height:1.7;max-width:320px}.page-heading>.btn{margin:0;min-height:42px;font-size:14px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-bottom:21px}.stat-card{padding:14px}.stat-top{font-size:14px}.stat-icon{width:27px;height:27px}.stat-card>strong{font-size:29px;margin:12px 0 7px}.stat-card p{font-size:14px}.stat-top>span:first-child{max-width:120px}.day-toolbar{align-items:flex-start;gap:10px;flex-wrap:wrap}.date-control{flex:1}.date-picker{font-size:14px;gap:5px;padding:5px 3px}.date-picker .icon{width:14px}.date-control>.icon-button{min-width:27px;min-height:33px}.today-btn{padding:5px 7px;font-size:14px;margin-left:5px}.toolbar-actions{margin-left:auto}.toolbar-actions .btn{font-size:14px;padding:5px 6px;gap:5px}.toolbar-actions>.icon-button{min-width:30px;min-height:32px}.list-toolbar{padding:6px 12px 0;gap:7px}.tabs{gap:12px}.tab{font-size:14px;padding:13px 0}.tab>span{margin-left:4px;padding:2px 4px;font-size:14px}.view-switch{margin-left:auto;gap:0;padding:2px}.view-switch>.icon-button{min-width:24px;min-height:25px}.view-switch .icon{width:12px}.search-row{padding:12px}.search-input{max-width:none}.list-caption{display:none}.booking-table th:nth-child(3),.booking-table td:nth-child(3),.booking-table th:nth-child(6),.booking-table td:nth-child(6){display:none}.booking-table{min-width:515px}td{padding:13px 9px}.booking-table th:first-child,.booking-table td:first-child{padding-left:12px}.guest-link{gap:7px}.guest-link .avatar{width:29px;height:29px;font-size:14px}.guest-link strong{font-size:14px}.badge{font-size:14px}.table-footer{padding:12px;font-size:14px}.table-footer>span:last-child{display:none}.day-aside{grid-template-columns:1fr}.occupancy-panel{padding:19px}.histogram{height:80px;gap:9px}.arrivals-panel{min-height:0}.arrival strong{font-size:14px}.arrival small{font-size:14px}.arrival-time{font-size:14px;padding:7px 9px}.timeline{padding:12px}.timeline-group{gap:12px}.timeline-cards{padding-left:12px}.timeline-card{padding:11px;flex-direction:column;align-items:flex-start}.floor-toolbar{padding:4px 16px 0}.floor-toolbar>.subtle{font-size:14px}.floor-map{margin:15px 12px;height:445px}.floor-table{width:66px;height:65px}.floor-table.round{width:69px;height:69px}.floor-table.capacity-large{width:83px}.floor-table strong{font-size:17px}.floor-table>span:not(.seat){font-size:14px}.floor-table>small{font-size:14px}.seat-left{left:-14px;width:9px}.seat-right{right:-14px;width:9px}.seat-top{top:-15px;height:9px}.seat-bottom{bottom:-15px;height:9px}.floor-layout>aside{display:block}.floor-summary{padding:20px}.floor-legend{gap:12px;font-size:14px}.plant{width:25px;height:25px}.plant .icon{width:17px;height:17px}.inline-label{margin-left:auto;font-size:14px}.integration-hero{padding:23px 20px;gap:15px;align-items:flex-start;position:relative}.integration-symbol{width:45px;height:45px;border-radius:12px;margin-top:4px}.integration-symbol .icon{width:24px;height:24px}.integration-hero h2{font-size:21px}.integration-hero p{font-size:14px}.api-version{position:absolute;right:14px;top:12px;font-size:14px;padding:2px 5px}.integration-hero .mini-label{font-size:14px;letter-spacing:1px}.keys-panel,.api-guide{padding:20px 16px}.panel-title h2{font-size:14px}.panel-title>.btn{font-size:14px;padding:7px 10px}.endpoint-card{display:block;padding:18px}.endpoint-card code{font-size:14px}.endpoint-card p{margin-top:8px}.guests-banner{padding:18px}.guests-banner strong{font-size:14px}.settings-card,.settings-tables{padding:20px}.settings-tables>.panel-title>.btn{min-height:38px}.settings-card .subtle{font-size:14px}.app-footer{margin:0 16px;font-size:14px}.app-footer>span:first-child{max-width:190px}.modal-header{padding:22px 20px 18px}.modal-header h2{font-size:21px}.modal-body{padding:20px;gap:16px}.modal-footer{padding:16px 20px}.form-grid{gap:12px}.form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three>label:last-child{grid-column:1/-1}.form-grid>label{font-size:14px!important}.optional{font-size:14px}.login{display:block}.login-brand{min-height:0;padding:25px 24px 33px}.login-story{margin-top:32px}.login-story h1{font-size:38px;margin:14px 0;letter-spacing:-1px}.login-story p{font-size:14px}.login-art,.login-footer{display:none}.login-story .eyebrow{font-size:14px}.login-form{padding:35px 24px;gap:30px}.login-form h2{font-size:25px}.login-form form>p{margin-bottom:25px;font-size:14px}.login-help{font-size:14px}.login-form>.subtle{font-size:14px}}
.table-scroll{position:relative}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* Working UI: readable at normal browser zoom, with explicit actions. */
.nav-label-mobile { display: none; }
body { font-size: 16px; }
.app-shell { grid-template-columns: 248px minmax(0, 1fr); }
.sidebar { padding: 30px 16px 22px; }
.sidebar .wordmark { font-size: 34px; margin: 0 16px 30px; }
.venue { padding: 14px 12px; margin-bottom: 24px; }
.venue strong { font-size: 16px; }
.venue span:not(.venue-icon) { font-size: 14px; }
.venue-icon { width: 40px; height: 44px; }
.nav-label { display: none; }
.sidebar nav { gap: 8px; }
.nav-item { min-height: 52px; padding: 13px 14px; font-size: 16px; }
.nav-item .icon { width: 22px; height: 22px; }
.nav-count { font-size: 14px; padding: 2px 7px; }
.connection { font-size: 14px; margin: 22px 10px; }
.profile strong { font-size: 16px; }
.profile small { font-size: 14px; }
.avatar { width: 44px; height: 44px; font-size: 14px; }
.avatar.small { width: 40px; height: 40px; font-size: 16px; }
.topbar { height: 64px; padding: 0 32px; font-size: 16px; }
.topbar strong { font-weight: 600; }
.topbar-right { font-size: 15px; }
#main { padding: 28px 32px; }
h1, .page-heading h1 { font-size: 36px; }
h2, .panel-title h2 { font-size: 20px; }
h3 { font-size: 18px; }
.page-heading { margin-bottom: 24px; }
.page-heading p { font-size: 16px; line-height: 1.6; margin-top: 8px; }
.page-heading > .btn { margin-top: 0; }
.btn, .page-heading > .btn { font-size: 16px; min-height: 48px; padding: 12px 18px; }
.icon-button { min-width: 44px; min-height: 44px; }
.icon { width: 22px; height: 22px; }
.subtle { font-size: 14px; }
.mini-label { font-size: 14px; letter-spacing: 1px; }
.stats-grid { gap: 16px; margin-bottom: 24px; }
.stat-card { padding: 18px 20px; }
.stat-top { font-size: 16px; align-items: flex-start; line-height: 1.4; min-height: 36px; }
.stat-icon { width: 36px; height: 36px; }
.stat-icon .icon { width: 20px; height: 20px; }
.stat-card > strong { font-size: 40px; margin: 8px 0; }
.stat-card > strong > span { font-size: 16px; }
.stat-card p { font-size: 14px; }
.day-toolbar { margin-bottom: 20px; }
.date-control { gap: 6px; }
.date-control > .icon-button { min-width: 44px; min-height: 44px; }
.date-picker { font-size: 17px; min-height: 48px; padding: 8px; }
.date-picker .icon { width: 22px; height: 22px; }
.today-btn { font-size: 16px; min-height: 44px; padding: 8px 14px; }
.toolbar-actions { gap: 8px; }
.toolbar-actions > .btn { min-height: 44px; font-size: 15px; padding: 9px 12px; }
.toolbar-actions .icon { width: 20px; height: 20px; }
.booking-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
.list-toolbar { padding: 0 22px; gap: 16px; flex-wrap: wrap; }
.tabs { gap: 22px; }
.tab { min-height: 56px; padding: 16px 0; font-size: 16px; }
.tab > span { font-size: 14px; margin-left: 8px; padding: 2px 7px; }
.view-switch { margin: 10px 0; gap: 4px; padding: 4px; }
.view-switch > .icon-button { min-height: 40px; min-width: 44px; padding: 7px 10px; gap: 7px; font-size: 14px; }
.view-switch .icon { width: 18px; height: 18px; }
.search-row { padding: 18px 22px; }
.search-input { max-width: 440px; }
.search-input .icon { left: 13px; width: 20px; height: 20px; }
.search-input input { font-size: 16px; min-height: 48px; padding: 11px 14px 11px 42px; line-height: 1.5; }
.list-caption { font-size: 14px; }
table { font-size: 16px; }
th { font-size: 14px; font-weight: 600; padding: 16px; color: #536058; }
td { padding: 18px 16px; }
td strong { font-size: 16px; }
td small { font-size: 14px; }
.booking-table { min-width: 1040px; }
.booking-table th:first-child, .booking-table td:first-child { padding-left: 22px; }
.booking-table th:last-child, .booking-table td:last-child { padding-left: 12px; padding-right: 22px; }
.guest-link { gap: 12px; min-height: 48px; }
.guest-link .avatar { width: 44px; height: 44px; font-size: 14px; }
.guest-link strong { font-size: 18px; font-weight: 650; white-space: normal; overflow-wrap: anywhere; }
.guest-link small { font-size: 15px; margin-top: 4px; }
.booking-table .guest-link > span:last-child { min-width: 165px; max-width: 230px; }
.time-main, td .time-main { font-size: 22px; line-height: 1.4; font-weight: 650; }
.party { gap: 8px; font-size: 16px; }
.party > span { display: block; }
.party .icon { width: 20px; height: 20px; }
.party small { font-size: 14px; display: block; margin-top: 3px; }
.table-tag { font-size: 18px; min-width: 42px; height: 36px; padding: 3px 9px; border-radius: 7px; }
.badge { font-size: 14px; padding: 7px 10px; gap: 7px; font-weight: 600; border: 1px solid transparent; }
.status-dot { width: 6px; height: 6px; }
.badge.pending { border-color: #e7d29d; }
.badge.confirmed { border-color: #ccdfd1; }
.badge.seated { border-color: #e5baa7; }
.badge.completed { border-color: #dfe4dc; color: #536052; }
.row-actions { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
.row-actions .quick-action { min-height: 42px; font-size: 14px; padding: 9px 12px; background: #e8f1eb; color: #28583f; border-color: #cddfd0; }
.row-actions .quick-action:hover { background: #dbeade; border-color: #a7c9ae; }
.row-actions .confirm-action { background: #fbf0d7; color: #795014; border-color: #e7d29d; }
.row-actions .confirm-action:hover { background: #f5e3b3; border-color: #d8bb79; }
.quick-action .icon { width: 16px; height: 16px; }
.edit-booking { border: 0; background: transparent; min-height: 36px; padding: 6px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; color: #526058; font-size: 14px; border-radius: 7px; }
.edit-booking:hover { background: #eef1e9; color: #252b28; }
.edit-booking .icon { width: 16px; height: 16px; }
.booking-note { display: flex; align-items: flex-start; gap: 7px; max-width: 280px; margin: 10px 0 0; font-size: 14px; line-height: 1.5; color: #59665d; white-space: normal; overflow-wrap: anywhere; }
.booking-note .icon { width: 16px; height: 16px; margin-top: 3px; }
.booking-cards { display: none; }
.table-footer { font-size: 14px; padding: 16px 22px; }
.table-footer .icon { width: 16px; height: 16px; }
.day-aside { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.day-aside .panel, .occupancy-panel, .arrivals-panel { padding: 24px; }
.panel-title { margin-bottom: 18px; }
.panel-title p { font-size: 14px; }
.peak { margin: 20px 0 24px; gap: 20px; }
.peak > strong { font-size: 42px; }
.peak > p { font-size: 15px; }
.histogram { height: 112px; gap: 8px; }
.histogram-column > span { font-size: 14px; }
.chart-legend { font-size: 14px; margin-top: 18px; }
.count-pill { font-size: 14px; min-width: 28px; padding: 3px 7px; }
.arrival { padding: 18px 0; gap: 12px; }
.arrival strong { font-size: 16px; white-space: normal; }
.arrival small { font-size: 14px; }
.arrival-time { font-size: 16px; padding: 9px; }
.arrival > .icon { width: 18px; height: 18px; }
.quiet-empty { font-size: 16px; }
.empty h3 { font-size: 20px; }
.empty p { font-size: 16px; max-width: 450px; }
.timeline-hour { font-size: 18px; min-width: 58px; }
.timeline-card { padding: 18px; }
.timeline-card strong { font-size: 18px; }
.timeline-card small { font-size: 15px; }
.floor-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
.floor-layout > aside { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.inline-label { font-size: 16px; }
.inline-label input { width: 128px; min-height: 48px; padding: 9px 12px; font-size: 18px; }
.floor-toolbar { padding: 0 24px; }
.floor-map { height: 560px; margin: 30px; }
.floor-table { width: 116px; height: 104px; font-size: 14px; }
.floor-table.round { width: 116px; height: 116px; }
.floor-table.capacity-large { width: 148px; }
.floor-table strong { font-size: 28px; }
.floor-table > small { font-size: 14px; }
.floor-label { font-size: 15px; }
.window-wall > span, .floor-entrance { font-size: 14px; }
.floor-legend { font-size: 15px; gap: 24px; flex-wrap: wrap; }
.floor-summary { padding: 24px; }
.floor-summary h2 { font-size: 20px; }
.floor-summary h3 { font-size: 17px; }
.floor-count > span { font-size: 16px; }
.floor-help { font-size: 16px; margin: 10px 0; }
.floor-mobile-tables { display: none; }
.guests-banner strong { font-size: 18px; }
.guests-banner span { font-size: 15px; }
.integration-layout { grid-template-columns: 1fr 1fr; }
.integration-hero h2 { font-size: 28px; }
.integration-hero p { font-size: 16px; }
.key-row strong { font-size: 17px; }
.key-row code, .key-row small, .key-row .btn { font-size: 14px; }
.note, .text-link, .api-fields > span, .api-fields p { font-size: 14px; }
.endpoint, .endpoint > code, pre code { font-size: 14px; }
.endpoint > span, .method { font-size: 14px; }
.endpoint-card > code, .endpoint-card p { font-size: 15px; }
.settings-layout { grid-template-columns: minmax(0, 460px) minmax(0, 1fr); }
.settings-card, .settings-tables { padding: 28px; }
.settings-table-row strong { font-size: 18px; }
.settings-table-row small { font-size: 15px; }
label:not(.date-picker):not(.search-input):not(.inline-label) { font-size: 16px; }
label > input, label > select, label > textarea { font-size: 16px; min-height: 48px; padding: 11px 13px; }
.optional { font-size: 14px; }
dialog { width: min(720px, calc(100% - 32px)); }
.modal-header h2 { font-size: 28px; }
.modal-header p { font-size: 15px; }
.modal-body { gap: 22px; }
.form-section-label { font-size: 14px; }
.form-section-label > .subtle { font-size: 14px; }
.availability-hint, .form-error { font-size: 15px; }
.modal-footer { padding: 20px 28px; }
.app-footer { margin: 0 32px; font-size: 14px; }
.toast { font-size: 16px; }

@media (min-width: 1700px) {
  .booking-layout { grid-template-columns: minmax(0, 1fr) 330px; }
  .day-aside { display: flex; }
  .floor-layout { grid-template-columns: minmax(0, 1fr) 330px; }
  .floor-layout > aside { display: block; }
  .floor-help { margin-top: 20px; }
}

@media (max-width: 1180px) {
  .booking-desktop { display: none; }
  .booking-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 0 20px 20px; }
  .booking-card { padding: 20px; border: 1px solid var(--line); border-radius: 12px; min-width: 0; }
  .booking-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 20px; }
  .booking-card-top > div { display: flex; flex-direction: column; flex-shrink: 0; }
  .booking-card-top .badge { white-space: normal; }
  .booking-card .guest-link { width: 100%; }
  .booking-card .guest-link > span:last-child { min-width: 0; }
  .booking-card-details { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin: 20px 0; }
  .booking-card-details > div { text-align: right; }
  .booking-card-details small { display: block; font-size: 14px; color: var(--muted); margin-top: 5px; }
  .booking-card .booking-note { max-width: none; margin-bottom: 18px; }
  .booking-card .row-actions { flex-direction: row; align-items: stretch; gap: 12px; padding-top: 16px; border-top: 1px solid var(--line); }
  .booking-card .quick-action { flex: 1; }
  .booking-card .edit-booking { min-height: 44px; }
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settings-layout, .integration-layout { grid-template-columns: 1fr; }
  .list-caption { display: none; }
  .table-footer > span:last-child { display: none; }
  .floor-map { display: none; }
  .floor-mobile-tables { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 24px; }
  .floor-mobile-table { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; background: #eff5e9; border: 2px solid #b7cbaa; border-radius: 12px; padding: 20px; min-height: 150px; text-align: left; }
  .floor-mobile-table.reserved { background: #fcf4dc; border-color: #d2b171; }
  .floor-mobile-table.occupied { background: #f9e8de; border-color: #c18a71; }
  .floor-mobile-table > strong { font-size: 24px; }
  .floor-mobile-table > span, .floor-mobile-table small { font-size: 15px; }
}

@media (max-width: 900px) {
  .app-shell { display: block; }
  .sidebar { padding: 20px 20px 0; height: auto; }
  .sidebar .wordmark { margin: 0 0 20px; font-size: 32px; }
  .venue, .sidebar-bottom { display: none; }
  .sidebar nav { display: flex; gap: 8px; padding-bottom: 12px; }
  .nav-item { min-height: 48px; font-size: 16px; padding: 10px 13px; gap: 9px; }
  .nav-item .icon { width: 20px; height: 20px; }
  .topbar { height: 56px; padding: 0 20px; }
  #main { padding: 24px 20px; }
  .day-aside { grid-template-columns: 1fr; }
  .floor-layout > aside { display: block; }
  .floor-help { margin: 22px 0 0; }
  .endpoint-card { display: block; }
}

@media (max-width: 720px) {
  h1, .page-heading h1 { font-size: 30px; }
  #main { padding: 22px 16px; }
  .page-heading p { font-size: 16px; }
  .page-heading > .btn { width: 100%; }
  .stats-grid { gap: 12px; }
  .stat-card { padding: 16px; }
  .stat-top { font-size: 15px; min-height: 42px; }
  .stat-icon { width: 30px; height: 30px; }
  .stat-card > strong { font-size: 36px; }
  .stat-card p { font-size: 14px; }
  .day-toolbar { flex-direction: column; align-items: stretch; gap: 12px; }
  .date-control { gap: 2px; justify-content: space-between; }
  .date-picker { font-size: 16px; padding: 5px; gap: 6px; }
  .date-picker .icon { display: none; }
  .date-control > .icon-button { min-width: 36px; }
  .today-btn { margin-left: 3px; font-size: 15px; padding: 7px 10px; }
  .toolbar-actions { justify-content: flex-end; }
  .list-toolbar { padding: 0 16px; gap: 0; }
  .tabs { gap: 16px; }
  .tab { font-size: 15px; padding: 15px 0; }
  .tab > span { font-size: 14px; margin-left: 5px; padding: 1px 5px; }
  .view-switch { margin: 10px 0; }
  .search-row { padding: 16px; }
  .search-input { max-width: none; }
  .booking-cards { grid-template-columns: 1fr; padding: 0 16px 16px; }
  .booking-card { padding: 20px; }
  .booking-card .guest-link strong { font-size: 18px; }
  .table-footer { padding: 14px 16px; }
  .timeline-group { gap: 12px; }
  .timeline-hour { min-width: 50px; font-size: 16px; }
  .timeline-cards { padding-left: 12px; }
  .timeline-card { padding: 16px; }
  .timeline-card strong { font-size: 18px; }
  .floor-toolbar { padding: 0 18px; flex-wrap: wrap; }
  .floor-toolbar > .subtle { padding-bottom: 14px; font-size: 14px; }
  .inline-label { margin-left: 0; justify-content: space-between; }
  .floor-mobile-tables { gap: 12px; padding: 18px; }
  .floor-mobile-table { padding: 16px; }
  .floor-mobile-table > strong { font-size: 22px; }
  .floor-legend { font-size: 14px; gap: 14px; padding: 6px 18px 22px; }
  .integration-hero { padding: 24px 20px; }
  .integration-hero h2 { font-size: 24px; }
  .integration-hero p { font-size: 16px; }
  .integration-symbol { display: none; }
  .api-version { display: none; }
  .keys-panel, .api-guide, .settings-card, .settings-tables { padding: 22px; }
  .panel-title { flex-wrap: wrap; }
  .panel-title > .btn { font-size: 15px; min-height: 44px; }
  .modal-header { padding: 22px; }
  .modal-header h2 { font-size: 25px; }
  .modal-body { padding: 22px; }
  .modal-footer { padding: 18px 22px; }
  .form-grid > label { font-size: 16px !important; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid.three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-section-label { flex-wrap: wrap; letter-spacing: .5px; }
  .app-footer { margin: 0 16px; font-size: 14px; flex-wrap: wrap; }
  .app-footer > span:first-child { max-width: none; }
}

@media (max-width: 390px) {
  .date-picker { font-size: 15px; }
  .floor-mobile-tables { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .sidebar { padding: 18px 16px 0; }
  .sidebar .wordmark { margin-bottom: 16px; }
  .sidebar nav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 3px; overflow: visible; }
  .nav-item { position: relative; flex-direction: column; justify-content: center; gap: 5px; padding: 8px 2px; min-height: 66px; font-size: 14px; }
  .nav-label-desktop { display: none; }
  .nav-label-mobile { display: inline; }
  .nav-count { position: absolute; top: 3px; right: 3px; font-size: 14px; min-width: 20px; padding: 0 4px; }
  .stat-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 14px; }
  .stat-top { min-height: 44px; align-items: center; font-size: 15px; }
  .stat-icon, .stat-card p { display: none; }
  .stat-card > strong { font-size: 32px; margin: 0; }
  .stat-card > strong > span { display: block; font-size: 14px; margin: 4px 0 0; text-align: right; }
  .modal-header .mini-label { display: none; }
  .modal-footer { flex-direction: column-reverse; align-items: stretch; gap: 8px; }
  .modal-footer > .btn { width: 100%; }
}

/* Two-role workspace and direct floor-plan editing. */
.brand { display: inline-flex; align-items: center; gap: 12px; flex-shrink: 0; color: var(--ink); line-height: 1.3; }
.brand-symbol { display: block; width: 48px; height: 48px; padding: 4px; border-radius: 12px; background: #163230; flex-shrink: 0; }
.brand-symbol img { display: block; width: 100%; height: 100%; }
.brand-copy { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.brand-copy strong { font-size: 26px; font-weight: 750; letter-spacing: .2px; }
.brand-expanded { width: 400px; max-width: 100%; gap: 16px; }
.brand-expanded .brand-symbol { width: 100px; height: 100px; padding: 8px; border-radius: 14px; }
.brand-tagline { font-size: 16px; font-weight: 600; }
.brand-products { color: var(--muted); font-size: 12px; }
@media (max-width: 480px) {
  .brand-expanded { gap: 14px; }
  .brand-expanded .brand-symbol { width: 80px; height: 80px; }
  .brand-tagline { font-size: 14px; }
}
@media (max-width: 420px) {
  .app-header .brand { gap: 10px; }
  .app-header .brand-symbol { width: 40px; height: 40px; border-radius: 10px; }
  .app-header .brand-copy strong { font-size: 22px; }
  .app-header .session-user { min-width: 0; }
  .app-header .session-user > span { max-width: 105px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
.simple-shell { min-height: 100dvh; }
.app-header { display: flex; align-items: center; gap: 28px; padding: 20px 32px; border-bottom: 1px solid var(--line); background: #fcfcfa; }
.app-header .wordmark { font-size: 32px; }
.app-header > strong { font-size: 18px; font-weight: 600; }
.session-user { margin-left: auto; display: flex; align-items: center; gap: 16px; }
.session-user > span { font-size: 16px; max-width: 260px; }
.session-user small { display: block; color: var(--muted); font-size: 14px; }
.main-nav { display: flex; align-items: center; gap: 8px; padding: 12px 32px; background: white; border-bottom: 1px solid var(--line); overflow-x: auto; }
.main-nav .nav-item { flex-direction: row; min-height: 48px; font-size: 16px; padding: 12px 18px; gap: 10px; position: static; }
.simple-shell #main { max-width: 1720px; margin: 0 auto; padding: 26px 32px 32px; }
.simple-shell .page-heading { margin-bottom: 22px; }
.simple-shell .page-heading h1 { font-size: 30px; }
.simple-shell .day-toolbar { margin-bottom: 18px; }
.simple-login { min-height: 100dvh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 32px; gap: 32px; }
.simple-login form { max-width: 400px; width: 100%; padding: 32px; display: flex; flex-direction: column; gap: 22px; }
.simple-login h1 { font-size: 30px; }
.room-panel { overflow: hidden; }
.room-tabs { display: flex; align-items: center; gap: 24px; overflow-x: auto; border-bottom: 1px solid var(--line); padding: 0 24px; }
.room-tabs .tab { flex-shrink: 0; }
.room-panel .floor-mobile-tables { display: none; }
.floor-viewport { padding: 24px; overflow: auto; }
.room-surface { position: relative; flex-shrink: 0; margin: 0 auto; background: #f9faf5; border: 9px solid #d5ddce; border-radius: 8px; background-image: radial-gradient(#d9dfd2 1px, transparent 1px); background-size: 22px 22px; }
.room-surface.theme-wood { background-color: #f2e5d0; border-color: #cfc0a7; background-image: repeating-linear-gradient(0deg, transparent 0 43px, #d7c8af55 44px 45px); }
.room-surface.theme-dark { background-color: #343d36; border-color: #657061; background-image: radial-gradient(#52604f 1px, transparent 1px); }
.room-table { position: absolute; display: grid; place-items: center; padding: 4px; border: 2px solid #9fba91; background: #edf5e7; color: #3f6039; border-radius: 12px; z-index: 3; cursor: pointer; }
.room-table.round { border-radius: 50%; }
.room-table.reserved { background: #fcf0d6; border-color: #d0ab63; color: #795a22; }
.room-table.occupied { background: #f8e4d8; border-color: #ba7d61; color: #984a2e; }
.table-face { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100%; pointer-events: none; line-height: 1.3; }
.table-face strong { font-size: 22px; font-weight: 650; }
.table-face > span { font-size: 14px; margin-top: 3px; }
.table-face small { font-size: 14px; margin-top: 5px; max-width: 115%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.room-seat { position: absolute; background: #dce8d2; border: 1px solid #aebe9f; border-radius: 5px; pointer-events: none; }
.room-seat.top, .room-seat.bottom { width: 28%; height: 12%; left: 36%; }
.room-seat.top { top: -20%; }
.room-seat.bottom { bottom: -20%; }
.room-seat.left, .room-seat.right { width: 12%; height: 28%; top: 36%; }
.room-seat.left { left: -20%; }
.room-seat.right { right: -20%; }
.reserved .room-seat { background: #f1dfb5; border-color: #c7a872; }
.occupied .room-seat { background: #edcdbd; border-color: #c6947e; }
.room-table.table-parts-horizontal::after,.room-table.table-parts-vertical::after { content:""; position:absolute; pointer-events:none; background:var(--ops-plan,var(--bg)); z-index:0; }
.room-table.table-parts-horizontal::after { left:calc(50% - 3px); top:-2px; bottom:-2px; width:6px; }
.room-table.table-parts-vertical::after { top:calc(50% - 3px); left:-2px; right:-2px; height:6px; }
.room-table[class*="table-parts-"] .table-face { position:relative; z-index:1; }
.room-table[class*="table-parts-"] strong { background:var(--table-fill,#edf5e7); padding:2px 6px; border-radius:4px; }
.room-object.object-chair,.room-object.object-column { border-radius:3px; }
.room-object.object-chair .object-label,.room-object.object-column .object-label,.room-object.object-sofa .object-label { display:none; }
.room-object.object-curtain { padding:0; min-height:0; background:transparent !important; border:0; border-top:2px dashed var(--muted); border-radius:0; }
.room-object.object-curtain-vertical { border-top:0; border-left:2px dashed var(--muted); }
.room-object.object-curtain .object-label { display:none; }
.table-chairs { position:absolute; inset:0; pointer-events:none; }
.table-chair { position:absolute; display:block; pointer-events:none; }
.table-chair svg { display:block; width:100%; height:100%; overflow:visible; }
.table-chair .chair-legs { fill:color-mix(in srgb,var(--table-fill,var(--primary)) 32%,#142136); }
.table-chair .chair-frame { fill:color-mix(in srgb,var(--table-fill,var(--primary)) 58%,#142136); }
.table-chair .chair-back { fill:color-mix(in srgb,var(--table-fill,var(--primary)) 74%,#fff); }
.table-chair .chair-seat { fill:color-mix(in srgb,var(--table-fill,var(--primary)) 84%,#fff); stroke:color-mix(in srgb,var(--table-fill,var(--primary)) 64%,#142136); stroke-width:1.5; }
.table-chair .chair-seam { fill:none; stroke:color-mix(in srgb,var(--table-fill,var(--primary)) 65%,#fff); stroke-width:1.3; stroke-linecap:round; }
.room-object.object-tall .object-label { writing-mode:vertical-rl; text-orientation:mixed; max-height:95%; }
.room-object.object-tall { padding:0; gap:0; }
.room-object { position: absolute; display: flex; align-items: center; justify-content: center; gap: 6px; border: 1px solid #bac9b2; background: #e5eddd; border-radius: 5px; min-height: 22px; padding: 0 5px; color: #506247; font-size: 14px; z-index: 1; }
.room-object > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.object-window { background: #d9eef0; border-color: #8fb7bf; color: #3a6871; }
.object-door { border-style: dashed; background: #f9faf5; color: #52634b; }
.object-wall { background: #aab6a2; border-color: #8b9985; color: #233322; }
.object-bar { background: #dfc8a2; border-color: #c1a477; color: #674925; }
.object-plant { border-radius: 50%; background: #d8e6c9; color: #4c6a3b; min-width: 28px; }
.object-plant > span { display: none; }
.room-surface.editing [data-item-id] { touch-action: none; user-select: none; cursor: grab; }
.room-surface.editing [data-item-id]:active, .room-surface .dragging { cursor: grabbing; }
.room-surface.editing .room-object { min-height: 32px; }
.room-surface .layout-selected { outline: 3px solid var(--primary); outline-offset: 5px; z-index: 6; }
.room-surface .dragging { box-shadow: 0 7px 25px #27322230; transition: none; z-index: 8; }
.layout-inactive { opacity: .45; border-style: dashed; }
.layout-toolbar { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
.room-choice { min-width: 200px; }
.room-choice > select { min-height: 48px; }
.save-indicator { margin: 0 auto 14px 8px; font-size: 14px; color: var(--green); white-space: nowrap; }
.layout-editor { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 22px; align-items: start; }
.editor-canvas { overflow: hidden; background: #f1f3ec; }
.editor-viewport { min-height: 430px; max-height: calc(100dvh - 250px); }
.layout-inspector { padding: 24px; display: flex; flex-direction: column; gap: 20px; max-height: calc(100dvh - 220px); overflow-y: auto; }
.layout-inspector h2 { font-size: 22px; overflow-wrap: anywhere; }
.layout-inspector form { display: flex; flex-direction: column; gap: 17px; }
.layout-inspector .form-grid { gap: 12px; }
.room-size { color: var(--muted); font-size: 15px; }
.editor-help { font-size: 14px; color: var(--muted); line-height: 1.7; }
.employee-settings { padding: 28px; }
.employee-row { display: flex; align-items: center; gap: 14px; border: 0; border-top: 1px solid var(--line); background: transparent; padding: 18px 0; width: 100%; text-align: left; }
.employee-row > span:nth-child(2) { flex: 1; min-width: 0; }
.employee-row strong { display: block; font-size: 18px; }
.employee-row small { display: block; font-size: 15px; color: var(--muted); margin-top: 4px; }
.employee-row:hover { color: var(--primary); }

@media (max-width: 1000px) {
  .layout-editor { grid-template-columns: minmax(0, 1fr) 280px; gap: 16px; }
  .layout-inspector { padding: 20px; }
  .layout-toolbar .save-indicator { margin-right: 0; }
  .app-header > strong { font-size: 16px; }
}
@media (max-width: 720px) {
  .app-header { padding: 18px 16px; gap: 12px; }
  .app-header .wordmark { font-size: 27px; }
  .app-header > strong { display: none; }
  .session-user { gap: 6px; }
  .session-user > span { max-width: 180px; font-size: 15px; }
  .main-nav { padding: 10px 16px; gap: 6px; }
  .main-nav .nav-item { font-size: 16px; padding: 11px 14px; min-height: 48px; flex-shrink: 0; }
  .simple-shell #main { padding: 22px 16px; }
  .simple-shell .page-heading { gap: 16px; }
  .simple-shell .page-heading .btn { width: auto; }
  .room-tabs { padding: 0 18px; gap: 20px; }
  .room-panel .floor-viewport { display: none; }
  .room-panel .floor-mobile-tables { display: grid; }
  .layout-editor { grid-template-columns: 1fr; }
  .layout-inspector { max-height: none; }
  .editor-viewport { min-height: 400px; max-height: 600px; padding: 18px; }
  .layout-toolbar { align-items: center; }
  .room-choice { width: 100%; }
  .save-indicator { order: 5; margin: 0; }
  .layout-toolbar .btn { font-size: 15px; padding: 11px 13px; }
  .simple-login { padding: 24px 18px; }
  .simple-login form { padding: 26px; }
}

/* Floor editing fits its container; the document remains the only scroller. */
.floor-viewport,.editor-viewport,.layout-inspector { overflow: visible; max-height: none; }
.floor-viewport { padding: 32px; }
.editor-viewport { min-height: 0; }
.layout-editor { align-items: start; }
.room-surface.without-grid { background-image: none; }
.room-object > .resize-handle,.room-object > .rotate-handle { overflow: visible; }
.resize-handle,.rotate-handle { display: none; position: absolute; z-index: 10; background: var(--surface); color: var(--ink); border: 2px solid var(--primary); touch-action: none; }
.layout-selected .resize-handle { display: block; width: 14px; height: 14px; border-radius: 3px; }
.handle-nw { left: -10px; top: -10px; cursor: nwse-resize; }
.handle-ne { right: -10px; top: -10px; cursor: nesw-resize; }
.handle-se { right: -10px; bottom: -10px; cursor: nwse-resize; }
.handle-sw { left: -10px; bottom: -10px; cursor: nesw-resize; }
.handle-n { left: calc(50% - 7px); top: -10px; cursor: ns-resize; }
.handle-s { left: calc(50% - 7px); bottom: -10px; cursor: ns-resize; }
.handle-e { top: calc(50% - 7px); right: -10px; cursor: ew-resize; }
.handle-w { top: calc(50% - 7px); left: -10px; cursor: ew-resize; }
.layout-selected .rotate-handle { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; left: calc(50% - 14px); top: -47px; cursor: crosshair; font-size: 20px; }
.room-resize { position: absolute; right: -20px; bottom: -20px; width: 34px; height: 34px; border: 2px solid var(--primary); border-radius: 8px; background: var(--surface); display: grid; place-items: center; font-size: 24px; color: var(--ink); cursor: nwse-resize; touch-action: none; z-index: 10; user-select: none; }
.room-dimensions { position: absolute; bottom: -31px; left: 0; font-size: 14px; color: var(--muted); white-space: nowrap; }
.room-table.booth { border-width: 12px 10px 3px; border-radius: 18px 18px 7px 7px; background: #dcefcf; }
.booth .room-seat { display: none; }
.booth .table-face { background: #eff8e9; border: 1px solid #aac598; border-radius: 10px; width: 65%; height: 65%; }
.object-sofa { border-width: 7px 7px 3px; border-radius: 14px; background: #bdb99a; }
.object-kitchen,.object-rectangle { background: #d3d4cf; border-color: #b3b8ad; }
.object-circle { border-radius: 50%; }
.object-text { background: transparent; border: 1px dashed var(--muted); color: var(--ink); }
.layout-options { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; margin: 0 0 20px; }
.layout-options label { margin: 0; }
.layout-toolbar { flex-wrap: wrap; }
.table-popover { width: 420px; margin: auto; max-height: calc(100dvh - 32px); border-radius: 14px; }
.table-popover .modal-header { padding: 22px 24px 18px; }
.table-popover .modal-body { padding: 20px 24px; }
.table-details { display: flex; flex-direction: column; align-items: start; gap: 13px; }
.table-guest { font-size: 22px; }
.table-free { color: var(--green); font-size: 20px; font-weight: 600; }
.table-current-label { font-size: 14px; color: var(--muted); }
.table-details a { display: flex; align-items: center; gap: 8px; }
.table-menu { width: 100%; display: grid; gap: 10px; border-top: 1px solid var(--line); padding-top: 18px; }
.table-reservation,.history-row { width: 100%; display: flex; gap: 16px; justify-content: space-between; align-items: center; border: 0; border-bottom: 1px solid var(--line); padding: 14px 0; background: transparent; text-align: left; }
.table-reservation strong,.history-row strong,.history-row small { display: block; }
.booking-sheet { width: 640px; max-width: calc(100vw - 24px); max-height: calc(100dvh - 24px); margin: 12px 12px 12px auto; border-radius: 16px; }
.booking-sheet .modal-header h2 { font-size: 24px; }
.booking-sheet .modal-body { padding: 22px 28px; }
.guest-context { padding: 16px; background: var(--sage); border-radius: 10px; }
.guest-context > span { margin-left: 10px; }
.guest-context p { margin-top: 8px; }
.guest-dialog { width: 850px; }
.guest-history { display: flex; flex-direction: column; gap: 16px; }
.history-summary { display: flex; flex-wrap: wrap; gap: 20px; }
.crm-tabs { display: flex; gap: 16px; flex-wrap: wrap; border-bottom: 1px solid var(--line); margin-bottom: 24px; }
.crm-tabs .tab { font-size: 18px; min-height: 52px; }
.crm-period { display: flex; align-items: end; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.crm-period label { width: 180px; margin-bottom: 0; }
.crm-table-wrap { overflow-x: auto; }
.crm-table { width: 100%; border-collapse: collapse; }
.crm-table th { text-align: left; color: var(--muted); font-weight: 500; font-size: 15px; background: var(--bg); padding: 16px 20px; }
.crm-table td { padding: 18px 20px; border-bottom: 1px solid var(--line); font-size: 17px; }
.crm-table td small { display: block; color: var(--muted); font-size: 14px; margin-top: 6px; }
.text-action { border: 0; background: transparent; padding: 0; font-size: 18px; font-weight: 600; color: var(--ink); text-align: left; }
.text-action:hover { color: var(--primary); text-decoration: underline; }
.tag { display: inline-block; border: 1px solid var(--line); border-radius: 6px; background: var(--sage); color: var(--green); padding: 3px 8px; font-size: 14px; margin: 3px; }
.crm-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-bottom: 24px; }
.crm-metrics article { padding: 22px; }
.crm-metrics span { display: block; color: var(--muted); }
.crm-metrics strong { font-size: 28px; display: block; margin-top: 10px; }
.report-note { color: var(--muted); margin-top: 18px; }
.sale-item { display: grid; grid-template-columns: minmax(100px,1fr) 80px 120px 44px; gap: 12px; align-items: end; margin-bottom: 14px; }
.sale-item label { margin-bottom: 0; }
.sale-item .icon-button { margin-bottom: 5px; }

:root[data-theme="dark"] { color-scheme: dark; --bg:#111827; --surface:#253044; --ink:#f0f3f8; --muted:#bac4d2; --line:#3b475c; --primary:#20b77c; --primary-hover:#188e62; --sage:#173f35; --green:#85e2b3; --amber:#4a3922; --ochre:#f7d37e; --rust:#50372c; --shadow:0 4px 20px #00000016; }
[data-theme="dark"] .app-header,[data-theme="dark"] .main-nav { background: #253044; }
[data-theme="dark"] .main-nav .selected { background: #173f35; color: #8ae5b8; }
[data-theme="dark"] .wordmark,[data-theme="dark"] .panel h2 { color: var(--ink); }
[data-theme="dark"] .secondary,[data-theme="dark"] .today-btn,[data-theme="dark"] .search-input,[data-theme="dark"] .view-switch { background: var(--surface); color: var(--ink); border-color: var(--line); }
[data-theme="dark"] .secondary:hover,[data-theme="dark"] .ghost:hover,[data-theme="dark"] .icon-button:hover,[data-theme="dark"] .view-switch .chosen { background: #35455c; }
[data-theme="dark"] .search-input input,[data-theme="dark"] .search-row { background: var(--surface); }
[data-theme="dark"] .tab { color: var(--muted); }
[data-theme="dark"] .active-tab { color: var(--green); border-color: var(--primary); }
[data-theme="dark"] .room-surface.theme-light,[data-theme="dark"] .room-surface.theme-dark { background-color: #101622; border-color: #506078; background-image: radial-gradient(#27354a 1px, transparent 1px); }
[data-theme="dark"] .room-surface.theme-wood { background-color: #302b25; border-color: #766956; background-image: repeating-linear-gradient(0deg,transparent 0 43px,#574a3855 44px 45px); }
[data-theme="dark"] .room-surface.without-grid { background-image: none; }
[data-theme="dark"] .room-table.available { background: #20be7b; border-color: #46d798; color: #08291c; }
[data-theme="dark"] .room-table.reserved { background: #6c76ec; border-color: #929cfc; color: #fff; }
[data-theme="dark"] .room-table.occupied { background: #e9a253; border-color: #f4bb76; color: #342312; }
[data-theme="dark"] .room-seat { background: #20be7b; border-color: #4ed695; }
[data-theme="dark"] .reserved .room-seat { background: #6c76ec; border-color: #949cff; }
[data-theme="dark"] .occupied .room-seat { background: #e9a253; border-color: #f4bb76; }
[data-theme="dark"] .booth .table-face { background: #172d26; color: #fff; border-color: #61c992; }
[data-theme="dark"] .room-object { color: #e1e6ed; background: #3e4858; border-color: #647086; }
[data-theme="dark"] .object-text { background: transparent; }
[data-theme="dark"] .room-object.object-window { background: #173849; color: #b2dff0; }
[data-theme="dark"] .room-object.object-plant { background: #1b503a; color: #93e6b9; }
[data-theme="dark"] .booking-table th,[data-theme="dark"] .table-footer { background: #1f293c; border-color: var(--line); color: var(--muted); }
[data-theme="dark"] .booking-table td,[data-theme="dark"] .booking-card { border-color: var(--line); }
[data-theme="dark"] .badge.confirmed { background: #174b3b; color: #a0e9c3; }
[data-theme="dark"] .badge.pending { background: #4a3922; color: #ffdd94; }
[data-theme="dark"] .badge.seated { background: #553826; color: #ffd1aa; }
[data-theme="dark"] .badge.completed { background: #374252; color: #d0d8e3; }
[data-theme="dark"] .badge.cancelled,[data-theme="dark"] .badge.no_show { background: #503337; color: #ffbcc2; }
[data-theme="dark"] .table-tag,[data-theme="dark"] .avatar { background: #344054; border-color: var(--line); color: #e7ecf4; }
[data-theme="dark"] .table-tag small,[data-theme="dark"] .booking-note { color: var(--muted); }
[data-theme="dark"] .quick-action,[data-theme="dark"] .confirm-action { background: #174b3b; border-color: #33755e; color: #a0e9c3; }
[data-theme="dark"] .floor-mobile-table { background: #173f35; color: #c8f6dd; border-color: #388467; }
[data-theme="dark"] .floor-mobile-table.reserved { background: #32355c; color: #e4e6ff; border-color: #747dcc; }
[data-theme="dark"] .floor-mobile-table.occupied { background: #50372c; color: #ffe2c2; }
[data-theme="dark"] .integration-hero,[data-theme="dark"] .api-version { background: #1b2638; color: var(--ink); border-color: var(--line); }
[data-theme="dark"] input:disabled,[data-theme="dark"] select:disabled { background: #354054; color: var(--muted); }
[data-theme="dark"] .form-error { background: #503337; color: #ffbec6; }
[data-theme="dark"] .availability-hint { background: #173f35; color: #b4eccd; }
[data-theme="dark"] .no-availability { background: #503337; color: #ffbec6; }
[data-theme="dark"] .primary { color: #061c13; }
[data-theme="dark"] .modal-header,[data-theme="dark"] .modal-footer { border-color: var(--line); }
[data-theme="dark"] dialog { background: var(--surface); color: var(--ink); border-color: var(--line); }
@media (min-width: 721px) { .table-popover { position: fixed; } }
@media (max-width: 900px) { .crm-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); } .crm-table td { padding: 14px; } }
@media (max-width: 720px) {
  .floor-viewport { padding: 28px; }
  .editor-viewport { min-height: 0; max-height: none; }
  .table-popover { width: calc(100vw - 24px); }
  .crm-tabs { gap: 8px 14px; }
  .crm-tabs .tab { font-size: 16px; }
  .crm-period label { width: calc(50% - 8px); }
  .sale-item { grid-template-columns: minmax(80px,1fr) 60px 90px 32px; gap: 8px; }
  .sale-item .icon-button { width: 32px; }
  .booking-sheet .modal-body { padding: 20px; }
  .layout-options { gap: 10px; }
}
body { font-size: 17px; }
.main-nav .nav-item { font-size: 18px; }
.table-popover .modal-header { padding: 16px 20px; }
.table-popover .modal-header h2 { font-size: 22px; }
.table-popover .modal-header p { font-size: 15px; margin-top: 4px; }
.table-popover .modal-body { padding: 16px 20px; }
.table-popover .table-details { gap: 9px; font-size: 16px; }
.table-popover .row-actions { display: flex; flex-direction: row; flex-wrap: wrap; gap: 10px; }
.table-popover .btn { min-height: 40px; font-size: 15px; padding: 8px 12px; }
.table-popover .table-menu { padding-top: 12px; gap: 8px; }
.table-popover::backdrop { backdrop-filter: none; background: #00000025; }
[data-theme="dark"] .panel,[data-theme="dark"] .room-tabs,[data-theme="dark"] .reservations-panel,[data-theme="dark"] .booking-cards { background: var(--surface); }
[data-theme="dark"] td,[data-theme="dark"] tr { background: transparent; }
[data-theme="dark"] tbody tr:hover { background: #2d3a50; }
[data-theme="dark"] .nav-item { color: var(--muted); }
[data-theme="dark"] .edit-booking,[data-theme="dark"] .employee-row,[data-theme="dark"] .form-section-label { color: var(--ink); }
[data-theme="dark"] .legend-dot.amber { background: #7d85f4; }
[data-theme="dark"] .legend-dot.sage { background: #20be7b; }
[data-theme="dark"] .legend-dot.rust { background: #e9a253; }
[data-theme="dark"] .floor-legend { color: var(--muted); }
.planner-wrap { overflow-x: auto; }
.reservation-planner { min-width: 950px; padding: 12px 20px 24px; }
.planner-head,.planner-row { display: grid; grid-template-columns: 160px minmax(0,1fr); border-bottom: 1px solid var(--line); }
.planner-head { min-height: 48px; align-items: center; color: var(--muted); font-size: 14px; }
.planner-row { min-height: 80px; }
.planner-table { padding: 15px 10px 15px 0; font-weight: 600; }
.planner-table small { display: block; font-size: 14px; color: var(--muted); font-weight: 400; }
.planner-track { display: grid; grid-template-columns: repeat(var(--steps),minmax(0,1fr)); position: relative; }
.planner-track > span { white-space: nowrap; }
.planner-slot { border: 0; border-left: 1px solid var(--line); background: transparent; min-height: 80px; }
.planner-slot:hover { background: var(--sage); }
.planner-booking { position: absolute; top: 10px; height: 60px; border-radius: 7px; border: 1px solid #8db7a2; padding: 7px; background: var(--sage); color: var(--green); text-align: left; overflow: hidden; white-space: nowrap; z-index: 2; }
.planner-booking strong,.planner-booking small { display: block; font-size: 14px; overflow: hidden; text-overflow: ellipsis; }
.planner-booking.pending { background: var(--amber); color: var(--ochre); }
.planner-booking.seated { background: var(--rust); color: var(--ink); }
.planner-booking.completed,.planner-booking.cancelled,.planner-booking.no_show { opacity: .6; }
.booking-extra { border-top: 1px solid var(--line); padding-top: 16px; }
.booking-extra summary { cursor: pointer; font-weight: 600; margin-bottom: 16px; min-height: 40px; }
.booking-extra label { margin-bottom: 14px; }
.room-resize { width: 44px; height: 44px; right: -25px; bottom: -25px; }
.floor-viewport { position: relative; }
.plan-view-controls { position: absolute; right: 12px; top: 12px; z-index: 20; display: flex; gap: 4px; padding: 4px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.plan-view-controls .icon-button { color: var(--ink); }
.room-surface { transform-origin: center; }
.room-surface.can-pan { cursor: grab; touch-action: none; }
.room-surface.can-pan.dragging { cursor: grabbing; }
.table-face small { max-width: 100%; }
@media (max-width: 1000px) {
  .room-panel .floor-viewport { display: none; }
  .room-panel .floor-mobile-tables { display: grid; }
  .layout-editor { grid-template-columns: 1fr; }
  .main-nav { flex-wrap: wrap; overflow: visible; }
}
.room-bar { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; border-bottom: 1px solid var(--line); gap: 8px; }
.room-bar .room-tabs { margin: 0; border-bottom: 0; flex-grow: 1; }
.room-view-switch { margin: 10px 18px; }
.room-view-switch .btn { min-height: 42px; font-size: 16px; }
.room-panel.force-plan .floor-viewport { display: block; }
.room-panel.force-plan .floor-mobile-tables { display: none; }
.room-panel.force-cards .floor-viewport { display: none; }
.room-panel.force-cards .floor-mobile-tables { display: grid; }
.floor-mobile-tables { grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 16px; padding: 24px; }
.floor-mobile-table { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; background: #eff5e9; border: 2px solid #b7cbaa; border-radius: 12px; padding: 20px; min-height: 150px; text-align: left; }
.floor-mobile-table.reserved { background: #fcf4dc; border-color: #d2b171; }
.floor-mobile-table.occupied { background: #f9e8de; border-color: #c18a71; }
.floor-mobile-table > strong { font-size: 22px; }
.floor-mobile-table > span,.floor-mobile-table small { font-size: 16px; }
.room-table { grid-template-columns: minmax(0,1fr); grid-template-rows: minmax(0,1fr); }
.table-face { min-width: 0; min-height: 0; max-width: 100%; }
.table-face > span,.table-face small { min-width: 0; max-width: 100%; overflow: hidden; white-space: nowrap; }
@media (max-width: 520px) { .room-panel .floor-mobile-tables { grid-template-columns: 1fr; padding: 18px; } }
[data-theme="dark"] button:focus-visible,[data-theme="dark"] a:focus-visible,[data-theme="dark"] input:focus-visible,[data-theme="dark"] select:focus-visible,[data-theme="dark"] textarea:focus-visible { outline-color: #85e2b3; }
