:root{color:#17202a;background:#f7f6f2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{border:1px solid #c9d2d0;border-radius:8px;background:#fff;color:#17202a;cursor:pointer;min-height:40px;padding:0 14px}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{min-height:100vh}.topbar{align-items:center;background:#fff;border-bottom:1px solid #d9dedb;display:flex;gap:24px;justify-content:space-between;padding:24px clamp(18px,4vw,44px)}.topbar h1,.section-header h2,.empty-state h2{margin:0}.topbar h1{font-size:clamp(24px,4vw,40px);line-height:1.05}.eyebrow{color:#61736f;font-size:12px;font-weight:700;letter-spacing:0;margin:0 0 8px;text-transform:uppercase}.segmented-control{background:#edf1ef;border:1px solid #d4dcda;border-radius:8px;display:flex;padding:4px}.segmented-control button{background:transparent;border:0;white-space:nowrap}.segmented-control button.active{background:#17202a;color:#fff}.workspace-grid{display:grid;gap:20px;grid-template-columns:minmax(260px,320px) 1fr;padding:20px clamp(18px,4vw,44px) 44px}.sidebar,.main-column{display:grid;gap:20px;align-content:start}.panel,.workspace-band,.widget-shell{background:#fff;border:1px solid #d9dedb;border-radius:8px}.panel{display:grid;gap:14px;padding:18px}.panel h2,.inspector h3{font-size:18px;margin:0}.workspace-band,.widget-shell{padding:20px}.section-header{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px}.section-header.compact{margin-bottom:12px}.toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.primary-action{background:#146c63;border-color:#146c63;color:#fff;font-weight:700}.secondary-action{background:#e5f0ed;border-color:#a8c8c0;color:#0e514b;font-weight:700}.field{display:grid;gap:6px}.field span{color:#4d5d59;font-size:13px;font-weight:700}.field input,.field select,.field textarea,.toolbar input{background:#fff;border:1px solid #c9d2d0;border-radius:8px;min-height:40px;padding:0 10px;width:100%}.field textarea{min-height:92px;padding:10px;resize:vertical}.checkbox-field{align-items:center;display:flex;gap:10px}.checkbox-field input{min-height:auto;width:auto}.list-row,.table-choice{align-items:center;display:flex;justify-content:space-between;text-align:left;width:100%}.list-row.active,.table-choice.active{border-color:#146c63;box-shadow:inset 0 0 0 1px #146c63}.list-row strong,.table-choice strong{color:#61736f;font-size:12px;text-transform:uppercase}.editor-grid{display:grid;gap:20px;grid-template-columns:minmax(0,1fr) minmax(240px,300px)}.plan-surface{aspect-ratio:1200 / 760;background:#f8faf8;border:1px solid #cfd8d5;border-radius:8px;overflow:hidden;width:100%}.plan-surface svg{display:block;height:100%;touch-action:none;width:100%}.table-node{cursor:grab}.table-node>rect,.table-node>ellipse{fill:#fff7e6;stroke:#8a6d2e;stroke-width:3}.table-node.selected>rect,.table-node.selected>ellipse{fill:#dff5ef;stroke:#146c63}.seat-node circle{fill:#fff;stroke:#3a4a46;stroke-width:2}.seat-node path{fill:none;stroke:#3a4a46;stroke-linecap:round;stroke-width:2}.table-node text{dominant-baseline:middle;fill:#17202a;font-size:18px;font-weight:900;pointer-events:none;text-anchor:middle}.inspector{align-content:start;display:grid;gap:14px}.widget-grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.availability-list{display:grid;gap:8px;grid-column:1 / -1}.reserve-button,.status-line{grid-column:1 / -1}.reservation-table{border:1px solid #d9dedb;border-radius:8px;overflow:hidden}.reservation-row{display:grid;gap:12px;grid-template-columns:80px 1.4fr 1fr 80px 100px 210px;padding:12px}.reservation-row:nth-child(2n){background:#f7f9f8}.reservation-row.header{background:#edf1ef;color:#4d5d59;font-size:13px;font-weight:800;text-transform:uppercase}.empty-state{background:#fff;border:1px dashed #b7c4c0;border-radius:8px;padding:28px}.empty-state p,.muted,.status-line{color:#61736f}.error{color:#a4332b;margin:0}@media (max-width: 920px){.topbar,.section-header{align-items:stretch;flex-direction:column}.workspace-grid,.editor-grid{grid-template-columns:1fr}.widget-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.workspace-grid{padding-inline:12px}.segmented-control,.toolbar,.topbar-actions{width:100%}.segmented-control button,.toolbar button{flex:1}.widget-grid,.reservation-row{grid-template-columns:1fr}}.topbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.auth-layout{display:grid;min-height:calc(100vh - 120px);padding:28px clamp(18px,4vw,44px);place-items:start center}.auth-panel{background:#fff;border:1px solid #d9dedb;border-radius:8px;display:grid;gap:16px;max-width:460px;padding:24px;width:100%}.auth-panel h2{margin:0}.photo-stack{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.photo-stack img{aspect-ratio:4 / 3;border:1px solid #d9dedb;border-radius:8px;object-fit:cover;width:100%}.suggested-node>rect,.suggested-node>ellipse{fill:#146c631f;stroke:#146c63;stroke-dasharray:10 8;stroke-width:3}.suggested-node text{dominant-baseline:middle;fill:#0e514b;font-size:18px;font-weight:900;pointer-events:none;text-anchor:middle}.row-actions{display:flex;flex-wrap:wrap;gap:6px}.row-actions button{min-height:32px;padding:0 9px}.action-empty-state{display:grid;gap:14px;justify-items:start}.split-fields{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.editor-toolbar button{min-width:72px}.object-node{cursor:grab}.object-node.selected>rect,.object-node.selected>ellipse{filter:drop-shadow(0 0 .35rem rgba(20,108,99,.42));stroke:#146c63;stroke-width:4}.zone-node rect{fill-opacity:.38;stroke:#8bb8ae;stroke-dasharray:12 9;stroke-width:2}.zone-node text{fill:#39524d;font-size:14px;font-weight:800;pointer-events:none}.wall-node rect{fill:#36423f;stroke:#17202a;stroke-width:1}.label-node rect{fill:#ffffff9e;stroke:transparent}.label-node.selected rect{stroke:#146c63;stroke-dasharray:8 6;stroke-width:2}.label-node text{fill:#17202a;font-weight:800;pointer-events:none}.build-pill{background:#e5f0ed;border:1px solid #a8c8c0;border-radius:8px;color:#0e514b;display:inline-block;font-size:12px;font-weight:800;margin:10px 0 0;padding:5px 8px}.danger-action,.icon-danger{background:#fff1ef;border-color:#e0aaa3;color:#9c2f25;font-weight:800}.plan-row{gap:8px;padding:0}.plan-row.active{border-color:#146c63;box-shadow:inset 0 0 0 1px #146c63}.row-select{align-items:center;border:0;border-radius:0;display:flex;flex:1;justify-content:space-between;min-width:0;padding-inline:0 10px;text-align:left}.icon-danger{min-height:34px;padding:0 8px}.plan-command-center{border-color:#a8c8c0}.plan-command-center.active{border-color:#146c63;box-shadow:inset 0 0 0 1px #146c63}.plan-status-grid{display:grid;gap:8px;grid-template-columns:repeat(5,minmax(0,1fr))}.plan-status-grid span{background:#f2f6f4;border:1px solid #d9dedb;border-radius:8px;color:#4d5d59;font-size:13px;font-weight:700;min-height:36px;padding:8px 10px}.upload-action{align-items:center;background:#146c63;border:1px solid #146c63;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-weight:800;min-height:40px;overflow:hidden;padding:0 14px;position:relative}.upload-action input{cursor:pointer;top:0;right:0;bottom:0;left:0;opacity:0;position:absolute}@media (max-width: 920px){.plan-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.plan-status-grid{grid-template-columns:1fr}.upload-action{justify-content:center;width:100%}}.analysis-card{background:#f2f6f4;border:1px solid #d9dedb;border-radius:8px;color:#39524d;display:grid;gap:6px;padding:12px}.analysis-card strong,.analysis-card span,.analysis-card p{margin:0}.analysis-card p{color:#61736f;font-size:13px}.json-preview{border-top:1px solid #d9dedb;display:grid;gap:8px;padding-top:8px}.json-preview summary{cursor:pointer;font-size:13px;font-weight:800}.json-preview pre{background:#17202a;border-radius:8px;color:#ecf2ef;font-size:11px;line-height:1.45;margin:0;max-height:260px;overflow:auto;padding:10px;white-space:pre-wrap;word-break:break-word}.json-copy-action{justify-self:start;min-height:34px}.floor-editor-shell{border-color:#c8d5d0}.editor-heading{margin-bottom:12px}.editor-metrics,.booking-legend,.booking-summary{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.editor-metrics span,.booking-summary span,.booking-summary strong{background:#f3f6f4;border:1px solid #d9dedb;border-radius:8px;color:#40534e;font-size:13px;font-weight:800;min-height:34px;padding:7px 10px}.editor-toolbar-strip{align-items:center;border-block:1px solid #e1e6e3;display:flex;flex-wrap:wrap;gap:8px;margin:0 -20px 20px;padding:12px 20px}.editor-toolbar-strip button{min-width:84px}.topdown-editor-grid{grid-template-columns:minmax(540px,1fr) minmax(280px,340px)}.topdown-plan-surface,.client-plan-wrap{background:linear-gradient(180deg,#ffffffc2,#ffffff5c),#eef2ee;border:1px solid #bfcac5;border-radius:8px;box-shadow:inset 0 0 0 1px #ffffffb8}.floor-fill{fill:#f7f8f5}.room-outline{fill:transparent;stroke:#8d9b96;stroke-width:4}.topdown-inspector{background:#fbfcfb;border:1px solid #dbe2df;border-radius:8px;padding:14px}.source-upload-action{justify-content:center;width:100%}.source-photo-stack img{border-color:#cdd8d4}.landmark-node rect{fill:#edf0f4;stroke:#788796;stroke-dasharray:8 5;stroke-width:2}.landmark-node text{dominant-baseline:middle;fill:#52606e;font-size:13px;font-weight:800;pointer-events:none;text-anchor:middle}.topdown-table-node>rect,.topdown-table-node>ellipse{fill:#fff8e8;stroke:#9f7d38;stroke-width:3}.topdown-table-node.disabled>rect,.topdown-table-node.disabled>ellipse{fill:#ecefee;stroke:#9aa7a3}.table-node.banquette>rect,.client-table-node.banquette>rect{fill:#fff3dc}.banquette-pad{pointer-events:none}.table-node .banquette-pad rect,.suggested-node .banquette-pad rect,.client-table-node .banquette-pad rect{fill:#c9a171;opacity:.9;stroke:#7a603f;stroke-width:1.5}.client-zone-node{pointer-events:none}.booking-shell,.booking-grid{display:grid;gap:16px}.booking-controls,.customer-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.client-plan-wrap{aspect-ratio:1200 / 760;overflow:hidden;width:100%}.client-plan{display:block;height:100%;width:100%}.legend-dot{border-radius:50%;display:inline-block;height:12px;margin-left:6px;width:12px}.legend-dot.available{background:#2f8f5b}.legend-dot.reserved{background:#c54a3e}.legend-dot.too-small{background:#b58b2b}.client-table-node{cursor:pointer}.client-table-node>rect,.client-table-node>ellipse{fill:#f9f0d7;stroke:#9f7d38;stroke-width:3;transition:fill .12s ease,stroke .12s ease,filter .12s ease}.client-table-node.available>rect,.client-table-node.available>ellipse{fill:#dff2e6;stroke:#2f8f5b}.client-table-node.reserved,.client-table-node.too-small{cursor:not-allowed}.client-table-node.reserved>rect,.client-table-node.reserved>ellipse{fill:#f3d9d6;stroke:#c54a3e}.client-table-node.too-small>rect,.client-table-node.too-small>ellipse{fill:#f5ead1;stroke:#b58b2b}.client-table-node.selected>rect,.client-table-node.selected>ellipse{filter:drop-shadow(0 0 .45rem rgba(47,143,91,.48));stroke-width:5}.client-seat-node circle{fill:#fff;stroke:#596965;stroke-width:2}.client-seat-node path{fill:none;stroke:#596965;stroke-linecap:round;stroke-width:2}.client-table-node.available .client-seat-node circle,.client-table-node.available .client-seat-node path{stroke:#2f8f5b}.client-table-node.reserved .client-seat-node circle{fill:#f8eeee;stroke:#c54a3e}.client-table-node.reserved .client-seat-node path{stroke:#c54a3e}.client-seat-node.selected circle{fill:#2f8f5b;stroke:#1f5d3d}.client-seat-node.selected path{stroke:#1f5d3d}.client-table-node text{dominant-baseline:middle;fill:#17202a;font-size:18px;font-weight:900;pointer-events:none;text-anchor:middle}.client-landmark-node{opacity:.72;pointer-events:none}@media (max-width: 1100px){.topdown-editor-grid{grid-template-columns:1fr}}@media (max-width: 760px){.booking-controls,.customer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.booking-controls,.customer-grid{grid-template-columns:1fr}.editor-toolbar-strip button{flex:1 1 140px}}
