:root{--bg:#f4f3ef;--surface:#fff;--sunken:#f8f7f4;--ink:#1a1c20;--ink-2:#464a52;--muted:#6c7079;--line:#e2e0da;--line-strong:#c9c6be;--primary:#1f2933;--primary-hover:#323e4a;--primary-ink:#fff;--good:#1d7448;--warn:#a3470f;--stale:#d9690a;--danger:#b42318;--focus:#2b66d9;--seg-drive:#4b6a9b;--seg-wait:#b8bcc3;--seg-tram:#e5b000;--seg-walk:#3c8f6b;--radius:8px;--radius-lg:12px;--shadow:0 1px 2px #14161a0d;--shadow-lg:0 12px 32px #14161a2e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#121417;--surface:#1a1d21;--sunken:#16191c;--ink:#eceef0;--ink-2:#c3c7cd;--muted:#8f959e;--line:#2a2f35;--line-strong:#3b4148;--primary:#eceef0;--primary-hover:#fff;--primary-ink:#121417;--good:#5cc28f;--warn:#ec9a5f;--stale:#f59a45;--danger:#f07a6e;--focus:#7ea6ff;--seg-drive:#7d9bcc;--seg-wait:#59606a;--seg-tram:#f0c228;--seg-walk:#5cb08b;--shadow:none;--shadow-lg:0 12px 32px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0}body{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}main{max-width:680px;margin:0 auto;padding:0 16px 56px}h1{letter-spacing:-.015em;margin:0;font-size:1.5rem;font-weight:650;line-height:1.25}h2{letter-spacing:-.005em;margin:0 0 10px;font-size:1.05rem;font-weight:650;line-height:1.3}p{margin:0 0 10px}.muted{color:var(--muted)}.sub{color:var(--muted);margin:4px 0 0}.small{font-size:.85rem}.num{font-variant-numeric:tabular-nums}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spread{justify-content:space-between;align-items:center;gap:12px;display:flex}.err{color:var(--danger)}.warn-text{color:var(--warn);margin-top:6px;font-size:.85rem;font-weight:550}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:56px;margin-bottom:28px;display:flex}.wordmark{letter-spacing:-.01em;color:var(--ink);align-items:center;gap:9px;font-size:.98rem;font-weight:650;text-decoration:none;display:inline-flex}.wordmark i{background:var(--seg-tram);width:10px;height:10px;box-shadow:4px 4px 0 var(--seg-drive);border-radius:2px;margin-right:4px}.topbar nav{gap:4px;display:flex}button,.btn{font:inherit;cursor:pointer;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);height:36px;color:var(--ink);justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:.9rem;font-weight:550;line-height:1.2;transition:background-color .12s,border-color .12s;display:inline-flex}button:hover:not(:disabled){border-color:var(--muted)}button.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}button.primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}button.ghost{color:var(--ink-2);background:0 0;border-color:#0000;padding:0 10px}button.ghost:hover:not(:disabled){background:color-mix(in srgb, var(--ink) 6%, transparent);border-color:#0000}button.sm{height:30px;padding:0 10px;font-size:.84rem}button.link{height:auto;color:var(--ink-2);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);background:0 0;border:0;padding:0;font-weight:500}button.link:hover:not(:disabled){color:var(--ink);text-decoration-color:currentColor}button.danger{color:var(--danger)}button:disabled{opacity:.45;cursor:default}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}input,select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);width:100%;height:40px;padding:0 12px}input::placeholder{color:var(--muted)}input:focus{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 22%, transparent);outline:none}input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);flex:none;margin:0;padding:0}input[type=number]{font-variant-numeric:tabular-nums}label,.label{color:var(--ink-2);margin:16px 0 6px;font-size:.85rem;font-weight:550;display:block}.hint{color:var(--muted);margin:6px 0 0;font-size:.82rem}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.input-prefix{max-width:140px;position:relative}.input-prefix span{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-prefix input{padding-left:26px}.picked{border:1px solid var(--line);border-radius:var(--radius);background:var(--sunken);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.picked .what{color:var(--muted);font-size:.8rem;display:block}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head .row{flex-wrap:nowrap}.notice{color:var(--ink-2);background:var(--sunken);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;padding:8px 12px;font-size:.85rem}.group{margin-bottom:28px}.group-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.group-head h2{margin:0}.group-head .muted{white-space:nowrap}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-bottom:10px;padding:16px}.route{padding:0;overflow:hidden}.route-main{grid-template-columns:1fr auto;gap:4px 16px;padding:16px 16px 12px;display:grid}.route.best{border-color:var(--line-strong);box-shadow:0 0 0 1px var(--line-strong), var(--shadow)}.route.dim .route-main,.route.dim .route-body{opacity:.55}.route .name{font-size:1rem;font-weight:600}.route .meta{color:var(--muted);margin-top:2px;font-size:.84rem}.figure{text-align:right}.total{letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1.75rem;font-weight:650;line-height:1}.total small{color:var(--muted);letter-spacing:0;margin-left:2px;font-size:.8rem;font-weight:500}.figure .cost{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:6px;font-size:.84rem}.route-body{padding:0 16px 14px}.route-foot{border-top:1px solid var(--line);background:var(--sunken);justify-content:space-between;align-items:center;gap:8px;padding:6px 8px 6px 16px;display:flex}.route-foot .row{flex-wrap:nowrap;gap:2px}.route-foot .status{white-space:nowrap}.tags{vertical-align:1px;gap:4px;margin-left:8px;display:inline-flex}.tag{background:color-mix(in srgb, var(--ink) 8%, transparent);color:var(--ink-2);white-space:nowrap;border-radius:4px;padding:4px 6px;font-size:.72rem;font-weight:600;line-height:1;display:inline-block}.tag.best{background:var(--primary);color:var(--primary-ink)}.tag.live{background:color-mix(in srgb, var(--good) 14%, transparent);color:var(--good)}.tag.est{background:color-mix(in srgb, var(--muted) 16%, transparent);color:var(--ink-2)}.tag.warn{background:color-mix(in srgb, var(--warn) 16%, transparent);color:var(--warn)}.status{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:.82rem;display:inline-flex}.status:before{content:"";background:var(--line-strong);border-radius:50%;width:7px;height:7px}.status.live{color:var(--good)}.status.live:before{background:var(--good);animation:1.6s ease-in-out infinite live-pulse}.status.stale{color:var(--warn)}.status.stale:before{background:var(--stale)}@keyframes live-pulse{0%,to{opacity:1;box-shadow:0 0 0 0 color-mix(in srgb, var(--good) 45%, transparent)}50%{opacity:.35;box-shadow:0 0 0 4px color-mix(in srgb, var(--good) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.status.live:before{animation:none}}.bar{gap:2px;height:6px;margin:2px 0 10px;display:flex}.bar span{border-radius:2px;min-width:2px;height:100%;display:block}.bar .rest{background:color-mix(in srgb, var(--ink) 6%, transparent);flex:1}.seg-drive{background:var(--seg-drive)}.seg-wait{background:var(--seg-wait)}.seg-tram{background:var(--seg-tram)}.seg-walk{background:var(--seg-walk)}.legs{color:var(--ink-2);flex-wrap:wrap;gap:4px 16px;font-size:.84rem;display:flex}.legs>span{align-items:center;gap:6px;display:inline-flex}.legs i{border-radius:2px;flex:none;width:8px;height:8px;display:inline-block}.legs .extra{color:var(--muted)}.delay{color:var(--warn)}.costline{color:var(--muted);margin-top:6px;font-size:.82rem}.details{border-top:1px solid var(--line);padding:14px 16px 16px}.details h3{color:var(--ink-2);margin:0 0 6px;font-size:.82rem;font-weight:600}.details h3+*{margin-bottom:16px}.dep{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;grid-template-columns:48px 1fr auto;align-items:center;gap:10px;padding:6px 0;font-size:.85rem;display:grid}.dep:last-child{border-bottom:0}.dep .line{align-items:center;gap:8px;display:inline-flex}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.85rem}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line-strong);padding:6px 8px 6px 0;font-size:.8rem;font-weight:550}td{border-bottom:1px solid var(--line);padding:7px 8px 7px 0}tr.top td{font-weight:650}.legend{color:var(--muted);flex-wrap:wrap;gap:6px 16px;margin:4px 0 24px;font-size:.82rem;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:2px;width:8px;height:8px;display:inline-block}.empty{text-align:center;padding:36px 20px}.empty p{color:var(--muted)}.about{border-top:1px solid var(--line);color:var(--muted);padding-top:16px;font-size:.84rem}.about summary{cursor:pointer;color:var(--ink-2);align-items:center;gap:6px;font-weight:550;list-style:none;display:inline-flex}.about summary::-webkit-details-marker{display:none}.about summary:before{content:"+";width:12px;font-weight:500;display:inline-block}.about[open] summary:before{content:"–"}.about p{max-width:60ch;margin:10px 0 0}.overlay{z-index:10;background:#10121680;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--surface);width:100%;max-width:560px;max-height:92vh;box-shadow:var(--shadow-lg);border-radius:14px 14px 0 0;flex-direction:column;display:flex}.modal-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 0;display:flex}.modal-head h2{margin:0;font-size:1.15rem}.modal-head .step{color:var(--muted);margin-bottom:4px;font-size:.8rem;font-weight:550}.modal-body{padding:4px 20px 20px;overflow:auto}.modal-body>:first-child,.modal-body>label:first-child,.modal-body>form:first-child>label:first-child{margin-top:14px}.modal-actions{border-top:1px solid var(--line);background:var(--sunken);border-radius:0 0 14px 14px;justify-content:space-between;align-items:center;gap:8px;padding:12px 20px;display:flex}.modal-actions .row{flex-wrap:nowrap}.modal-intro{color:var(--muted);font-size:.9rem}@media (min-width:640px){.overlay{align-items:center;padding:24px}.modal{border-radius:14px}}@media (max-width:639px){.modal-actions{border-radius:0}}.search{gap:8px;display:flex}.search input{flex:1}.results{border:1px solid var(--line);border-radius:var(--radius);margin-top:8px;overflow:hidden}.results button.result{text-align:left;border:0;border-bottom:1px solid var(--line);background:var(--surface);border-radius:0;width:100%;height:auto;padding:10px 12px;font-weight:450;display:block}.results button.result:last-child{border-bottom:0}.results button.result:hover{background:var(--sunken)}.days{border:1px solid var(--line-strong);border-radius:var(--radius);grid-template-columns:repeat(7,1fr);max-width:420px;display:grid;overflow:hidden}.days label{height:36px;color:var(--ink-2);background:var(--surface);cursor:pointer;border-left:1px solid var(--line-strong);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;margin:0;font-size:.85rem;font-weight:550;display:flex;position:relative}.days label:first-child{border-left:0}.days input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.days label:has(input:checked){background:var(--primary);color:var(--primary-ink)}.days label:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:-2px}.options-head{justify-content:space-between;align-items:baseline;gap:12px;margin:4px 0 8px;display:flex}.choices{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}label.choice{border-bottom:1px solid var(--line);color:var(--ink);cursor:pointer;background:var(--surface);grid-template-columns:16px 1fr auto;align-items:start;gap:4px 12px;margin:0;padding:12px;font-size:.9rem;font-weight:400;display:grid}label.choice:last-child{border-bottom:0}label.choice:hover{background:var(--sunken)}label.choice:has(input:checked){background:color-mix(in srgb, var(--primary) 3%, var(--surface))}label.choice input{margin-top:2px}.choice .title{font-weight:600}.choice .mins{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;font-weight:650}.choice .desc{color:var(--muted);grid-column:2/4;font-size:.82rem}.choice .rank{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:6px;font-weight:500}.toggle{color:var(--ink);align-items:center;gap:10px;margin-top:20px;font-weight:500;display:flex}.auth{max-width:400px;margin:9vh auto 0}.auth h1{margin-bottom:6px}.auth .card{margin-top:22px;padding:22px}.auth form button.primary{width:100%;height:40px;margin-top:16px}@media (max-width:520px){.page-head{flex-direction:column;align-items:stretch}.page-head .row>button{flex:1}.total{font-size:1.5rem}.group-head{flex-direction:column;gap:2px}.tags{margin:6px 0 2px;display:flex}}
