#rackWorkshop{width:96vw;max-width:1700px;height:92dvh;max-height:94dvh;background:var(--panel,#102333);color:var(--text);border:1px solid var(--line);border-radius:18px;padding:20px;overflow:auto}#rackWorkshop::backdrop{background:#04111ae6}#rackWorkshop header{display:flex;justify-content:space-between;align-items:center}#rackWorkshop nav{display:flex;flex-wrap:wrap;gap:6px}#rackWorkshop button,#rackWorkshop input,#rackWorkshop select{padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--panel2,#142a3b);color:inherit;font:inherit;max-width:100%}#rackWorkshop button{cursor:pointer}#rackWorkshop button:disabled{opacity:.45;cursor:not-allowed}#rackWorkshop button.selected{border-color:var(--cyan)}#rackWorkshop p{font-size:12px;line-height:1.6;color:var(--muted)}.rack-workshop-body{display:grid;grid-template-columns:230px minmax(300px,1fr) 270px;gap:18px}.rack-workshop-body aside{max-height:65dvh;overflow:auto;padding:10px;border:1px solid var(--line);border-radius:12px}.rack-workshop-body aside button{display:block;width:100%;text-align:left;margin:6px 0}.rack-workshop-body label{display:block;font-size:12px;line-height:1.6;margin:8px 0}.rack-workshop-body input,.rack-workshop-body select{width:100%}.rack-workshop-stage{height:55dvh;min-height:320px;background:radial-gradient(ellipse,#19394d,#071521);border:1px solid var(--line);border-radius:14px;touch-action:none;overflow:hidden}.rack-workshop-stage canvas{width:100%;height:100%;display:block}.rack-workshop-elevation{max-height:55dvh;overflow:auto;border:1px solid var(--line)}.rack-workshop-elevation>div{display:flex;align-items:center;gap:10px;min-height:32px;border-bottom:1px solid var(--line);padding:6px}.rack-workshop-elevation b{min-width:40px}html[data-theme=light] .rack-workshop-stage{background:radial-gradient(ellipse,#e4f2fb,#bccfdb)}@media(max-width:1050px){.rack-workshop-body{grid-template-columns:180px minmax(250px,1fr)}.rack-workshop-body aside:last-child{grid-column:1/-1;max-height:none;display:grid;grid-template-columns:1fr 1fr;gap:8px}}@media(max-width:650px){.rack-workshop-body{display:flex;flex-direction:column}.rack-workshop-body aside{max-height:250px}.rack-workshop-body aside:last-child{display:block;max-height:none}#rackWorkshop{padding:12px}.rack-workshop-stage{height:350px}}

/* Rack Lab 0.8.57 — a dedicated engineering console. */
#rackWorkshop{--lab-ink:#e7f3fc;--lab-muted:#96b0c2;--lab-edge:#315066;--lab-panel:#102230;width:98vw;max-width:1900px;height:96dvh;max-height:96dvh;padding:24px;background:radial-gradient(ellipse at 45% 0,#153c5140,transparent 55%),#08131e;color:var(--lab-ink);border:1px solid #52748b;border-radius:20px;box-shadow:0 32px 120px #0009}
#rackWorkshop::backdrop{background:#020910e8;backdrop-filter:blur(8px)}
#rackWorkshop header{padding:0 0 18px;margin:0 0 18px;border-bottom:1px solid var(--lab-edge)}
#rackWorkshop header h2{margin:7px 0 4px;font-size:clamp(23px,2.4vw,36px);letter-spacing:-.045em;font-weight:650;line-height:1.15}
#rackWorkshop header p{margin:6px 0 0;color:var(--lab-muted);font-size:12px}
.rack-lab-eyebrow{font-size:10px;letter-spacing:.22em;color:#78dfff;font-weight:650}
#rackWorkshop button{min-height:36px;border-radius:8px;background:#142b3b;border-color:#38586c;font-size:12px;font-weight:550;transition:border-color .15s}
#rackWorkshop button:hover:not(:disabled){background:#203f53;border-color:#76c8ed}#rackWorkshop button:focus-visible{outline:2px solid #80dfff;outline-offset:3px}
#rackWorkshop button:disabled{opacity:1;color:#8ca0af;background:#14212a;border-color:#334451}
#rackWorkshop nav{display:flex;gap:12px;align-items:stretch;padding:0 0 12px}
.rack-lab-toolbar-group{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:10px 12px;border:1px solid #284558;border-radius:12px;background:#0d1e2bd9}
.rack-lab-toolbar-group>span{width:100%;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--lab-muted);margin-bottom:4px}
#rackWorkshop>p[role=status]{margin:0 0 16px;padding:8px 12px;border-left:2px solid #78dfff;background:#78dfff08;color:var(--lab-muted);font-size:11px}
.rack-lab-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}
.rack-lab-metrics section{padding:15px 18px;border:1px solid #305064;border-radius:12px;background:linear-gradient(135deg,#173346,#102331);box-shadow:inset 0 1px #aeeaff12}
.rack-lab-metrics span{display:block;font-size:9px;font-weight:550;letter-spacing:.14em;color:var(--lab-muted)}
.rack-lab-metrics strong{display:block;margin-top:7px;font-size:27px;font-weight:600;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--lab-ink)}
.rack-workshop-body{grid-template-columns:220px minmax(320px,1fr) 285px;gap:14px;align-items:start}
#rackWorkshop .rack-workshop-body aside{padding:14px;background:linear-gradient(170deg,#122837,#0a1925);border-color:#2e4e63;border-radius:13px;max-height:75dvh}
#rackWorkshop .rack-workshop-body aside h3{font-size:14px;letter-spacing:-.02em;margin:2px 0 12px}
#rackWorkshop .rack-workshop-body aside h4{font-size:10px;color:#7fdbff;letter-spacing:.09em;text-transform:uppercase;margin:20px 0 8px;padding-top:12px;border-top:1px solid #2d485b}
#rackWorkshop .rack-workshop-body aside button{padding:10px 11px;line-height:1.4;background:#ffffff04;text-align:left}
#rackWorkshop .rack-workshop-body aside button.selected{border-color:#78dcff;background:#75d8ff15;box-shadow:inset 3px 0 #78dcff}
#rackWorkshop .rack-workshop-body label{font-size:10px;color:var(--lab-muted);letter-spacing:.025em;margin:10px 0}
#rackWorkshop .rack-workshop-body :is(input,select){margin-top:4px;background:#091722;border-color:#345468;color:var(--lab-ink);min-height:36px;font-size:12px}
#rackWorkshop .rack-workshop-stage{position:relative;height:64dvh;min-height:450px;border:1px solid #3f6c84;border-radius:16px;background:radial-gradient(ellipse at 50% 42%,#24485e,#102b3d 45%,#061421 90%);box-shadow:inset 0 0 100px #020b1466,0 14px 35px #0003}
#rackWorkshop[data-mode=realistic] .rack-workshop-stage{border-color:#66bbdc;background:radial-gradient(ellipse at 50% 40%,#294e65,#102b3d 48%,#061421 90%)}
.rack-lab-hud{position:absolute;top:18px;left:18px;right:18px;z-index:1;display:flex;justify-content:space-between;gap:12px;pointer-events:none;color:#d4efff;font-size:10px;letter-spacing:.1em}
.rack-lab-hud b{padding:7px 10px;border:1px solid #74c7ed55;border-radius:5px;background:#071b29c9;font-size:9px;color:#9ae6ff}
.rack-lab-hud span{max-width:45%;text-align:right;overflow-wrap:anywhere;padding:7px 0;letter-spacing:.03em}
.rack-lab-stage-help{position:absolute;bottom:14px;left:18px;right:18px;z-index:1;pointer-events:none;text-align:center;color:#a7c0cf;font-size:10px;letter-spacing:.03em}
#rackWorkshop .rack-lab-photo-status{padding:10px 12px;margin:10px 0;background:#75d8ff09;border:1px solid #315369;border-radius:8px;font-size:10px;color:var(--lab-muted)}
#rackWorkshop .rack-lab-capacity{color:var(--lab-muted);font-size:11px}
#rackWorkshop [aria-label="Placement warnings"]{padding:12px 14px;border:1px solid #4e4d37;border-radius:10px;background:#cba65808}
#rackWorkshop [aria-label="Placement warnings"] h3{margin:0;font-size:12px;color:#ecd1a1}#rackWorkshop [aria-label="Placement warnings"] p{font-size:10px;margin:7px 0}
html[data-theme=light] #rackWorkshop{--lab-ink:#16374d;--lab-muted:#47677c;--lab-edge:#aac4d4;--lab-panel:#f6fbff;background:linear-gradient(145deg,#f7fbfe,#e4eff7)!important;color:var(--lab-ink)!important;border-color:#86aabc}
html[data-theme=light] #rackWorkshop .rack-lab-eyebrow{color:#08658a}html[data-theme=light] #rackWorkshop .rack-lab-metrics section,html[data-theme=light] #rackWorkshop .rack-workshop-body aside,html[data-theme=light] #rackWorkshop .rack-lab-toolbar-group{background:linear-gradient(145deg,#fff,#edf5fb)!important;border-color:#9ebecd}
html[data-theme=light] #rackWorkshop .rack-workshop-stage{background:radial-gradient(ellipse at 50% 40%,#ecf7ff,#c9deeb)!important;border-color:#7ea9bf}
html[data-theme=light] #rackWorkshop .rack-lab-hud span,html[data-theme=light] #rackWorkshop .rack-lab-stage-help{color:#244c65}
html[data-theme=light] #rackWorkshop .rack-lab-hud b{background:#f5fbff;color:#145776;border-color:#77a8bf}
html[data-theme=light] #rackWorkshop .rack-workshop-body aside button.selected{background:#d5ebf7!important;color:#16374d!important;border-color:#3b829f!important}
html[data-theme=light] #rackWorkshop :is(.rack-lab-photo-status,[aria-label="Placement warnings"]){background:#f4f9fd;border-color:#9ebecd}
@media(max-width:1200px){.rack-workshop-body{grid-template-columns:190px minmax(280px,1fr)}#rackWorkshop .rack-workshop-body aside:last-child{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-height:none;gap:8px 14px}#rackWorkshop .rack-workshop-stage{height:58dvh}}
@media(max-width:700px){#rackWorkshop{width:98vw;padding:14px;border-radius:12px}#rackWorkshop header h2{font-size:24px}.rack-lab-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.rack-lab-metrics section{padding:12px}.rack-lab-metrics strong{font-size:22px}.rack-workshop-body{display:flex;flex-direction:column}.rack-workshop-body>*{width:100%}#rackWorkshop .rack-workshop-body aside:last-child{display:block}#rackWorkshop .rack-workshop-stage{height:480px;min-height:360px}.rack-lab-hud{left:12px;right:12px}.rack-lab-toolbar-group{width:100%}.rack-lab-stage-help{font-size:9px}}
@media(prefers-reduced-motion:reduce){#rackWorkshop button{transition:none}}

/* Give the rack the viewport; draft publication stays below the engineering surface. */
#rackWorkshop{padding:18px}
#rackWorkshop header{padding-bottom:12px;margin-bottom:12px}#rackWorkshop header h2{font-size:clamp(23px,2.2vw,30px)}
#rackWorkshop nav{padding-bottom:8px}.rack-lab-toolbar-group{padding:8px 10px}
.rack-lab-metrics{margin-bottom:12px}.rack-lab-metrics section{padding:11px 15px}.rack-lab-metrics strong{font-size:24px}
#rackWorkshop .rack-workshop-stage{height:clamp(360px,calc(96dvh - 310px),760px);min-height:360px}
#rackWorkshop .rack-lab-draft-actions{margin-top:16px;border-top:1px solid var(--lab-edge)}
@media(max-width:700px){#rackWorkshop{padding:14px}#rackWorkshop .rack-workshop-stage{height:480px}.rack-lab-metrics strong{font-size:22px}}
/* Explicit button colors override legacy Day-mode cascade. */
html[data-theme=light] #rackWorkshop button{background:#f7fbfe!important;color:#16374d!important;border-color:#6b96ae!important;opacity:1!important}
html[data-theme=light] #rackWorkshop button:hover:not(:disabled){background:#dceef8!important;color:#16374d!important}
html[data-theme=light] #rackWorkshop button:disabled{background:#e8eff4!important;color:#526777!important;border-color:#9cb3c2!important}

/* Relative support plane and rack inventory canvas share Rack Lab draft controls. */
#rackWorkshop .rack-plate-editor,#rackWorkshop .rack-device-canvas{padding:18px;border:1px solid var(--lab-edge);border-radius:14px;margin:14px 0;background:var(--lab-panel);overflow:auto}
#rackWorkshop .rack-device-canvas{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}#rackWorkshop .rack-device-canvas[hidden],#rackWorkshop .rack-plate-editor[hidden],#rackWorkshop .rack-workshop-stage[hidden]{display:none}
#rackWorkshop .rack-device-canvas h3,#rackWorkshop .rack-device-canvas p{grid-column:1/-1}#rackWorkshop .rack-device-canvas button span{display:block;font-size:11px;margin-top:8px;color:var(--lab-muted)}
.rack-plate-surface{position:relative;width:100%;margin:14px 0;min-height:180px;background:repeating-linear-gradient(0deg,#76c3e00b 0 1px,transparent 1px 24px),repeating-linear-gradient(90deg,#76c3e00b 0 1px,transparent 1px 24px);border:2px solid var(--lab-edge);overflow:hidden;touch-action:none}
#rackWorkshop .rack-plate-surface button{position:absolute;min-height:24px;min-width:24px;font-size:11px;overflow:hidden;padding:4px;touch-action:none;cursor:move}#rackWorkshop .rack-plate-editor label{display:inline-block;margin:8px;max-width:45%}#rackWorkshop .rack-plate-editor button{margin:4px}
.model-catalog-picker,.device-installation-record{padding:16px;border:1px solid var(--line);border-radius:12px;margin:14px 0}.model-catalog-picker details{margin:8px 0;padding:8px;border:1px solid var(--line);border-radius:8px}.model-catalog-picker button{display:block;margin:6px}.device-installation-record label{display:block;margin:8px 0}.device-vault-dialog{width:min(650px,94vw);max-height:90dvh;overflow:auto;background:var(--panel);color:var(--text);padding:24px;border:1px solid var(--line);border-radius:16px}.device-vault-dialog::backdrop{background:#03111cdd}.device-vault-dialog input,.device-vault-dialog textarea{display:block;width:100%;margin:8px 0;background:var(--panel2);color:var(--text);border:1px solid var(--line);padding:10px}.device-vault-dialog button{padding:9px;margin:6px;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px}
.rack-device-edit-dialog{width:min(1100px,96vw);max-height:94dvh;overflow:auto;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:16px;padding:0}.rack-device-edit-dialog::backdrop{background:#03111cdd}.rack-device-edit-dialog #modal{display:block!important;background:transparent;padding:0}.rack-device-edit-dialog .modal-card{max-width:100%;max-height:none}

.rack-plate-top-photo {position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;opacity:.8}.rack-plate-surface button:has(.rack-plate-top-photo) {text-shadow:0 1px 3px #000;background:#102432}
