@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;600;700;800&display=swap');
:root{--ink:#193c36;--green:#20745e;--paper:#f5f4ef;--line:#d9ded5}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px 'DM Sans',sans-serif}header{background:var(--ink);color:white;padding:23px 5%;display:flex;align-items:center;gap:24px}header b{font-size:22px;letter-spacing:3px}header span{font-size:10px;letter-spacing:2px;opacity:.6}#clock{margin-left:auto;font-variant-numeric:tabular-nums}main{max-width:1180px;margin:auto;padding:40px 28px}.intro small,.recorder small{font-size:10px;letter-spacing:2px;font-weight:700}h1{font:800 48px/1.12 Manrope,sans-serif;letter-spacing:-2px;margin:18px 0}p{line-height:1.6}.intro p,.muted{color:#6c7c74}.imports{display:grid;grid-template-columns:1fr 1fr auto;gap:16px;margin-top:30px;background:#e9ede5;padding:20px;border-radius:14px}label{display:block;font-weight:600;font-size:12px}input,select{display:block;width:100%;margin-top:8px;padding:12px;background:white;border:1px solid var(--line);border-radius:8px;color:var(--ink);font:inherit}input[type=file]{font-size:11px}.imports span{display:block;font-size:11px;margin-top:8px;font-weight:400}button{border:1px solid var(--line);border-radius:9px;padding:12px 16px;background:white;color:var(--ink);font:600 13px 'DM Sans',sans-serif;cursor:pointer}button:hover{border-color:var(--green)}button:disabled{opacity:.4;cursor:default}.toolbar{display:flex;gap:24px;align-items:end;padding:22px 0;border-bottom:1px solid var(--line)}#schedule{margin-left:auto;font-size:18px;font-weight:600}.layout{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;margin-top:30px}.sectiontitle{display:flex;justify-content:space-between;align-items:center}h2{font:700 22px Manrope,sans-serif}.route{width:100%;text-align:left;display:grid;grid-template-columns:36px 1fr auto;gap:14px;margin-bottom:10px;padding:18px}.route.active{border:2px solid var(--green);background:#edf3e9}.route .num{border-radius:50%;background:#e7ede4;width:30px;height:30px;text-align:center;line-height:30px}.route b{font-size:17px}.route small{display:block;font-weight:400;font-size:12px;margin-top:7px;line-height:1.6}.recorder{background:var(--ink);color:white;border-radius:16px;padding:28px;position:sticky;top:20px}.recorder label{display:inline-block;width:48%;margin-top:12px}.actions{display:flex;gap:12px}.actions button{width:50%;padding:22px;font-size:18px}.actions #depart{background:#d5ed86;border-color:#d5ed86}.hint{font-size:12px;opacity:.7}.note{padding:22px 0;font-size:12px}.restore{display:inline-block;margin-left:8px}.restore input{max-width:220px}.log{margin-top:40px;border-top:1px solid var(--line);padding-top:20px}.record{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:10px;background:white;padding:16px;margin:8px 0;border-radius:8px;align-items:center}.record small{display:block;color:#718077}footer{margin-top:50px;font-size:11px;letter-spacing:2px}#message{color:#8b4f18}dialog{border:0;border-radius:16px;padding:24px}dialog button{margin-top:20px}@media(max-width:750px){main{padding:25px 18px}h1{font-size:37px}.imports,.layout{grid-template-columns:1fr}.imports{gap:20px}.toolbar{flex-wrap:wrap;gap:12px}#schedule{width:100%;margin:0}.layout{gap:16px}header span{display:none}.record{grid-template-columns:1fr 1fr}.recorder{position:static}.sectiontitle{gap:10px}.imports button{width:100%}}@media print{header,.intro,.imports,.toolbar,.layout,footer,#message,.log button,.muted,dialog{display:none!important}main{padding:0}.log{border:0;margin:0}.record{break-inside:avoid;border-bottom:1px solid #ccc}body{background:white;color:black}}
.tabs{display:flex;gap:8px;margin:28px 0 22px;border-bottom:1px solid var(--line);padding-bottom:12px}.tabs button[aria-pressed=true],.calControls button[aria-pressed=true]{background:var(--ink);color:white}.calControls{display:flex;justify-content:space-between;gap:14px;align-items:end}.calControls>div{display:flex;gap:6px}.calControls label{min-width:150px}.monthGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.weekGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.weekLabel{text-align:center;padding:12px;font-size:12px;color:#718077}.calDay{padding:14px 10px;text-align:left;min-height:112px;display:flex;flex-direction:column;gap:8px;border:1px solid #d5ded8}.calDay b{font-size:17px}.calDay small{font-size:11px;font-weight:400;line-height:1.5}.dayNumber{font-size:12px;opacity:.7}.morning{background:#fff3cf;color:#6e4a06}.afternoon{background:#e1edf8;color:#24496c}.rest{background:#e3eddf;color:#45633c}.other{background:#eee4f4;color:#644275}.empty{background:#f1f0eb;color:#8a8e88}.outside{opacity:.45}.legend{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.legend span{padding:7px 10px;border-radius:6px;font-size:11px}.reminders{margin-top:25px;padding:22px;background:#e9ede5;border-radius:12px;font-size:13px}.weekGrid .calDay{min-height:180px}#calendarView{padding:12px 0}#calendarView[hidden],#routeView[hidden]{display:none}@media(max-width:750px){.calControls{flex-wrap:wrap}.calControls label{min-width:110px}.monthGrid{gap:3px}.calDay{padding:8px 4px;min-height:92px;border-radius:5px;gap:6px}.calDay b{font-size:12px}.calDay small{font-size:9px;overflow-wrap:anywhere}.weekLabel{font-size:10px;padding:8px 0}.weekGrid{grid-template-columns:1fr}.weekGrid .calDay{min-height:80px;display:grid;grid-template-columns:45px 65px 1fr;padding:16px;align-items:center}.weekGrid .calDay small{font-size:12px}.weekGrid .calDay b{font-size:16px}}@media print{.tabs,#calendarView{display:none!important}}
.metroLogo{width:49px;height:49px;object-fit:contain;background:#fff;border-radius:10px;padding:7px;flex-shrink:0}.brand{display:flex;flex-direction:column;gap:5px}.brand small{font-size:9px;letter-spacing:1.6px;opacity:.65}header{gap:15px}footer a{color:inherit}@media(max-width:750px){.metroLogo{width:42px;height:42px}.brand small{font-size:7px;letter-spacing:1px}header b{font-size:19px}}
#recordFeedback{font-size:13px;color:#d5ed86;line-height:1.5}#recordFeedback:empty{display:none}#dateConfirm{max-width:440px;width:calc(100% - 32px);color:var(--ink)}#dateConfirm::backdrop{background:#102c27b3}#dateConfirm .actions button{font-size:14px;padding:14px}#confirmDeparture{background:#d5ed86}

.morning{background:var(--cal-morning,#fff3cf);color:var(--cal-morning-text,#193c36)}.afternoon{background:var(--cal-afternoon,#e1edf8);color:var(--cal-afternoon-text,#193c36)}.rest{background:var(--cal-rest,#e3eddf);color:var(--cal-rest-text,#193c36)}.other{background:var(--cal-other,#eee4f4);color:var(--cal-other-text,#193c36)}.empty{background:var(--cal-empty,#f1f0eb);color:var(--cal-empty-text,#193c36)}
.imports{grid-template-columns:1fr 1fr}#profileButton{background:transparent;color:white;border-color:#ffffff70}#profileDialog{color:var(--ink);width:min(620px,calc(100% - 24px));max-height:90dvh;overflow:auto}#profileDialog::backdrop{background:#102c27b3}.profileHeading{display:flex;justify-content:space-between;align-items:center;gap:12px}.profileHeading h2{margin:6px 0}.profileHeading small{letter-spacing:2px;font-size:10px}.profileHeading button{margin:0}.colorSetting{border:1px solid var(--line);border-radius:12px;margin:18px 0;padding:14px;min-width:0}.colorSetting legend{font-weight:700;font-size:14px;padding:0 6px}.colorRow{display:flex;align-items:center;justify-content:space-between;gap:12px}.colorPreview{border-radius:8px;padding:14px;flex:1;font-size:13px}.colorRow input[type=color]{height:44px;width:100%;padding:3px}.swatches{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}#profileDialog .swatches button{margin:0;padding:0;width:32px;height:32px;min-width:32px;background:var(--swatch);border:2px solid #ffffff;outline:1px solid #c5ccc5}.swatches button[aria-pressed=true]{box-shadow:0 0 0 3px var(--ink)}.profileHint{font-size:12px;color:#53655c}.profileNotices{background:#e9ede5;border-radius:12px;padding:16px;margin-top:20px;font-size:13px}.profileNotices h3{margin-top:0}.profileActions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}#saveProfile{background:var(--ink);color:white}#profileStatus{font-size:13px}button:focus-visible,input:focus-visible{outline:3px solid #927020;outline-offset:3px}@media(max-width:750px){.imports{grid-template-columns:1fr}header{flex-wrap:wrap;gap:10px}#profileButton{padding:9px 12px}.brand{flex:1}.brand small{max-width:140px}#clock{font-size:12px}#profileDialog{padding:18px}.colorRow label{max-width:125px}}@media print{#profileDialog{display:none!important}}

#plusesView[hidden]{display:none}.plusToolbar{display:flex;flex-wrap:wrap;align-items:end;gap:16px;margin:24px 0}.plusToolbar label{flex:1;min-width:180px}.plusTotal{background:var(--ink);color:white;border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:10px}.plusTotal strong{font:800 38px Manrope,sans-serif}.plusTotal small{font-size:11px;letter-spacing:1px}.plusWarning{font-size:12px;color:#805018;background:#fff2d7;border-radius:6px;padding:8px 10px}.plusCards{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.plusCards>div{flex:1;min-width:135px;background:white;padding:16px;border:1px solid var(--line);border-radius:10px;font-size:12px}.plusCards b{display:block;font-size:20px;margin-top:8px}.plusTableWrap{overflow-x:auto}.plusTable{width:100%;border-collapse:collapse;background:white;font-size:13px}.plusTable th,.plusTable td{padding:14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.plusTable th{background:#e9ede5}.plusTable td:nth-child(3){min-width:240px}.plusTable small{display:block;line-height:1.5;color:#56695f;margin:4px 0 12px}.plusTable td:nth-child(4){white-space:nowrap}.plusHelp{padding:18px;background:#e9ede5;border-radius:10px;margin:18px 0;font-size:13px;line-height:1.6}.plusHelp summary{font-weight:700;cursor:pointer}.plusHelp a{color:var(--green)}.plusNotes{margin-top:24px}textarea{font:inherit;width:100%;border:1px solid var(--line);border-radius:8px;padding:12px;margin-top:8px;resize:vertical}#plusDialog{width:min(620px,calc(100% - 24px));max-height:90dvh;overflow:auto;color:var(--ink)}#plusDialog::backdrop{background:#102c27b3}#plusDialog label{margin:14px 0}.plusTimeGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.checkline{display:flex;align-items:center;gap:10px}.checkline input{width:20px;height:20px;margin:0;flex-shrink:0}.tabs{flex-wrap:wrap}@media(max-width:600px){#plusesView .sectiontitle{flex-wrap:wrap}.plusTimeGrid{gap:8px}.plusTable td,.plusTable th{padding:10px}}@media print{#plusesView,#plusDialog{display:none!important}}

/* Persistent primary navigation and controls next to every round. */
body{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}
.tabs{position:fixed;z-index:40;left:0;right:0;bottom:0;margin:0;padding:10px max(12px,env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom,0px));background:#f5f4effa;border:0;border-top:1px solid var(--line);box-shadow:0 -4px 20px #193c3612;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tabs button{min-height:48px;padding:10px 6px;font-size:13px}.tabs button:focus-visible{outline-offset:0}
.layout{grid-template-columns:minmax(0,1fr)}.layout>section:nth-child(2) .recorder{display:none}.layout>section:nth-child(2) .note{padding:0}
.roundCard{background:white;border:1px solid var(--line);border-radius:14px;margin-bottom:18px;overflow:hidden;scroll-margin:16px 0 100px}.roundCard .route{border-radius:0;margin:0;border:0;border-bottom:1px solid var(--line)}.roundCard:has(.route.active){border:2px solid var(--green)}
.roundControls{padding:16px}.roundState{margin:0 0 12px;font-size:13px;font-weight:600}.roundPlaces{display:grid;grid-template-columns:1fr 1fr;gap:12px}.roundActions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.roundActions button{min-height:44px}.roundActions [data-action=depart]{background:#d5ed86}.roundActions [data-action=arrive]{background:var(--ink);color:white}.roundFeedback{font-size:13px;color:var(--green);margin-bottom:0}.roundFeedback:empty{display:none}
@media(max-width:600px){.roundActions{display:grid;grid-template-columns:1fr 1fr}.roundActions [data-action=finishRound]{grid-column:1/-1}.route{gap:8px;padding:14px;grid-template-columns:30px minmax(0,1fr) auto}.tabs button{font-size:12px}}
@media print{body{padding-bottom:0}.tabs{display:none!important}}

/* Compact overview with explicit detail panels. */
.intro,main>footer{display:none}main{padding-top:16px}.toolbar{padding:10px 0;gap:12px}.layout{margin-top:12px;gap:8px}h2{font-size:19px;margin:10px 0}.roundControls{padding:12px}.roundCard{margin-bottom:8px}.roundPlaces select{padding:8px}.roundActions{margin-top:10px}.roundState{margin-bottom:6px}.sectiontitle+p.muted{margin:5px 0;font-size:12px}details>summary{cursor:pointer;padding:12px;border:1px solid var(--line);border-radius:8px;background:#e9ede5;font-weight:600;font-size:13px}main>details{margin-bottom:8px}.imports{margin-top:8px}.log{margin-top:8px}.roundCard[hidden]{display:none}#roundPicker{margin:8px 0}.plusToolbar{margin:12px 0}.plusTotal{padding:16px}.plusCards{margin:12px 0}#plusesView>p{font-size:12px;margin:8px 0}.calDay{min-height:76px}.reminders{margin-top:12px}body{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}

/* One-tap display mode, always available above the current screen. */
header{position:sticky;top:0;z-index:45;padding-top:12px;padding-bottom:12px}#themeToggle{min-height:48px;min-width:100px;background:#e4ebdf;color:#193c36;border:2px solid #a5b8a3;font-size:16px;font-weight:700;touch-action:manipulation}
html[data-theme=night]{color-scheme:dark;--ink:#c7d6cf;--green:#96c7b0;--paper:#000;--line:#39433e}
html[data-theme=night] body,html[data-theme=night] main{background:#000;color:#c7d6cf}
html[data-theme=night] header,html[data-theme=night] .tabs{background:#000;color:#c7d6cf;border-color:#39433e;box-shadow:none}
html[data-theme=night] :is(article,.imports,button,input,select,textarea,dialog,.record,.plusCards>div,.plusTable,.plusTable th,details>summary,.plusHelp,.reminders,.profileNotices){background:#101512;color:#c7d6cf;border-color:#39433e}
html[data-theme=night] :is(.route.active,.tabs button[aria-pressed=true],.calControls button[aria-pressed=true],#themeToggle,.plusTotal,#saveProfile){background:#1c3026;color:#d3e1d8;border-color:#88b59b}
html[data-theme=night] :is(.roundActions [data-action=depart],.roundActions [data-action=arrive],#confirmDeparture){background:#173025;color:#cce6d7;border-color:#61876f}
html[data-theme=night] :is(.muted,.record small,.plusTable small,.profileHint,.intro p){color:#a3b4aa}
html[data-theme=night] :is(.plusWarning,#message){color:#d4bb8b;background:#211b10}
html[data-theme=night] :is(.roundFeedback,#recordFeedback){color:#a7cbb4}
html[data-theme=night] .route .num{background:#26372d;color:#d3e1d8}
html[data-theme=night] .morning{background:#292315;color:#dbc894}html[data-theme=night] .afternoon{background:#14232d;color:#abc9de}html[data-theme=night] .rest{background:#18271c;color:#b0cbb0}html[data-theme=night] .other{background:#271d2d;color:#cbb7d6}html[data-theme=night] .empty{background:#101411;color:#aab5ae}html[data-theme=night] .outside{opacity:.7}
html[data-theme=night] .metroLogo{background:#26352d;filter:brightness(.7)}html[data-theme=night] .colorPreview,html[data-theme=night] .swatches{filter:brightness(.55)}
@media(max-width:600px){header{gap:8px;padding:8px 12px}.brand small{display:none}.metroLogo{width:32px;height:32px}.brand b{font-size:16px}#clock{display:none}#themeToggle{min-width:94px;padding:10px}#profileButton{padding:10px;font-size:12px}}
@media print{html[data-theme=night] body,html[data-theme=night] main,html[data-theme=night] .record{background:white!important;color:black!important}}

#dailyPdf{margin:10px 0;min-height:48px;width:100%;font-size:15px}#reportDialog{width:min(540px,calc(100% - 24px));max-height:90dvh;overflow:auto}#reportDialog::backdrop{background:#0009}@media print{#dailyPdf,#reportDialog{display:none!important}}

.tabs button{display:flex;justify-content:center;align-items:center;gap:7px}.navTrain{width:21px;height:21px;flex-shrink:0}.navIcon{font-size:23px;line-height:1;font-weight:700}

.rotationNote{margin:0 0 16px;padding:14px 16px;border:2px solid #147d8b;border-radius:12px;background:#e9f7f7;color:#103c46}
.rotationNote strong{font-size:1.2rem}
.rotationNote p{margin:8px 0 0;line-height:1.5}

#payrollButton{background:var(--green);color:white;min-height:48px;font-size:16px}
#payrollDialog{width:min(640px,calc(100% - 24px));max-height:90dvh;overflow:auto;color:var(--ink)}
#payrollDialog::backdrop{background:#102c27b3}
#payrollDialog input{min-width:0;font-size:16px}
#payrollDialog .profileActions{position:sticky;bottom:-24px;background:var(--paper);padding-bottom:16px;display:flex;justify-content:space-between;gap:8px}
@media(max-width:420px){#payrollDialog{padding:16px}#payrollDialog .plusTimeGrid{grid-template-columns:1fr 1fr}#payrollDialog .profileActions{bottom:-16px}}
