:root{color:#16202a;font-synthesis:none;text-rendering:optimizelegibility;background:#e8edf2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}.auth-gate{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-panel{color:#f9fafb;background:#111827b8;border:1px solid #9ca3af2e;border-radius:12px;gap:22px;width:min(460px,100%);padding:28px;display:grid;box-shadow:0 24px 70px #0000006b}.auth-kicker{color:#9ca3af;text-transform:uppercase;margin-bottom:10px;font-size:12px;font-weight:800;display:block}.auth-panel h1{margin-bottom:10px;font-size:26px}.auth-panel p{color:#cbd5e1;line-height:1.55}.auth-status,.auth-error{background:#1f2937b8;border:1px solid #9ca3af2e;border-radius:10px;padding:10px 12px;font-size:14px}.auth-error{color:#fecaca;background:#7f1d1d42;border-color:#f8717166}.auth-form{gap:14px;display:grid}.auth-form button{color:#f9fafb;background:linear-gradient(#3b82f6,#2563eb);border:1px solid #3b82f675;border-radius:10px;min-height:42px;font-size:14px;font-weight:900;box-shadow:0 8px 22px #3b82f647}.auth-form button:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}.auth-session-bar{z-index:60;color:#f9fafb;-webkit-backdrop-filter:blur(18px)saturate(145%);backdrop-filter:blur(18px)saturate(145%);background:#111827c7;border:1px solid #9ca3af2e;border-radius:12px;align-items:center;gap:12px;max-width:min(360px,100vw - 36px);padding:10px;display:flex;position:fixed;bottom:18px;right:18px;box-shadow:0 14px 38px #00000047}.auth-session-bar div{gap:2px;min-width:0;display:grid}.auth-session-bar strong,.auth-session-bar span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.auth-session-bar strong{font-size:12px}.auth-session-bar span{color:#9ca3af;font-size:11px}.auth-session-bar button{color:#f9fafb;background:#1f2937c2;border:1px solid #9ca3af2e;border-radius:10px;flex:none;padding:7px 9px;font-size:12px;font-weight:800}.tooltip-layer{z-index:9999;color:#f9fafb;pointer-events:none;text-align:center;white-space:normal;background:#080d18f0;border:1px solid #9ca3af38;border-radius:8px;max-width:min(280px,100vw - 24px);padding:7px 9px;font-size:12px;font-weight:800;line-height:1.25;position:fixed;box-shadow:0 14px 34px #00000057}.tooltip-layer.top{transform:translate(-50%,-100%)}.tooltip-layer.bottom{transform:translate(-50%)}.patch-modal-backdrop{z-index:5000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#020617ad;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.patch-modal{color:#f9fafb;background:#111827f5;border:1px solid #9ca3af33;border-radius:12px;gap:14px;width:min(440px,100%);padding:18px;display:grid;box-shadow:0 24px 70px #00000080}.patch-modal p{color:#cbd5e1;font-size:14px;line-height:1.45}.patch-modal ul{gap:6px;max-height:160px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.patch-modal li{color:#fecaca;background:#7f1d1d33;border:1px solid #f871713d;border-radius:8px;padding:7px 9px;font-size:13px;font-weight:800}.patch-modal-actions{justify-content:flex-end;gap:8px;display:flex}.patch-modal-actions button{color:#f9fafb;background:#1f2937e0;border:1px solid #9ca3af33;border-radius:10px;min-height:34px;padding:7px 11px;font-weight:900}.patch-modal-actions button.primary{background:linear-gradient(#3b82f6,#2563eb);border-color:#3b82f685}button,input,select{font:inherit}button{cursor:pointer}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-toolbar{background:#fbfcfd;border-bottom:1px solid #cdd6df;justify-content:space-between;align-items:center;gap:16px;height:64px;padding:10px 18px;display:flex}.brand-block{align-items:center;gap:14px;min-width:0;display:flex}.brand-block span{color:#5d6875;text-transform:uppercase;flex:none;font-size:12px;font-weight:700}.brand-block input{color:#17202a;background:#eef3f7;border:1px solid #0000;border-radius:6px;width:min(46vw,420px);min-width:140px;padding:8px 10px;font-size:18px;font-weight:700}.toolbar-actions{align-items:center;gap:8px;display:flex}.toolbar-actions button,.file-button,.icon-button,.danger-button{color:#243241;background:#fff;border:1px solid #cbd5df;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.toolbar-actions button:hover,.file-button:hover,.icon-button:hover{background:#eef5fb;border-color:#7894b2}.file-button input{display:none}.workspace{flex:1;grid-template-columns:minmax(320px,390px) minmax(0,1fr);min-height:0;display:grid}.editor-panel{background:#f7f9fb;border-right:1px solid #cdd6df;grid-template-rows:auto minmax(170px,1fr) auto;min-height:0;max-height:none;display:grid}.panel-header,.plan-header{justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}h1,h2,h3,p{margin:0}h1{font-size:22px}h2{font-size:15px}h3{font-size:16px}.panel-header p,.plan-header p{color:#697585;margin-top:4px;font-size:12px}.projector-list{padding:0 10px 10px;overflow:auto}.projector-row{color:#17202a;text-align:left;background:#fff;border:1px solid #d8e0e8;border-radius:6px;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;min-height:54px;margin-bottom:6px;padding:9px 10px;display:grid}.projector-row.selected{border-color:#2878bd;box-shadow:inset 3px 0 #2878bd}.projector-row strong,.projector-row small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.projector-row small{color:#6a7786}.projector-row em{color:#39556f;font-size:12px;font-style:normal;font-weight:700}.color-dot{border:1px solid #243241;border-radius:50%;width:12px;height:12px}.projector-form{background:#fff;border-top:1px solid #cdd6df;gap:10px;padding:14px 16px 18px;display:grid}.form-title{justify-content:space-between;align-items:center;display:flex}.danger-button{color:#9d2222}label{color:#5c6875;gap:5px;font-size:12px;font-weight:700;display:grid}input,select,textarea{color:#17202a;background:#fff;border:1px solid #cbd5df;border-radius:6px;width:100%;min-width:0;padding:8px 9px}textarea{resize:vertical;min-height:72px}input[type=color]{height:38px;padding:4px}.form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.plan-workspace{min-width:0;min-height:0;padding:0 18px 24px;overflow:auto}.plan-header{padding-inline:0}.domain-tabs{background:#fff;border:1px solid #c8d2dc;border-radius:7px;display:inline-flex;overflow:hidden}.domain-tabs span,.domain-tabs button{color:#697585;text-align:center;background:0 0;border:0;min-width:64px;padding:8px 10px;font-size:13px;font-weight:700}.domain-tabs .active{color:#fff;background:#2878bd}.geometry-editor{grid-template-rows:auto minmax(0,1fr);display:grid}.geometry-form{min-height:0;padding:0 16px 18px;overflow:auto}.geometry-form fieldset{background:#fff;border:1px solid #d7dfe7;border-radius:8px;gap:10px;margin:0 0 14px;padding:12px;display:grid}.geometry-form legend{color:#334155;text-transform:uppercase;padding:0 5px;font-size:12px;font-weight:800}.geometry-storage-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.geometry-storage-actions button{color:#243241;background:#fff;border:1px solid #cbd5df;border-radius:6px;justify-content:center;align-items:center;gap:7px;min-height:36px;font-size:12px;font-weight:800;display:inline-flex}.geometry-storage-actions button:disabled{cursor:not-allowed;opacity:.45}.room-selector-panel{grid-template-rows:auto minmax(0,1fr);display:grid}.room-selector-content{grid-template-columns:1fr;align-content:start;align-items:start;gap:16px;min-height:0;padding:0 16px 18px;display:grid;overflow:auto}.room-readonly-summary{background:#fff;border:1px solid #d7dfe7;border-radius:8px;margin:0}.room-readonly-summary div{border-bottom:1px solid #e1e7ed;padding:10px 12px}.room-readonly-summary div:last-child{border-bottom:0}.room-readonly-summary dt{color:#5c6875;text-transform:uppercase;font-size:11px;font-weight:800}.room-readonly-summary dd{color:#17202a;margin:3px 0 0;font-size:14px;font-weight:700}.fixture-palette,.placed-fixture-list,.fixture-detail-form,.sound-placeholder{gap:10px;display:grid}.fixture-reference-status{color:var(--text);background:#3b82f624;border:1px solid #3b82f647;border-radius:10px;margin:0;padding:7px 9px;font-size:11px;font-weight:800}.fixture-reference-status.muted{color:var(--muted);background:#1118276b;border-color:#9ca3af24}.fixture-batch-panel{background:#1f293780;border:1px solid #9ca3af24;border-radius:12px;gap:10px;padding:10px;display:grid}.fixture-batch-title{justify-content:space-between;align-items:center;gap:10px;display:flex}.fixture-batch-title h3{font-size:13px}.fixture-batch-title strong{min-width:28px;color:var(--text);text-align:center;background:#3b82f647;border-radius:999px;padding:3px 8px;font-size:12px}.fixture-batch-actions{grid-template-columns:1fr repeat(4,auto);gap:7px;display:grid}.fixture-batch-actions button{min-height:32px;color:var(--text);background:#111827b8;border:1px solid #9ca3af29;border-radius:10px;padding:6px 8px;font-size:11px;font-weight:900}.fixture-conflict-status,.fixture-selection-empty{color:var(--muted);margin:0;font-size:12px;font-weight:700}.fixture-conflict-status{color:#fecaca}.fixture-palette-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.fixture-palette-grid button{color:#243241;background:#fff;border:1px solid #d6dee7;border-radius:7px;place-items:center;gap:6px;min-height:62px;padding:6px 5px;font-size:11px;font-weight:800;display:grid}.fixture-palette-grid button:hover{background:#eef5fb;border-color:#2878bd}.fixture-picto{display:block;overflow:visible}.placed-fixture-list p,.sound-placeholder p{color:#697585;margin:0;font-size:13px}.placed-fixture-row{cursor:pointer;background:#fff;border:1px solid #d7dfe7;border-radius:7px;grid-template-columns:18px 28px minmax(0,1fr) auto 30px;align-items:center;gap:8px;min-height:44px;padding:7px;display:grid}.placed-fixture-row input[type=checkbox]{accent-color:#2878bd;width:16px;height:16px;margin:0}.placed-fixture-row.selected{border-color:#2878bd;box-shadow:inset 3px 0 #2878bd}.placed-fixture-row span{gap:2px;min-width:0;font-size:13px;font-weight:800;display:grid;overflow:hidden}.placed-fixture-row span>em{color:#5a3900;background:#fef3c7;border-radius:999px;width:fit-content;padding:1px 6px;font-size:10px;font-style:normal;font-weight:900}.placed-fixture-row small{color:#607080;font-size:11px;font-weight:700}.placed-fixture-row .row-delete-button{color:#9d2222;background:snow;border:1px solid #e1b3b3;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.fixture-detail-form{padding-top:4px}.fixture-detail-form h3{margin-top:2px}.fixture-detail-title{justify-content:space-between;align-items:center;gap:10px;display:flex}.fixture-detail-title button{min-height:30px;color:var(--muted);background:#11182799;border:1px solid #9ca3af29;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:5px 9px;font-size:11px;font-weight:900;display:inline-flex}.fixture-detail-title button.active{border-color:var(--accent);color:var(--text);background:#3b82f638;box-shadow:0 8px 22px #3b82f62e}.lighting-grid-options{justify-content:space-between;align-items:center;gap:8px;display:flex}.lighting-grid-cut-buttons,.fixture-rotation-buttons{align-items:center;gap:8px;display:inline-flex}.lighting-grid-options button{color:#52606d;background:#fff;border:1px solid #cbd5df;border-radius:6px;min-width:56px;min-height:32px;font-size:12px;font-weight:800}.lighting-grid-options button.active{color:#fff;background:#2878bd;border-color:#2878bd}.fixture-rotation-buttons button{min-width:36px}.fixture-rotation-buttons button:disabled{cursor:not-allowed;opacity:.45}.lighting-grid-cuts line{stroke:#9b2c2c;stroke-width:2px;stroke-dasharray:8 7;opacity:.72}.lighting-frame-opening{pointer-events:none}.lighting-svg .placed-fixture{cursor:grab}.lighting-svg .placed-fixture:active{cursor:grabbing}.placed-fixture text{fill:#17202a;paint-order:stroke;stroke:#fff;stroke-width:4px;font-size:12px;font-weight:900}.fixture-dmx-label{opacity:.92;font-size:10px}.placed-fixture.selected>g{filter:drop-shadow(0 0 4px #2878bdd9)}.placed-fixture.conflict>g{filter:drop-shadow(0 0 6px #f87171eb)}.placed-fixture.parked{opacity:.52}.fixture-selection-rect{fill:#3b82f629;stroke:#60a5fae0;stroke-width:2px;stroke-dasharray:8 6;pointer-events:none}.plan-frame{aspect-ratio:1200/760;background:#fff;border:1px solid #c7d0da;border-radius:8px;width:100%;min-height:360px;overflow:hidden}.venue-svg{width:100%;height:100%;display:block}.geometry-panel{--plan-zoom:1;gap:10px;display:grid}.geometry-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.geometry-toolbar p{color:#697585;margin-top:4px;font-size:12px}.geometry-controls{align-items:center;gap:8px;display:inline-flex}.geometry-controls button{color:#243241;background:#fff;border:1px solid #cbd5df;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.geometry-controls span{color:#334155;text-align:center;min-width:52px;font-size:13px;font-weight:800}.geometry-frame{width:100%;height:clamp(520px, calc(100vh - 160px + (var(--plan-zoom) - 1) * 180px), 1120px);background:#fff;border:1px solid #c7d0da;border-radius:8px;min-height:520px;overflow:hidden}.geometry-svg{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.geometry-svg:active{cursor:grabbing}.geometry-room{fill:#ffffff80;stroke:#17202a;stroke-width:4px}.geometry-stage{fill:#2a5c8a14;stroke:#2a5c8a;stroke-width:3px}.geometry-proscenium{fill:#46846021;stroke:#468460;stroke-width:3px}.geometry-frame-opening line{stroke:#9b2c2c;stroke-width:8px}.geometry-frame-opening .opening-line{stroke:#fff;stroke-width:7px;stroke-dasharray:10 7}.geometry-frame-opening text{fill:#7c2d12;font-size:14px;font-weight:800}.geometry-bar line{stroke-width:4px;stroke-linecap:round}.geometry-bar text{fill:#17202a;paint-order:stroke;stroke:#fff;stroke-width:4px;font-size:13px;font-weight:800}.geometry-rulers line{stroke:#536170;stroke-width:2px}.geometry-rulers text{fill:#3f4c5a;font-size:12px;font-weight:800}.geometry-zone-label{fill:#16202a2e;text-anchor:middle;font-size:36px;font-weight:900}.svg-stage-label{fill:#fff;font-size:34px;font-weight:800}.svg-side-label,.svg-support-label{fill:#52606d;font-size:20px;font-weight:800}.svg-side-label{writing-mode:vertical-rl}.svg-projector-name{fill:#17202a;font-size:15px;font-weight:800}.svg-projector-address{fill:#384657;font-size:13px;font-weight:700}.legend-panel{grid-template-columns:minmax(220px,.8fr) minmax(360px,1.4fr) minmax(220px,.8fr);gap:16px;margin-top:18px;display:grid}.legend-panel>div{min-width:0}.legend-panel h2{margin-bottom:8px}table{border-collapse:collapse;background:#fff;border:1px solid #d7dfe7;width:100%;font-size:12px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #e1e7ed;padding:8px}th{color:#485563;background:#edf2f6;font-weight:800}td{color:#1d2834}@media (width<=980px){.workspace{grid-template-columns:1fr}.editor-panel{border-bottom:1px solid #cdd6df;border-right:0;max-height:48vh}.projector-list{max-height:260px}.legend-panel,.room-selector-content{grid-template-columns:1fr}}@media (width<=620px){.app-toolbar{flex-direction:column;align-items:stretch;height:auto}.brand-block{flex-direction:column;align-items:stretch;gap:6px}.brand-block input{width:100%}.toolbar-actions{justify-content:flex-end}.form-grid{grid-template-columns:1fr}.plan-header{flex-direction:column;align-items:stretch}.domain-tabs{align-self:flex-start}.plan-frame{min-height:260px}.geometry-frame{height:64vh;min-height:420px}.fixture-palette-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lighting-grid-options{flex-direction:column;align-items:flex-start}}:root{color:#f9fafb;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111827;--panel:#1f2937c7;--panel-strong:#1f2937f0;--panel-soft:#111827b8;--line:#9ca3af2e;--line-strong:#3b82f675;--accent:#3b82f6;--accent-soft:#3b82f62e;--text:#f9fafb;--muted:#9ca3af;--shadow:0 24px 70px #0000006b;--shadow-soft:0 14px 38px #00000047;background:#111827}body{color:var(--text);background:radial-gradient(circle at 14% 10%,#3b82f629,#0000 32%),radial-gradient(circle at 88% 18%,#14b8a617,#0000 30%),linear-gradient(145deg,#0b1120 0%,#111827 44%,#0f172a 100%)}button,input,select,textarea{transition:border-color .16s,background .16s,color .16s,box-shadow .16s,transform .16s,opacity .16s}.app-shell{background-color:#0000;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:42px 42px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;min-height:100vh;position:relative;overflow:hidden}.app-toolbar{z-index:30;border:1px solid var(--line);width:auto;height:52px;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(18px)saturate(150%);backdrop-filter:blur(18px)saturate(150%);background:#1118279e;border-radius:12px;margin:14px 18px 0;padding:8px 10px 8px 14px;position:relative}.brand-block span{color:var(--muted);letter-spacing:0}.brand-block input{color:var(--text);background:#1f2937c7;border:1px solid #9ca3af24;border-radius:12px;font-size:15px}.brand-block input:focus,input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:0;box-shadow:0 0 0 3px #3b82f638}.toolbar-actions button,.file-button,.icon-button,.danger-button,.geometry-controls button,.lighting-grid-options button,.geometry-storage-actions button,.fixture-palette-grid button,.placed-fixture-row .row-delete-button{color:var(--text);background:#1f2937c2;border:1px solid #9ca3af29;border-radius:12px;box-shadow:inset 0 1px #ffffff0a}.toolbar-actions button:hover,.file-button:hover,.icon-button:hover,.geometry-controls button:hover,.lighting-grid-options button:hover,.geometry-storage-actions button:hover,.fixture-palette-grid button:hover{border-color:var(--line-strong);background:#3b82f629;transform:translateY(-1px)}.workspace{grid-template-columns:minmax(330px,408px) minmax(0,1fr);gap:16px;height:calc(100vh - 66px);padding:18px;transition:grid-template-columns .22s}.workspace.sidebar-collapsed{grid-template-columns:58px minmax(0,1fr)}.sidebar-slot{min-width:0;min-height:0;position:relative}.sidebar-toggle{z-index:12;width:36px;height:36px;color:var(--text);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#111827ad;border:1px solid #9ca3af2e;border-radius:12px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:12px;right:12px}.sidebar-toggle:hover{border-color:var(--line-strong);background:#3b82f62e}.sidebar-collapsed .sidebar-toggle{left:10px;right:auto}.editor-panel{border:1px solid var(--line);background:var(--panel);height:100%;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px)saturate(145%);backdrop-filter:blur(18px)saturate(145%);border-radius:12px;overflow:hidden}.panel-header{border-bottom:1px solid #9ca3af1f;min-height:68px;padding:18px 58px 14px 18px}.panel-header h2,.plan-header h1,.geometry-toolbar h2{color:var(--text);letter-spacing:0}.panel-header p,.plan-header p,.geometry-toolbar p{color:var(--muted)}.plan-workspace{box-shadow:var(--shadow);background:linear-gradient(#1f293733,#1118273d),#11182747;border:1px solid #9ca3af1c;border-radius:12px;padding:0;position:relative;overflow:auto}.plan-header{z-index:20;border:1px solid var(--line);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(18px)saturate(145%);backdrop-filter:blur(18px)saturate(145%);background:#11182794;border-radius:12px;margin:14px;padding:12px;position:sticky;top:0}.domain-tabs{background:#1f2937b8;border:1px solid #9ca3af26;border-radius:12px;padding:3px}.domain-tabs span,.domain-tabs button{color:var(--muted);border-radius:9px}.domain-tabs .active{color:var(--text);background:linear-gradient(#3b82f6,#2563eb);box-shadow:0 8px 22px #3b82f657}label{color:var(--muted)}input,select,textarea{color:var(--text);background:#11182799;border:1px solid #9ca3af29;border-radius:12px}select option{color:var(--text);background:#1f2937}.geometry-form fieldset,.room-readonly-summary,.fixture-palette-grid button,.placed-fixture-row{background:#1f293794;border:1px solid #9ca3af24;border-radius:12px;box-shadow:inset 0 1px #ffffff09}.geometry-form legend,.room-readonly-summary dt{color:var(--muted)}.room-readonly-summary dd,.placed-fixture-row span,td{color:var(--text)}.room-readonly-summary div,th,td{border-color:#9ca3af1f}.fixture-palette-grid button{color:var(--text)}.fixture-palette-grid button:hover{box-shadow:0 10px 28px #3b82f62e}.placed-fixture-row{color:var(--text)}.placed-fixture-row.selected{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent), 0 10px 30px #3b82f624;background:#3b82f629}.placed-fixture-row.conflict{background:#7f1d1d40;border-color:#f87171b8;box-shadow:inset 3px 0 #f87171}.placed-fixture-row.parked{opacity:.68}.placed-fixture-row.conflict span>em{color:#fecaca;background:#7f1d1db8}.placed-fixture-row.parked span>em{color:#fde68a;background:#78350fb8}.placed-fixture-row small,.placed-fixture-list p,.sound-placeholder p{color:var(--muted)}.geometry-panel{padding:0 14px 14px}.geometry-toolbar{z-index:18;border:1px solid var(--line);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(18px)saturate(145%);backdrop-filter:blur(18px)saturate(145%);background:#1118278f;border-radius:12px;padding:10px 12px;position:sticky;top:88px}.lighting-grid-options{z-index:17;border:1px solid var(--line);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(18px)saturate(145%);backdrop-filter:blur(18px)saturate(145%);background:#1118277a;border-radius:12px;padding:8px;position:sticky;top:154px}.lighting-grid-options button.active{border-color:var(--accent);background:linear-gradient(#3b82f6,#2563eb);box-shadow:0 8px 22px #3b82f647}.geometry-frame{box-shadow:inset 0 1px 0 #ffffff0d, var(--shadow);background:radial-gradient(circle at 50% 20%,#3b82f614,#0000 42%),#0b1120;border:1px solid #9ca3af21;border-radius:12px;height:auto;min-height:max(620px,100vh - 190px);position:relative}.geometry-svg{height:calc(max(620px, calc(100vh - 190px)) * var(--plan-zoom));min-height:max(620px,100vh - 190px)}.plan-legend{z-index:6;border:1px solid var(--line);width:min(250px,100% - 28px);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(18px)saturate(145%);backdrop-filter:blur(18px)saturate(145%);background:#1118279e;border-radius:12px;padding:14px;position:absolute;top:14px;right:14px}.plan-legend button{width:100%;min-height:26px;color:var(--text);text-transform:uppercase;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:0;font-size:12px;font-weight:800;display:flex}.plan-legend.collapsed{width:132px;padding:10px 12px}.plan-legend.open button{margin-bottom:12px}.plan-legend h3{color:var(--text);text-transform:uppercase;margin-bottom:12px;font-size:12px}.plan-legend ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.plan-legend li{color:var(--muted);grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;font-size:12px;display:grid}.legend-swatch{background:currentColor;border-radius:999px;height:2px;display:block;box-shadow:0 0 14px}.legend-swatch.dashed{background:0 0;border-top:2px dashed;height:0}.fixture-accordion{gap:6px;display:grid}.fixture-accordion-header{min-height:34px;color:var(--text);text-align:left;background:#11182794;border:1px solid #9ca3af24;border-radius:12px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 9px;display:grid}.fixture-accordion-header span{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800;overflow:hidden}.fixture-accordion-header small{min-width:24px;color:var(--text);text-align:center;background:#3b82f638;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:900}.fixture-accordion-content{gap:6px;display:grid}.fixture-front-marker{fill:#f9fafb;stroke:#111827;stroke-width:1.5px;filter:drop-shadow(0 0 4px #f9fafbb3)}.geometry-summary-card{background:#1f293794;border:1px solid #9ca3af24;border-radius:12px;margin-bottom:14px;padding:12px;box-shadow:inset 0 1px #ffffff09}.geometry-summary-card h3{color:var(--text);text-transform:uppercase;margin-bottom:10px;font-size:12px}.geometry-summary-card dl{gap:9px;margin:0;display:grid}.geometry-summary-card div{justify-content:space-between;align-items:center;gap:12px;display:flex}.geometry-summary-card dt{color:var(--muted);font-size:12px}.geometry-summary-card dd{color:var(--text);margin:0;font-size:12px;font-weight:800}.geometry-room{fill:#11182738;stroke:#f9fafbb8}.geometry-stage{fill:#3b82f617;stroke:#3b82f6e0}.geometry-proscenium{fill:#14b8a61a;stroke:#2dd4bfb8}.geometry-frame-opening line{stroke:#f87171db}.geometry-frame-opening .opening-line{stroke:#111827}.geometry-frame-opening text,.geometry-bar text,.geometry-rulers text,.placed-fixture text{fill:var(--text);stroke:#111827eb}.geometry-bar.stage line{stroke:#60a5faeb}.geometry-bar.house line{stroke:#a78bfae6}.geometry-rulers line{stroke:#9ca3afc7}.geometry-zone-label{fill:#f9fafb17}.lighting-grid-cuts line{stroke:#f87171c2}table{background:#1f293794;border-color:#9ca3af24}th{color:var(--muted);background:#111827b3}.legend-panel>div{border-radius:12px}@media (width<=980px){.app-toolbar{margin:12px}.workspace{grid-template-columns:1fr;height:auto;min-height:calc(100vh - 76px);padding-top:0}.workspace.sidebar-collapsed{grid-template-columns:1fr}.sidebar-slot{min-height:58px}.editor-panel{max-height:52vh}.plan-header,.geometry-toolbar,.lighting-grid-options{position:relative;top:auto}}@media (width<=620px){.workspace{padding:10px}.app-toolbar{border-radius:12px}.plan-header{margin:10px}}.app-toolbar{width:auto;margin:14px 18px 0;position:relative;top:auto;right:auto}.workspace{height:calc(100vh - 66px);padding-top:18px}.geometry-frame{height:auto;min-height:max(620px,100vh - 190px);position:relative;overflow:auto}.geometry-svg{width:100%;height:calc(max(620px, calc(100vh - 190px)) * var(--plan-zoom));min-height:max(620px,100vh - 190px)}@media (width<=980px){.workspace{height:auto;padding-top:0}.geometry-svg{height:calc(64vh * var(--plan-zoom));min-height:420px}}
