.app{min-height:100vh}.app__brand{color:#fff;align-items:center;gap:10px;padding:20px 24px 16px;font-size:17px;font-weight:700;display:flex}.app__mark{background:linear-gradient(0deg,#2bb592 0 70%,#ffffff40 70% 100%);border-radius:2px;width:9px;height:22px}.app__header{border-bottom:1px solid #dce2e5;justify-content:flex-end;align-items:center;gap:16px;padding:0 24px;display:flex}.app__user{color:#6b7a84}.app__content{width:100%;max-width:1400px;padding:24px}.nav-alerts{align-items:center;gap:8px;display:inline-flex}.page-title{margin:0 0 16px;font-size:22px;font-weight:600}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-head .page-title{margin:0}.num{font-variant-numeric:tabular-nums}@media (width<=600px){.app__content{padding:16px}.app__user{display:none}}@media (width<=991px){.app__content{padding-top:60px}}.login{background:repeating-linear-gradient(90deg,#0000 0 46px,#ffffff0a 46px 48px),#1f2b33;grid-template-columns:minmax(0,380px);place-content:center;min-height:100vh;padding:16px;display:grid}.login__panel{box-sizing:border-box;background:#fff;border-radius:10px;padding:32px 28px}.login__brand{align-items:center;gap:12px;margin-bottom:28px;display:flex}.login__mark{outline-offset:2px;background:linear-gradient(0deg,#008a6a 0 70%,#d5ede6 70% 100%);border-radius:3px;outline:2px solid #008a6a;width:14px;height:36px}.login__name{font-size:18px;font-weight:700}.login__tagline{color:#6b7a84;font-size:13px}.login__title{margin:0 0 20px;font-size:22px;font-weight:600}.rack{background:#fff;border:1px solid #dce2e5;border-radius:8px;padding:16px 18px 18px}.rack__head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.rack__name{font-size:16px;font-weight:600}.rack__meta{color:#6b7a84;gap:12px;font-size:13px;display:flex}.rack__ready{color:#008a6a;white-space:nowrap;font-weight:600}.rack__empty{color:#6b7a84;margin:0}.rack__slots{grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:8px;display:grid}.rack__cell{cursor:pointer;background:#f3f5f6;border:2px solid #c9d2d7;border-radius:6px;height:84px;padding:0;position:relative;overflow:hidden}.rack__cell:before{content:"";z-index:2;background:#c9d2d7;border-radius:0 0 2px 2px;width:14px;height:4px;margin-left:-7px;position:absolute;top:-1px;left:50%}.rack__cell:hover{border-color:#1f2b33}.rack__cell:focus-visible{outline-offset:2px;outline:3px solid #008a6a}.rack__fill{transition:height .6s;position:absolute;bottom:0;left:0;right:0}.rack__pct{text-align:center;color:#1b252c;font-size:12px;font-weight:600;position:absolute;inset:auto 0 6px}.rack__pct--on{color:#fff}.rack__unlocked{background:#d9930d;border-radius:50%;width:8px;height:8px;position:absolute;top:8px;right:6px;box-shadow:0 0 0 2px #fff}.rack-legend{color:#6b7a84;flex-wrap:wrap;gap:16px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.rack-legend li{align-items:center;gap:6px;display:flex}.rack-legend span{border-radius:2px;width:10px;height:14px;display:inline-block}@media (prefers-reduced-motion:reduce){.rack__fill{transition:none}}.kpis{background:#fff;border:1px solid #dce2e5;border-radius:8px;flex-wrap:wrap;margin:0 0 28px;display:flex}.kpi{border-right:1px solid #dce2e5;min-width:150px;padding:14px 22px}.kpi:last-child{border-right:0}.kpi dt{color:#6b7a84;font-size:13px}.kpi dd{margin:2px 0 0;font-size:22px;font-weight:600}.kpi dd small{color:#6b7a84;font-size:14px;font-weight:500}.kpi--lead dd{color:#008a6a;font-size:28px}.kpi__warn{color:#c8423c}.dash__grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px;display:grid}.dash__section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px;display:flex}.dash__section-head h2,.dash__alerts h2{margin:0;font-size:16px;font-weight:600}.dash__section-head p{color:#6b7a84;margin:2px 0 0;font-size:13px}.dash__racks{gap:16px;display:grid}.dash__note{color:#6b7a84;margin-top:12px;font-size:13px}.dash__alerts{background:#fff;border:1px solid #dce2e5;border-radius:8px;padding:16px}.dash__alerts ul{gap:14px;margin:12px 0;padding:0;list-style:none;display:grid}.dash__alert-msg{margin:4px 0 2px}.muted{color:#6b7a84;font-size:13px}@media (width<=1000px){.dash__grid{grid-template-columns:1fr}}@media (width<=600px){.kpi{border-bottom:1px solid #dce2e5;border-right:0;min-width:50%}}body{background:#f3f5f6;margin:0}:focus-visible{outline-offset:2px}
