:root{--accent:#e4572e;--text:#1f2328;--muted:#6a737d;--border:#e3e6ea;--bg:#fafaf9;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#root{height:100%;margin:0}h1{margin:0;font-size:1.25rem}button{font:inherit;cursor:pointer}.centered{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;height:100%;padding:1rem;display:flex}.primary{background:var(--accent);color:#fff;border:0;border-radius:8px;padding:.6rem 1.2rem}.layout{height:100%;display:flex}.sidebar{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:1rem;width:340px;padding:1.25rem;display:flex;overflow-y:auto}.map{flex:1;min-width:0}.stats{color:var(--muted);gap:1rem;margin-top:.4rem;display:flex}.stats strong{color:var(--accent);font-size:1.1rem}.search gmp-place-autocomplete{width:100%}.error{color:#b42318;margin:0;font-size:.9rem}.empty{color:var(--muted);margin:0}.countries{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.country{justify-content:space-between;align-items:center;font-weight:600;display:flex}.flag{font-size:1.2rem}.cities{flex-wrap:wrap;gap:.35rem;margin-top:.4rem;display:flex}.chip{border:1px solid var(--border);background:#fff;border-radius:999px;align-items:center;gap:.2rem;padding:.15rem .3rem .15rem .6rem;font-size:.85rem;display:inline-flex}.link{color:inherit;text-align:left;background:0 0;border:0;padding:0}.link:hover{color:var(--accent)}.remove{color:var(--muted);background:0 0;border:0;padding:0 .25rem;font-size:1rem;line-height:1}.remove:hover{color:#b42318}footer{color:var(--muted);justify-content:space-between;gap:.5rem;margin-top:auto;font-size:.85rem;display:flex}@media (width<=700px){.layout{flex-direction:column-reverse}.sidebar{border-right:0;border-top:1px solid var(--border);width:100%;height:45%}}.pick{flex-direction:column;align-items:stretch;gap:.4rem;min-width:160px;font-size:.9rem;display:flex}.primary.small{padding:.4rem .8rem;font-size:.9rem}.added{color:var(--muted)}.cancel{color:var(--muted);text-align:center;font-size:.85rem}.city-dot{background:var(--accent);opacity:.85;border:2px solid #fff;border-radius:50%;width:10px;height:10px;display:block;box-shadow:0 0 0 1px #00000026}.station-dot{background:#fff;border:2px solid #3a5bc7;border-radius:50%;width:8px;height:8px;display:block}.route{flex-direction:column;gap:.4rem;max-width:260px;font-size:.9rem;display:flex}.route p{margin:0}.route .cities{align-items:center;margin:0}.muted{color:var(--muted)}.also{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;gap:.2rem .5rem;margin-top:.5rem;padding-top:.5rem;font-size:.85rem;display:flex}.also .link{color:var(--text)}.stop-search{flex-direction:column;align-items:flex-start;gap:.3rem;display:flex}.stop-search input{border:1px solid var(--border);width:100%;font:inherit;border-radius:6px;padding:.35rem .5rem}.tabs{gap:.25rem;margin-top:.75rem;display:flex}.choices{flex-wrap:wrap;gap:.25rem;display:flex}.tabs button,.choices button{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:999px;padding:.25rem .9rem}.tabs button.active,.choices button.active{border-color:var(--text);background:var(--text);color:#fff}.link.accent{color:var(--accent)}.page{flex-direction:column;flex:1;gap:.75rem;min-width:0;padding:1.25rem;display:flex;overflow:auto}.filters{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.filters input,.filters select{border:1px solid var(--border);font:inherit;background:#fff;border-radius:6px;padding:.35rem .5rem}.filters input{width:14rem;max-width:100%}.totals{color:var(--muted);margin:0}.totals strong{color:var(--text)}.page table{border-collapse:collapse;font-size:.9rem}.page th,.page td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:.4rem .75rem .4rem 0}.page th{background:var(--bg);position:sticky;top:-1.25rem}.page th .link{font-weight:600}.page .num{text-align:right;font-variant-numeric:tabular-nums}.page .actions{text-align:right;padding-right:0}.page .actions button+button{margin-left:.6rem}.page tfoot td{border-bottom:0;font-weight:600}.stats-page section{flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:.5rem;display:flex}.stats-page h2{margin:0;font-size:1rem}.page tbody tr:hover{background:#f1f2f4}.dialog{border:0;border-radius:12px;width:min(420px,100vw - 32px);padding:1.25rem;box-shadow:0 10px 40px #0003}.dialog::backdrop{background:#0000004d}.dialog h2{margin:0;font-size:1.1rem}.dialog form{flex-direction:column;gap:.75rem;display:flex}.dialog label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.dialog input,.dialog select{border:1px solid var(--border);color:var(--text);font:inherit;background:#fff;border-radius:6px;padding:.4rem .5rem}.dialog .row{gap:.75rem;display:flex}.dialog .row label{flex:1;min-width:0}.dialog label.check{color:var(--text);flex-direction:row;align-items:center;gap:.4rem;font-size:.9rem}.dialog .buttons{justify-content:flex-end;align-items:center;gap:1rem;display:flex}@media (width<=700px){.page{padding:1rem}.page th{top:-1rem}.page .optional{display:none}.page td.station{white-space:normal}}.filters .add{margin-left:auto}.picker{flex-direction:column;gap:.35rem;display:flex}.suggestions{border:1px solid var(--border);border-radius:6px;flex-direction:column;align-items:stretch;max-height:14rem;display:flex;overflow-y:auto}.suggestions>*{border:0;border-bottom:1px solid var(--border);color:var(--text);font:inherit;text-align:left;background:#fff;padding:.35rem .5rem;font-size:.9rem}.suggestions>:last-child{border-bottom:0}.suggestions>button:hover{background:#f1f2f4}.suggestions>.link.accent{color:var(--accent)}.dialog .swap{align-self:flex-start;margin:-.4rem 0;font-size:.85rem}.credit{color:#444;background:#ffffffb3;margin:0 0 2px 4px;padding:0 4px;font:10px Roboto,Arial,sans-serif}.credit a{color:inherit}.sidebar header .filters{margin-top:.6rem}
