:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#153d3a;background:#f5f6f1;font-synthesis:none;line-height:1.55}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;background:#174d45;color:#fff;border:1px solid #174d45;border-radius:10px;padding:13px 18px;min-height:48px;font-weight:650;display:inline-flex;justify-content:center;gap:12px;align-items:center}button:hover{background:#103d37}button:disabled{opacity:.6;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #be6d22;outline-offset:3px}.secondary{background:transparent;color:#174d45;border-color:#bdccc5}.secondary:hover{background:#edf3eb}.link-button{color:#174d45;background:none;border:none;padding:10px 0;text-decoration:underline}.link-button:hover{background:none}a{color:inherit}input,select{width:100%;padding:12px;border:1px solid #b0c2b9;border-radius:8px;background:#fff;color:#183d37;min-height:48px}label{display:block;margin:16px 0 6px;font-size:.9rem;font-weight:650}form>button{width:100%;margin-top:22px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2rem,4vw,3.8rem);line-height:1.08;letter-spacing:-.04em;font-weight:650}h2{font-size:1.7rem;letter-spacing:-.025em;line-height:1.2}h3{font-size:1.05rem}.test-banner{padding:9px 18px;text-align:center;background:#efe5cd;color:#62471b;font-size:.76rem;font-weight:650;letter-spacing:.02em}header{max-width:1220px;margin:auto;padding:30px 42px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #dce4da}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:1.65rem;font-weight:750;letter-spacing:-.055em}.brand-symbol{width:34px;height:36px;background:#184c43;color:#fff;border-radius:11px 11px 11px 3px;display:grid;place-items:center;font-size:1.3rem}.badge{font-size:.6rem;letter-spacing:.08em;border:1px solid #c6d5c8;border-radius:5px;padding:4px 6px;margin-left:5px}.school{font-size:.82rem;color:#57736b}main{max-width:1136px;margin:52px auto;padding:0 30px;min-height:65vh}.welcome{display:grid;grid-template-columns:1.1fr 1fr;gap:85px;align-items:center;margin:65px 0}.intro>p{max-width:380px;color:#59716a;font-size:1.1rem}.eyebrow{display:block;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;font-weight:750;color:#657b6b;margin-bottom:18px}.intro h1{margin-bottom:24px}.card{background:#fff;border:1px solid #dbe4d8;border-radius:18px;padding:32px;box-shadow:0 8px 28px #25443206}.login-card{padding:38px}.muted,.small{color:#63756d}.small{font-size:.82rem;margin-top:18px}.assurance{display:flex;gap:16px;margin-top:40px;padding-top:26px;border-top:1px solid #dbe4d8;max-width:380px}.assurance>span{display:grid;place-items:center;border-radius:50%;background:#e2ebdc;width:35px;height:35px;flex-shrink:0}.assurance p{font-size:.84rem;color:#60746b;margin-top:8px}.intro .stage-note{font-size:.8rem;max-width:390px;margin-top:26px;color:#6e7669}.divider{height:1px;background:#e0e6dd;margin:28px 0}.login-card>.secondary{width:100%}.narrow{max-width:570px;margin:40px auto}.narrow h1{font-size:2.25rem}.narrow>.link-button{display:block;margin-top:16px}.wide{max-width:740px}.notice-text{white-space:pre-wrap;padding:22px;background:#f6f8f3;border-radius:10px;margin:24px 0;font-size:.94rem}.section-head{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:26px}.section-head h1{font-size:2.6rem;margin-bottom:10px}.account-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:24px}.status{display:inline-block;background:#e9f3e2;color:#345b2f;padding:6px 10px;border-radius:6px;font-size:.78rem;margin-bottom:20px;font-weight:650}.callout{background:#f2f5ed;border:1px solid #d9e3d2;padding:20px;border-radius:12px;margin-top:24px}.callout p:last-child{margin-bottom:0}.admin{margin-top:28px}.invite-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 16px}.invite-grid button{align-self:end}.users{margin-top:28px}.user-row,.passkey-row{border-top:1px solid #e0e6dd;padding:18px 0;display:flex;gap:16px;justify-content:space-between;align-items:center}.user-row p,.passkey-row p{margin:3px 0;color:#60746b;font-size:.82rem}.actions{display:flex;flex-wrap:wrap;gap:8px}.actions button{font-size:.78rem;padding:8px 12px}.danger{color:#9a3832;border-color:#dbb4b1}code{display:block;overflow-wrap:anywhere;font-size:1rem;background:#fff;padding:15px;border-radius:8px}#message{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#173e39;color:#fff;padding:15px 24px;border-radius:12px;box-shadow:0 6px 30px #0002;max-width:calc(100vw - 30px);width:max-content;z-index:10}#message.error{background:#873b32}footer{max-width:1220px;margin:40px auto 0;border-top:1px solid #dce4da;padding:24px 42px;display:flex;gap:20px;justify-content:space-between;font-size:.72rem;color:#6a7a70}[hidden]{display:none!important}@media(max-width:760px){header{padding:22px}.school{display:none}main{padding:0 20px;margin:28px auto}.welcome{grid-template-columns:1fr;gap:24px;margin:24px 0}.intro h1{font-size:2.6rem}.intro h1 br{display:none}.intro .assurance{display:none}.intro .stage-note{margin:10px 0}.login-card,.card{padding:24px}.account-grid,.invite-grid{grid-template-columns:1fr}.section-head{align-items:flex-start}.user-row{align-items:flex-start;flex-direction:column}footer{padding:24px;flex-direction:column;gap:5px}.badge{font-size:.55rem}.narrow{margin:20px auto}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
.route-stop-list{grid-column:1/-1}#route-stop-count{margin-top:24px}

.dashboard-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}.dashboard-total{padding:20px;background:#f2f5ed;border-radius:12px}.class-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px;margin:24px 0}.class-column{min-width:0;padding:12px;background:#f6f8f3;border-radius:12px}.class-column>p{font-size:.78rem}.person-tile{width:100%;text-align:left;display:flex;flex-direction:column;gap:6px;margin-bottom:10px;border:1px solid #ccd6ce;border-left:5px solid #b37626;background:#fff;color:#18413b;border-radius:10px;padding:13px;font-size:.82rem}.person-tile span,.person-tile small{font-weight:400;line-height:1.4}.person-tile:hover{background:#edf4e8}.state-on_vehicle{border-left-color:#277ab7;background:#edf5fc}.state-arrived{border-left-color:#45864a;background:#edf6e8}.state-unknown{border-left-color:#af453e;background:#fff0ed}.staff-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.person-tile:focus-visible{outline:3px solid #c6730c;outline-offset:3px}@media(max-width:600px){.dashboard-summary{grid-template-columns:1fr}.class-columns{grid-template-columns:1fr}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dashboard-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}.dashboard-bar h2{margin:0}.dashboard-bar select{width:auto;min-height:34px;padding:4px 10px}.dashboard-bar button{min-height:34px;padding:5px 10px}.class-roster{display:grid;gap:6px}.class-heading h3{margin-bottom:2px}.dashboard-bottom{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dashboard-note{font-size:.7rem;color:#63756d;margin:6px 0 0}:is(#dashboard-person,#dashboard-run,#absence-dialog){max-width:560px;width:calc(100% - 40px);max-height:85dvh;overflow:auto;border:1px solid #bdccc5;border-radius:16px;padding:26px;color:#153d3a}:is(#dashboard-person,#dashboard-run,#absence-dialog)::backdrop{background:#133f3980}
@media(min-width:960px) and (min-height:620px){body.dashboard-monitor{overflow:hidden}body.dashboard-monitor>header,body.dashboard-monitor>footer{display:none}body.dashboard-monitor .test-banner{height:24px;padding:3px;font-size:11px}body.dashboard-monitor main{margin:0;padding:0;max-width:none;min-height:0}body.dashboard-monitor #account>:not(#dashboard){display:none!important}body.dashboard-monitor #dashboard{position:fixed;inset:24px 0 0;margin:0;padding:12px 16px;border:0;border-radius:0;display:grid;grid-template-rows:36px 48px 18px minmax(0,1fr) 94px 16px;gap:7px;box-shadow:none;background:#f5f6f1}body.dashboard-monitor .dashboard-bar h2{font-size:1.25rem}body.dashboard-monitor .dashboard-summary{margin:0;gap:10px}body.dashboard-monitor .dashboard-total{padding:6px 12px;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:10px;border:1px solid #d9e3d2}body.dashboard-monitor .dashboard-total h3{margin:0;font-size:.85rem}body.dashboard-monitor .dashboard-total strong{font-size:1rem;white-space:nowrap}body.dashboard-monitor .dashboard-total p{margin:0;font-size:.68rem;line-height:1.25}body.dashboard-monitor #dashboard-updated{margin:0;font-size:.7rem;line-height:18px}body.dashboard-monitor .class-columns{margin:0;min-height:0;grid-template-columns:repeat(var(--class-count,5),minmax(0,1fr));gap:10px}body.dashboard-monitor .class-column{display:grid;grid-template-rows:36px minmax(0,1fr);gap:5px;padding:8px;background:#eaf0e6;min-height:0}body.dashboard-monitor .class-heading h3{font-size:.86rem;line-height:16px}body.dashboard-monitor .class-heading p{margin:0;font-size:.68rem;line-height:16px}body.dashboard-monitor .class-roster{min-height:0;grid-template-rows:repeat(var(--roster-rows),minmax(0,1fr));gap:4px}body.dashboard-monitor .person-tile{min-height:0;margin:0;padding:3px 7px;border-radius:6px;border-left-width:4px;gap:1px;justify-content:center;overflow:hidden}body.dashboard-monitor .person-tile strong{font-size:clamp(11px,1vw,14px);line-height:1.15;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}body.dashboard-monitor .person-tile span{font-size:10px;line-height:1.15;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}body.dashboard-monitor .person-tile small{display:none}body.dashboard-monitor .dashboard-bottom{min-height:0;grid-template-columns:2fr 3fr;gap:14px}body.dashboard-monitor .dashboard-bottom h3{font-size:.78rem;margin:0 0 4px;line-height:16px}body.dashboard-monitor .staff-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;height:70px;grid-auto-rows:minmax(0,1fr)}body.dashboard-monitor #dashboard-runs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;height:70px;grid-auto-rows:minmax(0,1fr)}body.dashboard-monitor #dashboard-runs .user-row{border:1px solid #d9e3d2;border-radius:6px;padding:3px 8px;display:block;min-height:0;overflow:hidden;background:white}body.dashboard-monitor #dashboard-runs strong{font-size:11px;line-height:1.2;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.dashboard-monitor #dashboard-runs p{font-size:10px;line-height:1.2;margin:1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.dashboard-monitor .dashboard-note{margin:0;font-size:10px;line-height:16px}}
@media(max-width:959px){.dashboard-bar{align-items:flex-start;flex-direction:column}.dashboard-bottom{grid-template-columns:1fr}}

@media(min-width:960px) and (min-height:620px){body.dashboard-monitor .person-tile{padding:1px 7px;gap:0}body.dashboard-monitor .person-tile strong{font-size:clamp(11px,1.6vh,14px);line-height:1.05;flex-shrink:0}body.dashboard-monitor .person-tile span{font-size:clamp(9px,1.35vh,12px);line-height:1.05;flex-shrink:0}}

@media(min-width:960px) and (min-height:620px) and (max-height:700px){body.dashboard-monitor .class-roster .person-tile{flex-direction:row;justify-content:space-between;gap:3px}body.dashboard-monitor .class-roster .person-tile strong{width:60%;font-size:12px;line-height:14px}body.dashboard-monitor .class-roster .person-tile span{width:40%;font-size:9px;line-height:14px}}

@media(min-width:960px) and (min-height:620px){
 body.dashboard-monitor{--monitor-unit:clamp(1px,min(.078125vw,.138889vh),3px)}
 body.dashboard-monitor .test-banner{height:calc(24 * var(--monitor-unit));font-size:calc(11 * var(--monitor-unit));padding:calc(3 * var(--monitor-unit))}
 body.dashboard-monitor #dashboard{inset:calc(24 * var(--monitor-unit)) 0 0;padding:calc(12 * var(--monitor-unit)) calc(16 * var(--monitor-unit));grid-template-rows:calc(36 * var(--monitor-unit)) calc(48 * var(--monitor-unit)) calc(18 * var(--monitor-unit)) minmax(0,1fr) calc(94 * var(--monitor-unit)) calc(16 * var(--monitor-unit));gap:calc(7 * var(--monitor-unit))}
 body.dashboard-monitor .dashboard-bar h2{font-size:calc(20 * var(--monitor-unit))}
 body.dashboard-monitor .dashboard-bar .badge{font-size:calc(9 * var(--monitor-unit));padding:calc(3 * var(--monitor-unit)) calc(5 * var(--monitor-unit))}
 body.dashboard-monitor .dashboard-bar .actions{gap:calc(8 * var(--monitor-unit))}
 body.dashboard-monitor .dashboard-bar select,body.dashboard-monitor .dashboard-bar button{font-size:calc(12 * var(--monitor-unit));min-height:calc(34 * var(--monitor-unit));padding:calc(4 * var(--monitor-unit)) calc(10 * var(--monitor-unit))}
 body.dashboard-monitor .dashboard-summary{gap:calc(10 * var(--monitor-unit))}
 body.dashboard-monitor .dashboard-total{padding:calc(6 * var(--monitor-unit)) calc(12 * var(--monitor-unit));gap:calc(10 * var(--monitor-unit))}
 body.dashboard-monitor .dashboard-total h3{font-size:calc(13 * var(--monitor-unit))}
 body.dashboard-monitor .dashboard-total strong{font-size:calc(16 * var(--monitor-unit))}
 body.dashboard-monitor .dashboard-total p{font-size:calc(10.5 * var(--monitor-unit))}
 body.dashboard-monitor #dashboard-updated{font-size:calc(11 * var(--monitor-unit));line-height:calc(18 * var(--monitor-unit))}
 body.dashboard-monitor .class-columns{gap:calc(10 * var(--monitor-unit))}
 body.dashboard-monitor .class-column{padding:calc(8 * var(--monitor-unit));grid-template-rows:calc(36 * var(--monitor-unit)) minmax(0,1fr);gap:calc(5 * var(--monitor-unit))}
 body.dashboard-monitor .class-heading h3{font-size:calc(14 * var(--monitor-unit));line-height:calc(16 * var(--monitor-unit))}
 body.dashboard-monitor .class-heading p{font-size:calc(10.5 * var(--monitor-unit));line-height:calc(16 * var(--monitor-unit))}
 body.dashboard-monitor .class-roster{gap:calc(4 * var(--monitor-unit))}
 body.dashboard-monitor .person-tile{padding:var(--monitor-unit) calc(7 * var(--monitor-unit));border-left-width:calc(4 * var(--monitor-unit));border-radius:calc(6 * var(--monitor-unit))}
 body.dashboard-monitor .person-tile strong{font-size:calc(11.5 * var(--monitor-unit));line-height:1.05}
 body.dashboard-monitor .person-tile span{font-size:calc(9.5 * var(--monitor-unit));line-height:1.05}
 body.dashboard-monitor .dashboard-bottom{gap:calc(14 * var(--monitor-unit))}
 body.dashboard-monitor .dashboard-bottom h3{font-size:calc(12 * var(--monitor-unit));margin-bottom:calc(4 * var(--monitor-unit));line-height:calc(16 * var(--monitor-unit))}
 body.dashboard-monitor .staff-tiles,body.dashboard-monitor #dashboard-runs{height:calc(70 * var(--monitor-unit));gap:calc(4 * var(--monitor-unit))}
 body.dashboard-monitor #dashboard-runs .user-row{padding:calc(3 * var(--monitor-unit)) calc(8 * var(--monitor-unit));border-radius:calc(6 * var(--monitor-unit))}
 body.dashboard-monitor #dashboard-runs strong{font-size:calc(11 * var(--monitor-unit))}
 body.dashboard-monitor #dashboard-runs p{font-size:calc(10 * var(--monitor-unit))}
 body.dashboard-monitor .dashboard-note{font-size:calc(10 * var(--monitor-unit));line-height:calc(16 * var(--monitor-unit))}
}
@media(min-width:960px) and (min-height:620px) and (max-height:700px){body.dashboard-monitor .class-roster .person-tile strong{font-size:12px;line-height:14px}body.dashboard-monitor .class-roster .person-tile span{font-size:9px;line-height:14px}}

@media(min-width:960px) and (min-height:620px){body.dashboard-monitor :is(#dashboard-person,#dashboard-run,#absence-dialog){max-width:calc(560 * var(--monitor-unit));padding:calc(26 * var(--monitor-unit));font-size:calc(16 * var(--monitor-unit))}body.dashboard-monitor :is(#dashboard-person,#dashboard-run,#absence-dialog) h3{font-size:calc(18 * var(--monitor-unit))}body.dashboard-monitor :is(#dashboard-person,#dashboard-run,#absence-dialog) button{font-size:calc(14 * var(--monitor-unit));min-height:calc(40 * var(--monitor-unit));padding:calc(8 * var(--monitor-unit)) calc(14 * var(--monitor-unit))}}

.movement-history-row{border-top:1px solid #d9e3d2;padding:12px 0}.movement-history-row p{font-size:.85em;margin:4px 0}.movement-history-row strong{display:block}.movement-history-row+button{margin-bottom:12px}

.vehicle-tile{width:100%;text-align:left;color:#153d3a;background:white;display:block}.vehicle-tile:hover{background:#eaf0e6}.run-stops{padding-left:24px}.run-stops li{padding:12px 0;border-bottom:1px solid #d9e3d2}.run-stops p{margin:4px 0;font-size:.9em}

.person-tile.state-absent{border-left-color:#7c8583;background:#eceeec}.absence-form{display:grid;gap:12px;padding:12px 0}.absence-form label{display:block}.absence-form input,.absence-form select{margin-top:4px}

.absence-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.absence-form>label{margin:0}.absence-form>label:has(select),.absence-form>p{grid-column:1/-1}.absence-form>button{margin:0;width:100%}@media(max-width:500px){.absence-form{grid-template-columns:1fr}}

body.driver-workspace>header,body.driver-workspace>footer{display:none}body.driver-workspace main{max-width:none;margin:0;padding:0}body.driver-workspace #account>:not(#manifest-panel):not(#pending-transport){display:none!important}body.driver-workspace #manifest-panel{margin:0;border:0;border-radius:0;padding:12px 16px}body.driver-workspace #manifest-panel>.eyebrow{display:none}body.driver-workspace #manifest-title{font-size:1.2rem;margin:0 0 6px}body.driver-workspace #manifest-help,body.driver-workspace #manifest-totals{font-size:.78rem;margin:4px 0}body.driver-workspace #transport-controls{margin:8px 0;align-items:center}body.driver-workspace #transport-controls p{margin:0;font-size:.8rem}body.driver-workspace #transport-controls button{min-height:36px}body.driver-workspace #manifest-close{margin-top:8px;min-height:36px}.driver-roster{margin:12px 0}.driver-class-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.driver-class{border:1px solid #cbd9cf;border-radius:8px;overflow:hidden;background:#fff}.driver-class h3{padding:8px;margin:0;font-size:.86rem;background:#edf2e9}.driver-child{display:grid;grid-template-columns:minmax(0,1fr) 38px 38px;gap:2px;padding:0 7px;align-items:center;min-height:44px;border-top:1px solid #dce4de}.driver-child-info{min-width:0}.driver-child details{font-size:.78rem}.driver-child summary{cursor:pointer;font-weight:650;list-style:none;padding:3px 0}.driver-child details p{margin:4px 0;font-size:.75rem}.driver-child details button{font-size:.7rem;padding:5px;min-height:32px}.driver-child-status{font-size:.68rem;display:block;line-height:1.2;padding-bottom:3px;color:#596d64}.driver-tick{display:grid;place-items:center;align-self:stretch;min-height:44px;margin:0}.driver-tick input{appearance:auto;width:18px;height:18px;min-height:0;padding:0;margin:0;accent-color:#174d45}.driver-column-head{min-height:25px;font-size:.65rem;color:#596d64}.driver-column-head span:not(:first-child){text-align:center}.driver-child.is-onboard{background:#edf6e8}.driver-child.is-absent{background:#eceeec}.driver-child.is-pending{background:#fff3da}.driver-staff{margin:12px 0;max-width:550px}.driver-staff h3{font-size:.9rem;margin:0 0 4px}.driver-roster-note{font-size:.72rem;color:#596d64;margin:8px 0}@media(max-width:1050px){.driver-class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){body.driver-workspace #manifest-panel{padding:12px}.driver-class-grid{grid-template-columns:1fr}.driver-child{grid-template-columns:minmax(0,1fr) 44px 44px}.driver-child details{font-size:.9rem}.driver-child-status{font-size:.75rem}.driver-column-head{font-size:.75rem}.driver-tick{min-width:44px}}@media(pointer:coarse){.driver-child{grid-template-columns:minmax(0,1fr) 44px 44px}.driver-tick{min-width:44px}body.driver-workspace #transport-controls button,body.driver-workspace #manifest-close{min-height:44px}}

.driver-class h3{display:flex;align-items:center;justify-content:space-between;gap:6px}.driver-class-count{font-size:.65rem;font-weight:400;color:#596d64}
body.reports-workspace>header,body.reports-workspace>footer{display:none}body.reports-workspace main{max-width:1200px;margin:20px auto;padding:0 20px}body.reports-workspace #account>:not(#reports-page){display:none!important}body.reports-workspace #reports-page{display:block!important;margin:0;height:auto;overflow:visible}.report-filters{display:grid;grid-template-columns:minmax(200px,2fr) 1fr 1fr auto;gap:16px;align-items:end}.report-filters>button{width:auto;margin:0}#report-content{margin-top:28px}.report-table-wrap{overflow:auto;margin-bottom:24px}.report-table-wrap table{width:100%;border-collapse:collapse;text-align:left;font-size:.85rem}.report-table-wrap th,.report-table-wrap td{border:1px solid #d9e1db;padding:12px;white-space:pre-line;vertical-align:top}.report-table-wrap th{background:#edf2e9}.report-table-wrap td{min-width:140px}@media(max-width:760px){.report-filters{grid-template-columns:1fr 1fr}.report-filters>div:first-child{grid-column:1/-1}.report-filters>button{grid-column:1/-1}body.reports-workspace #reports-page{padding:18px}}
body.reports-workspace{overflow:auto!important;height:auto!important}

.inline-choice{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin:8px 0}.inline-choice input[type=checkbox]{width:20px;height:20px;min-height:0;margin:0;padding:0;accent-color:#174d45}#run-term{grid-column:1/-1}#run-term fieldset{display:flex;flex-wrap:wrap;gap:6px 20px;border:1px solid #cbd9cf;border-radius:8px}#run-color{width:80px;padding:6px}

/* Driver pickup page */
body.driver-home:not(.driver-workspace){background:#f2f5f4;color:#17332e;min-height:100vh}
body.driver-home:not(.driver-workspace)>header,body.driver-home:not(.driver-workspace)>footer{display:none}
body.driver-home:not(.driver-workspace) #account>:not(#driver-home-actions):not(#driver-runs):not(#pending-transport){display:none!important}
body.driver-home:not(.driver-workspace) main{max-width:1080px;margin:0 auto;padding:0 28px;min-height:0}
.driver-topbar{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-bottom:20px}
body.driver-home:not(.driver-workspace) .driver-topbar{justify-content:space-between;min-height:76px;margin:0 0 26px;border-bottom:1px solid #d9e2df}
.driver-mark{display:none;align-items:center;gap:8px;font-size:1.3rem;font-weight:750;letter-spacing:-.05em;text-decoration:none}
body.driver-home:not(.driver-workspace) .driver-mark{display:inline-flex}
.driver-mark>span{display:grid;place-items:center;width:30px;height:32px;background:#174d45;color:white;border-radius:9px 9px 9px 3px;font-size:1.1rem}
.driver-navigation{display:flex;align-items:center;gap:10px}.driver-navigation>span{font-size:.85rem;color:#52665f;margin-right:6px}
.driver-navigation button{font-size:.8rem;min-height:44px;padding:9px 13px;border-color:#c6d2ce;background:transparent}
body.driver-home:not(.driver-workspace) #driver-runs{background:none;border:0;box-shadow:none;padding:0;margin:0}
.pickup-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
#driver-runs .pickup-heading h2{font-size:1.8rem;font-weight:750;letter-spacing:-.04em;margin:0 0 7px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
#driver-trip-summary{font-size:.75rem;letter-spacing:0;font-weight:600;padding:5px 9px;border-radius:6px;background:#e0eae5;color:#375e51;white-space:nowrap}
#driver-day{font-size:.85rem;color:#536b62;margin:0}
#driver-pickups-refresh{font-size:.85rem;min-height:44px;padding:10px 14px;background:#fff;border-color:#c6d2ce;white-space:nowrap}
.pickup-information{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px}
.pickup-information>p{font-size:.8rem;color:#52685f;margin:0;line-height:1.5}
#driver-pickup-status[data-state="CURRENT"]{color:#28654e;display:flex;align-items:center;gap:7px;white-space:nowrap}
#driver-pickup-status[data-state="CURRENT"]:before{content:'';width:6px;height:6px;border-radius:50%;background:#3b8766}
#driver-pickup-status[data-state="UNVERIFIED"],#driver-pickup-status[data-state="AUTH_REQUIRED"]{padding:9px 12px;background:#fff0d4;border:1px solid #d8bf92;border-radius:7px;color:#674b1f}
#driver-check-session{margin-bottom:12px}
#driver-run-list{display:grid;gap:12px;padding-bottom:24px}
.pickup-trip{display:grid;grid-template-columns:84px minmax(0,1fr) 150px;align-items:center;gap:20px;padding:21px 22px;border:1px solid #cad8d1;border-left:5px solid var(--trip-color,#174d45);border-radius:12px;background:#fff;box-shadow:0 2px 4px #17332e04}
.pickup-time-block{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:12px 4px;background:#eaf2ed;border-radius:8px;min-height:77px}
.pickup-time{font-size:1.7rem;letter-spacing:-.045em;line-height:1.1;font-weight:750;font-variant-numeric:tabular-nums;color:#173f34}
.pickup-time-block>span{font-size:.58rem;font-weight:650;letter-spacing:.09em;color:#43695a}
.pickup-details{min-width:0}.pickup-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:7px}
.pickup-title h3{font-size:1.08rem;font-weight:750;letter-spacing:-.02em;line-height:1.25;margin:0;color:#203b32}
.pickup-badge{font-size:.65rem;font-weight:650;background:#e0f0e6;color:#285b40;padding:3px 7px;border-radius:5px;white-space:nowrap;line-height:1.4}
.pickup-route{font-size:.91rem;line-height:1.45;color:#314e42;margin:0 0 7px;overflow-wrap:anywhere}
.pickup-meta{font-size:.77rem;line-height:1.5;color:#52685e;margin:0;overflow-wrap:anywhere}
.pickup-trip .trip-select{min-height:46px;width:100%;padding:10px 12px;font-size:.85rem;gap:6px;border-color:transparent;border-radius:8px}
.pickup-locked{background:#e9edeb;border-color:#d4dcd8;border-left-color:#bcc8c1;box-shadow:none}
.pickup-locked .pickup-time-block{background:#dde4df}.pickup-locked .pickup-time{color:#617267}.pickup-locked .pickup-time-block>span{color:#65796c}
.pickup-locked .pickup-title h3{color:#53665b}.pickup-locked .pickup-route,.pickup-locked .pickup-meta{color:#5d7164}
.pickup-locked .pickup-badge{color:#5b6e61;background:#d9e1dc}
.pickup-locked .trip-select:disabled{background:#dbe2dd;color:#54665a;border:1px solid #c4cfc7;opacity:1;cursor:not-allowed}
@media(max-width:650px){
 body.driver-home:not(.driver-workspace) .test-banner{font-size:.64rem;padding:6px 10px;line-height:1.3}
 body.driver-home:not(.driver-workspace) main{padding:0 16px}
 body.driver-home:not(.driver-workspace) .driver-topbar{min-height:65px;margin-bottom:22px}
 .driver-mark{font-size:1.17rem}.driver-mark>span{width:27px;height:29px;font-size:1rem}
 .driver-navigation{gap:7px}.driver-navigation>span{display:none}.driver-navigation button{font-size:.76rem;padding:8px 10px}
 .pickup-heading{align-items:flex-start;gap:10px;margin-bottom:15px}
 #driver-runs .pickup-heading h2{font-size:1.5rem;gap:7px;margin-bottom:7px}
 #driver-trip-summary{font-size:.65rem;padding:3px 6px}
 #driver-day{font-size:.75rem;line-height:1.5;max-width:230px}
 #driver-pickups-refresh{font-size:.75rem;padding:9px 10px;min-height:44px}
 .pickup-information{align-items:flex-start;gap:8px}.pickup-information>p{font-size:.72rem}
 .pickup-trip{grid-template-columns:65px minmax(0,1fr);gap:12px;padding:16px 14px;border-left-width:4px;border-radius:10px}
 .pickup-time-block{padding:10px 2px;min-height:66px}.pickup-time{font-size:1.4rem}.pickup-time-block>span{font-size:.51rem}
 .pickup-title{gap:6px;margin-bottom:5px}.pickup-title h3{font-size:.96rem}.pickup-badge{font-size:.6rem}
 .pickup-route{font-size:.81rem;margin-bottom:5px}.pickup-meta{font-size:.73rem}
 .pickup-trip .trip-select{grid-column:2;width:100%;min-height:44px;padding:9px 12px;font-size:.8rem;margin-top:1px}
 .pickup-locked .trip-select{min-height:36px;font-size:.74rem}
}

.driver-navigation .logout{display:none}body.driver-home:not(.driver-workspace) .driver-navigation .logout{display:inline-flex}
.pickup-passengers{display:flex;flex-wrap:wrap;gap:2px 7px}.pickup-passengers>span{white-space:nowrap}.pickup-passengers>span:not(:last-child):after{content:' ·';padding-left:7px}
.manifest-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}#manifest-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}#driver-trip-route{margin:3px 0 0;font-size:.85rem;color:#53685f}
body.driver-workspace #manifest-panel{padding:0 20px 20px;background:#f5f7f5;min-height:100vh}
body.driver-workspace .manifest-heading{position:sticky;top:0;z-index:3;margin:0 -20px 12px;padding:14px 20px;background:#fff;border-bottom:1px solid #d7e0da;align-items:center}
body.driver-workspace .manifest-heading .eyebrow{display:none}body.driver-workspace #manifest-title{font-size:1.25rem;font-weight:750;margin:0;line-height:1.3}
body.driver-workspace #manifest-actions button{min-height:44px;padding:9px 12px;font-size:.8rem;white-space:nowrap}
#driver-trip-progress{display:flex;align-items:center;gap:0;border:1px solid #d4ded7;background:#fff;border-radius:9px;margin:0 0 10px;flex-wrap:wrap;padding:10px 0}
.driver-trip-phase{font-size:.75rem;font-weight:650;color:#285b40;background:#e0f0e6;border-radius:5px;padding:6px 10px;margin:0 18px;white-space:nowrap}
.driver-trip-phase[data-phase="PLANNED"]{color:#52655b;background:#e7ece8}
.driver-trip-stat{display:flex;flex-direction:column;gap:1px;padding:0 20px;border-left:1px solid #e0e6e0;min-width:105px}
.driver-trip-stat strong{font-size:1.25rem;font-weight:750;line-height:1.2;font-variant-numeric:tabular-nums}.driver-trip-stat span{font-size:.7rem;color:#52685c}
.driver-trip-warning{flex-basis:100%;margin:10px 12px 0;padding:9px 12px;background:#fff0d4;color:#674b1f;border-radius:6px;font-size:.8rem}
body.driver-workspace #manifest-totals{font-size:.8rem;margin:0 0 6px;color:#496353}body.driver-workspace #manifest-help{font-size:.75rem;margin:0 0 10px;color:#52685c}
body.driver-workspace #transport-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;margin:0 0 12px;background:#e8efea;border-radius:8px}
body.driver-workspace #transport-controls p{font-size:.8rem;line-height:1.5;margin:0}body.driver-workspace #transport-controls button{min-height:44px;padding:10px 14px;font-size:.85rem;border-radius:8px}
body.driver-workspace #claim-vehicle{width:auto;min-width:230px;max-width:100%;font-size:.85rem}body.driver-workspace label[for="claim-vehicle"]{font-size:.8rem;margin:0}
body.driver-workspace .driver-roster{margin-top:0}body.driver-workspace .driver-class h3{padding:9px;font-size:.87rem;color:#203b32}body.driver-workspace .driver-child summary{font-size:.82rem;color:#203b32}
@media(min-width:700px) and (pointer:fine){body.driver-workspace .driver-child{min-height:38px}body.driver-workspace .driver-tick{min-height:38px}body.driver-workspace .driver-column-head{min-height:25px}}
@media(max-width:650px){
 body.driver-workspace #manifest-panel{padding:0 12px 16px}body.driver-workspace .manifest-heading{padding:11px 12px;margin:0 -12px 10px;gap:8px;align-items:flex-start}
 body.driver-workspace #manifest-title{font-size:1rem}#driver-trip-route{font-size:.73rem;margin-top:4px}
 body.driver-workspace #manifest-actions{gap:5px}body.driver-workspace #manifest-actions button{font-size:.72rem;padding:8px;min-height:44px}body.driver-workspace .manifest-refresh{font-size:0!important}body.driver-workspace .manifest-refresh:after{content:'↻';font-size:1.2rem}
 #driver-trip-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0 0 9px;gap:0}
 .driver-trip-phase{grid-column:1/-1;justify-self:start;margin:9px 10px 9px;font-size:.68rem;padding:4px 7px}.driver-trip-stat{min-width:0;padding:0 9px}.driver-trip-stat strong{font-size:1.1rem}.driver-trip-stat span{font-size:.62rem}.driver-trip-warning{grid-column:1/-1;font-size:.75rem;margin:10px 9px 0}
 body.driver-workspace #manifest-totals{font-size:.73rem}body.driver-workspace #manifest-help{font-size:.72rem;line-height:1.4}body.driver-workspace #transport-controls{gap:8px}
 body.driver-workspace #claim-vehicle{width:100%;min-width:0}body.driver-workspace #transport-controls button{width:100%}body.driver-workspace .driver-child summary{font-size:.9rem}
}
body.driver-workspace #manifest-actions #manifest-close{margin-top:0}
#driver-roster-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px 0}
.driver-roster-switch{display:flex;background:#e5ece7;border:1px solid #cbd7ce;border-radius:8px;padding:3px;gap:3px}
.driver-roster-switch button{background:transparent;color:#435d4d;border:0;border-radius:5px;font-size:.8rem;font-weight:650;min-height:44px;padding:8px 13px;white-space:nowrap}
.driver-roster-switch button[aria-pressed="true"]{background:#174d45;color:#fff;box-shadow:0 1px 3px #183d3720}
#driver-roster-summary{font-size:.77rem;color:#52685c;margin:0}
.driver-class-grid.driver-trip-only{grid-template-columns:repeat(auto-fit,minmax(260px,360px));justify-content:start}
@media(max-width:650px){#driver-roster-toolbar{flex-direction:column;align-items:flex-start;gap:7px;margin:10px 0}.driver-roster-switch{width:100%}.driver-roster-switch button{flex:1;font-size:.75rem;padding:8px 10px}#driver-roster-summary{font-size:.71rem;line-height:1.4}.driver-class-grid.driver-trip-only{grid-template-columns:1fr}}
body.driver-workspace #pickup-availability-status{font-size:.75rem;line-height:1.4;margin:8px 0;color:#42685a}body.driver-workspace #pickup-availability-status[data-state="UNVERIFIED"],body.driver-workspace #pickup-availability-status[data-state="ACCESS_LOST"]{padding:8px 10px;border-radius:6px;background:#fff3da;color:#674719}

/* Destination chooser: map data is loaded only after an explicit open action. */
.destination-map-editor,#location-map-host,.destination-advanced,.destination-step-title,.trip-route-preview{grid-column:1/-1;min-width:0}.destination-map-editor{padding:20px;border:1px solid #cedcd2;border-radius:16px;background:#f7faf5}.destination-map-editor h3{margin:10px 0 12px}.destination-map-editor p{font-size:14px;line-height:1.5}.destination-map-controls,.destination-radius-presets{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.destination-map-controls button,.destination-radius-presets button{min-height:46px;border-radius:10px;cursor:pointer}.destination-map-editor .destination-map-controls button{grid-column:auto}.destination-map-controls button:first-child{background:#174d45;color:white}.destination-map{position:relative;height:320px;width:100%;max-width:960px;overflow:hidden;border:2px solid #174d45;border-radius:12px;background:repeating-linear-gradient(0deg,#e9eee5 0px,#e9eee5 39px,#d4dfd0 40px);touch-action:none;cursor:crosshair}.destination-map:focus{outline:3px solid #cc7a24;outline-offset:2px}.destination-map-tiles,.destination-map-overlay{position:absolute;inset:0;pointer-events:none}.destination-map-tiles img{position:absolute;width:256px;height:256px;max-width:none;user-select:none}.destination-map-circle{position:absolute;box-sizing:border-box;border:3px solid #b65c19;border-radius:50%;background:rgba(225,136,52,.19)}.destination-map-pin{position:absolute;transform:translate(-50%,-50%);font-size:30px;line-height:1;color:#c44923;text-shadow:0 0 3px white;z-index:1}.destination-map-attribution{display:inline-block;font-size:12px;margin-bottom:8px}.destination-map-status{font-weight:600;min-height:20px}.destination-map-editor input[type=range]{display:block;padding:8px 0;width:100%;accent-color:#174d45;min-height:42px}.destination-map-editor output{display:block;font-size:24px;font-weight:700;color:#174d45}.destination-radius-presets button{background:#fff;color:#174d45;border:1px solid #9eb5aa;min-width:76px}.destination-advanced{padding:14px;margin:14px 0;border:1px solid #d8e1d6;border-radius:10px}.destination-advanced summary{cursor:pointer;font-weight:600}.destination-advanced label{margin-top:12px}.destination-advanced input,.destination-advanced select{width:100%;box-sizing:border-box}.trip-route-preview{padding:18px;background:#f2f7ef;border-radius:14px;border:1px solid #cddbc7}.trip-stop-preview{display:flex;flex-wrap:wrap;gap:12px;list-style:none;padding:0;margin:12px 0 0}.trip-stop-preview li{position:relative;flex:1;min-width:150px;background:#fff;border:1px solid #d4dfd0;border-radius:12px;padding:14px;display:grid;grid-template-columns:30px 1fr;gap:8px;align-items:center}.trip-stop-preview small{grid-column:2;font-size:13px;color:#5b716b}.trip-stop-number{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#174d45;color:white;font-weight:700}.trip-stop-preview li+li:before{content:'→';position:absolute;left:-14px;color:#174d45;font-weight:700}@media(max-width:640px){.destination-map-editor{padding:12px}.destination-map{height:280px}.destination-map-controls button{flex:1;min-width:130px}.trip-stop-preview{flex-direction:column}.trip-stop-preview li+li:before{content:'↓';left:24px;top:-16px}}

.journey-summary{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.journey-summary p{padding:12px;border:1px solid #d4dfd0;border-radius:12px;background:#fff;font-size:16px;font-weight:650;margin:0}.journey-summary small{display:block;width:100%;font-size:13px}.trip-stop-preview li div{display:grid;gap:4px}.trip-stop-preview li div small{grid-column:auto}.journey-map-box{max-width:360px;margin:16px 0}.journey-map-frame{position:relative;width:100%;overflow:hidden;border:1px solid #cad9c5;border-radius:14px;background:#eaf1e4}.journey-map-canvas{position:relative;transform-origin:top left;background:repeating-linear-gradient(0deg,transparent 0px,transparent 43px,#d6e2cf 44px),repeating-linear-gradient(90deg,#edf3e7 0px,#edf3e7 59px,#d6e2cf 60px)}.journey-map-canvas>svg{position:absolute;inset:0;width:360px;height:220px}.journey-map-tiles{position:absolute;inset:0;pointer-events:none}.journey-map-tiles img{position:absolute;width:256px;height:256px;max-width:none}.journey-map-line{fill:none;stroke:#174d45;stroke-width:4;stroke-dasharray:8 5}.journey-map-start{fill:#174d45;stroke:white;stroke-width:3}.journey-map-finish{fill:#b65c19;stroke:white;stroke-width:3}.journey-map-stop{fill:#497c72;stroke:white;stroke-width:3}.journey-map-number{fill:white;font-size:12px;font-weight:750;text-anchor:middle}.journey-map-label{fill:#153d3a;font-size:15px;font-weight:750;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:4px}.journey-map-note{font-size:12px;margin:8px 0}.journey-map-box>a{display:block;font-size:12px;margin-top:8px}.journey-map-box button{min-height:44px;font-size:13px}

.destination-radius-presets button[aria-pressed=true]{background:#174d45;color:#fff;border-color:#174d45}.trip-route-preview{display:grid;grid-template-columns:minmax(240px,360px) minmax(0,1fr);gap:0 24px}.trip-route-preview>h3,.trip-route-preview>.trip-stop-preview{grid-column:1/-1}.trip-route-preview>.journey-summary{grid-column:2;grid-row:3;flex-direction:column;justify-content:flex-start;align-content:stretch}.trip-route-preview>.journey-map-box{grid-column:1;grid-row:3}.journey-summary p{font-size:18px}@media(max-width:640px){.trip-route-preview{display:block}.journey-summary p{font-size:16px}}
