:root{color-scheme:dark;font-family:Segoe UI,system-ui,sans-serif;background:#0b1016;color:#e7ecf1;line-height:1.45}*{box-sizing:border-box}body{margin:0;min-height:100vh}.page{max-width:960px;margin:0 auto;padding:1rem 1.25rem 2rem}.page.wide{max-width:1200px}.page.center{min-height:100vh;display:grid;place-items:center}.card{background:#151c27;border:1px solid #2a3a4f;border-radius:12px;padding:1rem 1.15rem}.page.center .card{width:100%;max-width:420px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.row{display:flex;align-items:center}.gap{gap:.65rem}.wrap{flex-wrap:wrap}label{display:flex;flex-direction:column;gap:.3rem;margin:.5rem 0;font-size:.9rem}label.check{flex-direction:row;align-items:center;gap:.5rem}input,select,button{font:inherit}input,select{padding:.5rem .65rem;border-radius:8px;border:1px solid #3a4d66;background:#0f1419;color:inherit}button{padding:.55rem .9rem;border-radius:8px;border:none;background:#3b82f6;color:#fff;cursor:pointer;font-weight:600}button:disabled{opacity:.45;cursor:not-allowed}button.ghost{background:transparent;border:1px solid #3a4d66;color:inherit}.muted{color:#9aa8b8}.small{font-size:.82rem}.error{color:#f87171}.legend{margin-bottom:1rem}.legend h3{margin:0 0 .5rem;font-size:.95rem}.legend-row{display:flex;flex-wrap:wrap;gap:.75rem 1rem}.legend-item{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem}.swatch{width:1.1rem;height:1.1rem;border-radius:4px;border:1px solid rgba(255,255,255,.15)}.grid-board{display:flex;flex-direction:column;gap:.85rem}.area-panel{padding:.5rem .75rem .85rem}.area-head{width:100%;display:flex;justify-content:space-between;align-items:center;background:transparent;color:inherit;border:none;padding:.55rem .25rem;font-weight:700;text-align:left}.ramp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.45rem;padding:.25rem 0 .35rem}.ramp-square{position:relative;min-height:4.6rem;border-radius:8px;border:1px solid rgba(0,0,0,.35);color:#0b0f14;font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;padding:.35rem .25rem 1.1rem;cursor:pointer;box-shadow:inset 0 0 0 1px #ffffff14}.ramp-square .num{font-size:1.05rem;line-height:1}.ramp-square .plate{font-size:.62rem;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.95}.ramp-square .plate.secondary{opacity:.8}.ramp-square.split{padding:0;overflow:hidden;color:#0b0f14}.ramp-square.split .half{flex:1;width:100%;min-height:2.3rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;padding:.2rem}.ramp-square.split .half.top{border-bottom:1px solid rgba(0,0,0,.25)}.badge-row{position:absolute;left:3px;right:3px;bottom:3px;display:flex;justify-content:center;gap:2px;flex-wrap:wrap}.badge{font-size:.55rem;font-weight:800;letter-spacing:.02em;padding:.08rem .25rem;border-radius:3px;background:#0000008c;color:#fff}.badge-outgoing_pending{background:#a16207}.badge-outgoing_claimed{background:#9a3412}.badge-push_back{background:#1d4ed8}.state-green,.swatch.state-green{background:#22c55e}.state-yellow,.swatch.state-yellow{background:#eab308}.state-orange,.swatch.state-orange{background:#f97316}.state-red,.swatch.state-red{background:#ef4444;color:#fff}.state-gray,.swatch.state-gray{background:#4b5563;color:#e5e7eb}.state-split,.swatch.state-split{background:linear-gradient(180deg,#ef4444 50%,#eab308 50%)}.ramp-square.state-red .plate,.ramp-square.state-gray .plate,.half.state-red .plate{color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;padding:1rem;z-index:50}.modal.command-shell{width:min(560px,100%);max-height:min(90vh,860px);overflow:auto;padding:1rem 1.1rem 1.25rem}.modal-head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.modal-head h2{margin:0}.state-banner{margin:.75rem 0;padding:.55rem .7rem;border-radius:8px;display:flex;justify-content:space-between;gap:.5rem;color:#0b0f14;font-size:.9rem}.state-banner.state-red,.state-banner.state-gray{color:#fff}.detail-grid{display:grid;grid-template-columns:9rem 1fr;gap:.35rem .75rem;margin:0 0 1rem;font-size:.9rem}.detail-grid dt{color:#9aa8b8}.detail-grid dd{margin:0}.action-list{list-style:none;padding:0;margin:.35rem 0;display:flex;flex-wrap:wrap;gap:.4rem}.action-list button{font-size:.8rem;padding:.4rem .6rem}.demo-form{margin-top:1rem;padding-top:.75rem;border-top:1px solid #2a3a4f}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.35rem .75rem}@media(max-width:640px){.form-grid{grid-template-columns:1fr}.ramp-grid{grid-template-columns:repeat(auto-fill,minmax(4.6rem,1fr))}}.btn-link{display:inline-flex;align-items:center;text-decoration:none;padding:.45rem .75rem}.stack-sm{display:flex;flex-direction:column;gap:.75rem}.inline-form{display:flex;flex-wrap:wrap;gap:.4rem;align-items:end;margin:.35rem 0}.inline-form input{min-width:7rem}.task-block{border-top:1px solid #2a3a4f;padding-top:.6rem;margin-top:.4rem}.presence-bar h3{margin:0 0 .5rem;font-size:.95rem}.presence-list{display:flex;flex-wrap:wrap;gap:.5rem .85rem}.presence-chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem}.bullet{width:.7rem;height:.7rem;border-radius:50%;display:inline-block}.bullet-green{background:#22c55e}.bullet-red{background:#ef4444}.bullet-blue{background:#3b82f6}.driver-page .card{margin-bottom:.85rem;max-width:none}.task-list{list-style:none;padding:0;margin:0 0 .75rem;display:flex;flex-direction:column;gap:.45rem}.task-item{border:1px solid #2a3a4f;border-radius:10px;padding:.75rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;cursor:pointer}.task-item.selected{border-color:#3b82f6;background:#1a2740}.task-item.mine{cursor:default}button.big{font-size:1.1rem;padding:.85rem 1.2rem;width:100%;max-width:28rem}button.big.ok{background:#16a34a}.abort-box{width:100%;display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}.notify-banner{background:#1e3a5f;border:1px solid #3b82f6;padding:.6rem .8rem;border-radius:8px}.history-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.history-item{max-width:none}button.danger{border-color:#7f1d1d;color:#fca5a5}.cmd-actions{margin-top:.5rem}.filter-bar{margin-bottom:1rem}.code.tiny{font-size:.72rem;max-height:4.5rem;overflow:auto;margin:.35rem 0 0}.empty-state{padding:1.5rem;text-align:center;border:1px dashed #2a3a4f;border-radius:10px}.driver-page{max-width:560px;padding-bottom:2.5rem}.driver-page .task-item{flex-direction:column;align-items:stretch}.driver-page button.big{max-width:none;min-height:3rem;touch-action:manipulation}.driver-page .task-list{max-height:none}.driver-page .topbar{position:sticky;top:0;z-index:10;background:#0b1016;padding-bottom:.5rem}@media(max-width:480px){.page{padding:.75rem}.ramp-grid{grid-template-columns:repeat(auto-fill,minmax(4.2rem,1fr))}.modal.command-shell{max-height:92vh}.form-grid{grid-template-columns:1fr}.driver-page button.big{font-size:1.15rem}}.toast-stack{position:fixed;right:1rem;bottom:1rem;z-index:100;display:flex;flex-direction:column;gap:.4rem;max-width:min(22rem,92vw)}.toast{padding:.7rem .9rem;border-radius:10px;font-weight:600;box-shadow:0 8px 24px #00000059;animation:toast-in .2s ease}.toast-success{background:#166534;color:#ecfdf5}.toast-error{background:#7f1d1d;color:#fee2e2}.toast-info{background:#1e3a5f;color:#e0f2fe}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.offline-banner{padding:.55rem .75rem;border-radius:8px;margin-bottom:.75rem;font-weight:600;font-size:.9rem}.offline-banner.hard{background:#7f1d1d;color:#fee2e2}.offline-banner.soft{background:#713f12;color:#fef3c7}.version-badge{display:inline-block;font-size:.7rem;font-weight:700;padding:.1rem .4rem;border-radius:999px;background:#1f2937;color:#9ca3af;vertical-align:middle}.status-list{margin:0;padding-left:1.1rem}.status-list .ok{color:#4ade80;font-weight:700}.status-list .bad{color:#f87171;font-weight:700}.ramp-square{min-height:5rem}.ramp-square .plate{font-size:.68rem;font-weight:700;background:#0000002e;padding:.05rem .2rem;border-radius:3px;max-width:95%}.badge{font-size:.62rem;padding:.12rem .3rem;border:1px solid rgba(255,255,255,.25)}.ramp-square.split .half{min-height:2.5rem}@media(max-width:480px){.badge{font-size:.58rem}.ramp-square .num{font-size:1.15rem}}.occupied-dialog{margin-top:.75rem;padding:.85rem .9rem;border-radius:10px;border:1px solid #b45309;background:#422006;color:#ffedd5}.occupied-dialog h4{margin:0 0 .4rem;color:#fdba74}.occupied-dialog p{margin:.35rem 0}.pilot-banner{background:linear-gradient(90deg,#854d0e,#a16207);color:#fefce8;padding:.45rem .75rem;border-radius:8px;margin-bottom:.65rem;font-size:.88rem;border:1px solid #ca8a04}.pilot-banner .muted{color:#fde68a}.pilot-pill{display:inline-block;background:#422006;color:#fbbf24;border:1px solid #b45309;border-radius:999px;padding:.2rem .65rem;font-size:.8rem;font-weight:700;margin:0 0 .5rem}.driver-page .status-strip{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.65rem .75rem;background:#0f172a;border-radius:10px;border:1px solid #1e293b;margin-bottom:.75rem;font-size:.95rem}.driver-page button.big{min-height:3.25rem;font-size:1.2rem;letter-spacing:.01em}.driver-page .task-item.selected{box-shadow:0 0 0 2px #3b82f6}.driver-page .task-item.mine{border-color:#166534;background:#052e16}
