:root{color-scheme:dark;font:16px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;color:#e5f1f6;background:#0c1822}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}main{max-width:1600px;padding:24px;margin:auto}button,input,select{font:inherit}button{cursor:pointer;color:#e5f1f6;background:#234352;border:1px solid #426879;border-radius:7px;padding:9px 13px}button:hover{filter:brightness(1.15)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:#117b93;border-color:#239bb2}h1{font-size:1.45rem;margin:0 0 6px}h2{font-size:1.2rem;margin:0 0 10px}h3{font-size:1rem;margin:14px 0 9px}h4{font-size:.86rem;margin:8px 0}.panel{background:#142632;border:1px solid #2e4b59;border-radius:12px;padding:22px;margin-bottom:22px;box-shadow:0 4px 16px #030c1340}.muted{color:#a6beca;font-size:.9rem;margin:5px 0 15px}.toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin-top:16px}label{display:grid;gap:5px;font-size:.88rem;font-weight:650;min-width:0}input,select{min-width:0;width:100%;padding:10px;border:1px solid #466b7b;border-radius:7px;background:#1a3342;color:#eff7fa}.clock{font-size:.95rem;color:#bce1ed;font-weight:650;margin:15px 0}.heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.heading .clock{margin:0}.room{border:1px solid #355363;border-radius:9px;margin:12px 0;background:#10212c}.room>summary{padding:15px;cursor:pointer;font-weight:750}.room>summary small{float:right;color:#b3cbd5;font-weight:500}.sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:0 14px 14px}.rack-section{background:#162c39;border:1px solid #3b5767;border-radius:8px;padding:12px;min-width:0}.rack-section h3{margin-top:0}.rack-grid{min-width:0}.level-label{font-size:.75rem;color:#97b6c5;padding:6px 0 4px}.level-cells{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:5px}.cell{padding:7px 6px;min-height:68px;min-width:0;display:flex;flex-direction:column;align-items:start;gap:3px;white-space:normal;text-align:left;font-size:.76rem;overflow-wrap:anywhere;background:#142632;border:1px dashed #496272;border-radius:5px}.cell strong{font-size:.7rem;color:#bbd1de}.cell span{font-size:.76rem;line-height:1.25}.cell small{font-size:.7rem;color:#bdd0d9;line-height:1.25}.cell.freezing{background:#183a51;border-style:solid;border-color:#5586b0}.cell.conditioning{background:#3a3226;border-style:solid;border-color:#a88748}.cell.ready,.cell.eligible{background:#183e34;border-style:solid;border-color:#4b9c80}.cell.assembled{background:#302d48;border-style:solid;border-color:#8e78b5}.meter{display:block;background:#ffffff18;width:100%;height:3px;margin-top:auto}.meter i{display:block;background:#98e4e9;height:100%}.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.85rem;margin:15px 0}.blue{color:#8bc6f5}.amber{color:#eec175}.green{color:#80dcb5}.purple{color:#bba0ee}#map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.plan-room{border:3px solid #365969;background:#0b1b26;border-radius:9px;padding:13px;min-width:0}.plan-room>h3{margin:0 0 12px}.plan-two{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);gap:7px}.wall-bank{min-width:0}.map-group{border:1px solid #324c5a;padding:7px;border-radius:5px;margin-bottom:10px;min-width:0}.map-group h4{font-size:.72rem;color:#c6dde7}.map-cell{min-height:35px;padding:4px}.map-cell span,.map-cell small,.map-cell .meter{display:none}.map-cell strong{font-size:.58rem}.map-group .level-label{font-size:.65rem}.map-group .level-cells{gap:3px}.door{text-align:center;border:1px dashed #588496;background:#173846;color:#cbeaf3;padding:7px;margin:7px 0 12px;font-size:.8rem}.aisle{border-left:1px dashed #355767;border-right:1px dashed #355767;writing-mode:vertical-rl;text-align:center;color:#7497a9;font-size:.65rem;letter-spacing:2px}.freezer-left{display:flex;flex-direction:column}.map-open-space{flex:1;min-height:110px;display:grid;place-items:center;color:#72919f;font-size:.75rem}.shared-section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.zone-label{color:#95d9e5!important;font-size:.8rem!important}.door-three-wall{display:grid;grid-template-columns:1fr 1.3fr .45fr;gap:7px;margin-top:14px}.door-three-wall .door{align-self:stretch;display:grid;place-items:center}#activity{max-height:240px;overflow:auto;font-size:.85rem;color:#bed5e0;padding-left:22px}#activity li{margin:6px 0}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{padding:10px;border-bottom:1px solid #35505e;text-align:right}th:first-child{text-align:left}thead{color:#a8c7d5}.assumptions{color:#97b3c2;font-size:.85rem;padding:5px 10px}.assumptions summary{cursor:pointer}.modal{position:fixed;inset:0;background:#020e17bd;display:grid;place-items:center;padding:18px;z-index:50}.dialog{width:100%;max-width:600px;max-height:calc(100dvh - 36px);overflow:auto;background:#19303e;border:1px solid #537889;border-radius:13px;padding:23px;box-shadow:0 20px 70px #000a}.dialog label{margin:12px 0}.dialog .fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dialog button{margin-top:12px}.dialog #cancel{float:right}.label-info{white-space:pre-line;font-size:.82rem;color:#acc7d4}.dialog #error{color:#ffb6ab}.dialog input[type=datetime-local]{width:100%;min-width:0;max-width:100%}:focus-visible{outline:3px solid #76dce6;outline-offset:2px}@media(max-width:1100px){#map{grid-template-columns:1fr}.sections{grid-template-columns:1fr}}@media(max-width:650px){main{padding:10px}.panel{padding:14px}.toolbar label{flex:1}.room>summary small{float:none;display:block;margin-left:15px}.sections{padding:0 8px 8px}.rack-section{padding:7px}.cell{min-height:65px}.cell span{font-size:.68rem}.cell small{font-size:.65rem}.cell strong{font-size:.65rem}.plan-room{padding:7px}.plan-two{gap:4px;grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr)}.map-cell{min-height:27px;padding:2px}.map-cell strong{font-size:.48rem}.map-group{padding:4px}.door-three-wall{grid-template-columns:1fr}.dialog .fields{grid-template-columns:1fr}}
/* Stable storage geometry: ticking stock never changes the page layout. */
html{overflow-anchor:none;scrollbar-gutter:stable;scroll-behavior:auto}body{overflow-anchor:none}.toolbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));align-items:end}.toolbar>*{min-width:0;width:100%}.toolbar button{min-height:44px}.toolbar label{font-size:.875rem}.room>summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.room>summary small{float:none;margin-left:auto;white-space:nowrap;font-variant-numeric:tabular-nums}.sections{grid-template-columns:1fr}.rack-section{overflow:hidden}.rack-grid{overflow-x:auto;padding-bottom:6px}.level-cells{grid-template-columns:repeat(var(--cols),minmax(140px,1fr))}.cell{height:156px;min-height:156px;overflow:hidden;padding:10px;gap:6px}.cell strong{font-size:.75rem;flex:none}.cell span{font-size:.875rem;line-height:1.3;min-height:2.6em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cell small{font-size:.8125rem;line-height:1.3}.cell .meter{flex:none}.side-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;padding:0 16px 16px}.section-divider,.side-level{grid-column:1/-1}.section-divider{margin:12px 0 0;padding-top:16px;border-top:1px solid #355363}.side-level{font-size:.8125rem;color:#a6beca;margin-top:4px}.map-group .rack-grid{overflow:visible}.map-group .level-cells{grid-template-columns:repeat(var(--cols),minmax(0,1fr))}.map-cell{height:42px;min-height:42px;padding:3px;align-items:center;justify-content:center}.map-cell strong{font-size:.65rem;overflow-wrap:anywhere}.map-cell span,.map-cell small,.map-cell .meter{display:none}.shared-section{grid-template-columns:1fr 1fr}.shared-section .level-cells{grid-template-columns:repeat(3,minmax(0,1fr))}#map{grid-template-columns:1fr}.clock{font-variant-numeric:tabular-nums}#status{height:3em;overflow:auto}#activity{height:240px;max-height:240px;margin-top:12px;margin-bottom:12px;overflow-anchor:none}.dialog #cancel{float:none}.dialog form{display:flex;flex-direction:column}.dialog #cancel{align-self:flex-end}.dialog select{max-width:100%;text-overflow:ellipsis}.dialog input{max-width:100%}@media(max-width:650px){.toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar label{font-size:.8125rem}.toolbar button{font-size:.875rem}.side-grid{padding:0 8px 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.cell{height:156px;min-height:156px}.cell span{font-size:.875rem}.cell small{font-size:.8125rem}.map-cell{height:42px;min-height:42px}.map-cell strong{font-size:.6rem}.room>summary small{margin-left:0}}
.deep-enclosure{border:4px double #82a7d0;border-radius:8px;padding:12px;background:#0f243a;margin:10px 0}.deep-enclosure h3{font-size:1rem;color:#c4ddfc}.deep-enclosure p{font-size:.8rem;color:#9abbd8}.access-lane{padding:18px 8px;text-align:center;font-size:.8rem;color:#93b1c3;border:1px dashed #486272}.equipment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.equipment-card{display:flex;flex-direction:column;gap:7px;text-align:left;min-height:110px}.equipment-card span{font-size:.85rem}.history-scroll{height:320px;overflow:auto}.history-scroll td{vertical-align:top;text-align:left}.unmet{color:#ffb0a4}.met{color:#88dab3}#dailyCounts td:last-child{font-size:.8rem;max-width:200px;text-align:left}#turnover{height:3em;overflow:auto}.cell .position-size{font-size:.75rem;color:#aacbd8;line-height:1.1}.cell{height:176px;min-height:176px}.map-cell{height:48px;min-height:48px}.equipment-card strong{font-size:1rem}@media(max-width:650px){.equipment-grid{grid-template-columns:1fr}.cell{height:176px;min-height:176px}.map-cell{height:48px;min-height:48px}.deep-enclosure{padding:5px}.deep-enclosure h3{font-size:.8rem}}
.equipment-card{height:140px;min-height:140px;overflow:hidden}.equipment-card span:last-child{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}#apoBuffer{height:3em;overflow:auto}.table-scroll table{min-width:820px}#dailyCounts tr{height:76px}
.side-grid{grid-template-columns:repeat(var(--side-cols),minmax(0,1fr))}@media(max-width:1100px){.side-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.side-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.registration{border:1px solid #b8cbdc;border-radius:10px;padding:12px;margin:12px 0}.registration details{margin-top:12px}.registration input{min-width:0;width:100%}#serverStatus{margin:0;font-weight:600}#registryOutput{max-height:360px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}#carrierButtons{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}#carrierCode{background:white;padding:12px;color:#172333}#matrixCanvas{max-width:100%;height:auto;image-rendering:pixelated}#matrixText{white-space:pre-wrap;overflow-wrap:anywhere}.dialog{max-height:90vh;overflow:auto}.registration summary{cursor:pointer}#scanResult{min-height:3em;overflow-wrap:anywhere}
[hidden]{display:none!important}.page-nav{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.page-button{display:inline-block;padding:10px 16px;border:1px solid #607d9c;border-radius:8px;color:#183b60;background:#edf4fa;text-decoration:none;font-weight:600}.page-button[aria-current="page"]{background:#183b60;color:white}.automation-control{display:flex;align-items:center;gap:10px;font-weight:600}.automation-control input{width:22px;height:22px;accent-color:#183b60;flex-shrink:0}
.zone-clock{display:block;font-size:14px;line-height:1.5;font-weight:400;margin-top:4px;font-variant-numeric:tabular-nums;white-space:normal}
.rolling-rack-slot{grid-column:1/-1}.rolling-rack-slot .rack-section{margin:0}.rolling-rack-slot h2{margin-top:0}

.cell,[data-carrier]{position:relative}.registration-dots{position:absolute;right:5px;top:5px;display:flex;gap:3px;flex-wrap:wrap;max-width:75%;pointer-events:none}.registration-dot{display:inline-block;width:13px;height:13px;flex:0 0 13px;border-radius:50%;background:var(--registration-color);border:1px solid #0a1828;box-shadow:0 0 0 1px #c2d4df;vertical-align:middle;margin-right:3px}.cell>strong{padding-top:13px}.map-cell .registration-dot{width:9px;height:9px;flex-basis:9px}.map-cell>strong{padding-top:10px}#carrierButtons button{padding-right:28px}#carrierButtons .registration-dot{position:absolute;top:8px;right:5px}.registration-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:14px;margin:12px 0}
