/* 3D is a view of the project, occupying the same main workspace as TOP/SIDE. */
#spatial-view[hidden]{display:none!important}
body.viewing-3d main{display:flex!important;flex:1;min-height:0;overflow:hidden;position:relative}
body.viewing-3d .workspace{display:flex!important;flex-direction:column;flex:1;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden!important;background:#000000}
body.viewing-3d .design-menu-strip,body.viewing-3d .left,body.viewing-3d .right,body.viewing-3d .organised-canvasbar,body.viewing-3d .canvas-hud,body.viewing-3d .workspace>.status{display:none!important}
body.viewing-3d .toolbar #work-level-toggle,body.viewing-3d .toolbar .zoom,body.viewing-3d .toolbar #fit-view,body.viewing-3d .toolbar #reset-zoom,body.viewing-3d .toolbar #fullscreen,body.viewing-3d .toolbar .flybar-visibility,body.viewing-3d .toolbar #toggle-grid-display,body.viewing-3d .toolbar #flybar-lock-warning,body.viewing-3d .toolbar #plot-patch-warning,body.viewing-3d .toolbar #plot-load-warning,body.viewing-3d .toolbar .patch-sort-control,body.viewing-3d .viewbar-hint,body.viewing-3d .toolbar #count{display:none!important}
body.viewing-3d .toolbar{min-height:38px!important;padding:4px 12px!important;background:#080808!important;border-bottom:1px solid #292929!important}
body.viewing-3d #spatial-open{background:#242424!important;border-color:#898989!important;color:#ffffff!important}
body.viewing-3d #spatial-view{display:flex;flex-direction:column;position:relative;inset:auto;flex:1;width:100%;height:auto;min-height:0;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;background:#000000;color:#e6e6e6;box-shadow:none}
#spatial-view .spatial-toolbar{position:relative;display:flex;align-items:center;gap:10px;flex:0 0 auto;min-height:43px;padding:5px 12px;flex-wrap:nowrap;overflow:visible;background:#080808;border-bottom:1px solid #292929;z-index:12}
#spatial-view .spatial-toolbar>strong{flex:none;font:600 10px/1.2 sans-serif;letter-spacing:1.3px;color:#969696;margin:0 4px 0 0;white-space:nowrap}
#spatial-view .spatial-toolbar button,#spatial-view .spatial-toolbar summary{font-size:11px;line-height:1.2;padding:7px 10px;border-radius:4px;white-space:nowrap;background:#161616;color:#d0d0d0;border:1px solid #343434;cursor:pointer}
#spatial-view .spatial-toolbar button:hover,#spatial-view .spatial-toolbar summary:hover{background:#242424;border-color:#898989;color:#ffffff}
#spatial-view .spatial-toolbar label{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap;color:#b6b6b6;margin:0}
#spatial-view .spatial-toolbar input[type=checkbox]{width:13px;height:13px;min-height:0;padding:0;margin:0;accent-color:#e6e6e6}
#spatial-view .vis-workspace-tabs{position:static;display:flex;gap:3px;padding:0;margin:0;background:none;flex:none;z-index:auto}
#spatial-view .vis-workspace-tabs button{margin:0;font-size:11px}
#spatial-view .vis-workspace-tabs button[aria-pressed=true]{background:#242424;border-color:#898989;color:#ffffff}
#spatial-view .vis-camera-buttons{display:flex;gap:1px;flex:none}
#spatial-view .vis-camera-buttons button{background:transparent;border-color:transparent;padding:7px 8px}
#spatial-view .vis-workspace-actions{display:flex;align-items:center;gap:5px;margin-left:auto;flex:none}
#spatial-view .vis-workspace-export{position:relative;margin:0;padding:0;border:0}
#spatial-view .vis-workspace-export summary{list-style:none}
#spatial-view .vis-workspace-export summary::after{content:'⌄';margin-left:8px}
#spatial-view .vis-workspace-export-list{display:flex;flex-direction:column;gap:5px;position:absolute;right:0;top:36px;width:170px;padding:8px;background:#0c0c0c;border:1px solid #484848;border-radius:6px;box-shadow:0 12px 35px #0009;z-index:50}
#spatial-view .vis-workspace-export:not([open]) .vis-workspace-export-list{display:none}
#spatial-view .spatial-content{display:block;flex:1;position:relative;min-height:0;overflow:hidden}
#spatial-view .spatial-viewport{position:absolute;inset:0;display:block;min-width:0;min-height:0;background:#000000}
#spatial-view #spatial-realistic-canvas,#spatial-view #spatial-canvas{position:absolute;inset:0;display:block;width:100%!important;height:100%!important;min-height:0;touch-action:none}
#spatial-view #spatial-elevation{position:absolute;inset:0;pointer-events:none;z-index:2}
#spatial-view #spatial-elevation svg{width:100%;height:100%}
#spatial-view #spatial-light-controls{position:absolute;left:14px;right:14px;bottom:14px;top:auto;width:auto;max-width:1320px;margin:0 auto;height:auto;max-height:min(310px,48vh);padding:0;border:1px solid #343434;border-radius:8px;overflow:auto;background:#0c0c0cf5;box-shadow:0 10px 40px #0008;z-index:10;scrollbar-width:thin;backdrop-filter:blur(12px)}
#spatial-view #spatial-light-controls[hidden]{display:none!important}
#spatial-view #vis-dock-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 14px;background:#161616;border-bottom:1px solid #343434;position:sticky;top:0;z-index:6}
#spatial-view #vis-dock-header strong{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#b6b6b6}
#spatial-view #vis-close-dock{margin:0;padding:3px 8px;background:transparent;font-size:10px;color:#b6b6b6;border-color:#484848}
#spatial-view #vis-fixture-panel{padding:10px 14px 12px}
#spatial-view .vis-selection-strip{display:flex;align-items:center;gap:14px;margin-bottom:8px;min-height:30px}
#spatial-view .vis-selection-strip h3{display:none}
#spatial-view .vis-selection-strip label{display:flex;align-items:center;gap:10px;margin:0;font-size:11px;white-space:nowrap;color:#b6b6b6}
#spatial-view .vis-selection-strip select{width:min(340px,35vw);min-width:170px;padding:5px 7px;height:28px;font-size:12px}
#spatial-view #light-target-summary{margin:0;font-size:10px;color:#969696}
#spatial-view .vis-console-grid{display:grid;grid-template-columns:270px 240px minmax(230px,1fr);align-items:start;gap:12px}
#spatial-view .vis-output-colour{grid-template-columns:63px minmax(0,1fr);gap:7px}
#spatial-view .vis-output-card,#spatial-view .vis-colour-card,#spatial-view .vis-aim-card{padding:8px;border-color:#292929;background:#080808}
#spatial-view .vis-aim-card{margin:0}
#spatial-view .vis-aim-card>h3{display:none}
#spatial-view .vis-position-fader input[type=range]{height:76px}
#spatial-view .vis-intensity-fader input[type=range]{height:90px}
#spatial-view #vis-random-look{margin:5px 0 0;padding:5px}
#spatial-view .vis-aim-card>.hint{display:none}
#spatial-view .vis-zoom-fader{margin-top:6px}
#spatial-view #vis-advanced{display:grid;grid-template-columns:1fr 1fr;gap:7px;min-width:0}
#spatial-view #vis-advanced details{margin:0!important;padding:9px!important;min-width:0;background:#080808;border-color:#292929!important}
#spatial-view #vis-advanced summary{font-size:11px;color:#d0d0d0}
#spatial-view[data-panel=looks] #spatial-light-controls,#spatial-view[data-panel=render] #spatial-light-controls{left:auto;right:14px;bottom:14px;top:14px;max-height:none;width:340px;max-width:calc(100% - 28px);margin:0}
#spatial-view #vis-looks-panel,#spatial-view #vis-render-panel{padding:8px 16px 16px}
#spatial-view #vis-render-panel h3,#spatial-view #vis-looks-panel h3{margin:6px 0 12px;font-size:14px}
#spatial-view .vis-stage-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;flex:0 0 24px;min-height:24px;padding:0 14px;background:#080808;border-top:1px solid #292929;color:#969696;font-size:10px}
#spatial-view #vis-render-status{max-width:50%;margin:0;padding:0;border:0;background:none;color:#969696;font-size:10px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
body.viewing-3d.vis-focus>header,body.viewing-3d.vis-focus .workspace>.toolbar,body.viewing-3d.vis-focus .vis-stage-footer{display:none!important}
body.viewing-3d.vis-focus #spatial-light-controls{display:none!important}
@media(max-width:1150px){#spatial-view .spatial-toolbar>strong{display:none}#spatial-view .spatial-toolbar{gap:5px;padding:5px 8px}#spatial-view .spatial-toolbar button,#spatial-view .spatial-toolbar summary{padding:6px 7px}#spatial-view .vis-console-grid{grid-template-columns:240px 220px minmax(210px,1fr)}#spatial-view .vis-camera-buttons button{padding:6px}#spatial-view #vis-stage-fullscreen{display:none}}
@media(max-width:850px){#spatial-view .spatial-toolbar{flex-wrap:wrap;gap:5px}#spatial-view .vis-workspace-actions{margin-left:auto}#spatial-view .vis-camera-buttons{order:3}#spatial-view .vis-console-grid{grid-template-columns:230px 210px minmax(200px,1fr);min-width:700px}#spatial-view #spatial-light-controls{left:8px;right:8px;bottom:8px;max-height:45vh}#spatial-view .vis-selection-strip{min-width:700px}#spatial-view .vis-stage-footer>span{display:none}#spatial-view #vis-render-status{max-width:100%}}
@media print{#spatial-view{display:none!important}}
#spatial-view .vis-camera-buttons button[aria-pressed=true]{color:#ffffff;background:#242424;border-color:#484848}
#vis-workspace-hint{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Slim frame with a fixed, horizontal fixture strip. */
body.viewing-3d>header{height:38px;min-height:38px;padding:3px 12px;gap:12px}
body.viewing-3d>header h1{font-size:17px}
body.viewing-3d .lumiplot-brand img{height:25px}
body.viewing-3d .file-actions button,body.viewing-3d .file-actions summary{padding:5px 9px!important;font-size:11px}
body.viewing-3d .workspace>.toolbar{min-height:29px!important;padding:2px 10px!important}
body.viewing-3d #spatial-view .spatial-toolbar{min-height:31px;padding:3px 9px;gap:7px;border-width:1px}
body.viewing-3d #spatial-view .spatial-toolbar button,body.viewing-3d #spatial-view .spatial-toolbar summary{padding:5px 8px;font-size:10px}
body.viewing-3d #spatial-view .spatial-toolbar>strong{font-size:9px;letter-spacing:1px}
body.viewing-3d #spatial-view .spatial-toolbar label{font-size:10px}
body.viewing-3d #spatial-view .vis-stage-footer{flex-basis:17px;min-height:17px;padding:0 10px;font-size:9px}
body.viewing-3d #spatial-view #vis-render-status{font-size:9px}
body.viewing-3d #spatial-view #spatial-light-controls{position:relative;inset:auto;display:block;flex:0 0 auto;order:0;width:100%;max-width:none;max-height:none;height:auto;margin:0;padding:0;border:0;border-top:1px solid #343434;border-radius:0;overflow:visible;background:#0c0c0c;box-shadow:none;backdrop-filter:none}
#spatial-view #vis-fixture-panel{padding:7px 10px}
#spatial-view .vis-console-grid{display:grid;grid-template-columns:170px 280px 245px minmax(125px,1fr);gap:10px;align-items:center;min-width:850px}
#spatial-view .vis-selection-strip{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:5px;margin:0;min-width:0;padding-right:10px;border-right:1px solid #292929}
#spatial-view .vis-selection-strip>label{display:block;font-size:10px;color:#969696}
#spatial-view .vis-selection-strip select{display:block;width:100%;min-width:0;height:27px;margin-top:5px;font-size:11px}
#spatial-view #light-target-summary{font-size:9px;line-height:1.4;white-space:normal}
#spatial-view .vis-output-colour{grid-template-columns:85px minmax(0,1fr);gap:8px}
#spatial-view .vis-output-card,#spatial-view .vis-colour-card,#spatial-view .vis-aim-card{border:0;border-radius:0;padding:4px 6px;background:transparent;min-width:0}
body.viewing-3d #spatial-view .vis-intensity-fader,body.viewing-3d #spatial-view .vis-position-fader{display:grid;grid-template-columns:1fr auto;gap:3px;align-items:center;text-align:left;font-size:10px;margin:0}
body.viewing-3d #spatial-view .vis-intensity-fader input[type=range],body.viewing-3d #spatial-view .vis-position-fader input[type=range]{writing-mode:horizontal-tb;direction:ltr;grid-column:1/-1;grid-row:2;width:100%;height:18px;margin:0;padding:0;cursor:ew-resize}
body.viewing-3d #spatial-view .vis-intensity-fader output,body.viewing-3d #spatial-view .vis-position-fader output{grid-column:2;grid-row:1;font-size:11px;float:none;padding:1px 4px}
#spatial-view .vis-output-card .check{flex-direction:row!important;align-items:center;gap:4px!important;margin:6px 0 0!important;white-space:nowrap}
#spatial-view .vis-custom-colour{font-size:10px;margin-bottom:4px!important}
#spatial-view .vis-custom-colour input{width:25px!important;height:21px!important}
#spatial-view #vis-colour-swatches{grid-template-columns:repeat(10,minmax(0,1fr));gap:3px}
#spatial-view #vis-colour-swatches button{height:15px;max-height:15px;min-height:0;border-width:1px;aspect-ratio:1}
#spatial-view .vis-colour-modes>label:not([hidden]){display:flex!important;align-items:center;justify-content:space-between;gap:5px;font-size:9px;margin-top:5px!important}
#spatial-view .vis-colour-modes select{max-width:100px;height:22px!important;padding:2px 4px!important;font-size:10px!important}
#spatial-view .vis-aim-card{border-left:1px solid #292929;border-right:1px solid #292929;padding:2px 12px}
#spatial-view .vis-aim-card .two{gap:12px}
#spatial-view .vis-zoom-fader{margin:5px 0 0!important;font-size:10px}
#spatial-view .vis-zoom-fader input[type=range]{height:17px!important;margin:0}
#spatial-view .vis-zoom-fader output{font-size:10px}
#spatial-view #vis-random-look{font-size:10px!important;padding:4px;margin-top:2px}
#spatial-view .vis-optic-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(70px,1fr));gap:5px;padding:2px 0}
#spatial-view .vis-optic-shortcuts>span{grid-column:1/-1;font-size:9px;color:#969696;letter-spacing:.5px;text-transform:uppercase}
#spatial-view .vis-optic-shortcuts button{margin:0;padding:6px 7px;background:#161616;border:1px solid #343434;color:#d0d0d0;font-size:10px;border-radius:3px}
#spatial-view #vis-stage-popovers{position:absolute;right:10px;top:10px;bottom:10px;width:330px;max-width:calc(100% - 20px);z-index:15;overflow:auto;border:1px solid #343434;border-radius:5px;background:#0c0c0cfa;box-shadow:0 8px 30px #0009;scrollbar-width:thin}
#spatial-view #vis-stage-popovers[hidden]{display:none!important}
#spatial-view #vis-stage-popovers section[hidden],#spatial-view #vis-stage-popovers div[hidden]{display:none!important}
#spatial-view #vis-stage-popovers #vis-advanced{display:block;padding:8px 12px}
#spatial-view #vis-stage-popovers details{margin:8px 0!important;border:1px solid #343434!important;padding:9px!important;border-radius:4px;background:#080808}
#spatial-view #vis-stage-popovers label{display:block;margin:8px 0;color:#d0d0d0;font-size:11px}
#spatial-view #vis-stage-popovers input,#spatial-view #vis-stage-popovers select{width:100%;padding:5px;font-size:11px;box-sizing:border-box}
#spatial-view #vis-stage-popovers .check{display:flex;gap:6px;align-items:center}
#spatial-view #vis-stage-popovers .check input{width:auto}
#spatial-view #vis-stage-popovers .two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#spatial-view #vis-stage-popovers h3{font-size:13px}
#spatial-view #vis-stage-popovers .hint{font-size:10px;line-height:1.5;color:#969696}
#spatial-view #vis-stage-popovers output{color:#e6e6e6;font-size:11px;float:right}
#spatial-view #vis-stage-popovers .vis-fader-grid input[type=range]{writing-mode:vertical-lr;direction:rtl;height:85px;width:24px;display:block;margin:auto}
#spatial-view #vis-stage-popovers button{font-size:11px;padding:6px 9px;margin:3px 0}
body.viewing-3d.vis-focus #vis-stage-popovers{display:none!important}
@media(min-width:1600px){#spatial-view .vis-console-grid{grid-template-columns:190px 320px 300px minmax(170px,1fr);gap:16px}}
@media(max-width:900px){#spatial-view #vis-fixture-panel{overflow-x:auto;padding:5px 8px}#spatial-view .vis-console-grid{min-width:850px;gap:8px}#spatial-view .spatial-toolbar{row-gap:3px}#spatial-view .vis-workspace-actions{gap:3px}body.viewing-3d>header{height:auto;min-height:36px}}

/* Neutral black chrome for the visualiser; fixture colour chips retain their colour. */
body.viewing-3d{--edge:#303030;--muted:#aaa;--accent:#e6e6e6;color-scheme:dark;background:#000;color:#ededed}
body.viewing-3d>header,body.viewing-3d[data-workspace-layout=organised]>header{background:#050505;border-color:#292929}
body.viewing-3d .workspace>.toolbar{background:#080808!important;border-color:#292929!important}
body.viewing-3d>header :is(button,.file-button,summary),body.viewing-3d .workspace>.toolbar :is(button,summary){background:#161616;color:#ddd;border-color:#3b3b3b}
body.viewing-3d>header :is(button,.file-button,summary):hover,body.viewing-3d .workspace>.toolbar button:hover{background:#272727;border-color:#777;color:#fff}
body.viewing-3d #spatial-open{background:#292929!important;border-color:#999!important;color:#fff!important}
body.viewing-3d :is(#spatial-view,#vis-profile-dialog,#vis-manual-angle-dialog,#spatial-settings){color-scheme:dark;--accent:#e6e6e6;--muted:#aaa;--edge:#303030;color:#ededed;scrollbar-color:#494949 #0c0c0c}
body.viewing-3d :is(#vis-profile-dialog,#vis-manual-angle-dialog,#spatial-settings){background:#0c0c0c;border:1px solid #444;box-shadow:0 16px 60px #000b}
body.viewing-3d :is(#spatial-view,#vis-profile-dialog,#vis-manual-angle-dialog,#spatial-settings) :is(button:not([data-vis-colour]),summary){background:#191919;color:#ddd;border-color:#444}
body.viewing-3d :is(#spatial-view,#vis-profile-dialog,#vis-manual-angle-dialog,#spatial-settings) button:not([data-vis-colour]):hover{background:#2b2b2b;border-color:#888;color:#fff}
body.viewing-3d #spatial-view :is(.vis-workspace-tabs,.vis-camera-buttons) button[aria-pressed=true]{background:#303030;border-color:#999;color:#fff}
body.viewing-3d :is(#spatial-view,#vis-profile-dialog,#vis-manual-angle-dialog,#spatial-settings) :is(input,select,textarea){background-color:#080808;color:#f0f0f0;border-color:#444;accent-color:#ddd}
body.viewing-3d :is(#spatial-view,#vis-profile-dialog,#vis-manual-angle-dialog,#spatial-settings) :is(label,h3){color:#c5c5c5}
body.viewing-3d :is(#spatial-view,#vis-profile-dialog,#vis-manual-angle-dialog,#spatial-settings) :is(output,.hint){color:#aaa}
body.viewing-3d #spatial-view :is(.vis-position-fader,.vis-intensity-fader,.vis-zoom-fader) output{color:#f0f0f0}
body.viewing-3d #spatial-view #vis-colour-swatches button{border-color:#555}
body.viewing-3d #spatial-view #vis-colour-swatches button[aria-pressed=true]{outline-color:#fff}
body.viewing-3d :is(#vis-profile-dialog,#vis-manual-angle-dialog,#spatial-settings)::backdrop{background:#000b}
body.viewing-3d #spatial-settings :is(.fixture-list-heading,.fixture-list-footer,.settings-editor-controls,th){background:#101010;color:#ccc;border-color:#333}
body.viewing-3d :is(#spatial-view,#vis-profile-dialog,#vis-manual-angle-dialog,#spatial-settings) :is(button,input,select,textarea,a,summary):focus-visible{outline:2px solid #e6e6e6;outline-offset:2px}
body.viewing-3d #spatial-view :is(button,input,select):disabled{opacity:.4}
/* Attribute console: fixed selection rail and one shallow, focused control bank. */
body.viewing-3d #spatial-view #vis-fixture-panel{padding:0}
#spatial-view .vis-console-grid{grid-template-columns:175px minmax(0,1fr);min-width:0;gap:0;align-items:stretch}
#spatial-view .vis-selection-strip{padding:10px 12px;gap:5px;background:#090909;min-width:0}
#spatial-view .vis-selection-strip>label[hidden]{display:none!important}
#spatial-view .vis-selection-strip #light-target-summary{order:3;margin:0!important;font-size:9px;line-height:1.25;color:#999}
#spatial-view .vis-selection-strip>small{color:#777;font-size:9px;order:4}
#spatial-view #vis-select-fixtures{padding:6px 7px;margin:0;font-size:11px;text-align:left;font-weight:600;border-color:#555}
#spatial-view .vis-selection-actions{display:flex;gap:4px}
#spatial-view .vis-selection-actions button{margin:0;padding:3px 6px;font-size:9px;flex:1;white-space:nowrap}
#spatial-view #vis-attribute-console{min-width:0;background:#0d0d0d}
#spatial-view #vis-attribute-tabs{display:flex;align-items:stretch;gap:0;border-bottom:1px solid #303030;background:#080808;overflow-x:auto}
body.viewing-3d #spatial-view #vis-attribute-tabs button{display:flex;align-items:center;gap:8px;min-width:90px;padding:7px 13px;margin:0;border:0;border-right:1px solid #292929;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:#909090;font-size:11px;white-space:nowrap}
#spatial-view #vis-attribute-tabs button small{font:9px ui-monospace,monospace;color:#666}
body.viewing-3d #spatial-view #vis-attribute-tabs button[aria-selected=true]{color:#fff;background:#1b1b1b;border-bottom-color:#ddd}
#spatial-view #vis-attribute-body{padding:8px 14px;min-height:77px;max-height:180px;overflow:auto}
#spatial-view #vis-attribute-body>section{margin:0}
#spatial-view #vis-attribute-body>section[hidden]{display:none!important}
#spatial-view #vis-attribute-body h3,#spatial-view #vis-attribute-body details>summary,#spatial-view #vis-attribute-body .hint{display:none}
#spatial-view #vis-attribute-body label{font-size:10px;margin:0;gap:4px}
#spatial-view #vis-attribute-body :is(input,select){font-size:11px;min-height:24px;height:24px;padding:3px 5px}
#spatial-view #vis-attribute-body input[type=range]{padding:0;min-height:16px;height:16px}
#spatial-view #vis-attribute-body output{font:11px ui-monospace,monospace;color:#eee}
#spatial-view #vis-bank-output{display:flex;gap:24px;align-items:center}
#spatial-view #vis-bank-output .vis-output-card{display:flex;align-items:center;gap:20px;padding:0}
body.viewing-3d #spatial-view #vis-bank-output .vis-intensity-fader{width:min(300px,35vw)}
#spatial-view #vis-bank-output .vis-output-card .check{margin:0!important}
#spatial-view #vis-bank-output #vis-random-look{width:auto;padding:7px 12px;margin:0;font-size:11px!important}
#spatial-view #vis-bank-position .vis-aim-card{display:grid;grid-template-columns:repeat(3,minmax(125px,240px));gap:24px;padding:0;border:0}
#spatial-view #vis-bank-position .vis-aim-card>.two{display:contents}
body.viewing-3d #spatial-view #vis-bank-position label{margin:0!important}
#spatial-view #vis-bank-colour{display:flex;align-items:start;gap:24px}
#spatial-view #vis-bank-colour .vis-colour-card{display:flex;align-items:center;gap:15px;padding:0}
#spatial-view #vis-bank-colour .vis-custom-colour{flex:none;gap:10px;margin:0!important}
#spatial-view #vis-bank-colour #vis-colour-swatches{display:flex;flex-wrap:wrap;gap:5px;max-width:450px}
#spatial-view #vis-bank-colour #vis-colour-swatches button{width:22px;height:22px;max-height:22px;flex:none;margin:0}
#spatial-view #vis-bank-colour .vis-colour-modes{display:flex;gap:12px;align-items:start}
#spatial-view #vis-bank-colour .vis-colour-modes>label:not([hidden]){margin:0!important;display:flex!important;flex-direction:column;align-items:start}
#spatial-view #vis-bank-colour .vis-colour-modes .vis-three{gap:8px;width:190px}
#spatial-view #vis-attribute-body details{border:0!important;background:transparent;margin:0!important;padding:0!important}
#spatial-view #vis-attribute-body details>.two{display:grid;grid-template-columns:repeat(4,minmax(100px,150px));gap:10px 18px}
#spatial-view #vis-bank-beam details{display:flex;gap:24px;align-items:start}
#spatial-view #vis-bank-beam .vis-fader-grid{display:flex;gap:18px;margin:0}
#spatial-view #vis-bank-beam .vis-fader-grid label{width:110px}
#spatial-view #vis-bank-beam details>.two{grid-template-columns:repeat(4,100px)}
#spatial-view #vis-bank-beam details>label{min-width:100px}
#spatial-view #vis-bank-gobos details{display:flex;gap:20px;align-items:start}
#spatial-view #vis-bank-gobos details>.two{grid-template-columns:repeat(3,minmax(95px,140px))}
#spatial-view #vis-bank-gobos input[type=file]{max-width:160px;height:auto}
#spatial-view #vis-bank-setup details{display:flex;gap:20px;align-items:center}
#spatial-view #vis-bank-setup details>.two{grid-template-columns:repeat(2,140px)}
#spatial-view #vis-attribute-body button{font-size:10px;padding:5px 9px;margin:0}
#spatial-view #vis-fixture-picker{position:absolute;left:10px;bottom:10px;width:570px;max-width:calc(100% - 20px);max-height:calc(100% - 20px);display:flex;flex-direction:column;margin:0;padding:0;z-index:20;background:#101010;border:1px solid #484848;border-radius:6px;box-shadow:0 14px 45px #000a;overflow:hidden}
#spatial-view #vis-fixture-picker[hidden]{display:none!important}
#spatial-view .vis-picker-heading{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid #333}
#spatial-view .vis-picker-heading strong{font-size:13px;display:block}
#spatial-view .vis-picker-heading span{font-size:10px;color:#999;display:block;margin-top:4px}
#spatial-view .vis-picker-heading button{margin:0;font-size:18px;padding:0 7px}
#spatial-view .vis-picker-filters{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:12px 14px 8px}
#spatial-view .vis-picker-filters input{grid-column:1/-1}
#spatial-view .vis-picker-filters :is(input,select){min-width:0;width:100%;font-size:11px;padding:6px}
#spatial-view .vis-picker-actions,#spatial-view .vis-picker-groups{display:flex;flex-wrap:wrap;gap:5px;padding:0 14px 10px}
#spatial-view .vis-picker-actions button,#spatial-view .vis-picker-groups button{font-size:10px;margin:0;padding:5px 8px}
#spatial-view .vis-picker-groups[hidden]{display:none}
#spatial-view .vis-picker-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:0 14px 12px;overflow:auto;min-height:70px;max-height:330px}
#spatial-view .vis-picker-list button{display:flex;align-items:center;gap:9px;padding:8px;margin:0;text-align:left;min-width:0;border-radius:3px}
#spatial-view .vis-picker-list b{font:600 11px ui-monospace,monospace;flex:none;min-width:30px}
#spatial-view .vis-picker-list span{font-size:10px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#spatial-view .vis-picker-list small{display:block;color:#999;font-size:9px;margin-top:3px;overflow:hidden;text-overflow:ellipsis}
#spatial-view .vis-picker-list i{margin-left:auto;font-style:normal;color:#888}
body.viewing-3d #spatial-view .vis-picker-list button[aria-pressed=true]{background:#303030;border-color:#bbb;color:white}
#spatial-view .vis-picker-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 14px;border-top:1px solid #333;font-size:10px;color:#aaa}
#spatial-view .vis-picker-footer button{font-size:10px;padding:5px 8px;margin:0}
#spatial-view .vis-picker-empty{grid-column:1/-1;color:#999;font-size:11px}
#spatial-view #vis-selection-marquee{position:absolute;pointer-events:none;border:1px solid #eee;background:#ffffff12;z-index:10}
#spatial-view #vis-selection-marquee[hidden]{display:none}
#spatial-view.vis-select-mode canvas{cursor:crosshair}
body.viewing-3d #spatial-view :is(#vis-box-select,.vis-picker-footer button)[aria-pressed=true]{border-color:#ccc;background:#333}
body.viewing-3d.vis-focus #vis-fixture-picker{display:none!important}
@media(max-width:1000px){#spatial-view #vis-bank-beam details,#spatial-view #vis-bank-gobos details{min-width:780px}#spatial-view .vis-console-grid{grid-template-columns:155px minmax(0,1fr)}#spatial-view #vis-bank-position .vis-aim-card{gap:14px;grid-template-columns:repeat(3,minmax(110px,1fr))}#spatial-view #vis-bank-colour{gap:12px;flex-wrap:wrap}#spatial-view #vis-attribute-tabs button{min-width:76px;padding:7px 9px}#spatial-view .vis-selection-strip{padding:8px}}
@media(max-width:650px){#spatial-view .vis-console-grid{grid-template-columns:135px minmax(0,1fr)}#spatial-view #vis-attribute-body{padding:8px;max-height:150px}#spatial-view #vis-bank-position .vis-aim-card{min-width:450px}#spatial-view #vis-bank-output{min-width:320px;gap:10px}#spatial-view #vis-bank-output .vis-output-card{gap:10px}#spatial-view #vis-fixture-picker{width:calc(100% - 20px)}#spatial-view .vis-picker-list{grid-template-columns:1fr}#spatial-view .vis-selection-actions{flex-wrap:wrap}}
body.viewing-3d #spatial-view #vis-attribute-body .vis-fader-grid input[type=range]{writing-mode:horizontal-tb;direction:ltr;width:100%;height:16px;min-height:16px;cursor:ew-resize;margin:0}
#spatial-view .vis-selection-strip #light-target-summary{max-height:2.5em;overflow:hidden}
#spatial-view #vis-attribute-body{height:92px;min-height:92px;max-height:92px}
/* Project-saved fixture groups remain within reach at the right of the console. */
#spatial-view .vis-console-grid{grid-template-columns:175px minmax(0,1fr) 225px}
#spatial-view #vis-group-pool{margin:0;padding:0;border-left:1px solid #333;background:#090909;min-width:0;overflow:hidden}
#spatial-view #vis-group-pool>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 9px;height:33px;background:#101010;border-bottom:1px solid #303030;flex-wrap:nowrap}
#spatial-view #vis-group-pool>header strong{font-size:9px;letter-spacing:1px;color:#999}
#spatial-view #vis-group-pool>header button{font-size:10px;margin:0;padding:3px 7px}
#spatial-view .vis-pool-list{display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:4px;padding:7px;height:92px;overflow:auto}
#spatial-view .vis-pool-list>p{grid-column:1/-1;margin:14px 4px;color:#777;font-size:10px;line-height:1.5}
#spatial-view .vis-pool-item{display:flex;min-width:0;align-self:start}
#spatial-view .vis-pool-item button{margin:0;border-radius:3px;font-size:10px;padding:6px 4px}
#spatial-view .vis-pool-item button[data-recall-group]{display:flex;align-items:center;gap:5px;min-width:0;flex:1;text-align:left;border-top-right-radius:0;border-bottom-right-radius:0}
#spatial-view .vis-pool-item button small{font:8px ui-monospace,monospace;color:#777}
#spatial-view .vis-pool-item button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
#spatial-view .vis-pool-item button b{margin-left:auto;font-size:9px;color:#aaa;font-weight:400}
#spatial-view .vis-pool-item button[data-edit-group]{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;width:18px;flex:none}
body.viewing-3d #spatial-view .vis-pool-item button[aria-pressed=true]{background:#333;border-color:#aaa;color:#fff}
#spatial-view #vis-group-editor{position:absolute;right:10px;bottom:10px;width:310px;max-width:calc(100% - 20px);max-height:calc(100% - 20px);overflow:auto;margin:0;padding:14px;z-index:25;background:#111;border:1px solid #555;border-radius:5px;box-shadow:0 12px 40px #000b}
#spatial-view #vis-group-editor[hidden]{display:none!important}
#spatial-view #vis-group-editor header{padding:0 0 12px;background:none;border:0;display:flex;justify-content:space-between;align-items:center;gap:8px}
#spatial-view #vis-group-editor strong{font-size:12px}
#spatial-view #vis-group-editor label{font-size:11px;display:flex;flex-direction:column;gap:6px}
#spatial-view #vis-group-editor input{width:100%;padding:6px;font-size:12px}
#spatial-view #vis-group-editor p{color:#999;font-size:10px;line-height:1.4}
#spatial-view #vis-group-editor [data-error]{color:#ffb1a9}
#spatial-view .vis-group-editor-actions{display:flex;flex-direction:column;gap:6px}
#spatial-view #vis-group-editor button{font-size:11px;padding:6px 9px;margin:0}
#spatial-view #vis-group-editor [hidden]{display:none!important}
body.viewing-3d.vis-focus #vis-group-editor{display:none!important}
@media(max-width:1100px){#spatial-view .vis-console-grid{grid-template-columns:155px minmax(0,1fr) 180px}#spatial-view .vis-pool-list{grid-template-columns:1fr}}
@media(max-width:650px){#spatial-view .vis-console-grid{grid-template-columns:130px minmax(0,1fr) 120px}#spatial-view #vis-group-pool>header{padding:5px;gap:4px}#spatial-view #vis-group-pool>header strong{font-size:8px;letter-spacing:0}#spatial-view #vis-group-pool>header button{font-size:9px;padding:3px 4px}#spatial-view .vis-pool-list{padding:5px}}
#spatial-view #vis-gpu-card{margin:14px 0 0;padding:12px 0 0;border-top:1px solid #333}
#spatial-view #vis-gpu-card dl{display:grid;grid-template-columns:110px minmax(0,1fr);gap:7px;font-size:10px;line-height:1.5}
#spatial-view #vis-gpu-card dt{color:#888}
#spatial-view #vis-gpu-card dd{margin:0;color:#ddd;overflow-wrap:anywhere}
#spatial-view #vis-gpu-card p{font-size:10px;line-height:1.6;color:#aaa}
#spatial-view #vis-gpu-card summary{font-size:10px}
