.rack-active .rack-sketch{opacity:0}
.rack-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.rack-svg [role=button],.rack-svg [role=slider]{cursor:pointer;outline:none;touch-action:none}
.rack-svg .focus-ring{fill:none;stroke:transparent;stroke-width:5}
.rack-svg [role]:focus-visible .focus-ring{stroke:#006ff5;stroke-dasharray:8 5}
.rack-svg .drive-piece{transition:transform .28s ease,opacity .28s ease}
.rack-svg .drive-out .drive-piece{transform:translate(-135px,325px);opacity:.85}
.rack-svg .led{opacity:0;transition:opacity .2s}
.rack-svg .lit{opacity:1}
.rack-svg .activity{opacity:.12}
.rack-svg .activity.flow{animation:port-activity var(--flow-speed,1s) steps(2) infinite;animation-delay:var(--phase,0s)}
.rack-svg .alarm{display:none}
.rack-svg .alarm.shown{display:block}
.rack-tools{margin:6px 0 0;font-size:11px;line-height:1.45;color:#415575}
.rack-tools summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:7px;padding:8px 0;color:#081b3a}
.rack-tools summary::-webkit-details-marker{display:none}
.rack-tools summary:before{content:'+';font-size:18px;color:#006ff5;line-height:1}
.rack-tools[open] summary:before{content:'−'}
.rack-tool-body{border-top:1px solid #d8e2f0;padding:14px 0;max-width:520px}
.rack-tool-body label{display:block;margin:12px 0 5px;font-size:12px}
.rack-tool-body input{width:100%;min-height:44px;accent-color:#006ff5}
.rack-tool-body button{border:1px solid #d8e2f0;background:white;color:#081b3a;min-height:44px;padding:9px 13px;font-size:12px;border-radius:3px}
.rack-tool-body button:hover,.rack-tool-body button[aria-pressed=true]{border-color:#006ff5;color:#006ff5}
.rack-drive-controls{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;margin:9px 0}
.rack-drive-controls button{min-width:44px;padding:8px 0}
.rack-tool-status{margin:12px 0 0;font-size:12px;color:#415575}
.rack-alert-status{font-size:12px;line-height:1.45;color:#b63b2d;margin:7px 0 0}
.rack-alert-status:empty{display:none}
.rack-scene-help{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@keyframes port-activity{50%{opacity:1}}
@media(max-width:640px){.rack-drive-controls{grid-template-columns:repeat(4,1fr)}.rack-tools{font-size:12px}.rack-tools summary{min-height:44px}}
@media(prefers-reduced-motion:reduce){.rack-svg .drive-piece,.rack-svg .led{transition:none}.rack-svg .activity.flow{animation:none;opacity:1}}

.rack-svg .drive-out>.bay-slot{opacity:0}
