/* Stable surfaces and a fixed canvas: selection never changes plan dimensions. */
.modal-footer { background:var(--surface); color:var(--ink); border-color:var(--line); }
.modal-footer .ghost { color:var(--muted); }
.ops-navigation .nav-item:hover { background:var(--line); color:var(--ink); }
.ops-navigation .nav-item.selected:hover { background:var(--sage); color:var(--green); }
[data-theme="dark"] .modal-footer,[data-theme="dark"] .modal-header { background:var(--surface); color:var(--ink); }
[data-theme="dark"] .ops-navigation .nav-item:hover { background:#35445d; color:var(--ink); }
[data-theme="dark"] .ops-navigation .nav-item.selected:hover { background:var(--sage); color:var(--green); }
[data-theme="dark"] input::placeholder,[data-theme="dark"] textarea::placeholder { color:#a2aec2; }
input:focus-visible,select:focus-visible,textarea:focus-visible { outline-width:2px; outline-offset:2px; }
.editor-workspace .room-table { --table-fill:var(--ops-free); }
.editor-workspace .table-face strong,.new-table-preview .table-face strong { font-weight:400; }
.new-table-design { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:28px; }
.table-seat-picker { min-width:0; padding:0; border:0; margin:0; }
.table-seat-picker legend { font-size:16px; font-weight:600; padding:0; margin-bottom:12px; }
.seat-count-presets { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.seat-count-option { min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:9px; color:var(--ink); background:var(--surface); font-size:17px; font-weight:600; }
.seat-count-option:hover { background:var(--line); }
.seat-count-option.selected { background:var(--sage); color:var(--green); border-color:var(--primary); }
.seat-count-custom { margin-top:14px; font-size:14px !important; }
.table-design-preview { min-width:0; border:1px solid var(--line); border-radius:14px; background:var(--bg); text-align:center; padding:12px; }
.new-table-preview { position:relative; height:205px; display:flex; align-items:center; justify-content:center; }
.new-table-preview .preview-table { --table-fill:var(--ops-free); position:relative; left:auto; top:auto; background:var(--ops-free); color:#08331c; border-color:var(--ops-free); border-radius:8px; pointer-events:none; flex:none; }
.new-table-preview .preview-table.round { border-radius:50%; }
.new-table-preview .table-face strong { font-size:28px; }
.table-preview-count { display:block; margin:4px 0 2px; color:var(--ink); font-size:15px; font-weight:600; }
@media (max-width:520px) { .new-table-design { grid-template-columns:minmax(0,1fr); gap:16px; }.new-table-preview { height:185px; } }
.layout-page { overflow:hidden; }
.layout-page .ops-shell #main { height:calc(100dvh - var(--ops-header-height)); padding:18px 24px; overflow:hidden; }
.editor-workspace { height:100%; min-height:0; display:grid; grid-template-rows:auto auto auto minmax(0,1fr) auto; gap:12px; }
.editor-heading { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.editor-heading h1 { font-size:26px; margin-right:auto; }
.editor-heading .btn { font-size:15px; }
.editor-room-choice { margin:0; display:flex; align-items:center; gap:8px; font-size:14px; }
.ops-shell #main .editor-room-choice { display:flex; flex-direction:row; align-items:center; margin:0; }
.ops-shell #main .editor-controls .checkbox-label { display:flex; align-items:center; margin:0; }
.editor-room-choice select { min-width:160px; max-width:240px; min-height:44px; font-size:15px; padding:8px 12px; }
.editor-addbar { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.editor-addbar .btn { min-height:44px; font-size:15px; padding:9px 14px; }
.editor-addbar .save-indicator { margin:0 0 0 auto; min-width:190px; font-size:14px; text-align:right; }
.editor-controls { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.editor-controls .btn { min-height:40px; font-size:14px; padding:8px 12px; }
.editor-controls .checkbox-label { margin:0; gap:7px; font-size:14px; min-height:36px; }
.editor-tools { display:flex; padding:3px; border:1px solid var(--line); border-radius:8px; }
.editor-tools .btn { min-width:65px; min-height:36px; padding:6px 10px; }
.editor-tools .chosen { background:var(--sage); color:var(--green); }
.editor-workspace .layout-editor { min-height:0; height:100%; display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:16px; align-items:stretch; }
.editor-workspace .editor-canvas { position:relative; min-width:0; min-height:0; height:100%; overflow:hidden; background:var(--bg); border-radius:10px; }
.editor-workspace .editor-viewport { position:absolute; inset:0; padding:0; margin:0; width:100%; height:100%; min-height:0; max-height:none; overflow:clip; touch-action:none; }
.editor-workspace .room-surface { position:absolute; top:0; left:0; margin:0; border:0; border-radius:4px; transform-origin:0 0; box-shadow:inset 0 0 0 6px #506078; transition:none; }
.editor-workspace .room-surface.theme-wood { box-shadow:inset 0 0 0 6px #766956; }
.editor-workspace .room-surface:not(.without-grid) { background-image:radial-gradient(#7284a53d 1px,transparent 1px); }
.editor-workspace .room-surface [data-item-id] { transition:background .15s,color .15s; }
.editor-workspace .room-object { min-width:0; min-height:0; overflow:visible; }
.editor-workspace .room-object::before { content:""; position:absolute; inset:-5px; }
.editor-workspace .room-object .object-label { pointer-events:none; font-size:14px; min-width:0; max-width:100%; }
.room-object.object-line { border:0; border-radius:0; padding:0; background:transparent; min-height:0; overflow:visible; }
.room-object.object-line::after { content:""; position:absolute; top:50%; left:0; width:100%; height:3px; transform:translateY(-50%); border-radius:2px; background:#94a3b8; pointer-events:none; }
.room-object.object-line .object-label { position:absolute; top:50%; left:50%; margin-top:-9px; max-width:none; overflow:visible; transform-origin:bottom center; }
.editor-workspace .object-line.layout-selected { outline:0; box-shadow:none; }
.editor-workspace .object-line.layout-selected::after { background:var(--primary); }
.editor-workspace .object-line.layout-selected .line-endpoint { display:block; border-radius:50%; }
.editor-workspace .object-line .line-endpoint::after { content:""; position:absolute; inset:-8px; }
.editor-workspace .room-surface.hand-tool,.editor-workspace .hand-tool [data-item-id] { cursor:grab; }
.editor-workspace .panning,.editor-workspace .panning [data-item-id] { cursor:grabbing; }
.editor-workspace .readonly .resize-handle,.editor-workspace .readonly .rotate-handle,.editor-workspace .readonly .room-resize { display:none; }
.editor-workspace .readonly [data-item-id] { cursor:pointer; }
.editor-workspace .room-table .table-face { padding:3px; }
.editor-workspace .room-table .table-face > span { font-size:14px; margin-top:3px; }
.editor-workspace .small-item .handle-n,.editor-workspace .small-item .handle-s,.editor-workspace .small-item .handle-e,.editor-workspace .small-item .handle-w { display:none; }
.editor-workspace .small-item.layout-selected .resize-handle { width:10px; height:10px; }
.editor-workspace .small-item .resize-handle::after { content:""; position:absolute; inset:-5px; }
.editor-workspace .layout-inspector { padding:20px; gap:14px; height:100%; min-height:0; max-height:none; overflow-y:auto; scrollbar-gutter:stable; border-radius:10px; background:var(--surface); }
.editor-workspace .layout-inspector h2 { font-size:20px; line-height:1.4; min-height:28px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.editor-workspace .layout-inspector h2 + .room-size { margin:0; font-size:14px; }
.editor-workspace .layout-inspector label { font-size:14px; font-weight:500; }
.editor-workspace .layout-inspector input,.editor-workspace .layout-inspector select { font-size:15px; min-height:42px; padding:9px 11px; }
.editor-workspace .layout-inspector form { gap:14px; }
.editor-workspace .layout-inspector .checkbox-label { display:flex; align-items:center; }
.editor-workspace .layout-inspector .checkbox-label input { min-height:0; width:18px; height:18px; padding:0; }
.editor-workspace .layout-inspector .form-grid { gap:10px; }
.editor-workspace .layout-inspector .btn { font-size:14px; min-height:44px; }
.editor-item-actions { display:grid; gap:8px; border-top:1px solid var(--line); padding-top:16px; }
.editor-item-actions .btn { justify-content:flex-start; }
.inspector-draft { color:var(--ochre); font-size:14px; }
.inspector-draft[hidden] { display:none; }
.editor-workspace .editor-help { font-size:14px; color:var(--muted); line-height:1.6; }
.editor-workspace .plan-view-controls { top:12px; right:12px; align-items:center; border-radius:8px; background:var(--surface); }
.editor-workspace .plan-view-controls .icon-button { min-width:40px; min-height:40px; }
.editor-workspace .plan-view-controls output { min-width:50px; padding:0 8px; text-align:center; font-size:14px; color:var(--muted); }
.editor-canvas-help { position:absolute; bottom:12px; left:12px; max-width:calc(100% - 24px); pointer-events:none; z-index:20; padding:6px 10px; border-radius:6px; background:var(--surface); color:var(--muted); font-size:12px; }
.editor-statusbar { display:flex; justify-content:space-between; gap:16px; align-items:center; min-height:26px; color:var(--muted); font-size:13px; white-space:nowrap; }
.editor-selection-info { min-width:0; overflow:hidden; text-overflow:ellipsis; }
@media (max-width:1100px) { .editor-workspace .layout-editor { grid-template-columns:minmax(0,1fr) 280px; }.editor-workspace .layout-inspector { padding:16px; }.editor-heading h1 { font-size:23px; }.layout-page .ops-shell #main { padding:14px 16px; } }
@media (max-width:850px) {
  .layout-page { overflow:auto; }.layout-page .ops-shell #main { height:auto; overflow:visible; }
  .editor-workspace { height:auto; grid-template-rows:auto auto auto auto auto; }.editor-workspace .layout-editor { height:auto; grid-template-columns:minmax(0,1fr); grid-template-rows:480px 440px; }.editor-workspace .editor-canvas { height:480px; }.editor-workspace .layout-inspector { height:440px; }.editor-statusbar { white-space:normal; flex-wrap:wrap; gap:4px; }.editor-heading h1 { width:100%; }.editor-room-choice { flex:1; }.editor-room-choice select { flex:1; max-width:none; min-width:120px; }.editor-addbar .save-indicator { width:100%; min-width:0; text-align:left; }.editor-heading .btn { font-size:14px; padding:9px 12px; }
}
@media (max-width:480px) { .editor-heading .btn { flex:1; }.editor-room-choice { width:100%; flex-basis:100%; }.editor-workspace .layout-editor { grid-template-rows:420px 440px; }.editor-workspace .editor-canvas { height:420px; }.editor-canvas-help { font-size:11px; }.editor-controls { gap:8px; } }
