.utility-view-toggle{border-color:#5b8e86!important;background:#244940!important;color:#d2f6ec!important;white-space:nowrap}.utility-shell{display:grid;grid-template-columns:290px minmax(0,1fr);flex:1;min-height:0;overflow:hidden}.utility-sidebar{background:#18232c;padding:18px 16px;overflow:auto;border-right:1px solid #354a58;color:#d5e5ed}.utility-heading h2{font-size:16px;margin:0 0 7px}.utility-heading p{font-size:10px;color:#92aab7}.utility-sidebar section{padding-top:12px}.utility-sidebar h3{font-size:12px;margin-top:15px}.utility-tabs{display:flex;gap:4px;margin:15px 0 6px}.utility-tabs button{flex:1;font-size:10px;padding:8px}.utility-tabs button[aria-pressed=true]{background:#2a5149;border-color:#6b9c8b}.utility-bundle-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px}.utility-bundle-grid label{font-size:10px}.utility-bundle-grid input{min-height:25px;padding:4px}.utility-sidebar .hint{font-size:10px;line-height:1.7}.utility-calibration{margin:18px 0;border-top:1px solid #354a58;padding-top:13px}.utility-calibration summary{font-size:12px;cursor:pointer;color:#9cc8c0}.utility-output{display:grid;gap:5px;margin-top:20px;border-top:1px solid #354a58;padding-top:15px}.utility-sidebar button.wide{width:100%;margin:5px 0}.utility-sidebar textarea{width:100%}.utility-canvas-area{display:flex;flex-direction:column;min-height:0;min-width:0;background:#25313a}.utility-canvas-toolbar{display:flex;gap:12px;align-items:center;padding:9px 16px;background:#192b35;border-bottom:1px solid #354a58;font-size:10px;color:#b7d4df}.utility-canvas-toolbar strong{letter-spacing:1px}.utility-canvas-toolbar span{flex:1;color:#87aaa5}.utility-canvas-toolbar button{font-size:11px;padding:5px 9px}.utility-scroll{flex:1;min-height:0;overflow:auto;padding:20px;text-align:center}.utility-scroll svg{display:block;width:auto;max-width:none;height:100%;min-height:600px;margin:auto;background:white;box-shadow:0 8px 30px #0005;touch-action:none;outline-offset:4px}.utility-scroll svg [data-utility-item],.utility-scroll svg [data-point-index]{cursor:move}.utility-rack-dialog{width:min(1400px,96vw);max-width:96vw;padding:24px}.utility-rack-workspace{display:grid;grid-template-columns:minmax(330px,.9fr) minmax(350px,1.1fr);gap:25px;max-height:70vh}.utility-rack-controls,.utility-rack-preview{overflow:auto;padding:8px}.utility-rack-preview{background:#d9e3e8;border-radius:6px;color:#203345}.utility-rack-preview svg{width:100%;height:auto}.utility-panel-row{display:grid;grid-template-columns:1fr 100px 32px;gap:7px;align-items:center;padding:7px 0;border-bottom:1px solid #334954}.utility-panel-row button{font-size:10px}.utility-panel-row label{margin:0;font-size:9px}.utility-panel-row input{padding:4px}.utility-connector-list{display:grid;gap:5px;margin:10px 0}.utility-connector-list>div{display:grid;grid-template-columns:20px minmax(110px,1fr) minmax(100px,1fr);gap:6px;align-items:center}.utility-connector-list span{font-size:10px;color:#93aab4}.utility-connector-list select,.utility-connector-list input{font-size:11px;padding:7px}.utility-rack-dialog .error{color:#f0908b;font-size:12px}.utility-rack-dialog .fixture-list-heading{justify-content:space-between}body[data-utility-view] .left,body[data-utility-view] .right,body[data-utility-view] .design-menu-strip,body[data-utility-view] #plot-scroll,body[data-utility-view] #side-scroll,body[data-utility-view] #booms-scroll,body[data-utility-view] #patch-sheet,body[data-utility-view] .organised-viewbar,body[data-utility-view] .organised-canvasbar,body[data-utility-view] .view-tabs,body[data-utility-view] #work-level-toggle,body[data-utility-view] #side-camera,body[data-utility-view] .patch-sort-control,body[data-utility-view] .toolbar>.zoom,body[data-utility-view] #count{display:none!important}body[data-utility-view] .utility-shell{display:grid!important}.utility-shell[hidden]{display:none!important}body[data-utility-view] .workspace{min-width:0;flex:1}body[data-utility-view] .toolbar{flex-shrink:0}body[data-utility-view] .toolbar label:has(#title){flex:1}@media(max-width:850px){.utility-shell{grid-template-columns:230px minmax(0,1fr)}.utility-rack-workspace{grid-template-columns:1fr;max-height:68vh}.utility-rack-preview{min-height:250px}.utility-canvas-toolbar{flex-wrap:wrap}.utility-canvas-toolbar span{width:100%}}@media print{.utility-shell{display:none!important}}

body[data-utility-view] .workspace{display:flex;flex-direction:column;height:100%}body[data-utility-view] .utility-shell{order:1}body[data-utility-view] .status{order:2;flex-shrink:0}

/* A shared black workspace palette for both Stage and Utility. */
:root{--edge:#303030;--muted:#a5a5a5;--accent:#d0d0d0;background:#050505;color:#ededed}
body,body[data-workspace-layout]{background:#050505;color:#ededed}
body header,body[data-workspace-layout] header,body .design-menu-strip,body[data-workspace-layout] .design-menu-strip{background:#050505;border-color:#303030}
body .workspace,body[data-workspace-layout] .workspace,body .toolbar,body[data-workspace-layout] .toolbar,body .organised-viewbar,body .organised-canvasbar{background:#101010;border-color:#303030}
body aside,body .left,body .right,body dialog,body[data-workspace-layout] dialog{background:#0a0a0a;color:#ededed;border-color:#333}
body button,body .file-button,body[data-workspace-layout] button,body[data-workspace-layout] .file-button{background:#191919;border-color:#393939;color:#ededed}
body button:hover,body .file-button:hover,body[data-workspace-layout] button:hover{background:#2b2b2b}
body button.primary,body[data-workspace-layout] button.primary,body[data-workspace-layout] #save{background:#e2e2e2;border-color:#fff;color:#111}
body button[aria-pressed=true],body[data-workspace-layout] button[aria-pressed=true]{background:#303030;border-color:#777;color:#fff}
body input,body select,body textarea,body[data-workspace-layout] input,body[data-workspace-layout] select,body[data-workspace-layout] textarea{background:#0c0c0c;border-color:#393939;color:#ededed}
body label,body[data-workspace-layout] label{color:#bbb}
body h3,body .hint,body .modal-kicker{color:#aaa}
body #plot-scroll,body #side-scroll,body[data-workspace-layout] #plot-scroll,body[data-workspace-layout] #side-scroll{background:#171717}
body .status,body[data-workspace-layout] .status{background:#070707;border-color:#252525;color:#aaa}
body dialog::backdrop{background:#000b}
body dialog .fixture-list-heading,body dialog .fixture-list-footer,body dialog .modal-heading,body dialog .modal-actions{background:#0a0a0a;border-color:#333}
body .utility-view-toggle{background:#191919!important;border-color:#555!important;color:#ededed!important}
body .utility-view-toggle[aria-pressed=true]{background:#303030!important;border-color:#999!important}
body .utility-shell{grid-template-columns:160px 285px minmax(0,1fr);background:#101010}
.utility-toolrail{display:flex;flex-direction:column;min-height:0;overflow:auto;padding:20px 10px;background:#050505;border-right:1px solid #303030}
.utility-toolrail .workspace-tool-heading{margin:0 0 8px 10px!important;color:#aaa}
.utility-toolrail .utility-report-heading{margin-top:28px!important}
.utility-toolrail .utility-tabs{display:flex;flex-direction:column;gap:4px;margin:0}
.utility-toolrail button{display:flex;align-items:center;gap:9px;justify-content:flex-start;text-align:left;width:100%;min-height:35px;padding:8px 10px;font-size:12px;background:transparent;border-color:transparent;border-radius:6px}
.utility-toolrail .utility-tabs svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.utility-toolrail .utility-output{border:0;padding:0;margin:0;gap:4px}
.utility-toolrail .utility-output button{font-size:11px;margin:0;line-height:1.5}
body .utility-sidebar{background:#0a0a0a;padding:20px 16px;border-color:#303030;color:#ededed}
.utility-heading h2{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#aaa;margin-bottom:12px}
.utility-heading p{color:#888;font-size:10px;line-height:1.6}
.utility-sidebar label{font-size:11px}.utility-sidebar button{font-size:11px}
.utility-sidebar .utility-calibration,.utility-sidebar .utility-output{border-color:#333}
.utility-calibration summary{color:#ccc}
.utility-canvas-area,.utility-scroll{background:#171717}
.utility-canvas-toolbar{background:#101010;border-color:#303030;min-height:45px;color:#ddd;padding:8px 16px}
.utility-canvas-toolbar span{color:#aaa}.utility-canvas-toolbar strong{font-size:10px;font-weight:500;color:#aaa}
.utility-canvas-toolbar button{background:#191919;border-color:#393939}
.utility-scroll{padding:18px}.utility-scroll svg{box-shadow:0 8px 35px #0006}
.utility-rack-dialog{background:#0a0a0a;border:1px solid #444;box-shadow:0 24px 90px #0009}
body .utility-rack-preview{background:#0c0c0c;color:#ededed;border:1px solid #303030;padding:18px;border-radius:6px}
.utility-rack-preview h3{margin:0 0 18px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#aaa}
.utility-rack-preview svg{filter:drop-shadow(0 6px 8px #0006)}
.utility-rack-controls{padding:8px 12px 8px 0}.utility-panel-row{border-color:#303030}.utility-connector-list span{color:#aaa}
@media(max-width:1100px){body .utility-shell{grid-template-columns:140px 250px minmax(0,1fr)}.utility-toolrail{padding-inline:8px}.utility-sidebar{padding:16px 12px}}
@media(max-width:850px){body .utility-shell{grid-template-columns:112px 220px minmax(0,1fr)}.utility-toolrail{padding:12px 5px}.utility-toolrail button{font-size:10px;padding:7px;gap:6px}.utility-toolrail .workspace-tool-heading{font-size:9px!important;letter-spacing:.5px}.utility-toolrail .utility-tabs svg{width:15px;height:15px}}
@media(max-width:620px){body .utility-shell{grid-template-columns:92px minmax(0,1fr);grid-template-rows:minmax(120px,38%) minmax(0,1fr)}.utility-toolrail{grid-row:1/3}.utility-sidebar{grid-column:2;border-bottom:1px solid #303030}.utility-canvas-area{grid-column:2}.utility-scroll svg{min-height:400px}.utility-toolrail .utility-output button{font-size:10px}}
body #boom-editor,body #fixture-dialog,body #spatial-settings,body #setup-dialog,body .production-dialog{background:#0a0a0a;border-color:#333;color:#ededed}
body #boom-editor .boom-editor-layout>div,body #fixture-dialog #custom-fields,body #setup-dialog .modal-actions,body #load-summary thead th{background:#111;border-color:#333}
body #setup-dialog .setup-progress button[aria-current=step]{background:#303030;border-color:#777}
body #boom-editor .modal-actions .primary,body #positions-dialog .primary,body #options-0 .primary{background:#e2e2e2!important;border-color:#fff!important;color:#111!important}
body[data-utility-view] main{display:flex;min-width:0;min-height:0}
.utility-appearance{border-top:1px solid #303030;padding-top:12px;margin:12px 0}.utility-appearance summary{font-size:11px;color:#ccc;cursor:pointer;margin-bottom:12px}.utility-appearance input[type=color]{padding:3px;height:34px}.utility-appearance .check{font-size:10px}
.utility-grid-settings{border-top:1px solid #303030;padding-top:13px;margin:18px 0}.utility-grid-settings summary{font-size:12px;color:#ccc;cursor:pointer;margin-bottom:14px}
.utility-canvasbar{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:7px;padding:8px 14px;border-top:1px solid #303030;background:#101010;flex:none}.utility-canvasbar button{font-size:11px;padding:6px 9px;background:#191919;border-color:#393939}.utility-canvasbar .zoom{display:grid;grid-template-columns:auto auto;gap:2px 8px;width:145px;font-size:10px;margin:0 8px 0 0;flex:none}.utility-canvasbar .zoom input{grid-column:1/-1;min-height:10px;padding:0;height:12px}.utility-canvasbar .zoom output{text-align:right;color:#ccc}.utility-canvasbar button[aria-pressed=true]{background:#303030;border-color:#777}
@media(max-width:850px){.utility-canvasbar{gap:5px;padding:7px 10px}.utility-canvasbar .zoom{width:110px}}
.utility-cable-dialog{width:min(1150px,96vw);max-width:96vw;padding:24px;border:1px solid #444}.utility-cable-workspace{display:grid;grid-template-columns:minmax(300px,1fr) minmax(280px,1fr);gap:24px;max-height:74vh;margin-top:20px}.utility-cable-workspace>section,.utility-cable-preview{overflow:auto;min-height:0;margin:0}.utility-cable-workspace>section{padding:0 12px 8px 0}.utility-cable-workspace label{font-size:12px}.utility-cable-preview{border:1px solid #333;border-radius:6px;padding:20px;background:#111}.utility-cable-preview h3{margin:0 0 14px;font-size:12px;letter-spacing:.5px}.utility-cable-preview svg{width:100%;height:300px;background:#fff;border:1px solid #444;border-radius:4px}.utility-route-length{font-size:14px;line-height:1.6;padding:12px 0;border-bottom:1px solid #333}.utility-cable-preview ul{padding-left:20px;font-size:12px;line-height:1.8}.utility-cable-workspace details{margin:16px 0;padding-top:12px;border-top:1px solid #333}.utility-cable-workspace summary{cursor:pointer;color:#ddd;margin-bottom:12px;font-size:12px}@media(max-width:750px){.utility-cable-workspace{grid-template-columns:1fr;max-height:74vh;overflow:auto}.utility-cable-workspace>section,.utility-cable-preview{overflow:visible}.utility-cable-preview svg{height:220px}}
.utility-display-settings{margin:18px 0;border-top:1px solid #333;padding-top:13px}.utility-display-settings summary{margin-bottom:14px;cursor:pointer;color:#ccc;font-size:12px}.utility-panel-row{grid-template-columns:1fr 90px 55px 32px}.utility-panel-lock{flex-direction:row;font-size:10px;gap:4px}.utility-panel-lock input{width:13px;min-height:0}.utility-display-settings input[type=color]{height:34px;padding:3px}
.utility-scroll svg [data-locked=true]{cursor:pointer}body button:disabled{opacity:.4;cursor:default}

/* Keep connector editing inside the scrollable workspace, above the save actions. */
.utility-rack-dialog{height:92dvh;max-height:96dvh;box-sizing:border-box;overflow:hidden}
.utility-rack-dialog #ut-rack-form{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:16px;height:100%;min-height:0;min-width:0}
.utility-rack-dialog .utility-rack-workspace{max-height:none;min-height:0;min-width:0;overflow:hidden}
.utility-rack-dialog .utility-rack-controls,.utility-rack-dialog .utility-rack-preview{min-height:0;min-width:0;overflow:auto;overscroll-behavior:contain}
.utility-rack-dialog .fixture-list-footer{position:static;flex-wrap:wrap;flex-shrink:0;gap:12px;padding-top:14px}
.utility-rack-dialog .fixture-list-footer p{flex:1;min-width:180px;margin:0;font-size:12px;line-height:1.5}
@media(max-width:850px){.utility-rack-dialog{padding:14px}.utility-rack-dialog .utility-rack-workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(120px,.65fr);gap:12px}.utility-rack-dialog .utility-rack-preview{min-height:0}.utility-connector-list>div{grid-template-columns:20px minmax(0,1fr) minmax(0,1fr)}.utility-connector-list input,.utility-connector-list select{width:100%;min-width:0;box-sizing:border-box}}

.utility-connector-pick{display:flex!important;flex-direction:row!important;align-items:center;gap:5px;margin:0!important}.utility-connector-pick input{width:14px!important;min-height:0!important;margin:0}.utility-connector-list>div{grid-template-columns:45px minmax(0,1fr) minmax(0,1fr)}.utility-connector-groups{border-top:1px solid #3c3c3c;padding-top:12px;margin-top:16px}.utility-connector-group-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;border-top:1px solid #333;margin-top:12px;padding-top:12px}.utility-connector-group-row label{margin:0}.utility-connector-group-row span{grid-row:2;font-size:11px;color:#aaa}.utility-connector-group-row button{grid-column:2;grid-row:1/3}

.utility-panel-row{grid-template-columns:26px minmax(0,1fr) 90px 55px 32px}.utility-panel-drag{cursor:grab;padding:5px!important;touch-action:none}.utility-panel-drag:active{cursor:grabbing}#ut-rack-preview svg [data-rack-panel]{touch-action:none}#ut-rack-preview svg [data-rack-panel]:focus{outline:2px solid #65b2bf;outline-offset:1px}

.utility-route-network{border-bottom:1px solid #333;padding-bottom:16px;margin-bottom:18px}.utility-route-network summary{cursor:pointer;font-size:12px;font-weight:bold;margin-bottom:12px}.utility-path-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;padding:6px 0}.utility-path-row button{padding:4px 7px;font-size:10px}.utility-canvasbar #ut-align-cables[aria-pressed=true]{background:#303030;border-color:#777}

.utility-cable-list-dialog{width:min(1500px,97vw);max-width:97vw;height:min(850px,92dvh);max-height:94dvh;padding:22px;box-sizing:border-box;overflow:hidden;display:none}.utility-cable-list-dialog[open]{display:flex;flex-direction:column;gap:12px}.utility-cable-list-dialog .fixture-list-heading{flex:none}.utility-cable-list-dialog h2{margin:0}.utility-cable-list-dialog .hint{margin:0;font-size:12px}.utility-cable-list-dialog .error:empty{display:none}.utility-cable-list-filters{display:grid;grid-template-columns:minmax(200px,1fr) minmax(160px,260px) auto;gap:14px;align-items:end}.utility-cable-list-filters label{margin:0}.utility-cable-list-filters [data-list-count]{font-size:12px;padding:10px 0;color:#aaa}.utility-cable-list-table{overflow:auto;min-height:0;flex:1;border:1px solid #353535}.utility-cable-list-table table{border-collapse:collapse;width:100%;min-width:1150px;font-size:12px}.utility-cable-list-table th{position:sticky;top:0;background:#202020;color:#ddd;text-align:left;padding:12px 8px;border-bottom:1px solid #555;z-index:1}.utility-cable-list-table td{padding:8px;vertical-align:top;border-bottom:1px solid #333;background:#121212}.utility-cable-list-table tr:nth-child(even) td{background:#191919}.utility-cable-list-table input,.utility-cable-list-table select{min-width:0;width:100%;box-sizing:border-box;padding:7px;font-size:12px;margin-bottom:4px}.utility-cable-list-table [data-list-name]{min-width:160px}.utility-cable-list-table [data-list-quantity],.utility-cable-list-table [data-list-margin]{width:65px}.utility-cable-list-table [data-list-lock]{width:16px;margin:8px}.utility-cable-list-table td:nth-child(4),.utility-cable-list-table td:nth-child(5){min-width:140px}.utility-list-length{min-width:105px;line-height:1.7;color:#ccc}.utility-list-length small{display:block;font-size:10px;color:#888}.utility-list-actions{display:flex;flex-direction:column;gap:4px;min-width:100px}.utility-list-actions button,.utility-bundle-summary{padding:6px;font-size:11px}.utility-bundle-summary{text-align:left;line-height:1.7}.utility-list-empty{padding:30px!important;text-align:center;color:#aaa}@media(max-width:700px){.utility-cable-list-dialog{padding:12px}.utility-cable-list-filters{grid-template-columns:1fr 1fr}.utility-cable-list-filters [data-list-count]{grid-column:1/-1;padding:0}}

.utility-path-select{text-align:left;font-size:12px;margin:5px 0}.utility-path-select[aria-pressed=true]{border-color:#5ca7b7;background:#20343a}.utility-path-point{display:grid;grid-template-columns:18px repeat(3,minmax(0,1fr)) 26px;gap:5px;align-items:end;margin:10px 0;font-size:10px}.utility-path-point input{width:100%;min-width:0;padding:5px;box-sizing:border-box}.utility-path-point label{font-size:10px;margin:0}.utility-path-point button{padding:5px}.utility-scroll [data-path-edit]{cursor:move;touch-action:none}#ut-path-editor{border-top:1px solid #333;padding-top:12px;margin-top:15px}

.utility-path-point [data-path-branch]{grid-column:2 / -1;grid-row:2;text-align:left}.utility-path-point [data-path-remove-point]{grid-column:5;grid-row:1}

.utility-scroll svg text{user-select:none;-webkit-user-select:none}.utility-scroll [data-path-label-drag]{cursor:move;touch-action:none}

.utility-path-branch-row{display:flex;gap:6px;margin:6px 0;align-items:center}.utility-path-branch-row button{font-size:10px;padding:7px;min-width:0}.utility-path-branch-row button:first-child{flex:1;text-align:left}.utility-path-branch-row [aria-pressed=true]{border-color:#5ca7b7;background:#20343a}.utility-path-branches{border-top:1px solid #333;margin-top:14px}
