/* NOAA SFS Beta — Route 15. Generated by scripts/sfs_page.py. */
table.data td.num b.warm{color:var(--sign)}
table.data td.num b.cool{color:var(--brown)}
table.data td.num.big{color:var(--sign);font-weight:700}
table.data td.num.small{color:var(--mut)}
table.data span.sub{color:var(--mut);font-size:.8em;margin-left:.25em}
table.data th .sub{color:var(--mut);font-size:.8em;font-weight:400}

figure.plume{margin:18px 0 0;padding:0}
figure.plume svg{width:100%;height:auto;display:block;
  background:var(--card);border:1px solid var(--line);border-radius:6px}
figure.plume figcaption{margin-top:.5rem;color:var(--ink2);font-size:.86rem;line-height:1.45}
.plume .bd{fill:color-mix(in srgb,var(--accent) 22%,transparent);stroke:none}
.plume .mn{fill:none;stroke:var(--accent);stroke-width:2.4;
  stroke-linejoin:round;stroke-linecap:round}
.plume .pt{fill:var(--accent)}
.plume .an{fill:none;stroke:var(--mut);stroke-width:1;opacity:.65}
.plume .g{stroke:var(--line);stroke-width:1}
.plume .g.zero{stroke:var(--ink2);stroke-width:1.2}
.plume .g.thr{stroke:var(--line);stroke-dasharray:4 4}
.plume .g.tk{stroke:var(--line2)}
.plume .gl{fill:var(--mut);font-size:11px;text-anchor:end;
  font-family:"Overpass Mono",ui-monospace,monospace}
.plume .xl{fill:var(--ink2);font-size:11px;text-anchor:middle;
  font-family:"Overpass Mono",ui-monospace,monospace}

/* route 15 — the tropical-ocean section (scripts/sfs_enso_page.py)
   Series colours validated with the dataviz palette checker on the #ffffff card, all pairs:
   violet #5b3a8f vs teal #0f8f7e — CVD ΔE 19.7 (deutan), normal-vision 25.6, both >= 3:1.
   ERA5 is ink and persistence the muted grey: achromatic references, not categorical hues.
   ⚠ Grey vs teal measures ΔE 0.9 under protan simulation, so persistence is DASHED — the
   second channel — and every value is in the legend, the tooltip and the table view. */
:root{--s-b1:#0f8f7e;--s-b2:#5b3a8f;--s-obs:#17161a;--s-per:#88837c}
.enso-ctl{margin:6px 0 10px}
.eidx .skh .sub{color:var(--mut);font-weight:400;font-size:.8em;margin-left:.4em}
.elg{display:flex;flex-wrap:wrap;gap:6px 18px;margin:10px 0 4px;font-size:.84rem;color:var(--ink2)}
.elg .ek{display:inline-flex;align-items:center;gap:6px}
figure.efig{position:relative;margin:4px 0 14px;padding:0}
figure.efig svg{width:100%;height:auto;display:block;background:var(--card);
  border:1px solid var(--line);border-radius:6px}
figure.efig figcaption{margin-top:.45rem;color:var(--ink2);font-size:.84rem;line-height:1.45}
svg .g{stroke:var(--line2);stroke-width:1}
svg .zero{stroke:var(--line);stroke-width:1.2}
svg .thr{stroke:var(--line);stroke-width:1;stroke-dasharray:4 4}
svg .div{stroke:var(--line);stroke-width:1}
svg .yl{fill:var(--mut);font-size:11px;text-anchor:end;font-variant-numeric:tabular-nums;
  font-family:"Overpass Mono",ui-monospace,monospace}
svg .xl{fill:var(--ink2);font-size:11px;text-anchor:middle;
  font-family:"Overpass Mono",ui-monospace,monospace}
svg .xl.sub{fill:var(--mut);font-size:10px}
svg .tl{fill:var(--mut);font-size:10.5px;text-anchor:end}
svg .dl{fill:var(--mut);font-size:10.5px;text-anchor:end;letter-spacing:.04em;text-transform:uppercase}
svg .dl.r{text-anchor:start}
svg .ln{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
svg .ln.b1{stroke:var(--s-b1)} svg .ln.b2{stroke:var(--s-b2)}
svg .ln.obs{stroke:var(--s-obs)} svg .ln.per{stroke:var(--s-per);stroke-dasharray:5 4}
svg .band{stroke:none;opacity:.10}
svg .band.b1{fill:var(--s-b1)} svg .band.b2{fill:var(--s-b2)}
svg .dot{stroke:var(--card);stroke-width:2}
svg .dot.b1{fill:var(--s-b1)} svg .dot.b2{fill:var(--s-b2)} svg .dot.obs{fill:var(--s-obs)}
svg .xh{stroke:var(--ink2);stroke-width:1}
svg .hit{fill:transparent;cursor:crosshair}
.etip{position:absolute;top:8px;pointer-events:none;background:var(--card);
  border:1px solid var(--line);border-radius:6px;padding:6px 9px;font-size:.8rem;
  box-shadow:0 2px 8px rgba(0,0,0,.08);min-width:150px;z-index:2}
.etip .th{color:var(--ink2);font-size:.76rem;margin-bottom:2px}
.etip .tr{display:flex;align-items:center;gap:7px;line-height:1.5}
.etip .tr b{font-variant-numeric:tabular-nums;color:var(--ink);min-width:3.2em}
.etip .tr span{color:var(--ink2)}
.etip i{display:inline-block;width:14px;height:0;border-top:2px solid}
details.etab{margin:0 0 18px}
details.etab summary{cursor:pointer;color:var(--blue);font-size:.88rem}

/* route 15 — below the surface (scripts/sfs_ocean_page.py) */
figure.ofig img{width:100%;height:auto;display:block;background:var(--card);
  border:1px solid var(--line);border-radius:6px}
