:root{--ink:#171717;--accent:#3c6e63;--accent-hover:#335c54;--accent-soft:#eef4f2;--page:#f5f4f1;--surface:#fff;--muted:#5c5c59;--line:#e6e4df;--line-strong:#d4d1cb;--danger:#b42318;--radius:16px;--radius-sm:10px;--shadow:0 16px 40px #1717170d;--font-display:"Instrument Sans", "Segoe UI", sans-serif;--font-body:"Instrument Sans", "Segoe UI", sans-serif;color:var(--ink);background:var(--page);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}body{background:var(--page);max-width:100%;margin:0;font-size:16px;line-height:1.45}a{color:inherit;-webkit-tap-highlight-color:color-mix(in srgb, var(--accent) 18%, transparent);text-decoration:none}button,input,select,textarea{font:inherit;font-size:1rem}button{touch-action:manipulation}img,svg{max-width:100%;display:block}#root{min-height:100dvh}.app{background:var(--page);flex-direction:column;min-height:100dvh;display:flex;overflow-x:clip}.site-header{z-index:8;min-height:4rem;padding:max(.65rem, env(safe-area-inset-top,0px)) max(clamp(1rem, 4vw, 3rem), env(safe-area-inset-right,0px)) .65rem max(clamp(1rem, 4vw, 3rem), env(safe-area-inset-left,0px));background:color-mix(in srgb, var(--surface) 88%, transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:.75rem 1rem;display:flex;position:sticky;top:0}.wordmark{min-width:0;font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);align-items:center;gap:.7rem;font-size:1.05rem;font-weight:600;display:inline-flex}.mode-pill{border:1px solid var(--line);color:var(--muted);background:var(--surface);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:.28rem .7rem;font-size:.78rem;font-weight:500}.wordmark-mark{width:1.35rem;height:.95rem;position:relative}.wordmark-mark:before,.wordmark-mark:after{content:"";border:1.75px solid var(--ink);border-radius:50%;width:.74rem;height:.74rem;position:absolute;top:.1rem}.wordmark-mark:after{border-color:var(--accent);left:.42rem}.mode-live{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 28%, var(--line));background:var(--accent-soft)}.mode-mock{color:var(--muted)}.planner{padding:clamp(1.25rem, 4vh, 3.5rem) max(clamp(1rem, 4vw, 3rem), env(safe-area-inset-right,0px)) clamp(2.5rem, 8vh, 5.5rem) max(clamp(1rem, 4vw, 3rem), env(safe-area-inset-left,0px));flex:1}.section-narrow{max-width:48rem;margin:0 auto}.page-title{font-family:var(--font-display);letter-spacing:-.04em;color:var(--ink);margin:0 0 .3rem;font-size:clamp(1.55rem,3.6vw,2.05rem);font-weight:500;line-height:1.12}.page-lede{max-width:32rem;color:var(--muted);margin:0 0 1.2rem;font-size:.98rem;line-height:1.45}.scenario-switch{border:1px solid var(--line);background:var(--surface);border-radius:14px;grid-template-columns:1fr 1fr;width:100%;margin:0 0 1.1rem;padding:.2rem;display:grid}.scenario-switch button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:11px;min-height:2.75rem;padding:.45rem .55rem;font-size:.88rem;font-weight:500}@media (width>=560px){.scenario-switch{border-radius:999px;width:auto;display:inline-flex}.scenario-switch button{border-radius:999px;padding:.45rem .95rem;font-size:1rem}}.scenario-switch button.active{background:var(--ink);color:var(--surface)}.toggle-stack{gap:.5rem;display:grid}.toggle-row{min-height:2.75rem;color:var(--muted);align-items:center;gap:.65rem;font-size:.95rem;display:flex}.toggle-note{border:1px solid color-mix(in srgb, var(--danger) 22%, var(--line));border-radius:var(--radius-sm);background:color-mix(in srgb, var(--danger) 7%, var(--surface));color:var(--ink);margin:0;padding:.55rem .75rem;font-size:.82rem;line-height:1.4}.toggle-row input{width:1.25rem;height:1.25rem;accent-color:var(--accent);flex-shrink:0}.site-footer a{color:inherit}.planner-card,.board{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.planner-card{padding:1rem}@media (width>=720px){.planner-card{padding:1.45rem 1.5rem 1.5rem}.board{padding:1.25rem}}.meet-form{gap:1.1rem;display:grid}.form-grid{grid-template-columns:minmax(0,1fr);gap:.8rem;display:grid}.form-grid>*{min-width:0}@media (width>=760px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.traveller-card{border:1px solid var(--line);border-radius:calc(var(--radius) - 4px);background:color-mix(in srgb, var(--page) 70%, var(--surface));gap:.8rem;min-width:0;padding:.9rem;display:grid}.traveller-card.meet,.traveller-card.hub{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 22%, var(--line));grid-column:1/-1}.station-field{position:relative}.station-menu{z-index:6;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);max-height:min(14rem,50vh);box-shadow:var(--shadow);margin:0;padding:.3rem;list-style:none;position:absolute;top:calc(100% + .35rem);left:0;right:0;overflow:auto}.station-menu button{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:.45rem .75rem;padding:.62rem .7rem;display:flex}.station-menu button strong{overflow-wrap:anywhere;min-width:0}.station-menu button:focus-visible{background:var(--accent-soft)}.station-menu span{color:var(--muted);font-size:.82rem;font-weight:500}.journey-tree{border:1px solid var(--line);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--page) 70%, var(--surface));overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;margin:0 0 .9rem;padding:.7rem .5rem .55rem;overflow-x:auto}.journey-canvas{min-width:0;position:relative;overflow:hidden}.journey-tree svg{width:100%;height:auto;max-height:22rem;display:block;overflow:visible}.journey-tree svg svg{max-width:none}.journey-legend{color:var(--muted);flex-wrap:wrap;gap:.45rem .95rem;margin:0 .15rem .2rem;font-size:.84rem;font-style:normal;display:flex}.journey-legend span{align-items:center;gap:.38rem;display:inline-flex}.journey-legend i{border-radius:50%;width:.62rem;height:.62rem}.journey-labels{pointer-events:none;margin:0;padding:0;list-style:none;position:absolute;inset:0}.journey-labels li{text-overflow:ellipsis;white-space:nowrap;max-width:7.5rem;color:var(--ink);letter-spacing:-.02em;font-size:.78rem;font-weight:600;line-height:1.15;position:absolute;overflow:hidden;transform:translate(-50%,calc(-100% - .4rem))}.journey-labels li.is-start{text-align:left;transform:translateY(calc(-100% - .35rem))}.journey-labels li.is-end{text-align:right;transform:translate(-100%,calc(-100% - .35rem))}.wait-timeline{border:1px solid var(--line);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--page) 70%, var(--surface));margin:0 0 1rem;padding:.75rem .9rem .65rem}.wait-row{grid-template-columns:minmax(4.5rem,6.5rem) minmax(0,1fr) 3.5rem;align-items:center;gap:.5rem .7rem;margin-bottom:.55rem;display:grid}.wait-name,.wait-time{color:var(--muted);font-size:.9rem}.wait-name{text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.wait-time{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.wait-track{background:var(--line);border-radius:999px;height:.4rem;position:relative}.wait-fill{background:color-mix(in srgb, var(--accent) 35%, white);position:absolute;top:0;bottom:0}.wait-marker{background:var(--accent);width:12px;height:12px;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent);border-radius:50%;margin-left:-6px;position:absolute;top:-4px}.wait-caption{color:var(--muted);margin:.4rem 0 0;font-size:.82rem}.alts ul{margin:.4rem 0 0;padding:0;list-style:none}.alt-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:2.75rem;color:var(--muted);text-align:left;cursor:pointer;margin:.4rem 0 0;padding:.7rem .75rem;font-size:.88rem}.alt-item:focus-visible{border-color:var(--ink);color:var(--ink);background:var(--page)}.field{min-width:0;color:var(--muted);gap:.35rem;font-size:.86rem;font-weight:500;display:grid}.field input,.field select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-width:0;max-width:100%;height:2.75rem;min-height:2.75rem;color:var(--ink);font:inherit;padding:.5rem .75rem;font-size:1rem;line-height:1.2}.field select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 1.05rem),calc(100% - .7rem);background-repeat:no-repeat;background-size:.35rem .35rem;padding-right:2.1rem}.people-count{max-width:16rem}.field input:focus,.field select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.field input[type=datetime-local]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;appearance:none;justify-content:space-between;align-items:center;gap:.35rem;padding-inline:.7rem;display:flex;overflow:hidden}.field input[type=datetime-local]::-webkit-datetime-edit{min-width:0;max-width:100%;font:inherit;flex:auto;padding:0;font-size:.875rem;font-weight:400;line-height:1.2;overflow:hidden}.field input[type=datetime-local]::-webkit-datetime-edit-fields-wrapper{min-width:0;max-width:100%;font:inherit;flex:auto;padding:0;font-size:.875rem;font-weight:400;line-height:1.2;overflow:hidden}.field input[type=datetime-local]::-webkit-datetime-edit-text{padding:0 .02em}.field input[type=datetime-local]::-webkit-datetime-edit-year-field{padding:0 .02em}.field input[type=datetime-local]::-webkit-datetime-edit-month-field{padding:0 .02em}.field input[type=datetime-local]::-webkit-datetime-edit-day-field{padding:0 .02em}.field input[type=datetime-local]::-webkit-datetime-edit-hour-field{padding:0 .02em}.field input[type=datetime-local]::-webkit-datetime-edit-minute-field{padding:0 .02em}.field input[type=datetime-local]::-webkit-datetime-edit-ampm-field{padding:0 .02em}.field input[type=datetime-local]::-webkit-calendar-picker-indicator{cursor:pointer;flex:none;width:1rem;height:1rem;margin:0;padding:0}.error-banner{border-radius:var(--radius-sm);color:var(--danger);background:#fdeeee;margin:1rem 0 0;padding:.85rem 1rem}.board{margin-top:1.25rem;padding:1rem;overflow-x:clip}.board-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 1rem;margin-bottom:.9rem;display:flex}.section-kicker{color:var(--accent);letter-spacing:.04em;margin:0 0 .3rem;font-size:.78rem;font-weight:600}.board-header h3{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:clamp(1.05rem,4.2vw,1.25rem);font-weight:500}.board-meta{color:var(--ink);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:.35rem;font-weight:600;display:flex}.board-meta span{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:.2rem .65rem;font-size:.78rem}.timetable,.subgroup{gap:.75rem;display:grid}.subgroup-label{letter-spacing:-.02em;justify-content:space-between;align-items:baseline;gap:.75rem;margin:.35rem .1rem 0;font-size:.82rem;font-weight:600;display:flex}.subgroup-label span{color:var(--muted);font-weight:500}.itinerary{border:1px solid var(--line);border-left:3px solid var(--person-color,var(--accent));border-radius:var(--radius-sm);background:color-mix(in srgb, var(--page) 65%, var(--surface));min-width:0;padding:.8rem .8rem .85rem}.itinerary header{color:var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem .85rem;margin-bottom:.55rem;display:flex}.itinerary header span{color:var(--muted)}.itinerary-summary{color:var(--muted);flex-wrap:wrap;gap:.3rem .75rem;margin:0;font-size:.86rem;font-weight:500;display:inline-flex}.person-dot{background:var(--person-color,var(--accent));vertical-align:middle;border-radius:50%;width:.55rem;height:.55rem;margin-right:.45rem;display:inline-block}.leg-chain{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.leg-chain li{grid-template-columns:1.55rem minmax(0,1fr);align-items:start;gap:.45rem;display:grid}.leg-icon{color:var(--person-color,var(--ink))}.leg-chain p{color:var(--ink);overflow-wrap:anywhere;flex-wrap:wrap;align-items:baseline;gap:.2rem .4rem;margin:0;font-size:.9rem;display:flex}.leg-arrow{color:var(--muted)}.leg-chain time{font-variant-numeric:tabular-nums;font-weight:600}.leg-chain em{color:var(--muted);font-size:.78rem;font-style:normal}.cta-row{flex-direction:column;gap:.7rem;padding-top:.2rem;display:flex}.cta-row .btn{width:100%;min-width:0}@media (width>=560px){.cta-row{flex-flow:wrap}.cta-row .btn{width:auto}.cta-row .btn-primary{min-width:10.5rem}}.btn{cursor:pointer;letter-spacing:-.01em;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:2.85rem;padding:.65rem 1.2rem;font-weight:500;transition:background .16s,border-color .16s,color .16s;display:inline-flex}.btn-primary{background:var(--ink);color:var(--surface)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{border-color:var(--line-strong);color:var(--ink);background:0 0}.btn-small{min-height:2.75rem;padding:.45rem .85rem;font-size:.88rem}.site-footer{padding:1.15rem max(clamp(1rem, 4vw, 3rem), env(safe-area-inset-right,0px)) max(1.4rem, env(safe-area-inset-bottom,0px)) max(clamp(1rem, 4vw, 3rem), env(safe-area-inset-left,0px));border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:.75rem 1.5rem;font-size:.88rem;display:flex}@media (width<=480px){.page-title{font-size:clamp(1.4rem,8vw,1.7rem)}.page-lede{font-size:.94rem}.wait-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name time""track track";gap:.35rem .6rem}.wait-name{grid-area:name}.wait-track{grid-area:track}.wait-time{grid-area:time}.journey-labels li{max-width:5.6rem;font-size:.7rem}.station-menu button{flex-direction:column;gap:.12rem}.board-header p{overflow-wrap:anywhere}.itinerary-summary{width:100%}.itinerary header{flex-direction:column;align-items:flex-start;gap:.2rem}.traveller-card>.btn{width:100%}.planner-card{padding:.9rem}}@media (hover:hover) and (pointer:fine){.station-menu button:hover{background:var(--accent-soft)}.alt-item:hover{border-color:var(--ink);color:var(--ink);background:var(--page)}.btn-primary:hover{background:#2c2c2c}.btn-ghost:hover{background:var(--page);border-color:var(--ink)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
