:root{--surface: #ffffff;--surface-subtle: #f8fafc;--surface-sunken: #f1f5f9;--surface-hover: #e2e8f0;--chrome: #0f172a;--on-chrome: #ffffff;--border: #e2e8f0;--border-strong: #cbd5e1;--border-hover: #94a3b8;--text: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--text-subtle: #94a3b8;--accent: #2563eb;--accent-strong: #1d4ed8;--accent-weak: #eff6ff;--accent-border: #bfdbfe;--danger: #dc2626;--danger-weak: #fef2f2;--danger-border: #fca5a5;--warning: #f59e0b;--warning-strong: #d97706;--warning-deep: #b45309;--fs-micro: 11px;--fs-label: 12px;--fs-body: 13px;--fs-title: 15px;--radius-sm: 4px;--radius-md: 6px}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Helvetica,Arial,sans-serif;font-size:var(--fs-body);color:var(--text);background:var(--surface-sunken);overflow:hidden}.app{display:flex;flex-direction:column;height:100vh;width:100vw}.workspace{display:flex;flex:1;overflow:hidden}.toolbar{display:flex;align-items:center;gap:12px;padding:0 16px;height:44px;background:var(--chrome);flex-shrink:0}.toolbar-brand{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:var(--fs-title);letter-spacing:-.01em;color:var(--on-chrome)}.toolbar-logo{width:24px;height:24px;color:var(--accent);flex-shrink:0}.toolbar-dirty{display:inline-block;width:10px;font-size:var(--fs-title);line-height:1;text-align:center;color:var(--warning);visibility:hidden}.toolbar-dirty.visible{visibility:visible}.toolbar-chart-name{min-width:120px;max-width:360px;padding:4px 8px;font-size:var(--fs-body);font-weight:500;background:#ffffff0f;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--on-chrome)}.toolbar-chart-name::placeholder{color:#fff6}.toolbar-chart-name:hover{background:#ffffff1a;border-color:#ffffff26}.toolbar-chart-name:focus{outline:none;background:#ffffff26;border-color:#ffffff4d}.toolbar-actions{display:flex;gap:6px}.toolbar-actions-right{margin-left:auto;align-items:center}.toolbar-zoom{font-size:var(--fs-label);color:#ffffffbf;font-variant-numeric:tabular-nums;min-width:40px;text-align:right;margin-right:4px;-webkit-user-select:none;user-select:none}.toolbar-actions button{padding:4px 12px;font-size:var(--fs-body);background:#ffffff1a;color:var(--on-chrome);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);cursor:pointer}.toolbar-actions button:hover:not(:disabled){background:#fff3}.toolbar-actions button:disabled{opacity:.35;cursor:default}.toolbar-actions button.active{background:var(--accent);border-color:var(--accent)}.menu{position:relative}.menu-trigger.open{background:#ffffff40;border-color:#ffffff59}.menu-caret{display:inline-block;margin-left:4px;font-size:var(--fs-micro);opacity:.8}.menu-panel{position:absolute;top:calc(100% + 6px);left:0;min-width:200px;padding:4px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 6px 20px #0000002e;z-index:50;display:flex;flex-direction:column;gap:1px}.toolbar .menu-panel .menu-item{display:flex;align-items:center;gap:4px;width:100%;padding:7px 10px;background:transparent;border:none;border-radius:var(--radius-sm);font-size:var(--fs-body);color:var(--text);text-align:left;cursor:pointer}.toolbar .menu-panel .menu-item:hover{background:var(--accent-weak);color:var(--accent-strong);border-color:transparent}.menu-check{width:16px;display:inline-block;text-align:center;color:var(--accent);font-weight:600}.menu-separator{height:1px;background:var(--border);margin:4px 0}.shape-palette{width:160px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:12px 8px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.palette-heading{font-weight:600;font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:4px 6px 8px}.palette-item{width:100%;padding:8px 10px;text-align:left;font-size:var(--fs-body);background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer}.palette-item:hover:not(:disabled){background:var(--accent-weak);border-color:var(--accent-border)}.palette-item:disabled{opacity:.5;cursor:default}.palette-item.active{border-color:var(--accent);background:var(--accent-weak);color:var(--accent-strong)}.canvas-container{position:relative;flex:1;overflow:hidden;background:var(--surface-hover)}.side-panel{width:240px;flex-shrink:0;background:var(--surface);border-left:1px solid var(--border);overflow-y:auto}.side-panel-empty{padding:24px 16px;color:var(--text-subtle);font-size:var(--fs-body);text-align:center}.side-panel-tabs{display:flex;border-bottom:1px solid var(--border);background:var(--surface-subtle);flex-shrink:0}.side-panel-tabs .tab{flex:1;padding:10px 12px;background:transparent;border:none;border-bottom:2px solid transparent;font-size:var(--fs-body);font-weight:500;color:var(--text-muted);cursor:pointer}.side-panel-tabs .tab:hover{color:var(--text)}.side-panel-tabs .tab.active{color:var(--accent);border-bottom-color:var(--accent);background:var(--surface)}.bulk-list{display:flex;flex-direction:column}.bulk-group{border-bottom:1px solid var(--border);padding:8px 0}.bulk-group-header{padding:4px 16px;font-size:var(--fs-micro);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.bulk-row{display:grid;grid-template-columns:60px 1fr;gap:8px;align-items:center;padding:4px 16px}.bulk-row-label{font-size:var(--fs-label);color:var(--text-secondary);font-weight:500}.bulk-row input{padding:4px 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-label);min-width:0}.bulk-row input:focus{outline:none;border-color:var(--accent)}.side-panel-header{padding:12px 16px;font-size:var(--fs-label);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border)}.seat-editor{padding:16px;display:flex;flex-direction:column;gap:12px;border-bottom:1px solid var(--border)}.seat-editor.compact{gap:8px;padding:12px 16px}.seat-editor-id{font-weight:600;font-size:var(--fs-body);color:var(--text)}.seat-editor.compact .seat-editor-id{font-size:var(--fs-body);color:var(--text-secondary)}.seat-editor-field{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-label);color:var(--text-secondary)}.seat-editor-field input,.seat-editor-field textarea{padding:6px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-body)}.seat-editor-field textarea{font-family:inherit;resize:vertical}.seat-editor-field input:focus,.seat-editor-field textarea:focus{outline:none;border-color:var(--accent)}.seat-editor-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface-subtle)}.seat-count-control{display:flex;align-items:center;gap:6px;font-size:var(--fs-label);color:var(--text-secondary)}.seat-count-control button{width:24px;height:24px;padding:0;border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-body);line-height:1;color:var(--text-secondary)}.seat-count-control button:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-hover);color:var(--text)}.seat-count-control button:disabled{opacity:.4;cursor:default}.custom-props{display:flex;flex-direction:column;gap:6px}.custom-props-header{font-size:var(--fs-micro);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.custom-props-empty{font-size:var(--fs-label);color:var(--text-subtle);font-style:italic}.custom-prop-row{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;align-items:center}.custom-prop-key{font-size:var(--fs-label);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-prop-row input{padding:4px 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-label);min-width:0}.custom-prop-remove{width:22px;height:22px;padding:0;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-body);line-height:1;color:var(--text-subtle)}.custom-prop-remove:hover{background:var(--danger-weak);border-color:var(--danger-border);color:var(--danger)}.custom-prop-add{display:flex;flex-direction:column;gap:6px;padding:8px;background:var(--surface-subtle);border-radius:var(--radius-sm)}.custom-prop-add input{padding:4px 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-label)}.custom-prop-add-actions{display:flex;gap:6px}.custom-prop-add-actions button{flex:1;padding:4px 8px;font-size:var(--fs-label);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer}.custom-prop-add-actions button:disabled{opacity:.5;cursor:default}.custom-prop-add-btn{padding:6px;font-size:var(--fs-label);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);cursor:pointer}.custom-prop-add-btn:hover{border-color:var(--accent);color:var(--accent)}.guest-edit{width:22px;height:22px;padding:0;margin-right:6px;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-label);line-height:1;color:var(--text-secondary)}.guest-edit:hover{border-color:var(--accent);color:var(--accent)}.prompt-card.guest-details{width:340px;max-height:85vh;overflow-y:auto}.field-warning{font-size:var(--fs-micro);color:var(--warning-deep)}.guest-picker-dropdown{position:fixed;max-height:220px;overflow-y:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:0 6px 20px #00000026;z-index:200;display:flex;flex-direction:column;padding:2px}.guest-picker-option{display:block;padding:6px 10px;background:transparent;border:none;border-radius:3px;text-align:left;font-size:var(--fs-body);color:var(--text);cursor:pointer}.guest-picker-option:hover{background:var(--accent-weak);color:var(--accent-strong)}.guest-picker-option.current{background:var(--accent-weak);color:var(--accent-strong);font-weight:500}.guest-picker-option.create{margin-top:2px;border-top:1px solid var(--border);color:var(--accent);font-style:italic}.guest-picker-option-meta{margin-left:8px;font-size:var(--fs-micro);color:var(--warning-strong);font-weight:500}.guest-picker-option:hover .guest-picker-option-meta{color:var(--warning-deep)}.print-modal-options{display:flex;flex-direction:column;gap:8px}.print-modal-options label{display:flex;align-items:center;gap:8px;font-size:var(--fs-body);cursor:pointer}.print-modal-options input[type=checkbox]{width:16px;height:16px;cursor:pointer}.prompt-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.prompt-card{background:var(--surface);padding:24px;border-radius:8px;min-width:260px;display:flex;flex-direction:column;gap:16px;box-shadow:0 8px 32px #0003}.prompt-card input[type=number]{width:100%;padding:8px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:var(--fs-body)}.scale-bar{position:absolute;left:16px;bottom:16px;z-index:5;display:flex;align-items:center;gap:8px;padding:5px 9px;background:#ffffffeb;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-micro);font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;pointer-events:none}.scale-bar-rule{display:block;height:7px;border:1px solid var(--text-secondary);border-top:none}.dimension-readout{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:5;padding:5px 10px;background:var(--chrome);color:var(--on-chrome);border-radius:var(--radius-sm);font-size:var(--fs-label);font-weight:600;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;pointer-events:none}.shape-editor{padding:12px;display:flex;flex-direction:column;gap:10px}.shape-editor-heading{font-size:var(--fs-micro);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.shape-editor-field{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-label);color:var(--text-secondary)}.shape-editor-field input[type=text],.shape-editor-field input[type=number]{padding:5px 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-body);color:var(--text)}.shape-editor-field input[type=text]:focus,.shape-editor-field input[type=number]:focus{outline:none;border-color:var(--accent)}.shape-editor-field-label{font-size:var(--fs-label);color:var(--text-secondary)}.zone-swatches{display:flex;gap:6px;flex-wrap:wrap}.zone-swatch{width:26px;height:26px;border:2px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-label);line-height:1;color:var(--text-subtle);padding:0}.zone-swatch:hover{transform:translateY(-1px)}.prompt-fields{display:flex;gap:10px}.prompt-fields label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-label);color:var(--text-secondary)}.seat-editor-id-input{font-weight:600;font-size:var(--fs-body);color:var(--text);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);padding:2px 6px;width:90px}.seat-editor-id-input:hover{border-color:var(--border)}.seat-editor-id-input:focus{outline:none;background:var(--surface);border-color:var(--accent)}.block-dims{display:flex;gap:8px}.block-dims label{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-micro);color:var(--text-muted)}.block-dims input{width:56px;padding:3px 6px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-label)}.row-labels{display:flex;flex-direction:column;gap:4px;padding:8px 16px 12px;border-bottom:1px solid var(--border);background:var(--surface-subtle)}.row-labels-title{font-size:var(--fs-micro);color:var(--text-muted)}.row-labels-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:4px;max-height:140px;overflow-y:auto}.row-labels-list input{min-width:0;padding:3px 6px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-label)}.arrow-options{display:flex;gap:4px}.arrow-options .palette-item{flex:1;text-align:center;padding:5px 4px;font-size:var(--fs-micro);text-transform:capitalize}.ink-options{display:flex;flex-direction:column;gap:6px;padding:6px 0}.zone-swatch.active{outline:2px solid var(--accent);outline-offset:1px}
