:root{--hc-bg:#08080A;--hc-bg-soft:#0E0E11;--hc-surface:#141417;--hc-surface-2:#1C1C21;--hc-surface-3:#26262D;--hc-line:#26262C;--hc-line-strong:#3A3A43;--hc-text:#FFFFFF;--hc-text-2:#A6A6B2;--hc-text-3:#6E6E7A;--hc-yellow:#FFD60A;--hc-yellow-deep:#F5A623;--hc-yellow-glow:rgba(255,214,10,0.30);--hc-on-yellow:#08080A;--hc-blue:#4D8DFF;--hc-success:#2FD16B;--hc-danger:#FF453A;--hc-warning:#FF9F0A;--hc-success-bg:rgba(47,209,107,0.12);--hc-danger-bg:rgba(255,69,58,0.12);--hc-warning-bg:rgba(255,159,10,0.12);--hc-blue-bg:rgba(77,141,255,0.12);--hc-r-sm:10px;--hc-r:14px;--hc-r-lg:22px;--hc-r-pill:9999px;--hc-shadow:0 1px 0 rgba(255,255,255,0.04) inset,0 8px 30px rgba(0,0,0,0.5);--hc-shadow-lg:0 1px 0 rgba(255,255,255,0.05) inset,0 24px 60px rgba(0,0,0,0.6);--hc-glow:0 0 0 1px rgba(255,214,10,0.25),0 10px 40px rgba(255,214,10,0.18);--hc-display:system-ui,-apple-system,"Segoe UI",sans-serif;--hc-body:system-ui,-apple-system,"Segoe UI",sans-serif;--hc-mono:ui-monospace,"Cascadia Code",monospace;--bus-yellow:#FFD60A;--bus-yellow-glow:rgba(255,214,10,0.30);--bus-orange:#F5A623;--primary:#FFD60A;--primary-hover:#F5C800;--primary-glow:rgba(255,214,10,0.30);--bg-color:#08080A;--surface:#141417;--surface-2:#1C1C21;--surface-border:#26262C;--surface-border-hover:#3A3A43;--text-main:#F0F0F5;--text-muted:#A6A6B2;--text-dim:#6E6E7A;--success:#2FD16B;--success-bg:rgba(47,209,107,0.12);--danger:#FF453A;--danger-bg:rgba(255,69,58,0.12);--warning:#FF9F0A;--warning-bg:rgba(255,159,10,0.12);--info:#4D8DFF;--info-bg:rgba(77,141,255,0.12);--xp-gold:#FFD60A;--xp-silver:#A6A6B2;--xp-bronze:#F5A623;--streak-bg:linear-gradient(135deg,rgba(255,214,10,0.06),rgba(245,166,35,0.03));--radius:12px;--radius-sm:8px;--radius-lg:20px;--transition:all 0.25s cubic-bezier(0.2,0.8,0.2,1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--hc-body);background-color:var(--hc-bg);color:var(--hc-text);min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased}.glass-panel{border:1px solid var(--hc-line);border-radius:var(--radius)}.glass-card,.glass-panel{background:var(--hc-surface);box-shadow:var(--hc-shadow)}.glass-card{border:1px solid var(--hc-line);border-radius:var(--hc-r);padding:1.5rem;transition:var(--transition)}.glass-card:hover{transform:translateY(-2px);border-color:var(--hc-line-strong);box-shadow:var(--hc-shadow-lg)}h1,h2,h3,h4{font-family:var(--hc-display);font-weight:700;letter-spacing:-.025em;color:var(--hc-text)}h1{font-size:2.25rem}h2{font-size:1.85rem}h3{font-size:1.4rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.75rem;border-radius:9999px;font-weight:700;font-size:.9rem;letter-spacing:.01em;cursor:pointer;transition:var(--transition);border:1px solid transparent;gap:.5rem;font-family:inherit}.btn-primary{background-color:var(--hc-yellow);color:var(--hc-on-yellow);box-shadow:var(--hc-glow)}.btn-primary:hover{background-color:var(--hc-yellow-deep);transform:translateY(-2px)}.btn-success{background-color:var(--hc-success);color:#08080A}.btn-outline{background:transparent;border-color:var(--hc-line);color:var(--hc-text);padding:.55rem 1.1rem}.btn-outline:hover{border-color:var(--hc-yellow)}.input-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.25rem}.input-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--hc-text-3)}.input-field{width:100%;padding:.85rem 1.25rem;background:var(--hc-surface);border:1px solid var(--hc-line);border-radius:var(--hc-r);color:var(--hc-text);font-family:inherit;font-size:.95rem;transition:var(--transition);color-scheme:dark}.input-field:focus{outline:none;border-color:var(--hc-yellow);box-shadow:0 0 0 3px var(--hc-yellow-glow)}.input-field::placeholder{color:var(--hc-text-3)}.container{width:100%;max-width:1440px;margin:0 auto;padding:0 2rem}@media (max-width:640px){.container{padding:0 1rem}}main{flex:1 1;padding:2rem 0}@media (max-width:768px){.input-field,.select-field{font-size:16px}}@media (max-width:640px){.bento-grid{grid-template-columns:1fr}.bento-card{padding:1.25rem}.modal-box{padding:1.5rem}}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .85rem;border-radius:9999px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.badge-self-pickup{background:var(--hc-warning-bg);color:var(--hc-warning)}.badge-pending{background:var(--hc-surface-2);color:var(--hc-text-3)}.badge-checked-out,.badge-success{background:var(--hc-success-bg);color:var(--hc-success)}.badge-danger{background:var(--hc-danger-bg);color:var(--hc-danger)}.badge-warning{background:var(--hc-warning-bg);color:var(--hc-warning)}.badge-info{background:var(--hc-blue-bg);color:var(--hc-blue)}.badge-xp{background:linear-gradient(135deg,var(--hc-yellow),var(--hc-yellow-deep));color:#08080A;box-shadow:0 0 12px var(--hc-yellow-glow)}.xp-bar-track{background:var(--hc-surface-2);border-radius:9999px;height:8px;overflow:hidden}.xp-bar-fill{height:100%;border-radius:9999px;background:linear-gradient(90deg,var(--hc-yellow),var(--hc-yellow-deep));transition:width 1s cubic-bezier(.34,1.56,.64,1);box-shadow:0 0 8px var(--hc-yellow-glow)}.streak-card{background:var(--streak-bg);border:1px solid rgba(255,214,10,.15);border-radius:var(--radius-sm);padding:1.25rem;display:flex;align-items:center;gap:1rem}@keyframes pulse-ring{0%{transform:scale(.85);opacity:1;box-shadow:0 0 0 0 var(--hc-yellow-glow)}70%{transform:scale(1.1);box-shadow:0 0 0 10px rgba(255,214,10,0)}to{transform:scale(.85);opacity:1;box-shadow:0 0 0 0 rgba(255,214,10,0)}}.pulse-ring{animation:pulse-ring 2s cubic-bezier(.2,.8,.2,1) infinite}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));overflow-y:auto}.modal-box{background:var(--hc-surface);border:1px solid var(--hc-line);border-radius:var(--hc-r-lg);padding:2.5rem;width:100%;max-width:480px;max-height:calc(100dvh - 2rem);overflow-y:auto;box-shadow:var(--hc-shadow-lg)}.confirm-dialog{position:relative;max-width:460px;padding:2rem}.confirm-dialog-close{position:absolute;top:1rem;right:1rem}.confirm-dialog-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;margin-bottom:1rem}.confirm-dialog-icon.danger{color:var(--hc-danger);background:rgba(255,69,58,.12);border:1px solid rgba(255,69,58,.28)}.confirm-dialog-icon.warning{color:var(--hc-yellow);background:rgba(255,214,10,.1);border:1px solid rgba(255,214,10,.25)}.confirm-dialog h3{margin:0 2.5rem .65rem 0;font-size:1.25rem}.confirm-dialog p{margin:0;color:var(--hc-text2);line-height:1.6}.confirm-dialog-verify{display:grid;gap:.6rem;margin-top:1.25rem;color:var(--hc-text2);font-size:.86rem}.confirm-dialog-verify .input-field{margin:0}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.confirm-dialog-actions .btn{min-width:110px;justify-content:center}.fleet-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media (max-width:900px){.fleet-grid{grid-template-columns:minmax(0,1fr)}.modal-overlay{align-items:flex-start}.modal-box{padding:1.25rem;max-height:calc(100dvh - 2rem)}}.select-field{width:100%;padding:.85rem 1.25rem;background:var(--hc-surface);border:1px solid var(--hc-line);border-radius:var(--hc-r);color:var(--hc-text);font-family:inherit;font-size:.95rem;transition:var(--transition);appearance:none;color-scheme:dark}.select-field:focus{outline:none;border-color:var(--hc-yellow);box-shadow:0 0 0 3px var(--hc-yellow-glow)}.select-field option{background-color:#1C1C21;color:#FFFFFF}select{color-scheme:dark;color:var(--hc-text);background-color:var(--hc-surface)}select option{background-color:#1C1C21;color:#FFFFFF}.bento-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem}.bento-card{background:var(--hc-surface);border:1px solid var(--hc-line);border-radius:var(--hc-r-lg);padding:1.5rem;display:flex;flex-direction:column;transition:var(--transition);box-shadow:var(--hc-shadow)}.bento-card:hover{border-color:var(--hc-line-strong);transform:translateY(-3px);box-shadow:var(--hc-shadow-lg)}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton{background:linear-gradient(90deg,var(--hc-surface) 25%,var(--hc-surface-2) 50%,var(--hc-surface) 75%);background-size:600px 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}@keyframes spin{to{transform:rotate(1turn)}}table td,table th{vertical-align:middle}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--hc-line-strong);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--hc-text-3)}div::-webkit-scrollbar{height:0}.input-field[style*="border-color: var(--danger)"]{box-shadow:0 0 0 3px var(--hc-danger-bg)}.stat-card{background:var(--hc-surface);border:1px solid var(--hc-line);border-radius:var(--radius-sm)}.stat-card.red{border-left:3px solid var(--hc-danger)}.stat-card.blue{border-left:3px solid var(--hc-blue)}.stat-card.green{border-left:3px solid var(--hc-success)}.toast{z-index:10000!important}.chat-layout{display:grid;grid-template-columns:minmax(210px,30%) 1fr;min-height:560px;border:1px solid var(--surface-border);border-radius:14px;overflow:hidden}.chat-contacts{border-right:1px solid var(--surface-border);overflow-y:auto}.chat-contacts>button{width:100%;padding:12px 14px;border:0;border-bottom:1px solid var(--surface-border);background:transparent;color:var(--text-main);text-align:left;cursor:pointer;display:grid;gap:3px}.chat-contacts>button.selected{background:rgba(255,214,10,.12)}.chat-contacts>button.chat-contact-unread{background:rgba(255,214,10,.14);border-left:3px solid #ffd60a}.chat-contacts>button.chat-contact-unread.selected{background:rgba(255,214,10,.24)}.chat-contacts>button strong{display:flex;justify-content:space-between;align-items:center;gap:8px}.chat-unread-dot{width:10px;height:10px;background:#ff453a;border-radius:50%;box-shadow:0 0 0 4px rgba(255,69,58,.19);flex:0 0 auto}.chat-new-message{border-left:3px solid #ffd60a;box-shadow:0 0 0 3px rgba(255,214,10,.12)}.import-issues{margin:14px 0;padding:12px 16px;border:1px solid rgba(255,184,40,.42);border-radius:10px;background:rgba(255,184,40,.09);color:var(--text-main);max-height:230px;overflow:auto}.import-issues strong{color:#ffd60a}.import-issues ul{margin:8px 0 0;padding-left:20px;line-height:1.65}.chat-contacts small,.chat-contacts span,.chat-thread header span{color:var(--text-muted);font-size:11px}.chat-contacts small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-thread{display:flex;flex-direction:column;min-width:0}.chat-thread>header{padding:14px;border-bottom:1px solid var(--surface-border);display:grid}.chat-thread>.message-list{flex:1 1;padding:16px;overflow-y:auto;max-height:470px}.chat-thread>.message-compose{padding:14px;border-top:1px solid var(--surface-border)}@media(max-width:700px){.chat-layout{grid-template-columns:1fr}.chat-contacts{border-right:0;border-bottom:1px solid var(--surface-border);max-height:190px}.chat-thread{min-height:430px}}.chat-search{display:flex;align-items:center;gap:7px;margin:0 10px 10px;padding:8px 10px;border:1px solid var(--hc-line);border-radius:10px;background:var(--hc-surface-2);color:var(--hc-text-3)}.chat-search input{width:100%;border:0;outline:0;background:transparent;color:var(--hc-text);font:inherit;font-size:12px}.nav-new-dot{width:8px;height:8px;border-radius:50%;background:#ff453a;box-shadow:0 0 0 3px rgba(255,69,58,.16);margin-left:auto;flex:0 0 auto}.bulk-file{max-width:220px;cursor:pointer;overflow:hidden}.bulk-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bulk-file input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.history-delete{display:inline-flex;align-items:center;gap:6px;margin:9px 0;padding:6px 9px;border:1px solid rgba(255,69,58,.3);border-radius:8px;background:rgba(255,69,58,.08);color:var(--hc-danger);cursor:pointer}.transport-shell .glass-panel,.transport-shell .modal-box{background:var(--hc-surface);color:var(--hc-text);border-color:var(--hc-line)}.transport-shell{--ink:#122c43;--muted:#526a7d;--line:#dce5ed;--brand:#156bce;--gold:#ffd451;background:#f2f6fa;min-height:100vh;font-size:16px;line-height:1.6}.transport-header{height:88px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:24px;padding:0 max(24px,calc((100vw - 1240px) / 2));position:sticky;top:0;z-index:50}.transport-header img{max-height:50px;object-fit:contain}.transport-school{margin-right:auto;font-weight:650}.transport-main{max-width:1240px;margin:auto;padding:34px 24px 100px}.transport-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.transport-heading h1{font-size:clamp(26px,4vw,36px);margin:2px 0;letter-spacing:-.8px}.eyebrow{font-weight:650;letter-spacing:.08em;text-transform:uppercase;margin:0}.date-label,.eyebrow{font-size:14px;color:var(--muted)}.transport-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:30px;overflow:auto}.transport-tabs button{display:flex;align-items:center;gap:10px;white-space:nowrap;padding:15px 22px;background:none;border:0;border-bottom:3px solid transparent;color:var(--muted);font:600 16px inherit;cursor:pointer;position:relative}.transport-tabs button.selected{border-bottom-color:var(--brand);color:var(--brand)}.transport-tabs i{width:7px;height:7px;background:#d94c42;border-radius:50%}.journey-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.transport-shell h2{font-size:22px;margin:0 0 12px;line-height:1.35;display:flex;gap:10px;align-items:center}.transport-shell h3{font-size:18px;line-height:1.4;margin:0}.transport-shell p{margin:6px 0 14px}.live-label{color:#12835d;background:#def5e9;padding:5px 13px;border-radius:30px;font-size:14px;font-weight:700}.map-card{border-radius:22px;overflow:hidden;border:1px solid var(--line);margin-bottom:20px}.journey-card,.student-attendance-card{background:white;border:1px solid var(--line);border-radius:20px;padding:24px;margin-bottom:20px;animation:surface-in .35s ease-out}.bus-title{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.bus-title p{color:var(--muted);margin:3px 0}.bus-icon,.child-avatar{width:54px;height:54px;display:grid;place-items:center;background:#e7f0fc;border-radius:17px;color:var(--brand);flex-shrink:0}.child-avatar{background:#e6f4f0;color:#14654d;font-size:24px;font-weight:750}.bus-title .status-pill{margin-left:auto}.status-pill{font-size:14px;font-weight:600;border-radius:24px;padding:5px 12px;background:#edf1f5;color:#526779}.status-pill.green{background:#dff7ed;color:#126b49}.status-pill.amber{background:#fff0ce;color:#835a00}.arrival-row{justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line);gap:16px}.arrival-row,.arrival-row p{display:flex;align-items:center}.arrival-row p{gap:5px;font-size:14px;color:var(--muted);margin:4px 0}.eta-number{font-size:42px;line-height:1.2;font-weight:750;color:var(--brand);text-align:right}.eta-number small{display:block;font-size:14px;font-weight:500;max-width:150px}.crew-details{display:flex;gap:18px;flex-wrap:wrap;font-size:14px;padding-top:18px;color:var(--muted)}.horn-card{background:#142f48;color:white;border-radius:22px;padding:28px;margin-bottom:24px}.horn-card h2{margin-top:20px}.horn-card p{color:#d4e3ef;font-size:16px}.horn-symbol{display:grid;place-items:center;width:58px;height:58px;background:#ffd451;color:#15344d;border-radius:18px}.emergency-button,.transport-primary,.transport-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;min-height:46px;border:0;border-radius:11px;font:600 16px/1.4 inherit;cursor:pointer;transition:transform .18s,box-shadow .18s}.transport-primary{background:#176dce;color:white}.crew-route-card .transport-primary,.horn-card .transport-primary{background:#ffd451;color:#14314a;width:100%}.transport-secondary{background:#eef3f8;color:#203f59;border:1px solid #d6e1eb}.transport-primary:hover,.transport-secondary:hover{transform:translateY(-2px);box-shadow:0 4px 10px #16395415}.transport-shell button:disabled{opacity:.5;cursor:not-allowed;transform:none}.sound-status{display:flex;gap:7px;align-items:center;font-size:14px;color:#a3ebca;margin:12px 0}.transport-shell .subtle,.transport-shell time{font-size:14px;color:var(--muted)}.horn-card .subtle{color:#bccedc;margin-top:16px}.horn-card .transport-secondary{width:100%}.transport-shell input,.transport-shell select,.transport-shell textarea{width:100%;min-height:46px;padding:11px 13px;background:white;color:var(--ink);border:1px solid #cbd8e2;border-radius:10px;font:inherit;box-sizing:border-box}.transport-shell textarea{min-height:105px;resize:vertical;margin:12px 0}.transport-shell label{display:block;font-size:14px;font-weight:650;margin:14px 0}.transport-shell label input,.transport-shell label select{margin-top:6px}.transport-shell :focus-visible{outline:3px solid #79b8ff;outline-offset:3px}.child-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.contact-link{display:flex;gap:8px;align-items:center;color:var(--brand);margin-top:18px}.transport-empty{padding:35px 24px;text-align:center;color:var(--muted);background:#eaf0f6;border:1px dashed #c8d6e3;border-radius:16px;margin:18px 0}.arrival-banner,.notice-bar{display:flex;gap:12px;align-items:center;padding:16px 20px;background:#fff0cf;border:1px solid #f0d293;color:#6b4b00;border-radius:14px;margin-bottom:22px}.notice-bar button{margin-left:auto;display:flex;gap:6px;background:none;border:0;color:inherit;cursor:pointer}.arrival-banner{background:#ffd451;color:#102f47}.arrival-banner div{flex:1 1}.arrival-banner p{margin:0}.arrival-banner button{background:white;border:0;border-radius:8px;padding:8px 13px}.alert-item{display:flex;gap:15px;padding:20px 0;border-bottom:1px solid var(--line);align-items:flex-start}.alert-item>div{flex:1 1}.alert-item.unread{border-left:3px solid var(--brand);padding-left:15px}.alert-item p{font-size:16px}.message-list{max-height:500px;overflow:auto;padding:10px 0}.message-bubble{background:#f0f4f8;border-radius:15px;padding:15px 20px;max-width:85%;margin:0 auto 18px 0;position:relative}.message-bubble.mine{background:#e3eefc;margin-left:auto;margin-right:0}.message-bubble .icon-button{float:right}.message-compose{display:flex;gap:12px;margin-top:18px}.icon-button{width:40px;height:40px;border:0;border-radius:10px;background:transparent;display:grid;place-items:center;cursor:pointer;color:inherit}.logout-button{color:#b83130;background:#fff0ef}.attendance-history{display:grid;grid-template-columns:1fr auto;gap:6px;padding:15px 0;border-bottom:1px solid var(--line)}.attendance-history time{grid-column:1/-1}.history-entry{margin:24px 0}.crew-route-card{display:flex;gap:22px;align-items:center;padding:30px;background:linear-gradient(115deg,#132c42,#205978);color:white;border-radius:22px;margin-bottom:20px}.crew-route-card .eyebrow{color:#b6d2e6}.crew-route-card h2{font-size:28px;margin:4px 0}.crew-route-card p{margin-bottom:0}.crew-trip-controls{margin-left:auto}.attendance-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0 30px}.attendance-counts>div{padding:18px 22px;border:1px solid var(--line);border-radius:15px;background:white}.attendance-counts span{font-size:14px;color:var(--muted)}.attendance-counts strong{font-size:30px;display:block}.roster-filters{display:flex;gap:12px;margin-bottom:20px}.roster-filters input{flex:1 1}.roster-filters select{max-width:240px}.stop-pair{margin:18px 0}.stop-pair p{display:flex;align-items:center;gap:8px;font-size:14px;margin:8px 0;flex-wrap:wrap}.attendance-actions{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap}.attendance-actions button{flex:1 1}.stop-timeline{padding:0;list-style:none}.stop-timeline li{display:flex;gap:14px;align-items:center;margin:20px 0;font-size:15px}.stop-timeline li span{border:1px solid #bdd3e4;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;flex-shrink:0;font-size:13px}.emergency-button{background:#fff0ef;color:#b02d2b;width:100%;border:1px solid #e8b7b5}.transport-modal-backdrop{position:fixed;inset:0;background:#061827a8;display:grid;place-items:center;z-index:5000;padding:20px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.transport-modal{width:min(480px,100%);max-height:90dvh;overflow:auto;background:white;border-radius:22px;padding:32px;animation:surface-in .2s ease-out}.transport-shell .checkbox-row{display:flex;gap:12px;align-items:center}.transport-shell .checkbox-row input{width:22px;min-height:22px;margin:0;flex-shrink:0}@keyframes surface-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:900px){.journey-grid{grid-template-columns:1fr}.journey-grid aside{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.transport-header{padding:0 18px;gap:12px}.transport-school{display:none}.transport-header>div:first-child{margin-right:auto}.transport-main{padding:24px 18px 90px}.crew-route-card{flex-wrap:wrap}.crew-trip-controls{width:100%;margin:0}.transport-tabs button{padding:13px 16px}.transport-tabs span{font-size:14px}}@media (max-width:580px){.transport-header{height:76px}.transport-heading{margin-bottom:18px}.date-label{display:none}.transport-tabs{gap:0;position:sticky;top:76px;background:#f2f6fa;z-index:30}.transport-tabs button{flex:1 1;padding:12px 8px;flex-direction:column;gap:5px}.transport-tabs span{font-size:12px}.child-grid,.journey-grid aside{grid-template-columns:1fr}.journey-card,.student-attendance-card{padding:20px}.attendance-counts{grid-template-columns:repeat(2,1fr)}.roster-filters{flex-direction:column}.roster-filters select{max-width:none}.alert-item{flex-wrap:wrap}.alert-item .transport-secondary{margin-left:35px}.crew-route-card{padding:24px}.message-bubble{max-width:95%}.bus-title .status-pill{margin-left:0}.attendance-actions{flex-direction:column}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.transport-shell{--surface:#fff;--surface-2:#f0f4f8;--surface-border:#dce4ed;--text-main:#142c47;--text-muted:#52657b;--text-dim:#62758a;--primary:#244e78;--success:#18765a;color:#142c47}.transport-shell .glass-panel{background:#fff;border:1px solid #dce4ed;color:#142c47;border-radius:20px}.transport-shell aside{display:flex;flex-direction:column;gap:20px}.transport-shell aside>.glass-panel{height:auto!important}.transport-shell a:focus-visible,.transport-shell button:focus-visible{outline:3px solid #2d78bb;outline-offset:3px}.transport-tabs button{font-family:inherit;font-size:16px;font-weight:600}.transport-shell{--ink:#f0f0f5;--muted:#a6a6b2;--line:#26262c;--brand:#ffd60a;--gold:#ffd60a;background:#08080a;color:var(--ink)}.transport-header{background:#0e0e11;border-color:#26262c}.attendance-counts>div,.journey-card,.student-attendance-card,.transport-modal{background:#141417;border-color:#26262c;box-shadow:0 8px 30px #0003}.transport-shell input,.transport-shell select,.transport-shell textarea{background:#1c1c21;color:#f0f0f5;border-color:#3a3a43;color-scheme:dark}.crew-route-card .transport-primary,.horn-card .transport-primary,.transport-primary{background:#ffd60a;color:#08080a;font-weight:750}.transport-secondary{background:#1c1c21;color:#f0f0f5;border-color:#3a3a43}.crew-route-card,.horn-card{background:linear-gradient(120deg,#141417,#242319);border:1px solid #3a3829}.bus-icon,.horn-symbol{background:#ffd60a;color:#08080a}.child-avatar{background:#ffd60a1c;color:#ffd60a}.transport-empty{background:#141417;border-color:#3a3a43}.status-pill{background:#26262d;color:#ccc}.live-label,.status-pill.green{background:#2fd16b1f;color:#2fd16b}.status-pill.amber{background:#ff9f0a1f;color:#ffb54e}.notice-bar{background:#ffd60a12;border-color:#ffd60a55;color:#ffdf59}.arrival-banner{background:#ffd60a;color:#08080a}.message-bubble{background:#1c1c21}.message-bubble.mine{background:#ffd60a15;border:1px solid #ffd60a33}.emergency-button,.logout-button{color:#ff6259;background:#ff453a1f;border-color:#ff453a55}.stop-timeline li span{border-color:#ffd60a55;color:#ffd60a}.crew-route-card .eyebrow,.horn-card p{color:#c9c7b7}.transport-tabs button.selected{color:#ffd60a;border-color:#ffd60a}.transport-shell :focus-visible{outline-color:#ffd60a}.crew-shortcuts{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.crew-shortcuts a{color:#ffd60a;border:1px solid #3a3a43;background:#141417;padding:10px 18px;border-radius:12px;text-decoration:none}.portal-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:28px;align-items:start}.portal-content{min-width:0}.portal-sidebar{position:sticky;top:112px;display:flex;flex-direction:column;gap:8px;padding:12px;background:#101013;border:1px solid #2c2c32;border-radius:18px;margin:0}.portal-layout .transport-tabs{overflow:visible;border:1px solid #2c2c32}.portal-layout .transport-tabs button{width:100%;border:0;border-left:3px solid transparent;border-radius:10px;padding:13px 14px}.portal-layout .transport-tabs button.selected{border-left-color:#ffd60a;background:#ffd60a14}.transport-shell{--surface:#141417;--surface-2:#1c1c21;--surface-border:#3a3a43;--text-main:#f0f0f5;--text-muted:#a6a6b2;--text-dim:#6e6e7a;--primary:#ffd60a;--success:#2fd16b;color:#f0f0f5}.transport-shell .glass-panel,.transport-shell .modal-box{background:#141417;border-color:#3a3a43;color:#f0f0f5}.transport-shell .glass-panel h2,.transport-shell .glass-panel h3,.transport-shell .modal-box h3{color:#f0f0f5}.transport-shell .chat-contacts,.transport-shell .chat-layout,.transport-shell .chat-thread{background:#141417;border-color:#3a3a43;color:#f0f0f5}.transport-shell .chat-contacts>button{color:#f0f0f5;border-color:#3a3a43}.transport-shell .chat-contacts>button:hover{background:#26262d}.transport-shell .historical-attendance{border-left:3px solid #ffd60a}.historical-attendance h3{display:flex;align-items:center;gap:8px;margin-bottom:8px}.historical-attendance p{color:var(--text-muted);font-size:.85rem;margin-bottom:12px}.historical-attendance-rows{display:grid;gap:8px}.historical-attendance-rows article{display:flex;gap:8px 14px;flex-wrap:wrap;align-items:center;padding:10px;border:1px solid var(--surface-border);border-radius:10px;background:var(--surface-2)}.historical-attendance-rows small{color:var(--text-muted)}.driver-portal .crew-shortcuts a{display:flex;align-items:center;gap:10px;margin:0}.broadcast-history{border-top:1px solid #34343b;padding:14px 0}.broadcast-history p{margin:4px 0}.broadcast-history small{color:#a7a7b1}.payment-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px;padding:20px 0;border-bottom:1px solid #303038}.payment-card .transport-primary{text-decoration:none}.payment-card p{color:#a7a7b1;margin:4px 0}#crew-attendance,#crew-broadcast,#crew-history{scroll-margin-top:110px}.transport-tabs{background:#08080a}@media (max-width:580px){.transport-tabs{position:fixed;top:auto;bottom:0;left:0;right:0;z-index:90;margin:0;padding:5px 5px max(5px,env(safe-area-inset-bottom));border-top:1px solid #26262c;border-bottom:0;background:#0e0e11;box-shadow:0 -6px 24px #0005}.transport-tabs button{min-width:54px;padding:8px 4px;border-bottom:0;border-radius:10px}.transport-tabs button.selected{background:#ffd60a14}.transport-tabs span{font-size:10px;white-space:normal;line-height:1.2;max-width:70px}.transport-main{padding-bottom:115px}}@media (max-width:900px){.portal-layout{display:block}.portal-sidebar{position:static;flex-direction:row;overflow:auto;margin-bottom:24px}.portal-layout .transport-tabs{display:flex}.portal-layout .transport-tabs button{width:auto;min-width:max-content;border-left:0;border-bottom:3px solid transparent}.portal-layout .transport-tabs button.selected{border-bottom-color:#ffd60a}.driver-portal .crew-shortcuts{display:flex}.payment-card{grid-template-columns:1fr auto}.payment-card .transport-primary,.payment-card .transport-secondary{grid-column:1/-1}}@media (max-width:580px){.parent-portal .portal-sidebar{position:fixed;top:auto;bottom:0;left:0;right:0;display:flex;flex-direction:row;overflow-x:auto;border-radius:0;margin:0}.parent-portal .portal-sidebar button{min-width:72px}.driver-portal .portal-sidebar{position:sticky;top:76px;z-index:30;flex-wrap:nowrap}.driver-portal .portal-sidebar a{white-space:nowrap}.payment-card{grid-template-columns:1fr}.payment-card .status-pill{width:max-content}}.academic-year-calendar{background:#101013;border:1px solid #2c2c32;border-radius:20px;padding:22px;margin:20px 0 28px;color:#f4f4f6}.calendar-year-controls{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:18px}.calendar-year-controls strong{font-size:22px}.academic-month-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.academic-month{border:1px solid #303038;border-radius:16px;padding:16px;min-width:0}.academic-month h3{font-size:17px;margin-bottom:12px}.month-days,.weekday-row{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.weekday-row span{font-size:11px;color:#92929d;padding:4px 0}.month-days>span{position:relative;display:grid;place-items:center;min-height:30px;border-radius:7px;font-size:12px}.month-days .weekend{background:#1b1b20;color:#73737e}.month-days .today{outline:1px solid #ffd60a;color:#fff}.month-days .has-event{background:linear-gradient(145deg,#4f8cff38,#ffd60a22);color:#fff;font-weight:800;outline:1px solid #4f8cffaa;box-shadow:inset 0 0 0 1px #ffffff0d}.month-days span>i{position:absolute;bottom:3px;display:flex;gap:2px}.month-days span>i b{width:6px;height:6px;border-radius:50%;box-shadow:0 0 0 1px #101013,0 0 7px currentColor}.calendar-legend{display:flex;gap:20px;flex-wrap:wrap;margin-top:18px;color:#a6a6b2;font-size:13px}.calendar-legend span{display:flex;align-items:center;gap:7px}.calendar-legend i{width:14px;height:14px;border-radius:4px;background:#1b1b20}.calendar-legend i.event{background:#4f8cff}.calendar-legend i.today{background:transparent;border:1px solid #ffd60a}.parent-boarding-action,.parent-confirmation-request{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0;padding:12px;border:1px solid #ffd60a55;background:#ffd60a0c;border-radius:12px}.parent-confirmation-request span{flex:1 1}.parent-confirmation-request svg{color:#ffd60a}.crew-trip-controls{min-width:230px}.crew-trip-controls label{margin:0 0 10px}.crew-trip-controls select{background:#1c1c21}.academic-calendar-card{max-width:none}.driver-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.info-row{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr);gap:12px;align-items:baseline;padding:11px 0;border-bottom:1px solid #2d2d33}.info-row span{color:#a7a7b1;font-size:14px}.info-row strong{text-align:right;overflow-wrap:anywhere}.driver-roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.driver-roster-grid .student-attendance-card{margin-bottom:0}.trip-stop-progress{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));list-style:none;padding:8px 0 28px;margin:0}.trip-stop-progress li{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0}.trip-stop-progress li>span{position:relative;z-index:2;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;border:2px solid #45454d;background:#17171b;color:#9999a4;font-weight:800}.trip-stop-progress li>i{position:absolute;top:20px;left:calc(50% + 21px);right:calc(-50% + 21px);height:3px;background:#35353c}.trip-stop-progress li.completed>span{background:#1f9d6b;border-color:#58deb0;color:white}.trip-stop-progress li.completed>i{background:linear-gradient(90deg,#1f9d6b,#ffd60a);animation:route-progress 1.2s ease-out;transform-origin:left}.trip-stop-progress li.active>span{border-color:#ffd60a;color:#ffd60a;box-shadow:0 0 0 6px #ffd60a19;animation:active-stop 1.5s ease-in-out infinite}.trip-stop-progress li div{padding-top:10px;min-width:0}.trip-stop-progress li strong{display:block;overflow-wrap:anywhere}.trip-stop-progress li small{display:block;color:#8f8f9a;margin-top:3px}.trip-stop-progress li.completed small{color:#58deb0}.stop-complete-button{margin:8px auto 0;display:flex}.gps-override-warning,.route-complete-banner{display:flex;align-items:center;gap:12px;border:1px solid #4acb9b66;background:#173c30;color:#9cf0cf;border-radius:13px;padding:14px 16px}.gps-override-warning{border-color:#ffcc3d66;background:#3b2c0d;color:#ffe38a;margin:16px 0;align-items:flex-start}.gps-override-warning p{margin:2px 0 0;color:inherit}.danger-confirm{background:#d59700;color:#111}.emergency-panel{max-width:650px;border-color:#7e3232}.emergency-panel>svg{color:#ff6b64}.refund-policy{margin-top:26px;border-top:1px solid #303038;padding-top:18px}.refund-policy summary{cursor:pointer;color:#ffd60a;font-weight:800;font-size:18px}.refund-policy ol{padding-left:24px}.refund-policy li{padding:8px 0}.refund-policy p{color:#b5b5bf;margin:4px 0}@keyframes route-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes active-stop{50%{box-shadow:0 0 0 11px #ffd60a05}}@media (max-width:1100px){.academic-month-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.driver-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.academic-month-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.driver-info-grid,.driver-roster-grid,.trip-stop-progress{grid-template-columns:1fr}.trip-stop-progress{gap:0;padding-left:8px}.trip-stop-progress li{min-height:76px;flex-direction:row;text-align:left;gap:14px;align-items:flex-start}.trip-stop-progress li>i{top:42px;left:20px;bottom:0;width:3px;height:auto;right:auto}.trip-stop-progress li div{padding-top:2px}}@media (max-width:480px){.academic-year-calendar{padding:14px}.academic-month-grid{grid-template-columns:1fr}.academic-month{padding:14px;aspect-ratio:auto}}.academic-month{aspect-ratio:1/1;display:flex;flex-direction:column}.academic-month h3{margin-bottom:10px}.month-days{grid-template-rows:repeat(6,1fr);flex:1 1}.month-days>span{min-height:0}.weekday-row span{padding:3px 0}.month-days span>i{bottom:2px}