@import url('https://fonts.googleapis.com/css2?family=Heebo:wght@400;500;600;700;800&display=swap');
:root{--ink:#102f39;--muted:#63767b;--line:#dce5e5;--accent:#c7ee75;--blue:#247bce;--paper:#f6f9f8}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:Heebo,Arial,sans-serif;font-size:16px}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #378ed2;outline-offset:3px}button{border:0}a{color:inherit}.topbar{height:88px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:800;font-size:25px;line-height:1.1}.brand-mark{direction:ltr;display:grid;place-items:center;background:var(--ink);color:var(--accent);height:47px;width:47px;border-radius:14px;font-size:23px}.brand small{display:block;font-size:12px;letter-spacing:.02em;font-weight:500;margin-top:7px}.top-status{display:flex;align-items:center;gap:9px;font-size:14px}.status-dot{width:7px;height:7px;background:#85a5a1;border-radius:50%}.demo-tag{padding:5px 10px;background:#edf2f1;border-radius:20px;font-size:12px}.icon-button{border:1px solid var(--line);border-radius:50%;width:34px;height:34px;background:white;color:var(--ink)}.workspace{max-width:1680px;margin:auto;display:grid;grid-template-columns:365px minmax(400px,1fr);gap:0}.journey-panel{padding:30px 28px;background:#fff;border-left:1px solid var(--line);grid-row:span 2}.section-kicker{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.045em}h1{font-size:30px;line-height:1.25;letter-spacing:-1px;margin:12px 0}h2{font-size:18px;margin:0}p{line-height:1.6}.intro{font-size:14px;color:var(--muted);margin:0 0 23px}.trip-form label{display:block;font-size:13px;font-weight:600;margin:12px 0 7px}.trip-form input{width:100%;background:#f4f7f6;border:1px solid #d9e2e1;border-radius:9px;padding:12px 13px;min-width:0;color:var(--ink);font-size:15px}.input-row{display:flex;gap:5px}.input-row button{width:46px;flex-shrink:0;background:#edf3ed;border-radius:8px;font-size:23px;color:var(--ink)}.primary{width:100%;background:var(--ink);color:white;border-radius:9px;padding:13px 17px;display:flex;justify-content:space-between;margin:15px 0 24px;font-weight:600}.primary:hover{background:#1c4957}.preference-title,.options-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:10px 0}.preference-title h2{font-size:15px}.preference-title>span,.options-title>span{font-size:12px;color:var(--muted)}.mode-switch{display:flex;border:1px solid var(--line);padding:4px;border-radius:10px;gap:4px}.mode-switch button{flex:1;background:transparent;border-radius:7px;color:var(--muted);padding:8px;font-size:14px}.mode-switch button[aria-pressed=true]{background:var(--accent);color:#24372a;font-weight:700}.hint{color:var(--muted);font-size:13px;margin:9px 0;line-height:1.7}.quiet{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-bottom:20px}.quiet input{accent-color:var(--ink)}.next-action{border-radius:12px;background:#eef5e6;padding:17px;border-right:3px solid #a6ce66;margin:20px 0 25px}.next-action .section-kicker{font-size:11px}.next-action h2{font-size:17px;margin:7px 0}.next-action p{margin:0;font-size:13px;color:#526748}.options-title h2{font-size:16px}.option{padding:15px;border:1px solid var(--line);border-radius:12px;margin:10px 0;background:#fff;text-align:right;width:100%;color:var(--ink)}.option.selected{border:2px solid var(--ink);padding:14px;background:#f6f9f8}.option-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.option-top strong{font-size:27px;font-weight:700;direction:ltr}.option-top small{display:block;color:var(--muted);font-size:11px;font-weight:400}.option-badge{font-size:11px;background:#e4edeb;border-radius:20px;padding:4px 9px}.option.selected .option-badge{background:var(--ink);color:white}.line-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:10px 0;font-size:12px}.chip{background:#e3ebf2;border-radius:5px;padding:3px 7px;color:#225d91;font-weight:700}.chip.tram{background:#eee5f5;color:#795795}.option-meta{font-size:12px;color:var(--muted)}.map-panel{padding:28px 30px 20px;min-width:0}.map-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:16px}.map-heading h2{margin-top:7px;font-size:22px}.clock{text-align:left;background:white;border:1px solid var(--line);padding:8px 15px;border-radius:10px;white-space:nowrap}.clock span{display:block;font-size:10px;color:var(--muted)}.clock strong{font-size:24px;font-variant-numeric:tabular-nums;direction:ltr;display:block}.map-wrap{border:1px solid #d2dfdc;border-radius:18px;overflow:hidden;position:relative;background:#edf3f1;height:510px}#map{width:100%;height:100%;display:block}.map-label{position:absolute;top:15px;right:17px;display:flex;align-items:center;gap:12px;font-size:11px;color:#708883;pointer-events:none}.map-label b{background:white;border:1px solid #dde7e4;padding:5px 9px;border-radius:7px;color:var(--ink)}.map-legend{position:absolute;bottom:12px;right:12px;left:12px;display:flex;justify-content:center;gap:15px;background:#fffffff0;border-radius:8px;padding:10px;font-size:11px}.map-legend span{display:flex;align-items:center;gap:6px}.line{width:23px;height:3px;background:var(--ink);display:inline-block}.alt-line{background:#45a2c8}.walk-line{background:transparent;border-top:2px dashed #748587}.simulation{padding:20px 0 0;display:grid;gap:12px}.simulation h2{margin-top:6px}.simulation p{font-size:12px;color:var(--muted);margin:5px 0}.sim-controls{display:flex;flex-wrap:wrap;gap:8px}.sim-controls button{border:1px solid #d2dedb;background:white;border-radius:7px;padding:9px 12px;color:var(--ink);font-size:13px}.sim-controls button:hover{background:#e7eeeb}.sim-controls #advance{background:var(--ink);color:white}.event-log{font-size:13px;color:#4a656a;min-height:23px;padding:9px 12px;background:#eaf1ee;border-radius:7px}.decision-panel{padding:8px 30px 28px}.decision-panel h2{margin-top:6px}.timeline{list-style:none;padding:0;margin:20px 0;display:flex;gap:0}.timeline li{flex:1;position:relative;border-top:2px solid #cbd9d5;padding:19px 12px 0;font-size:13px}.timeline li:before{content:'';position:absolute;top:-6px;right:12px;width:10px;height:10px;border-radius:50%;border:2px solid var(--ink);background:var(--paper)}.timeline li:first-child:before{background:var(--ink)}.timeline li strong{display:block}.timeline li small{display:block;color:var(--muted);margin-top:5px;font-size:12px}.data-details{border-top:1px solid var(--line);padding-top:14px;color:var(--muted);font-size:13px}.data-details summary{cursor:pointer;color:var(--ink);font-weight:600}.data-details p{max-width:750px}.error{color:#a1342b;font-size:14px}.empty{font-size:14px;color:var(--muted);padding:20px 0}footer{border-top:1px solid var(--line);padding:20px 36px;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}dialog{border:0;border-radius:16px;max-width:480px;width:calc(100% - 30px);padding:26px;box-shadow:0 15px 80px #102f3940}dialog::backdrop{background:#102f3980}dialog p{font-size:15px}dialog h2{margin-top:16px}.map-stop-label{paint-order:stroke;stroke:#f4f8f5;stroke-width:5px;stroke-linejoin:round;fill:#163a40;font-family:Heebo,Arial,sans-serif;font-size:16px;font-weight:700}
@media(min-width:1450px){.workspace{grid-template-columns:390px minmax(600px,1fr) 260px}.journey-panel{grid-row:auto}.decision-panel{padding:35px 20px;border-right:1px solid var(--line)}.timeline{display:block}.timeline li{border-top:0;border-right:2px solid #cbd9d5;padding:0 20px 30px}.timeline li:before{right:-6px;top:3px}}
@media(max-width:800px){.topbar{padding:0 16px;height:70px}.top-status{font-size:12px}.brand{font-size:22px}.brand-mark{width:40px;height:40px}.workspace{display:flex;flex-direction:column}.journey-panel{border:0;padding:24px 20px}.journey-panel h1{font-size:28px}.map-panel{padding:0 15px 20px}.map-wrap{height:370px}.map-heading h2{font-size:18px}.map-heading{padding:8px 4px}.decision-panel{padding:8px 20px 25px}.timeline{display:block}.timeline li{border-top:0;border-right:2px solid #cbd9d5;padding:0 20px 24px}.timeline li:before{right:-6px;top:3px}footer{padding:17px;gap:12px;flex-wrap:wrap}.options{display:grid;grid-template-columns:1fr;gap:0}.map-legend{font-size:10px;gap:10px}.quiet{font-size:13px}.sim-controls button{min-height:43px}.data-details{font-size:14px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.goal-state{background:var(--ink);color:white;padding:20px 22px;border-radius:14px;margin-bottom:20px}.goal-state .section-kicker{color:var(--accent)}.goal-state h2{font-size:24px;margin-top:6px;overflow-wrap:anywhere}.goal-state p{margin:8px 0;font-size:16px}.goal-state>span:last-child{font-size:14px;color:#c6d8d9}#goal-status[data-state=late]{color:#ffd29b}.trip-form label,.hint,.quiet,.option-meta,.simulation p,.sim-controls button,.event-log{font-size:14px}.section-kicker,.option-top small,.option-badge,.clock span,.map-label,.map-legend,footer{font-size:12px}.next-action .section-kicker{font-size:12px}.next-action p{font-size:14px}@media(max-width:480px){.top-status{max-width:125px;flex-wrap:wrap;gap:3px}.brand{font-size:19px}.map-heading{align-items:flex-start}.map-heading h2{overflow-wrap:anywhere}.option-top{flex-wrap:wrap}.map-legend{flex-wrap:wrap}.goal-state{margin-top:16px}}
