:root{font-family:system-ui,-apple-system,sans-serif;font-size:18px;color:#192b3b;background:#f4f6f8;font-synthesis:none}*{box-sizing:border-box}body{margin:0;line-height:1.5}header{background:#173954;color:#fff;padding:20px max(20px,calc((100vw - 960px)/2));display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.brand{font-size:28px;font-weight:750;line-height:1.2}.brand small{display:block;font-size:16px;font-weight:400;margin-top:5px;color:#dce8f0}main{max-width:960px;margin:auto;padding:28px 20px}h1{font-size:34px;margin:0 0 14px;line-height:1.2}h2{font-size:28px;margin:18px 0 12px}h3{margin:14px 0 8px;font-size:32px;line-height:1.15;overflow-wrap:anywhere}p{margin:8px 0}.eyebrow{font-size:15px;color:#425b70;font-weight:650}.heading{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}button{font:inherit;min-height:52px;border:1px solid #899ba9;border-radius:10px;background:#fff;color:#163954;padding:12px 18px;font-weight:650;cursor:pointer;white-space:normal}button:hover{background:#e6edf4}button:disabled{opacity:.65;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #163954;outline-offset:4px}header button{background:#fff;color:#173954}a{color:#064f95}input{font:inherit;border:1px solid #899ba9;border-radius:8px;padding:12px;max-width:100%;min-height:48px}.notice{background:#e7edf3;padding:16px;border-radius:10px}.muted{color:#465b6e;font-size:16px;line-height:1.55}nav{display:flex;gap:10px;border-bottom:2px solid #ccd5dd;margin:24px 0}nav button{border:0;background:transparent;border-radius:0;min-width:130px}.selected{border-bottom:4px solid #163954!important;color:#163954;background:#e8eef5}.controls{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin:18px 0}#connection{font-size:16px}#message{font-size:16px;color:#304b61}#saved,#shiftList{display:grid;gap:14px;margin:20px 0}.savedRow{background:#fff;padding:20px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-radius:12px;border:1px solid #cbd6df}.day-card{border-left:8px solid var(--accent);background:var(--tint)}.day-info{display:flex;flex-direction:column;gap:5px}.day-info>p:first-child{font-size:17px;font-weight:650;text-transform:capitalize}.day-info>strong{font-size:26px;line-height:1.2}.day-info>p:last-child{font-size:22px;margin-top:3px}.legend{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.category{display:inline-block;width:fit-content;padding:5px 12px;border-radius:7px;color:var(--accent);background:var(--tint);font-size:16px;font-weight:750;border:1px solid var(--accent)}.tour{--accent:#07549c;--tint:#edf5ff}.pause{--accent:#794800;--tint:#fff2d6}.vacation{--accent:#60298a;--tint:#f6edff}.off{--accent:#425163;--tint:#eef1f5}.work{--accent:#075f52;--tint:#eaf7f2}.waiting{--accent:#075f52;--tint:#eaf7f2}.other{--accent:#425163;--tint:#f0f3f6}.focus-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;margin:18px 0}.activity-card{background:var(--tint);border:2px solid var(--accent);border-top:9px solid var(--accent);border-radius:14px;padding:22px;min-width:0}.activity-card>p:first-child{font-size:16px;font-weight:800;letter-spacing:.08em;color:var(--accent);margin:0 0 12px}.activity-card>div{font-size:30px;line-height:1.3;font-weight:750;white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.activity-card>p:last-of-type{font-size:22px;line-height:1.4;overflow-wrap:anywhere}.activity-card small{font-size:16px;color:#425163}.mode{font-size:16px;color:#465b6e}.plan-details{margin-top:24px}details{margin-top:32px}summary{font-weight:750;min-height:52px;cursor:pointer;padding:12px 0}details>p{color:#465b6e;font-size:16px}#rows{margin:20px 0;display:grid;gap:10px}.row{position:relative;display:grid;grid-template-columns:72px 1fr;gap:16px;background:var(--tint);border:1px solid #c3cfd8;border-left:6px solid var(--accent);border-radius:9px;padding:16px}.row-time{display:flex;flex-direction:column;font-variant-numeric:tabular-nums;gap:4px}.row time{font-size:22px;font-weight:750}.row small{font-size:16px;color:#425163}.row>div:nth-child(2){display:flex;flex-direction:column;align-items:start;gap:6px;min-width:0}.row strong{font-size:23px;line-height:1.2}.row p{font-size:19px;line-height:1.4;margin:0;overflow-wrap:anywhere}.row.active{border:3px solid #182b3a;border-left:8px solid var(--accent);padding-right:54px}.row>span:last-child{position:absolute;right:10px;top:12px;background:#182b3a;color:#fff;font-size:14px;font-weight:800;padding:3px 6px;border-radius:4px}dialog{border:0;border-radius:14px;max-width:500px;width:calc(100% - 28px);padding:26px;box-shadow:0 12px 60px #0004}dialog::backdrop{background:#132f4877}dialog label{display:block;margin:16px 0}dialog input{display:block;width:100%;margin-top:7px}#consent{display:inline;width:22px;min-height:22px;vertical-align:middle;margin-right:8px}#loginError{color:#92263d}#clear{margin-top:12px}[hidden]{display:none!important}@media(max-width:620px){main{padding:22px 14px}header{padding:18px}.focus-grid{grid-template-columns:1fr}.activity-card{padding:20px}h3{font-size:32px}.activity-card>div{font-size:32px}.savedRow{align-items:stretch;flex-direction:column;gap:12px}.savedRow button{width:100%}nav button{flex:1;min-width:0}h1{font-size:30px}.row{gap:12px;grid-template-columns:65px 1fr}.row strong{font-size:22px}.heading>button{font-size:17px}.day-card{padding:16px}}

body[data-view="day"] main>.heading{display:none}body[data-view="day"] header .brand small{display:none}body[data-view="day"] header{padding-top:12px;padding-bottom:12px}body[data-view="day"] main{padding-top:14px}body[data-view="day"] nav{margin:12px 0 18px}body[data-view="day"] #connection{padding:8px 12px;margin:0}body[data-view="day"] #message{font-size:15px}#message:empty{display:none}

#rememberUsername{display:inline;width:22px;min-height:22px;vertical-align:middle;margin-right:8px}#cacheStatus{font-size:15px}body[data-view="day"] #cacheStatus{display:none}@media(max-width:620px){header .brand{font-size:24px}header button{font-size:16px;padding:10px 12px}}

.offline-indicator{position:sticky;top:0;z-index:5;background:#eef2f6;border-bottom:3px solid #596c7a;padding:12px max(18px,calc((100vw - 960px)/2));color:#243b4d}.offline-indicator.complete{background:#e9f6ed;border-color:#206639;color:#174e2b}.offline-indicator.partial{background:#fff3d9;border-color:#875300;color:#653f00}.offline-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 22px}.offline-heading strong{font-size:23px}.offline-heading span{font-size:17px}.offline-indicator p{margin:4px 0;font-size:15px}.coverage-details{margin:0}.coverage-details summary{font-size:16px;min-height:36px;padding:4px 0}.coverage-details li{margin:9px 0;font-size:17px}.coverage-details .ready{font-weight:650}.coverage-details ul{padding-left:22px}.coverage-details .muted{font-size:15px;color:inherit}

.empty-day{background:#eef5fc;border-left:7px solid #07549c;border-radius:12px;padding:24px;margin:20px 0}.empty-day p{font-size:25px;line-height:1.55;margin:0 0 22px}.empty-day button{min-height:56px}.date-notice{background:#fff2d6;border-left:7px solid #794800;border-radius:9px;padding:18px;font-size:21px;font-weight:650;line-height:1.5;color:#573600}

nav #dayTab{font-weight:750}nav #agendaTab:not(.selected){font-weight:500;color:#465b6e}

header.app-toolbar{background:#f4f6f8;color:#192b3b;padding:10px max(14px,calc((100vw - 960px)/2));display:flex;gap:12px;align-items:center;flex-wrap:nowrap;border-bottom:1px solid #cbd6df}header.app-toolbar nav{margin:0;border:0;flex:1;gap:4px;min-width:0}header.app-toolbar nav button{min-width:0;padding:10px 14px}header.app-toolbar #settingsToggle{min-height:46px;font-size:16px;padding:8px 13px;border-color:#899ba9}body[data-view="day"] header.app-toolbar{padding-top:8px;padding-bottom:8px}body[data-view="day"] header.app-toolbar nav{margin:0}.settings-panel{max-width:960px;margin:16px auto;padding:20px;background:#fff;border:1px solid #ccd5dd;border-radius:12px}.settings-title{display:flex;align-items:center;gap:16px;justify-content:space-between;flex-wrap:wrap}.settings-title .brand small{color:#465b6e}.settings-panel .offline-indicator{position:static;margin:18px 0;padding:16px;border-radius:9px}.settings-panel #cacheStatus{display:block!important}.settings-panel #message{font-size:16px}.settings-panel .muted{font-size:16px}body[data-view="day"] main{padding-top:10px}body[data-view="day"] .heading h2{margin-top:8px}#pdfResult{font-size:17px}@media(max-width:620px){header.app-toolbar nav button{font-size:17px;padding:8px 10px}.settings-panel{margin:12px 14px;padding:16px}}

.test-banner{padding:10px max(14px,calc((100vw - 960px)/2));background:#f4eaff;color:#542176;border-bottom:3px solid #71389a;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.test-banner strong{font-size:18px}.test-banner span{font-size:15px}.test-banner button{font-size:16px;min-height:44px;padding:8px 12px}.test-controls label{display:block;margin:12px 0}.test-controls input,.test-controls select{display:block;margin-top:6px;font:inherit;padding:10px;max-width:100%}#testError{color:#92263d}

.test-jumps{display:flex;gap:8px;flex-wrap:wrap}

.place-note{font-size:17px;font-weight:600;line-height:1.4;border-left:4px solid currentColor;padding-left:10px}

.stop-focus{border-top:2px solid currentColor;margin-top:16px;padding-top:12px}.stop-focus p{font-size:15px;font-weight:700}.stop-focus strong{display:block;font-size:26px;line-height:1.3}.stop-details{margin-top:18px;font-size:18px}.stop-details ol{padding-left:24px}.stop-details li{margin:8px 0}

.login-notice{padding:16px;background:#fff2d6;border-left:6px solid #794800;border-radius:10px;margin:12px 0}.login-notice p{font-size:18px}.login-notice button{min-height:48px}

.loading-dialog{width:min(480px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto;padding:28px;border:0;border-radius:20px;text-align:center;color:#173954;background:#fff;box-shadow:0 16px 60px #10263840}.loading-dialog::backdrop{background:#10263899}.loading-dialog h2{font-size:27px;line-height:1.25;margin:10px 0 14px}.loading-brand{font-size:16px;font-weight:700;margin-top:18px}.loading-mark{position:relative;width:min(260px,100%);margin:0 auto 20px;padding-bottom:18px;overflow:hidden}.loading-mark img{display:block;width:100%;height:auto}.loading-mark::before,.loading-mark::after{content:"";position:absolute;bottom:0;left:0;height:3px;border-radius:3px}.loading-mark::before{width:100%;background:#e9e9e7}.loading-mark::after{width:30%;background:#d4761c;animation:loading-progress 1.8s ease-in-out infinite alternate}.loading-steps{text-align:left;list-style:none;padding:0;margin:20px 0;display:grid;gap:10px;font-size:17px}.loading-steps li{display:flex;align-items:center;gap:12px;color:#506270}.loading-steps li::before{content:"";flex:0 0 18px;height:18px;border:2px solid #8a9ca8;border-radius:50%}.loading-steps li[data-state="active"]{font-weight:750;color:#173954}.loading-steps li[data-state="active"]::before{border-color:#c65300;background:#f58220}.loading-steps li[data-state="done"]{color:#17583a}.loading-steps li[data-state="done"]::before{content:"✓";font-size:14px;display:grid;place-items:center;border-color:#17583a;background:#17583a;color:#fff}.loading-dialog.finished .loading-mark::before{background:#17583a}.loading-dialog.warning .loading-mark::before{background:#a74b00}.loading-dialog.finished .loading-mark::after{display:none}.loading-dialog button{width:100%}#loadingMessage{font-size:20px;line-height:1.45}#loadingDetail{font-size:17px;min-height:1.5em}@keyframes loading-progress{to{left:70%}}@media(prefers-reduced-motion:reduce){.loading-mark::after{animation:none;left:35%}}

.loading-steps li[data-state="failed"]{color:#a03520;font-weight:700}.loading-steps li[data-state="failed"]::before{content:"!";display:grid;place-items:center;border-color:#a03520;background:#a03520;color:#fff}

.session-controls{display:flex;gap:10px;flex-wrap:wrap}.signed-out-screen{max-width:480px;margin:48px auto;padding:28px;text-align:center}.signed-out-screen img{display:block;max-width:100%;height:auto;margin:0 auto 22px}.signed-out-screen p{font-size:21px;margin-bottom:24px}.signed-out-screen button{width:100%}

.pause-countdown{border-top:2px solid #794800;margin-top:18px;padding-top:14px}.pause-countdown p{font-size:19px;font-weight:650;margin:0 0 6px}.pause-countdown strong{display:block;font-size:32px;line-height:1.3}.pause-countdown small{display:block;font-weight:400;margin-top:8px}
.owner-panel{max-width:960px;margin:auto;padding:20px 0}.owner-panel h1{font-size:32px}.stat-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}.stat-cards article{padding:24px;background:#fff;border:1px solid #cad8e1;border-radius:16px}.stat-cards span{display:block;min-height:3em}.stat-cards strong{font-size:42px;display:block;color:#163954}.stats-table{overflow:auto;margin:24px 0}.stats-table table{width:100%;border-collapse:collapse;background:#fff}.stats-table caption{text-align:left;font-size:21px;font-weight:700;margin-bottom:12px}.stats-table th,.stats-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #d4e0e7}.owner-panel .test-controls,.owner-future{padding:22px;margin:20px 0;background:#fff;border:1px solid #cad8e1;border-radius:16px}.owner-link{display:inline-block;margin-top:18px}.owner-panel .test-controls summary{font-size:22px;font-weight:700}@media(max-width:600px){.stat-cards{grid-template-columns:1fr;gap:10px}.stat-cards article{padding:18px;display:flex;justify-content:space-between;align-items:center;gap:18px}.stat-cards span{min-height:0}.owner-panel h1{font-size:27px}}
.owner-login{max-width:580px;padding:28px;margin:24px auto;background:#fff;border:1px solid #cad8e1;border-radius:16px}.owner-login img{height:auto;max-width:160px;margin-bottom:16px}.owner-login label{display:block;margin:18px 0}.owner-login input,.owner-login textarea{width:100%;box-sizing:border-box;margin-top:8px;padding:12px;font:inherit;border:1px solid #809bab;border-radius:8px}.owner-login textarea{font-size:13px;overflow-wrap:anywhere}.owner-login form button{width:100%;margin-top:12px}.owner-login h1{font-size:29px}.owner-login p{line-height:1.6}
.owner-operations{padding:22px;margin:24px 0;border:1px solid #cad8e1;background:#fff;border-radius:16px}.owner-operations label{display:block;margin:16px 0}.owner-operations input:not([type=checkbox]),.owner-operations select,.owner-operations textarea,.garage-choice select{display:block;width:100%;box-sizing:border-box;padding:12px;margin-top:6px;font:inherit;border:1px solid #809bab;border-radius:8px}.owner-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.owner-duty-card{padding:18px;margin:12px 0;background:#edf3f7;border-radius:12px}.owner-duty-card button{margin-right:10px}.bus-instructions{padding:22px;border:2px solid #245f82;border-radius:16px;background:#e8f3fa;margin:16px 0}.bus-instruction+.bus-instruction{border-top:1px solid #95b6cb;padding-top:16px;margin-top:16px}.bus-instruction h3{font-size:30px;margin:8px 0}.bus-instruction p{font-size:21px}.bus-instruction .tour-warning{padding:14px;background:#fff0c9;color:#493100;border-left:5px solid #9d6500;font-weight:700}.bus-instructions>small{display:block;margin-top:16px}.garage-choice{margin:18px 0}@media(max-width:540px){.owner-form-grid{grid-template-columns:1fr}.bus-instruction h3{font-size:27px}.owner-operations{padding:16px}}
.yard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.yard-slot{padding:18px;border:2px solid #92aab9;border-radius:12px;background:#eef4f8}.yard-slot.reserve{background:#fff3d0;border-color:#b98924}.yard-slot.unavailable{background:#ffe9e5;border-color:#a63828}.yard-slot h3{font-size:23px;margin:0 0 10px}.yard-slot strong{display:block;font-size:21px}.yard-slot button{display:block;margin-top:10px;width:100%}.yard-weekdays{display:flex;flex-wrap:wrap;gap:8px 16px}.yard-weekdays label{margin:6px 0}.owner-duty-card.draft{border-left:5px solid #a47117;background:#fff6dc}#yardSection details{margin:22px 0;padding:18px;background:#f4f7fa;border-radius:12px}#yardSection summary{font-size:21px;font-weight:700}#yardMessage{font-weight:650}#yardSection button{margin:5px 8px 5px 0}@media(max-width:800px){.yard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.yard-grid{grid-template-columns:1fr}}

#userGarages{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}#userGarages label{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px;border:1px solid #cbd6df;border-radius:8px;background:#fff}#userGarages input[type=checkbox]{width:24px;height:24px;min-height:24px;padding:0;flex:none;accent-color:#163954}#ownerUserForm fieldset{border:1px solid #899ba9;border-radius:10px;padding:16px;margin:12px 0}#ownerUserForm legend{font-weight:650}#userActivationLink{width:100%}#userActivationResult{padding:16px;background:#eaf7f2;border:2px solid #075f52;border-radius:10px;margin:16px 0}

.owner-context{background:#fff;border:1px solid #cbd6df;border-radius:12px;padding:16px;margin:18px 0}.owner-context p:empty{display:none}#ownerGarageContext{display:flex;align-items:end;gap:12px;flex-wrap:wrap}#ownerGarageContext label{display:grid;gap:5px;flex:1;min-width:190px}.owner-shell{display:grid;grid-template-columns:210px minmax(0,1fr);gap:24px;align-items:start}.owner-navigation{display:grid;gap:8px;margin:0;border:0;position:sticky;top:12px}.owner-navigation button{text-align:left;min-width:0;width:100%;border:1px solid #899ba9;border-radius:9px;background:#fff;padding:12px 14px}.owner-navigation button[aria-pressed=true]{color:#fff;background:#163954;border-color:#163954}.owner-navigation button:hover{background:#e6edf4;color:#163954}.owner-content{min-width:0}.owner-page>h2{margin-top:0}.owner-page .owner-operations{margin-top:0}.owner-footer{display:flex;gap:20px;align-items:center;flex-wrap:wrap;border-top:1px solid #cbd6df;margin-top:24px;padding-top:18px}.owner-page .test-controls{margin-top:0}.owner-page .yard-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
@media(max-width:700px){.owner-shell{grid-template-columns:minmax(0,1fr);gap:18px}.owner-navigation{position:static;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.owner-navigation button{text-align:center;padding:10px 8px;font-size:16px}.owner-page>h2{font-size:26px}#ownerGarageContext button{width:100%}}
