/* One accent (oxblood) for the day nav and selection; airport colours are a chart palette, validated for CVD separation. */
:root{--page:#f9f9f7;--surface:#fcfcfb;--ink:#0b0b0b;--ink2:#52514e;--muted:#898781;--grid:#e1e0d9;--axis:#c3c2b7;--accent:#8a2b22;
  --EWR:#2a78d6;--TEB:#eb6834;--LGA:#1baf7a;--JFK:#eda100;--GA:#e87ba4;--UN:#898781;--line:#a9a79f}
@media (prefers-color-scheme:dark){:root{--page:#0d0d0d;--surface:#1a1a19;--ink:#f0efec;--ink2:#c3c2b7;--muted:#898781;--grid:#2c2c2a;--axis:#383835;--accent:#e0806f;
  --EWR:#3987e5;--TEB:#d95926;--LGA:#199e70;--JFK:#c98500;--GA:#d55181;--UN:#898781;--line:#5d5c57}}
*{box-sizing:border-box}
body{margin:0;background:var(--page);color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left))}
.mast,main,footer{max-width:980px;margin:0 auto}
.mast{padding:28px 0 12px;border-bottom:4px double var(--ink)}
h1{font:700 40px/1.1 Georgia,"Times New Roman",serif;margin:0;letter-spacing:-.01em}
h2{font:700 21px/1.2 Georgia,"Times New Roman",serif;margin:32px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--grid)}
.dek{margin:6px 0 14px;color:var(--ink2);max-width:60ch}
.day{display:flex;align-items:center;gap:10px;font:700 18px Georgia,serif}
.day button{width:44px;height:44px;line-height:1;font-size:24px;border:1px solid var(--axis);background:var(--surface);color:var(--accent);border-radius:6px;cursor:pointer}
.day button:disabled{color:var(--muted);cursor:default}
.span{margin:6px 0 0;color:var(--muted);font-size:13px}
.note{color:var(--ink2);font-size:13px;margin:8px 0 0;max-width:75ch}
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
th{text-align:left;font-weight:500;color:var(--muted);font-size:12px;padding:4px 8px;border-bottom:1px solid var(--axis)}
td{padding:6px 8px;border-bottom:1px solid var(--grid)}
.num{text-align:right}
.summary tbody tr{cursor:pointer}
.summary tbody tr:hover{background:var(--surface)}
.summary tr.sel{box-shadow:inset 3px 0 0 var(--accent);background:var(--surface)}
.summary tr.dim{opacity:.4}
.sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:8px;vertical-align:-1px}
.share{width:38%}
.bar{display:flex;align-items:center;gap:8px}.bar i{display:block;height:8px;border-radius:0 4px 4px 0;min-width:1px}.bar span{color:var(--ink2);font-size:13px;min-width:3.5em}
.chart{position:relative}
#svg{width:100%;height:280px;display:block}
#svg .gl{stroke:var(--grid);stroke-width:1}#svg .ax{fill:var(--muted);font-size:11px}#svg .ln{fill:none;stroke:var(--line);stroke-width:1}
#svg circle{stroke:var(--page);stroke-width:2}#svg circle.faint{opacity:.3}
#svg .xh{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3}
.tip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--axis);border-radius:6px;padding:6px 9px;font-size:13px;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.12)}
.tip b{font-weight:600}.tip .m{color:var(--ink2)}
#map{height:460px;border:1px solid var(--grid);border-radius:6px}
.tiles{filter:grayscale(1) contrast(.85) brightness(1.06)}
@media (prefers-color-scheme:dark){.tiles{filter:grayscale(1) invert(1) contrast(.8) brightness(.9)}}
.lbl{font:600 12px Georgia,serif;color:var(--ink);white-space:nowrap}
.leaflet-tooltip{font-size:13px}
.tools{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:8px;font-size:14px;color:var(--ink2)}
.tools select{font:inherit}
#filterLabel b{color:var(--ink)}
.scroll{max-height:560px;overflow:auto;border-bottom:1px solid var(--grid)}
.passes th{position:sticky;top:0;background:var(--page)}
.passes td{font-size:14px}.passes .m{color:var(--muted)}
.passes tr.hl{background:var(--surface)}
footer{margin:40px auto 32px;padding-top:12px;border-top:1px solid var(--grid);color:var(--muted);font-size:13px}
footer a{color:var(--ink2)}
@media (max-width:640px){h1{font-size:32px}.share{width:30%}.hide-s{display:none}#map{height:360px}#svg{height:220px}}

.cal{border-left:3px solid var(--accent);padding:6px 10px;background:var(--surface);font-size:14px;margin:0 0 10px}
.budget td.num .m{color:var(--muted)}
.multiples{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px 24px;margin-top:16px}
.multiples figure{margin:0}.multiples figcaption{font-size:13px;color:var(--ink2);display:flex;align-items:center}
.multiples svg{width:100%;height:150px;display:block}
.multiples .ref{stroke:var(--axis);stroke-width:1;stroke-dasharray:4 3}.multiples .reft{fill:var(--muted);font-size:10px}
.multiples .cross{fill:var(--page);stroke-width:2}
