:root{--ink:#172033;--muted:#637087;--blue:#1d4ed8;--green:#15803d;--red:#b91c1c;--line:#d8e0ea;--nav:#10213e}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{touch-action:manipulation}body{margin:0;background:#f5f7fb;color:var(--ink);font:16px system-ui,sans-serif;touch-action:manipulation}.app-header{position:fixed;z-index:10;top:0;left:0;right:0;height:58px;display:flex;align-items:center;padding:0 max(16px,calc((100% - 1120px)/2));background:var(--nav);color:#fff;box-shadow:0 1px 8px #10213e44}.app-header a{color:#fff;text-decoration:none}.brand{margin-right:auto;font-size:20px}.brand b{color:#91caff}.menu{position:relative}.menu summary{font-size:27px;line-height:1;cursor:pointer;list-style:none}.menu summary::-webkit-details-marker{display:none}.menu nav{position:absolute;right:0;top:42px;display:grid;min-width:210px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #17203333;overflow:hidden}.menu nav a{color:var(--ink);padding:13px 15px;border-bottom:1px solid var(--line)}.menu nav a:last-child{border:0}main{max-width:1120px;margin:auto;padding:80px 16px 86px}h1{margin:6px 0 18px}.muted{color:var(--muted)}.days{display:grid;gap:10px}.day-card,.run,.summary,.completion,.login-card,.empty-day{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 2px 8px #1720330a}.day-card{display:grid;gap:5px;color:inherit;text-decoration:none}.day-card strong{font-size:18px}.day-card.done{border-left:5px solid var(--green)}.run{margin-top:12px;padding:12px}.run-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:9px}.run-head b{font-variant-numeric:tabular-nums}.run-head span:last-child{color:var(--muted);text-align:right}.run-times{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:9px 0}.run-times div{display:grid;gap:2px}.run-times span{color:var(--muted);font-size:13px}.directions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.leg{min-width:0}.leg h2{font-size:14px;margin:5px 0}.passengers{border:1px solid #edf0f4;border-radius:7px;overflow:hidden}.passenger{display:grid;grid-template-columns:58px minmax(105px,1.35fr) minmax(86px,1fr) 68px 74px 28px;gap:5px;align-items:center;padding:5px 6px;border-bottom:1px solid #edf0f4;font-size:13px;line-height:1.2}.passenger:last-child{border-bottom:0}.passenger-heading{background:#f6f8fb;color:var(--muted);font-size:10px;font-weight:700}.passenger.boarded{background:#dcfce7}.passenger.no_show{background:#fee2e2}.passenger a{color:var(--blue);text-decoration:none}.status{width:25px;min-width:25px;height:25px;min-height:25px;padding:0;border-radius:50%;font-size:16px;line-height:1;background:#758197}.status.boarded{background:var(--green)}.status.no_show{background:var(--red)}form{display:grid;gap:10px}label{display:grid;gap:4px;font-size:14px;font-weight:600}input,textarea,button{font:inherit;padding:10px;border-radius:8px;border:1px solid #bfc9d8}button{background:var(--blue);color:#fff;border:0;font-weight:700;cursor:pointer}.parking{margin-top:8px;grid-template-columns:1fr auto;align-items:end}.parking input{padding:7px}.parking button{padding:8px 12px}.summary{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}.completion{margin-top:16px}.completion h2{margin-top:0}.back{color:var(--blue)}.login-card{max-width:420px;margin:10vh auto}.error{color:var(--red)}#day-completion{grid-template-columns:1fr 1fr auto;align-items:end}.expense-line{display:grid;grid-template-columns:1fr 180px auto;gap:10px;align-items:end}.remove-expense{background:var(--red);width:42px;min-height:42px;font-size:20px;padding:0}.add-expense{justify-self:start;background:#526178}.action-link{display:inline-block;margin-top:10px;color:var(--blue)}.bottom-nav{position:fixed;z-index:10;left:0;right:0;bottom:0;height:66px;display:grid;grid-template-columns:1fr 1fr 1fr;background:var(--nav);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -1px 8px #10213e44}.bottom-nav a,.bottom-nav button{display:grid;place-content:center;gap:2px;color:#fff;text-decoration:none;background:transparent;border:0;border-radius:0;padding:5px;font-size:12px;font-weight:500}.bottom-nav span{font-size:19px;line-height:1}.bottom-nav button span{font-weight:800;font-size:16px}.logo-screen{display:none;position:fixed;z-index:30;inset:0;background:#fff;color:#10213e;place-items:center;align-content:center;gap:15px;text-align:center;user-select:none}.logo-screen.open{display:grid}.logo-screen strong{font-size:clamp(54px,15vw,180px);letter-spacing:.08em}.logo-screen small{color:var(--muted)}@media(max-width:800px){.directions{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.leg{min-width:94%;scroll-snap-align:start}.passenger{grid-template-columns:52px minmax(105px,1fr) 80px 24px;gap:4px;padding:5px}.passenger-heading{display:none}.passenger b{grid-column:3;grid-row:1}.passenger .status{grid-column:4;grid-row:1}.passenger span:nth-child(4){grid-column:1;grid-row:2;font-size:11px}.passenger span:nth-child(5){grid-column:2;grid-row:2;font-size:11px}.parking,#day-completion{grid-template-columns:1fr}.run-head{grid-template-columns:auto 1fr}.run-head span:last-child{grid-column:2;text-align:left}.run-times,.summary{display:grid}.expense-line{grid-template-columns:1fr auto}.expense-line label:first-child{grid-column:1/-1}.expense-line .remove-expense{grid-column:2;grid-row:2}}
