/* Infrastructure workspace owns its surfaces in both themes. */
[data-theme=dark] .toast {background:#263d31;color:#ecf3ee;border:1px solid #42644f;}
.infra { --i-bg:#f5f7f6;--i-panel:#fff;--i-text:#192a25;--i-muted:#5d7068;--i-line:#d9e2dc;--i-accent:#238645;--i-soft:#e8f3ec;--i-warn:#966017;--i-danger:#ba3746; color:var(--i-text);font-size:14px;line-height:1.45; }
[data-theme=dark] .infra {--i-bg:#111c19;--i-panel:#1a2722;--i-text:#ecf3ee;--i-muted:#a9bdb2;--i-line:#35483e;--i-accent:#83ce99;--i-soft:#253d2e;--i-warn:#eac477;--i-danger:#ffa1a8;}
#dashboard > :not(#overview-workspace),#capacity > :not(#capacity-workspace),#provisioning > :not(#launch-workspace){display:none!important}
.infra button,.infra input,.infra select,.infra textarea {font:inherit;color:var(--i-text)}
.infra button {padding:9px 13px;border:1px solid var(--i-line);border-radius:9px;background:var(--i-panel);cursor:pointer;font-weight:600;min-height:38px}
.infra button:hover {border-color:var(--i-accent);background:var(--i-soft)}
.infra button:disabled{opacity:.5;cursor:not-allowed}
.infra button.primary {background:var(--i-accent);color:var(--i-panel);border-color:var(--i-accent)}
.infra button[aria-pressed=true],.infra button.selected {background:var(--i-soft);border-color:var(--i-accent)}
.infra button.danger {color:var(--i-danger)}
.infra input,.infra select,.infra textarea {background:var(--i-panel);border:1px solid var(--i-line);border-radius:8px;min-height:40px;padding:9px 11px;max-width:100%;width:100%;box-sizing:border-box}
.infra textarea {min-height:85px;resize:vertical}
.infra label {display:grid;gap:6px;color:var(--i-muted);font-size:13px;font-weight:600;min-width:0}
.infra h2,.infra h3,.infra p {margin:0}.infra h2 {font-size:22px}.infra h3 {font-size:17px}.infra small {color:var(--i-muted);font-size:12px}
.infra-bar {display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:16px}.infra-bar label {min-width:160px;flex:1;max-width:300px}.infra-bar .grow {flex:1}.infra-bar .infra-search {max-width:none;min-width:220px}
.infra-kpis {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:14px 0 20px}
.infra-kpi,.infra-panel {background:var(--i-panel);border:1px solid var(--i-line);border-radius:14px;padding:19px;min-width:0;box-shadow:none}
.infra-kpi {display:flex;flex-direction:column;gap:7px;align-items:start;text-align:left;color:var(--i-text)!important;font-weight:400!important}
.infra-kpi span {color:var(--i-muted);font-size:13px}.infra-kpi strong {font-size:27px;letter-spacing:-.6px;line-height:1.25}.infra-kpi small {line-height:1.65}
.infra-columns {display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:18px;margin:18px 0}
.infra-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.infra-list {display:grid;gap:0}.infra-row {display:flex;gap:12px;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--i-line)}.infra-row:last-child{border-bottom:0}.infra-row>div{min-width:0}.infra-row b,.infra-row small{display:block}.infra-row small{margin-top:3px}.infra-row button{flex-shrink:0}
.infra-pill {display:inline-flex;align-items:center;gap:5px;border:1px solid var(--i-line);border-radius:6px;padding:3px 7px;font-size:12px;color:var(--i-muted);background:var(--i-bg);white-space:normal}.infra-pill.warn{color:var(--i-warn)}.infra-pill.danger{color:var(--i-danger)}.infra-pill.good{color:var(--i-accent)}
.infra-note {color:var(--i-muted);padding:12px 0}.infra-error {color:var(--i-danger);padding:12px;border:1px solid currentColor;border-radius:8px;margin:10px 0}.infra-empty {padding:28px;text-align:center;color:var(--i-muted)}
.infra-funnel {display:grid;gap:16px}.infra-funnel-row header{display:flex;gap:12px;justify-content:space-between;margin-bottom:6px}.infra-track {height:9px;border-radius:3px;background:var(--i-bg);overflow:hidden}.infra-track i{display:block;background:var(--i-accent);height:100%}
.infra-plan-layout {display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.infra-plan-layout.has-detail{grid-template-columns:minmax(0,1fr) 330px}
.infra-plan {overflow:hidden;background:var(--i-bg);border:1px solid var(--i-line);border-radius:14px;position:relative;min-width:0}.infra-plan:fullscreen{background:var(--i-bg);padding:20px;display:flex;flex-direction:column}.infra-plan:fullscreen .infra-canvas{flex:1;height:auto}
.infra-plan-tools {display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:10px;border-bottom:1px solid var(--i-line);background:var(--i-panel)}.infra-plan-tools small{margin-left:auto}
.infra-canvas {width:100%;height:clamp(480px,70vh,900px);display:block;touch-action:none;cursor:grab}.infra-canvas:active{cursor:grabbing}.infra-canvas text{font-family:inherit;fill:var(--i-text);pointer-events:none;user-select:none}.infra-grid{stroke:var(--i-line);stroke-width:.5}.infra-room {fill:var(--i-panel);stroke:var(--i-line);stroke-width:3}.infra-zone {fill:none;stroke:var(--i-line);stroke-width:2;stroke-dasharray:6 5}.infra-wall{stroke:var(--i-muted);stroke-width:6}.infra-door{fill:none;stroke:var(--i-accent);stroke-width:3}
.infra-rack {cursor:pointer;outline:none}.infra-rack rect.body{fill:var(--i-panel);stroke:var(--i-line);stroke-width:2}.infra-rack .rail{fill:var(--i-muted);opacity:.5}.infra-rack .indicator{fill:var(--i-muted)}.infra-rack[data-state=free] .indicator{fill:#389665}.infra-rack[data-state=partial] .indicator{fill:#4788a4}.infra-rack[data-state=occupied] .indicator{fill:#75897f}.infra-rack[data-state=reserved] .indicator{fill:#b7863e}.infra-rack[data-state=review] .indicator{fill:#a478a0}.infra-rack .issue{fill:var(--i-danger)}.infra-rack text.code{font-size:15px;font-weight:750}.infra-rack text.caption{font-size:11px;fill:var(--i-muted)}.infra-rack.selected rect.body,.infra-rack:focus rect.body{stroke:var(--i-accent);stroke-width:4}.infra-rack.dim{opacity:.2}.infra-rack.match rect.body{stroke:var(--i-accent);stroke-width:3}
.infra-legend {display:flex;gap:16px;flex-wrap:wrap;padding:11px 14px;background:var(--i-panel);border-top:1px solid var(--i-line);font-size:12px;color:var(--i-muted)}.infra-legend i{width:9px;height:9px;display:inline-block;border-radius:3px;margin-right:5px}
.infra [data-placement-state=free],.infra [data-rack-legend=free]{--rack-state-color:#276e49;--rack-state-fill:#e9f5ed}
.infra [data-placement-state=reserved],.infra [data-rack-legend=reserved]{--rack-state-color:#80500b;--rack-state-fill:#fff2d6}
.infra [data-placement-state=launch],.infra [data-rack-legend=launch]{--rack-state-color:#1d5ca8;--rack-state-fill:#e2efff}
.infra [data-placement-state=occupied],.infra [data-rack-legend=occupied]{--rack-state-color:#6b388b;--rack-state-fill:#f0e5f7}
.infra [data-placement-state=partial],.infra [data-rack-legend=partial]{--rack-state-color:#176a74;--rack-state-fill:#e1f2f2}
.infra [data-placement-state=releasing],.infra [data-rack-legend=releasing]{--rack-state-color:#506377;--rack-state-fill:#e6edf4}
.infra [data-placement-state=review],.infra [data-rack-legend=review]{--rack-state-color:#a02d4d;--rack-state-fill:#fbe8ed}
.infra [data-placement-state=maintenance],.infra [data-rack-legend=maintenance]{--rack-state-color:#875a14;--rack-state-fill:#fff3e0}
.infra [data-placement-state=unavailable],.infra [data-placement-state=retired],.infra [data-rack-legend=unavailable]{--rack-state-color:#535d64;--rack-state-fill:#eceff1}
.infra [data-placement-state=own],.infra [data-rack-legend=own]{--rack-state-color:#5a4c81;--rack-state-fill:#eae7f4}
.infra [data-placement-state=internal],.infra [data-rack-legend=internal]{--rack-state-color:#5a4c81;--rack-state-fill:#eae7f4}
.infra [data-placement-state=provider],.infra [data-rack-legend=provider]{--rack-state-color:#735332;--rack-state-fill:#f2e9df}
.infra [data-placement-state=other],.infra [data-rack-legend=other]{--rack-state-color:#535d64;--rack-state-fill:#eceff1}
[data-theme=dark] .infra [data-placement-state=free],[data-theme=dark] .infra [data-rack-legend=free]{--rack-state-color:#7fd3a0;--rack-state-fill:#18392a}
[data-theme=dark] .infra [data-placement-state=reserved],[data-theme=dark] .infra [data-rack-legend=reserved]{--rack-state-color:#f0c46b;--rack-state-fill:#47391c}
[data-theme=dark] .infra [data-placement-state=launch],[data-theme=dark] .infra [data-rack-legend=launch]{--rack-state-color:#95c7ff;--rack-state-fill:#173756}
[data-theme=dark] .infra [data-placement-state=occupied],[data-theme=dark] .infra [data-rack-legend=occupied]{--rack-state-color:#d7b0f1;--rack-state-fill:#3c2850}
[data-theme=dark] .infra [data-placement-state=partial],[data-theme=dark] .infra [data-rack-legend=partial]{--rack-state-color:#80d2dc;--rack-state-fill:#173b40}
[data-theme=dark] .infra [data-placement-state=releasing],[data-theme=dark] .infra [data-rack-legend=releasing]{--rack-state-color:#b6cbdf;--rack-state-fill:#283746}
[data-theme=dark] .infra [data-placement-state=review],[data-theme=dark] .infra [data-rack-legend=review]{--rack-state-color:#ffabc1;--rack-state-fill:#4b2532}
[data-theme=dark] .infra [data-placement-state=maintenance],[data-theme=dark] .infra [data-rack-legend=maintenance]{--rack-state-color:#e8c582;--rack-state-fill:#423523}
[data-theme=dark] .infra [data-placement-state=unavailable],[data-theme=dark] .infra [data-placement-state=retired],[data-theme=dark] .infra [data-rack-legend=unavailable]{--rack-state-color:#ced6dc;--rack-state-fill:#30363b}
[data-theme=dark] .infra [data-placement-state=own],[data-theme=dark] .infra [data-rack-legend=own]{--rack-state-color:#cab9f0;--rack-state-fill:#362b50}
[data-theme=dark] .infra [data-placement-state=internal],[data-theme=dark] .infra [data-rack-legend=internal]{--rack-state-color:#cab9f0;--rack-state-fill:#362b50}
[data-theme=dark] .infra [data-placement-state=provider],[data-theme=dark] .infra [data-rack-legend=provider]{--rack-state-color:#e4c49e;--rack-state-fill:#443323}
[data-theme=dark] .infra [data-placement-state=other],[data-theme=dark] .infra [data-rack-legend=other]{--rack-state-color:#ced6dc;--rack-state-fill:#30363b}
.infra-launch-work{margin-top:18px}.infra-launch-work>summary{font-weight:700;cursor:pointer;padding:10px 0}.rack-sale-note{background:var(--i-bg);padding:14px}
.infra-rack[data-placement-state] rect.body{fill:var(--rack-state-fill);stroke:var(--rack-state-color);stroke-width:2}
.infra-rack[data-placement-state] .indicator{fill:var(--rack-state-color)}
.infra-rack .status{font-size:10px;font-weight:750;fill:var(--rack-state-color)}
.infra-rack text.caption{font-size:9px;fill:var(--i-text)}
.infra-rack .sale-mode-bg{fill:var(--i-panel);stroke:var(--i-line);stroke-width:.6}
.infra-rack .sale-mode{font-size:9px;font-weight:750;fill:var(--i-text)}
.rack-sale-mode{padding:0 12px 8px;flex-shrink:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px 10px}
.rack-sale-mode>b{font-size:11px}.rack-sale-mode>small{grid-column:1/-1;font-size:11px;line-height:1.4;color:var(--i-muted)}
.rack-sale-mode-buttons{display:flex;border:1px solid var(--i-line);border-radius:9px;padding:3px;gap:4px;background:var(--i-bg)}
.rack-panel .rack-sale-mode-buttons>button{flex:1;min-width:0;font-size:12px;padding:5px 6px;min-height:32px}
.rack-sale-mode-buttons>button[aria-pressed=true]{background:var(--i-accent);border-color:var(--i-accent);color:var(--i-panel);font-weight:750}
.rack-sale-mode-buttons>button:focus-visible{outline:2px solid var(--i-accent);outline-offset:2px}
.rack-sale-mode[aria-busy=true]{opacity:.75}.rack-sale-mode [role=alert]{grid-column:1/-1;font-size:12px;margin:0;overflow-wrap:anywhere}
.infra-rack .selection{display:none;fill:none;stroke:var(--i-accent);stroke-width:2;pointer-events:none}
.infra-rack.match .selection{display:inline;stroke-dasharray:4 3}
.infra-rack.selected .selection,.infra-rack:focus .selection{display:inline;stroke-width:3;stroke-dasharray:none}
.infra-legend [data-rack-legend] i,.infra-minimap-tile{background:var(--rack-state-color);fill:var(--rack-state-color)}
.infra-rack-meter-track{fill:var(--i-line)}
.infra-rack-meter.active{fill:#8351a0}.infra-rack-meter.allocated{fill:#347bbb}.infra-rack-meter.reserved{fill:#b17c23}.infra-rack-meter.release_pending{fill:#667c92}.infra-rack-meter.review{fill:#b7506f}
.rack-placement-status{background:var(--rack-state-fill);border-color:var(--rack-state-color);color:var(--rack-state-color);font-weight:700}
.infra-drawer {position:sticky;top:12px;max-height:83vh;overflow:auto;scrollbar-gutter:stable}.infra-drawer .infra-row{align-items:start}.infra-drawer .infra-bar{margin-top:14px}.infra-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.infra-facts div{background:var(--i-bg);padding:10px;border-radius:8px}.infra-facts b{display:block}
.infra-units {display:grid;gap:2px;max-height:390px;overflow:auto;margin:15px 0;background:var(--i-bg);padding:7px;border-radius:9px}.infra-unit{display:grid;grid-template-columns:34px 1fr;gap:6px;align-items:center;min-height:24px;font-size:12px}.infra-unit button{min-height:24px;padding:3px 7px;font-size:12px;font-weight:400;text-align:left;border-radius:3px}.infra-unit.used button{background:var(--i-soft)}
.infra-table-wrap{overflow:auto;border:1px solid var(--i-line);border-radius:12px;background:var(--i-panel)}.infra table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}.infra th,.infra td{padding:12px 14px;border-bottom:1px solid var(--i-line);vertical-align:middle;white-space:nowrap}.infra th{color:var(--i-muted);background:var(--i-bg);font-weight:600;position:sticky;top:0}.infra td small{display:block}.infra td.wrap{white-space:normal;min-width:180px;max-width:400px}
.infra-dialog {border:1px solid var(--i-line);border-radius:16px;background:var(--i-panel);color:var(--i-text);padding:0;max-width:720px;width:calc(100vw - 32px);max-height:90vh;box-shadow:0 20px 80px #0004}.infra-dialog::backdrop{background:#07181188;backdrop-filter:blur(3px)}.infra-dialog form {padding:23px;display:grid;gap:17px}.infra-dialog header,.infra-dialog footer{display:flex;justify-content:space-between;align-items:center;gap:12px}.infra-dialog footer{justify-content:flex-end;position:sticky;bottom:-23px;background:var(--i-panel);padding:16px 0}.infra-fields {display:grid;grid-template-columns:1fr 1fr;gap:14px}.infra-check{display:flex!important;gap:10px;align-items:center}.infra-check input{width:18px;min-height:18px}.infra-editor-banner{padding:12px 16px;border:1px solid var(--i-warn);color:var(--i-warn);border-radius:10px;margin:12px 0;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.infra-editor-banner b{margin-right:auto}
.infra-launch-grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px}.infra-launch-list{display:grid;gap:8px;align-content:start}.infra-launch-list>button{text-align:left;display:grid;gap:6px;padding:15px}.infra-launch-list>button b{font-size:15px}.infra-step{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:12px;padding:16px 0;border-bottom:1px solid var(--i-line);align-items:start}.infra-step-number{width:27px;height:27px;display:grid;place-items:center;background:var(--i-bg);border-radius:50%;color:var(--i-muted)}.infra-step[data-status=done] .infra-step-number{background:var(--i-soft);color:var(--i-accent)}.infra-step small{display:block;margin-top:5px}.infra-step p{margin:8px 0;overflow-wrap:anywhere}.infra-step-actions{display:flex;gap:6px;flex-wrap:wrap;max-width:240px;justify-content:end}
.infra-scenes{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;padding:25px}.infra-scenes button{min-height:130px;text-align:left;display:grid;gap:8px;align-content:center;background:var(--i-panel)}.infra-scenes button b{font-size:20px}
.infra-multiselect{max-height:250px;overflow:auto;display:grid;gap:8px}.infra-settings{display:grid;gap:20px;max-width:950px}.infra-settings fieldset{border:1px solid var(--i-line);border-radius:12px;padding:17px}.infra-settings legend{font-weight:650}
@media(max-width:1200px){.infra-plan-layout.has-detail{grid-template-columns:minmax(0,1fr) 290px}.infra-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.infra-launch-grid{grid-template-columns:260px minmax(0,1fr)}.infra-step{grid-template-columns:25px minmax(0,1fr)}.infra-step-actions{grid-column:2;max-width:none;justify-content:start}}
@media(max-width:800px){.infra-columns,.infra-plan-layout.has-detail,.infra-launch-grid{grid-template-columns:1fr}.infra-drawer{position:static;max-height:none}.infra-launch-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.infra-fields{grid-template-columns:1fr}.infra-bar label{min-width:130px}.infra-kpi{padding:14px}.infra-kpi strong{font-size:23px}.infra-canvas{height:460px}.infra-row{align-items:start}.infra-plan-tools small{width:100%;margin:0}.infra-dialog form{padding:17px}}
.infra-facilities{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:10px;margin:8px 0 12px}
.infra-facility.infra-panel{padding:12px 16px}
.infra-facility header{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.infra-facility header div{flex:1;min-width:0}
.infra-facility h3{font-size:15px;margin:2px 0}
.infra-facility-metrics{display:flex!important;gap:18px;flex-wrap:wrap;margin:4px 0!important}
.infra-facility-metrics div{display:flex;flex-direction:column;gap:3px}
.infra-facility-metrics b{font-size:14px}
.infra-budget-warning{color:var(--i-muted)}
.infra-map-stage{position:relative;min-width:0}
.infra-minimap{position:absolute;right:12px;bottom:12px;width:90px;height:140px;background:var(--i-panel);border:1px solid var(--i-line);border-radius:6px;cursor:crosshair;box-shadow:0 2px 8px #0002}
.infra-plan:fullscreen .infra-map-stage{flex:1;min-height:0}
.infra-plan:fullscreen .infra-map-stage>.infra-canvas{height:100%}
.infra-plan:fullscreen>.infra-plan-tools,.infra-plan:fullscreen>.infra-legend{flex-shrink:0}
.infra-map-viewport{fill:#30906520;stroke:var(--i-accent);stroke-width:8;pointer-events:none}
.infra-low-detail .caption,.infra-low-detail .rail{display:none}
.infra-edit-mode{color:var(--i-accent);border-right:1px solid var(--i-line);padding-right:10px}
.infra-geometry-warning{width:100%;color:var(--i-muted);font-size:12px}
#infra-rack-properties{display:grid;gap:12px;margin-top:14px}
#infra-rack-properties summary{cursor:pointer;color:var(--i-muted)}
.infra-facility{padding:16px!important;min-width:0}.infra .infra-facility>header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;min-height:0;height:auto;margin:0;padding:0;border:0;text-align:left}.infra-facility h3{overflow-wrap:anywhere}
.infra-facility-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px;margin:16px 0}.infra-facility-metrics b{display:block;font-size:17px}.infra-facility>.infra-bar{margin:14px 0 0}
.infra-background-preview{max-width:100%;max-height:180px;object-fit:contain;border:1px solid var(--i-line);background:white;border-radius:8px}
.infra-deal-picker,.infra-reservation-context{display:grid;gap:8px;min-width:0}.infra-reservation-context{padding:14px;background:var(--i-soft);border:1px solid var(--i-line);border-radius:10px;overflow-wrap:anywhere}
.infra-deal-picker summary{cursor:pointer;color:var(--i-accent);font-weight:600}.infra-deal-picker details>label{margin:10px 0}.infra-deal-picker [role=status]{display:block;margin:8px 0}.infra-deal-picker [data-deals-pages]{display:flex;gap:8px}.infra-deal-picker [hidden]{display:none!important}
.infra-dialog fieldset{border:1px solid var(--i-line);border-radius:10px;padding:14px;min-width:0}.infra-dialog legend{font-weight:650}.infra-editor-banner>[data-infra=edit-element]{display:none}
@media(prefers-reduced-motion:reduce){.infra *{scroll-behavior:auto!important}}
.infra .infra-partition{stroke:#4398ac;stroke-width:8;stroke-dasharray:10 6}
.infra .infra-retired{margin-top:16px}
.infra .infra-retired summary{cursor:pointer;font-weight:700}
.infra-plan-layout.has-detail{grid-template-columns:minmax(0,1fr) 410px}
.infra .rack-panel{display:flex;flex-direction:column;padding:0;overflow:hidden;height:var(--rack-panel-height,calc(100dvh - 32px));max-height:var(--rack-panel-height,calc(100dvh - 32px));scrollbar-gutter:auto}
.rack-panel .rack-panel-head{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:8px 12px 2px;border:0;min-height:0;height:auto;text-align:left;background:var(--i-panel)}
.rack-panel-head>div{display:flex;gap:8px;align-items:baseline}.rack-panel-head small{font-size:10px}.rack-panel-head h2{font-size:20px}
.rack-panel-head,.rack-location,.rack-statuses,.rack-tabs{flex-shrink:0}
.rack-panel button{min-height:44px}.rack-panel-head button{min-width:44px;font-size:20px}
.rack-location{padding:0 12px;font-size:11px;color:var(--i-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rack-statuses{display:flex;flex-wrap:wrap;gap:6px;padding:6px 12px}
.rack-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--i-line);padding:4px;gap:2px}
.rack-tabs button{min-height:36px;padding:6px 3px;border:0;border-radius:6px;font-size:12px;min-width:0;background:transparent}
.rack-tabs button[aria-selected=true]{background:var(--i-soft);color:var(--i-accent)}
.rack-panel-body{overflow:auto;flex:1;min-height:0;padding:0 12px 8px;overscroll-behavior:contain;scrollbar-gutter:stable}
.rack-panel-body:focus-visible,.rack-panel button:focus-visible,.rack-panel summary:focus-visible{outline:2px solid var(--i-accent);outline-offset:-2px}
.rack-section{padding:17px 0;border-bottom:1px solid var(--i-line)}.rack-section:last-child{border-bottom:0}
.rack-section h3{margin-bottom:10px;font-size:15px}.rack-section>.infra-note{padding:4px 0 8px}
.rack-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0}
.rack-metrics.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.rack-metrics>div{background:var(--i-bg);padding:10px;border-radius:8px;display:flex;flex-direction:column;gap:5px;min-width:0}
.rack-metrics small{font-size:11px;line-height:1.35}.rack-metrics strong{font-size:16px;overflow-wrap:anywhere}
.rack-caption{font-size:12px;color:var(--i-muted);margin:10px 0!important}
.rack-inline-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.rack-inline-actions button{font-size:12px;padding:7px 9px}
.rack-allocation{padding:10px 0;border-bottom:1px solid var(--i-line);overflow-wrap:anywhere}.rack-allocation:last-child{border:0}
.rack-allocation>b,.rack-allocation>small{display:block}.rack-allocation>small{margin-top:5px}
.rack-warning{padding:12px;border:1px solid var(--i-warn);border-radius:8px;color:var(--i-warn);margin-top:14px!important}
.rack-panel summary{cursor:pointer;font-weight:600;padding:10px 0;min-height:24px}
.rack-passport{display:grid;grid-template-columns:minmax(0,1fr) minmax(80px,auto);gap:9px;font-size:12px}.rack-passport dt{color:var(--i-muted)}.rack-passport dd{margin:0;text-align:right;overflow-wrap:anywhere}
.rack-sensor{display:grid;grid-template-columns:1fr auto;gap:4px;padding:10px 0;border-bottom:1px solid var(--i-line)}.rack-sensor small{grid-column:1/-1}.rack-sensor.warning{color:var(--i-warn)}.rack-sensor.no_data{color:var(--i-muted)}
.rack-slot-legend{display:flex;gap:14px;font-size:12px;color:var(--i-muted);margin:0 0 12px}.rack-slot-legend span:before{content:'';display:inline-block;width:8px;height:8px;margin-right:5px;background:var(--i-accent)}.rack-slot-legend span:nth-child(2):before{background:var(--i-warn)}.rack-slot-legend span:nth-child(3):before{background:var(--i-line)}
.rack-slots{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;padding:6px;background:var(--i-bg);border-radius:8px}
.rack-panel .rack-slots .rack-unit{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-height:0;height:var(--rack-unit-height,36px);padding:0;text-align:center;border:1px solid var(--i-line);border-radius:5px;min-width:0;color:var(--i-text)}
.rack-panel .rack-slots .rack-unit>b{color:inherit;font-size:12px;line-height:13px}
.rack-panel .rack-unit.occupied{background:var(--i-soft);border-color:var(--i-accent)}
.rack-panel .rack-unit.reserved{background:var(--i-bg);border-color:var(--i-warn);color:var(--i-warn)}
.rack-panel .rack-unit.internal{opacity:1;background:#eae7f4;border-color:#5a4c81;color:#5a4c81;line-height:1.1}
.rack-panel .rack-unit.internal.provider{background:#f2e9df;border-color:#735332;color:#735332}
.rack-panel .rack-unit.internal.other{background:#eceff1;border-color:#535d64;color:#535d64}
[data-theme=dark] .rack-panel .rack-unit.internal{background:#362b50;border-color:#cab9f0;color:#cab9f0}
[data-theme=dark] .rack-panel .rack-unit.internal.provider{background:#443323;border-color:#e4c49e;color:#e4c49e}
[data-theme=dark] .rack-panel .rack-unit.internal.other{background:#30363b;border-color:#ced6dc;color:#ced6dc}
.rack-unit.internal small{font-size:8px;line-height:9px;color:inherit}.rack-internal-allocation>button{margin-top:7px}
.infra-rack-meter.internal{fill:#75629e}.rack-slot-legend .internal:before{background:#75629e}
.rack-panel .rack-unit[aria-pressed=true]{background:var(--i-accent);border-color:var(--i-accent);color:var(--i-panel)}
.rack-unit-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:8px 0 4px}.rack-unit-metrics>div{padding:6px 3px;gap:3px}.rack-unit-metrics small{font-size:9px}.rack-unit-metrics strong{font-size:12px}
.rack-unit-caption{font-size:10px;color:var(--i-muted);margin:4px 0!important}.rack-unit-selection{font-size:12px;line-height:1.4;min-height:18px;margin:6px 0!important}.rack-placement-list{padding:3px 0}.rack-placement-list>summary{font-size:12px;padding:5px 0}
.rack-slot.occupied{border-left-color:var(--i-accent);background:var(--i-soft)}.rack-slot.reserved{border-left-color:var(--i-warn)}.rack-slot.free{color:var(--i-muted)}.rack-slot:disabled{opacity:1;cursor:default}
.rack-slot>b{font-size:12px}.rack-slot>span{font-size:13px}
.rack-history-item{display:grid;gap:6px;border-left:2px solid var(--i-line);padding:4px 0 16px 12px;margin-left:3px;overflow-wrap:anywhere}.rack-history-item p{font-size:12px}.rack-history-item button{justify-self:start}
.rack-panel .rack-panel-footer{display:flex;flex-wrap:nowrap;align-items:center;gap:7px;padding:7px 10px;border-top:1px solid var(--i-line);background:var(--i-panel);flex-shrink:0}
.rack-panel-footer>button{flex:1;padding:8px 9px;font-size:12px}.rack-panel-footer>small{width:100%;font-size:10px}
.rack-more{position:relative;margin-left:auto}.rack-more>summary{padding:10px;font-size:12px;min-height:44px;box-sizing:border-box;border:1px solid var(--i-line);border-radius:8px;list-style:none}.rack-more>div{position:absolute;bottom:50px;right:0;width:220px;max-height:calc(var(--rack-panel-height,600px) - 80px);overflow:auto;background:var(--i-panel);padding:8px;border:1px solid var(--i-line);border-radius:8px;box-shadow:0 6px 20px #0002;z-index:2;display:grid;gap:5px}
.rack-panel .energy-report{min-width:0;padding:14px 0;border:0;background:transparent;color:var(--i-text)}.rack-panel .energy-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.rack-panel .energy-metrics strong{font-size:18px}.rack-panel .energy-table{max-width:100%;overflow:auto}.rack-panel .energy-report p{margin:10px 0}.rack-panel-body>label{margin:14px 0 0}
@media(max-width:1200px) and (min-width:901px){.infra-plan-layout.has-detail{grid-template-columns:minmax(0,1fr) 365px}.rack-panel-body{padding-inline:12px}.rack-metrics>div{padding:8px}.rack-metrics strong{font-size:15px}}
@media(max-width:900px){.infra-plan-layout.has-detail{grid-template-columns:1fr}.infra .rack-panel{position:static;height:var(--rack-panel-height,calc(100dvh - 32px));max-height:var(--rack-panel-height,calc(100dvh - 32px));grid-row:1}.rack-panel-body{max-height:none}.rack-tabs button{font-size:11px}.rack-metrics strong{font-size:15px}.rack-unit-metrics strong{font-size:12px}}
