:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#eef2f5;background:#0b0d0f;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:#0b0d0f}button{font:inherit;color:inherit}.app-shell{min-height:100dvh;background:radial-gradient(circle at top,#171a1f 0,#0b0d0f 45%)}.app-main{width:min(720px,100%);margin:0 auto;padding:max(18px,env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom))}.topbar{display:flex;justify-content:space-between;align-items:center;padding:6px 2px 20px}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;border:1px solid #3b4148;background:#16191d;font-weight:800}.brand strong{display:block;font-size:14px}.brand span,.clock,.muted,.small-note,.card-footer{color:#9da5ae;font-size:12px}.clock{display:flex;align-items:center;gap:5px}.view-stack{display:grid;gap:14px}.hero{display:flex;align-items:center;justify-content:space-between;padding:10px 2px 6px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:10px;color:#8a949e;margin:0 0 6px}h1{margin:0;font-size:clamp(28px,8vw,40px);line-height:1;letter-spacing:-.04em}h2{margin:0;font-size:19px}.hero p:not(.eyebrow),.page-header p:not(.eyebrow){color:#aeb6bf;margin:10px 0 0;max-width:52ch;line-height:1.5}.hero-icon{width:50px;height:50px;display:grid;place-items:center;border-radius:16px;background:#161a1e;border:1px solid #2a3036;flex:0 0 auto}.card{background:#13161af0;border:1px solid #292f35;border-radius:20px;padding:16px;box-shadow:0 14px 32px #00000029}.card-header{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.line-pills{display:flex;gap:5px;margin-top:7px}.line-pills span,.provider-chip{background:#20252a;border:1px solid #333a41;border-radius:999px;padding:4px 7px;font-size:10px;color:#c7ced5}.provider-chip.api{background:#19231e;border-color:#294132}.provider-chip.mock{background:#26211a;border-color:#4a3923;color:#e5c79a}.arrival-list{display:grid;gap:2px}.arrival-row{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:11px 0;border-top:1px solid #22272c}.arrival-row:first-child{border-top:0}.line-badge{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#22272d;border:1px solid #353c43;font-weight:800;font-size:12px}.arrival-main{min-width:0}.arrival-main strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.arrival-main span{display:block;color:#87919b;font-size:11px;margin-top:3px}.arrival-time{font-variant-numeric:tabular-nums;font-weight:800;font-size:15px;white-space:nowrap}.state{padding:20px 0;color:#9da5ae;font-size:13px}.state.error{color:#e3a9a9;line-height:1.5}.demo-notice{color:#cdb78e;font-size:11px;line-height:1.5;margin:0 0 9px}.card-footer{padding-top:10px;border-top:1px solid #22272c;margin-top:3px}.primary-button,.secondary-button,.icon-button{border:1px solid #343b42;background:#1a1e22;border-radius:12px;cursor:pointer;min-height:40px}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 13px}.primary-button{background:#eef2f5;color:#0b0d0f;border-color:#eef2f5;font-weight:800}.secondary-button:hover,.icon-button:hover{background:#22272c}.primary-button:disabled,.secondary-button:disabled,.icon-button:disabled{opacity:.55;cursor:default}.icon-button{width:40px;display:grid;place-items:center}.full{width:100%;margin-top:10px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page-header{padding:8px 2px}.with-action{display:flex;justify-content:space-between;gap:12px;align-items:end}.empty{text-align:center;padding:28px 18px;display:grid;place-items:center;gap:9px}.empty p{color:#9da5ae;margin:0 0 8px;line-height:1.5}.callout{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.callout p{margin:5px 0 0;color:#9da5ae;font-size:12px;line-height:1.4}.small-note{line-height:1.5;margin:12px 0 0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.stats-grid div{background:#171b1f;border:1px solid #242a30;border-radius:12px;padding:10px}.stats-grid span{display:block;color:#89939d;font-size:10px}.stats-grid strong{display:block;margin-top:5px;font-size:15px;font-variant-numeric:tabular-nums}.bottom-nav{position:fixed;z-index:10;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(680px,calc(100% - 24px));display:grid;grid-template-columns:repeat(4,1fr);padding:7px;background:#101214f2;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid #2c3339;border-radius:18px;box-shadow:0 15px 40px #0006}.nav-item{border:0;background:transparent;color:#838d97;min-height:48px;border-radius:13px;display:grid;place-items:center;gap:2px;font-size:10px;cursor:pointer}.nav-item.active{color:#f0f3f5;background:#1c2126}.text-button{display:block;border:0;background:transparent;color:#9da5ae;padding:9px 4px;font-size:12px;cursor:pointer}.list-button{display:flex;justify-content:space-between;align-items:center;width:100%;background:transparent;border:0;border-top:1px solid #292f35;text-align:left;padding:13px 0;cursor:pointer}.list-button span{color:#9da5ae;font-size:11px}@media(max-width:460px){.stats-grid{grid-template-columns:repeat(2,1fr)}}.state.warning{color:#e5c79a;background:#241f17;border:1px solid #493b25;border-radius:12px;padding:11px;line-height:1.5}.arrival-time small{display:block;color:#9da5ae;font-size:10px;font-weight:500;margin-top:4px;white-space:nowrap}.commute-stack{display:grid;gap:12px}.commute-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:4px 2px}.commute-heading h2{font-size:20px;line-height:1.2;letter-spacing:-.025em}.commute-heading .muted{line-height:1.45;margin-top:7px}.commute-mark{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:14px;background:#161a1e;border:1px solid #2a3036}.commute-card h3,.commute-active-card h3{font-size:18px;letter-spacing:-.02em;margin:0}.commute-route-summary{line-height:1.45;margin-top:6px}.commute-lines{display:inline-flex;align-items:center;white-space:nowrap;border:1px solid #3b454c;background:#20262b;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:700;color:#d3dbe1}.commute-target-note{display:flex;gap:7px;align-items:center;background:#1a211c;border:1px solid #2b4233;color:#c0d7c8;border-radius:11px;padding:9px 10px;font-size:11px;line-height:1.4}.commute-estimate{display:grid;gap:4px;margin:12px 0;padding:14px;border-radius:15px;border:1px solid #333b42;background:linear-gradient(135deg,#20252a,#15191d)}.commute-estimate-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#9da5ae}.commute-estimate strong{font-size:21px;line-height:1.15;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.commute-estimate>span:not(.commute-estimate-label){font-size:12px;color:#c0c8d0;line-height:1.45}.commute-estimate small{font-size:10px;color:#8f9aa4;line-height:1.4}.commute-live-board{padding-top:10px;border-top:1px solid #262c31}.commute-section-title{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px;color:#909ba4;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.commute-section-title span:last-child{color:#758f80}.commute-live-board .arrival-row{padding-top:9px;padding-bottom:9px}.commute-live-unavailable{font-size:12px;color:#9da5ae;line-height:1.5;padding:12px 0;border-top:1px solid #262c31}.commute-segment-stats{margin-top:12px;border-top:1px solid #262c31;padding-top:10px}.commute-segment-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-top:1px solid #22272c}.commute-segment-row:first-of-type{border-top:0}.commute-segment-row span{color:#aeb6bf;font-size:11px;line-height:1.4}.commute-segment-row strong{white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums}.commute-active-badge{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;border:1px solid #36513d;color:#bdd9c5;background:#19251d;padding:6px 9px;border-radius:999px;font-size:10px}.commute-active-badge span{width:6px;height:6px;border-radius:50%;background:#7fc394}.commute-elapsed{display:flex;align-items:center;gap:8px;padding:11px 12px;border-radius:12px;background:#171c20;border:1px solid #2a3137;margin:12px 0}.commute-elapsed strong{font-size:17px;font-variant-numeric:tabular-nums}.commute-elapsed span{color:#9da5ae;font-size:11px}.commute-timeline{display:grid;gap:0;margin:7px 0 10px}.commute-step{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:58px;position:relative}.commute-step:not(:last-child):before{content:"";position:absolute;left:14px;top:36px;bottom:-11px;width:1px;background:#303840}.commute-step-marker{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;font-size:11px;font-weight:800;background:#1b2025;border:1px solid #3a4249;color:#8f9aa4;z-index:1}.commute-step.done .commute-step-marker{background:#1b2a20;border-color:#42664b;color:#abd7b7}.commute-step.current .commute-step-marker{background:#eef2f5;border-color:#eef2f5;color:#0b0d0f}.commute-step-copy{min-width:0;display:grid;gap:3px}.commute-step-copy strong{font-size:13px}.commute-step-copy span{font-size:10px;color:#8e99a3;line-height:1.35}.commute-step.current .commute-step-copy strong{color:#fff}.commute-step-time{font-size:10px;color:#929da7;white-space:nowrap;font-variant-numeric:tabular-nums}.commute-step.done .commute-step-time{color:#b6d5be}.commute-cancel{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:100%;margin-top:4px}.inline-icon{vertical-align:-2px;margin-right:3px}@media(max-width:460px){.commute-heading h2{font-size:18px}.commute-estimate strong{font-size:19px}.commute-step{grid-template-columns:29px minmax(0,1fr) auto;gap:8px}.commute-step-copy span{font-size:10px}.commute-step-time{font-size:9px}}.commute-walk-leg{display:flex;align-items:center;gap:9px;padding:12px;border-radius:12px;background:#171c20;border:1px solid #2a3137;color:#bac5ce;font-size:12px;line-height:1.45}
