:root{color-scheme:light;--font-display: "Inter", "Avenir Next", "Segoe UI", sans-serif;--font-body: "Inter", "Avenir Next", "Segoe UI", sans-serif;--bg: oklch(94% .012 80);--bg-accent: oklch(88% .02 80);--surface: rgba(255, 252, 247, .9);--surface-strong: #fffaf2;--text: oklch(18% .02 190);--muted: oklch(48% .02 190);--line: oklch(90% .01 80);--brand: oklch(38% .13 158);--brand-strong: oklch(28% .1 158);--warm: oklch(54% .12 55);--good: oklch(45% .15 152);--fair: oklch(48% .12 85);--stretched: oklch(48% .12 45);--uneven: oklch(45% .12 25);--shadow-soft: 0 18px 60px rgba(18, 24, 29, .08);--shadow-card: 0 12px 32px rgba(18, 24, 29, .12)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:radial-gradient(circle at top left,rgba(255,255,255,.55),transparent 32%),linear-gradient(180deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 88%,white 12%) 100%);color:var(--text);font-family:var(--font-body)}button,input{font:inherit}button{cursor:pointer}a{color:var(--brand-strong)}.top-nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:62px;padding:10px 20px;border-bottom:1px solid var(--line);background:#fffaf4e6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.top-nav-brand{display:flex;align-items:center;gap:10px}.top-nav-brand span{font-size:15.5px;font-weight:700;letter-spacing:-.02em}.top-nav-status{max-width:52ch;color:var(--muted);font-size:.88rem;text-align:right}.app-shell{position:relative;overflow:hidden;padding:24px}.bg-orb{position:fixed;z-index:0;border-radius:999px;filter:blur(26px);opacity:.45}.bg-orb-one{inset:48px auto auto 72%;width:240px;height:240px;background:color-mix(in srgb,var(--brand) 42%,transparent)}.bg-orb-two{inset:72% auto auto 4%;width:280px;height:280px;background:color-mix(in srgb,var(--warm) 34%,transparent)}.intro-banner,.panel{position:relative;z-index:1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.intro-banner{display:grid;gap:14px;padding:24px 26px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(135deg,var(--surface) 0%,color-mix(in srgb,var(--surface) 78%,var(--bg-accent) 22%) 100%);box-shadow:var(--shadow-soft)}.eyebrow{letter-spacing:.16em;text-transform:uppercase;font-size:.74rem;color:color-mix(in srgb,var(--text) 70%,var(--brand) 30%)}.intro-banner h1,.section-heading h2,.participants-header h3,.route-card h3{margin:0;font-family:var(--font-display);font-weight:700;letter-spacing:-.03em}.intro-banner h1{max-width:14ch;font-size:clamp(2.2rem,6vw,4rem);line-height:.95}.intro-banner p,.section-heading p,.participants-header p,.placeholder-copy,.map-caption,.note-box,.route-card p,.participant-card-top span,.top-nav-status{color:var(--muted)}.intro-chip-row,.chip-row{display:flex;flex-wrap:wrap;gap:10px}.layout-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:22px;margin-top:24px}.panel{padding:22px;border-radius:28px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-soft)}.panel-results{grid-column:1 / -1}.section-heading h2{margin:6px 0 8px;font-size:1.9rem}.section-heading p{margin:0 0 18px}.field{display:flex;flex-direction:column;gap:8px}.field span{font-size:.82rem;font-weight:600;color:color-mix(in srgb,var(--text) 86%,white 14%)}input{width:100%;padding:13px 14px;border-radius:14px;border:1.5px solid var(--line);background:#ffffffe6;color:var(--text);font-size:.96rem;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}input:focus-visible{outline:none;border-color:color-mix(in srgb,var(--brand) 45%,var(--line) 55%);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 14%,transparent);background:#fff}.invalid-input{border-color:color-mix(in srgb,var(--stretched) 65%,var(--line) 35%);box-shadow:0 0 0 4px color-mix(in srgb,var(--stretched) 12%,transparent)}.start-card{display:grid;gap:14px;padding:18px;border-radius:24px;border:1px solid color-mix(in srgb,var(--brand) 18%,var(--line) 82%);background:radial-gradient(circle at top right,color-mix(in srgb,var(--brand) 10%,transparent),transparent 42%),linear-gradient(180deg,color-mix(in srgb,var(--surface-strong) 92%,var(--bg-accent) 8%) 0%,var(--surface) 100%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand) 7%,transparent)}.start-card-copy{display:grid;gap:6px}.start-card-copy strong{font-size:1.08rem;letter-spacing:-.02em}.start-card-copy p,.start-card-foot span:last-child{color:var(--muted)}.start-card-kicker{width:fit-content;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,var(--brand) 10%,white 90%);color:var(--brand-strong);font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.start-card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.time-card{display:grid;gap:14px;margin-top:16px;padding:16px;border-radius:20px;border:1px solid var(--line);background:color-mix(in srgb,var(--brand) 5%,var(--surface-strong) 95%)}.time-card-copy{display:grid;gap:4px}.time-card-copy strong{font-size:.98rem}.time-card-status{display:grid;gap:8px}.time-chip{display:inline-flex;align-items:center;width:fit-content;padding:7px 12px;border-radius:999px;background:color-mix(in srgb,var(--brand) 12%,white 88%);color:var(--brand-strong);font-size:.88rem;font-weight:700}.time-card-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.scheduled-time-field{margin-top:2px}.participants-header,.route-card-head,.route-title-row,.metric-cluster,.participant-time-row,.action-row,.map-caption{display:flex;align-items:center;justify-content:space-between;gap:12px}.participant-list,.results-stack{display:grid;gap:14px}.participant-list{margin-top:16px}.participant-card{display:grid;gap:14px;padding:16px;border-radius:22px;border:1px solid var(--participant-border);background:var(--participant-surface);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--participant-accent) 10%,transparent)}.participant-card-top{display:flex;align-items:center;gap:12px}.participant-card-top strong{display:block;font-size:.98rem}.participant-card-top span{display:block;font-size:.82rem}.participant-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--participant-accent-strong);font-size:.95rem;font-weight:700;flex:none}.participant-card-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.compact-field input{background:#ffffffb8}.field-with-suggestions{position:relative}.station-suggestions{position:absolute;top:calc(100% + 8px);right:0;left:0;z-index:20;display:grid;gap:6px;max-height:220px;padding:8px;overflow-y:auto;border:1px solid var(--line);border-radius:16px;background:#fffaf4fa;box-shadow:var(--shadow-card)}.station-suggestion{width:100%;padding:11px 12px;border:0;border-radius:12px;background:#ffffffd1;color:var(--text);text-align:left;transition:transform .16s ease,background .16s ease}.station-suggestion.selected{background:color-mix(in srgb,var(--participant-accent, var(--brand)) 14%,white 86%)}.station-suggestion:hover{transform:translateY(-1px);background:#fff}.icon-button,.ghost-button{border:0;background:transparent;color:var(--brand-strong)}.icon-button{margin-left:auto;width:36px;height:36px;border-radius:50%;background:#ffffffc2;color:color-mix(in srgb,var(--participant-accent-strong) 72%,var(--text) 28%);font-size:1.35rem;line-height:1}.action-row{flex-wrap:wrap;justify-content:flex-start;margin-top:18px}.primary-button,.secondary-button{padding:13px 18px;border-radius:14px;border:1px solid transparent;font-weight:600}.primary-button{background:var(--brand);color:#fff}.primary-button.dark{background:var(--brand-strong)}.secondary-button{background:#ffffffc2;border-color:var(--line);color:var(--text)}.primary-button:disabled,.secondary-button:disabled{opacity:.6;cursor:not-allowed}.primary-button:hover,.secondary-button:hover,.ghost-button:hover,.icon-button:hover,.route-card:hover{transform:translateY(-1px)}.note-box{margin-top:18px;padding:16px;border-radius:18px;border:1px solid var(--line);background:color-mix(in srgb,var(--warm) 8%,var(--surface-strong) 92%)}.note-box span{display:block;margin-top:6px}.map-shell{min-height:430px;border-radius:22px;overflow:hidden;border:1px solid var(--line)}.map-fallback{display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top right,color-mix(in srgb,var(--brand) 10%,transparent),transparent 42%),linear-gradient(180deg,color-mix(in srgb,var(--surface-strong) 88%,var(--bg-accent) 12%) 0%,var(--surface) 100%)}.map-fallback-copy{display:grid;gap:8px;max-width:32rem;text-align:center}.map-fallback-copy strong{color:var(--text)}.map-caption{margin-top:14px;align-items:flex-start;flex-wrap:wrap}.map-caption span{max-width:28ch}.map-link{font-weight:700;text-decoration:none}.map-pin{width:18px;height:18px;border-radius:999px;border:3px solid white;box-shadow:0 8px 20px #12181d38}.map-pin-person{background:var(--pin-color, var(--brand))}.map-start-marker{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:color-mix(in srgb,var(--brand) 20%,white 80%);box-shadow:0 10px 22px #12181d33}.map-start-marker-core{width:16px;height:16px;border-radius:999px;background:#0087ab;background:oklch(58% .17 225);border:3px solid white}.map-end-marker{position:relative;width:24px;height:30px}.map-end-marker-pole{position:absolute;left:4px;top:2px;width:3px;height:22px;border-radius:999px;background:color-mix(in srgb,var(--text) 70%,white 30%);box-shadow:0 6px 14px #12181d2e}.map-end-marker-flag{position:absolute;left:7px;top:2px;width:14px;height:11px;border-radius:2px;border:2px solid white;background:linear-gradient(90deg,#12181d 0,#12181d 50%,#fff 50%,#fff),linear-gradient(#12181d 0,#12181d 50%,#fff 50%,#fff);background-size:8px 8px;box-shadow:0 8px 18px #12181d2e}.maplibregl-ctrl-top-right .maplibregl-ctrl{margin:12px 12px 0 0;border-radius:14px;overflow:hidden}.results-stack{margin-top:18px}.route-card{width:100%;padding:18px;text-align:left;border-radius:22px;border:1px solid var(--line);background:var(--surface-strong);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.route-card.selected{border-color:color-mix(in srgb,var(--brand) 38%,var(--line) 62%);box-shadow:var(--shadow-card)}.route-card:focus-visible,.details-toggle:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,.ghost-button:focus-visible,.icon-button:focus-visible,.station-suggestion:focus-visible{outline:2px solid color-mix(in srgb,var(--brand) 70%,white 30%);outline-offset:3px}.route-title-row{align-items:flex-start}.route-card-head p{margin-top:6px}.metric-cluster{flex-direction:column;align-items:flex-end}.metric-cluster strong,.metric-grid strong{font-size:1.1rem}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;margin-top:16px}.metric-grid span,.participant-time-row span{color:var(--muted)}.chip,.tier{display:inline-flex;align-items:center;border-radius:999px;padding:7px 11px;font-size:.86rem}.chip{background:color-mix(in srgb,var(--brand) 8%,var(--surface) 92%)}.tier-excellent{background:color-mix(in srgb,var(--good) 15%,white 85%);color:var(--good)}.tier-fair{background:color-mix(in srgb,var(--fair) 16%,white 84%);color:var(--fair)}.tier-stretched{background:color-mix(in srgb,var(--stretched) 14%,white 86%);color:var(--stretched)}.tier-uneven{background:color-mix(in srgb,var(--uneven) 14%,white 86%);color:var(--uneven)}.route-details{margin-top:16px}.details-toggle{padding:0;border:0;background:transparent;color:var(--brand-strong);text-align:left;font-weight:600}.details-block{display:grid;gap:10px;margin-top:12px}.participant-time-row{padding:10px 12px;border-radius:14px;background:#ffffffb3}@media (max-width: 980px){.layout-grid{grid-template-columns:1fr}.panel-results{grid-column:auto}}@media (max-width: 720px){.top-nav{align-items:flex-start;padding:12px 16px}.top-nav-status{display:none}.app-shell{padding:16px}.intro-banner,.panel{padding:18px;border-radius:24px}.intro-banner h1{font-size:2.35rem}.participants-header,.route-card-head,.map-caption,.start-card-foot{flex-direction:column;align-items:flex-start}.participant-card-fields{grid-template-columns:1fr}.map-shell{min-height:320px}.metric-cluster{align-items:flex-start}}
