/* /nino/ — the Copernicus ENSO outlook. Generated by scripts/nino_page.py.
   Roles, not identities: violet = the consensus, teal = one picked system, grey = the
   other systems, ink = ERA5. Violet vs teal validated on the white card (CVD ΔE 19.7). */
:root{--n-mm:#5b3a8f;--n-sys:#0f8f7e;--n-ctx:#9a948b;--n-obs:#17161a}
.nctl{position:sticky;top:0;z-index:5;background:var(--paper);padding:10px 0 8px;
  border-bottom:1px solid var(--line);margin:18px 0 0}
.nidx .skh .sub{color:var(--mut);font-weight:400;font-size:.8em;margin-left:.4em}
.nlg{display:flex;flex-wrap:wrap;gap:6px 18px;margin:8px 0 6px;font-size:.84rem;color:var(--ink2)}
.nlg span{display:inline-flex;align-items:center;gap:7px}
figure.nfig{position:relative;margin:4px 0 8px;padding:0}
figure.nfig svg{width:100%;height:auto;display:block;background:var(--card);
  border:1px solid var(--line);border-radius:8px}
figure.nfig figcaption{margin-top:.5rem;color:var(--ink2);font-size:.84rem;line-height:1.45}
svg .fcbg{fill:var(--paper2);opacity:.55}
svg .g{stroke:var(--line2);stroke-width:1}
svg .zero{stroke:var(--line);stroke-width:1.4}
svg .thr{stroke:var(--mut);stroke-width:1;stroke-dasharray:4 4;opacity:.8}
svg .div{stroke:var(--line);stroke-width:1}
svg .yl{fill:var(--mut);font-size:12px;text-anchor:end;font-variant-numeric:tabular-nums;
  font-family:"Overpass Mono",ui-monospace,monospace}
svg .yl.s{font-size:10px}
svg .xl{fill:var(--ink2);font-size:12px;text-anchor:middle;
  font-family:"Overpass Mono",ui-monospace,monospace}
svg .xl.yr{fill:var(--mut);font-size:11px}
svg .xl.s{font-size:10px;fill:var(--mut)}
svg .zl{fill:var(--mut);font-size:10.5px;letter-spacing:.06em;text-anchor:end;font-weight:600}
svg .zl.r{text-anchor:start}
svg .bandm{fill:var(--n-mm);opacity:.12;stroke:none}
svg .bands{fill:var(--n-sys);opacity:.14;stroke:none}
svg .sys{fill:none;stroke:var(--n-ctx);stroke-width:1.25;opacity:.55;stroke-linejoin:round}
svg .mm{fill:none;stroke:var(--n-mm);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}
svg .mmref{fill:none;stroke:var(--n-mm);stroke-width:1.5;stroke-dasharray:4 3;opacity:.85}
svg .obs{fill:none;stroke:var(--n-obs);stroke-width:2.25;stroke-linejoin:round;stroke-linecap:round}
svg .obs.thin{stroke-width:1.5}
svg .sline{fill:none;stroke:var(--n-sys);stroke-width:2.25;stroke-linejoin:round;stroke-linecap:round}
svg .hlband{fill:var(--n-sys);opacity:.16;stroke:none}
svg .hlline{fill:none;stroke:var(--n-sys);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
svg .hldot{fill:var(--n-sys);stroke:var(--card);stroke-width:2}
svg .hllab{fill:var(--ink);font-size:12.5px;font-weight:700}
svg .dot{stroke:var(--card);stroke-width:2}
svg .dot.obs{fill:var(--n-obs)} svg .dot.mm{fill:var(--n-mm)} svg .dot.s{fill:var(--n-sys)}
svg .vlab{fill:var(--ink);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
svg .vlab.s{font-size:11px}
svg .vsub{fill:var(--mut);font-size:11px}
svg .xh{stroke:var(--ink2);stroke-width:1}
svg .hit{fill:transparent;cursor:crosshair}
.ntip{position:absolute;top:46px;pointer-events:none;background:var(--card);
  border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;
  box-shadow:0 4px 14px rgba(0,0,0,.09);min-width:190px;z-index:3}
.ntip .th{color:var(--ink2);font-size:.78rem;margin-bottom:3px}
.ntip .tr{display:flex;align-items:center;gap:8px;line-height:1.55}
.ntip .tr b{font-variant-numeric:tabular-nums;color:var(--ink);min-width:3.6em}
.ntip .tr span{color:var(--ink2)}
.ntip i{display:inline-block;width:14px;height:0;border-top:2px solid}
.smgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:8px 0 4px}
@media (max-width:1000px){.smgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.smgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.smbtn{all:unset;box-sizing:border-box;display:block;cursor:pointer;background:var(--card);
  border:1px solid var(--line);border-radius:8px;padding:8px 8px 4px}
.smbtn:hover{border-color:var(--mut)}
.smbtn:focus-visible{outline:2px solid var(--n-sys);outline-offset:2px}
.smbtn.sel{border-color:var(--n-sys);box-shadow:inset 0 0 0 1px var(--n-sys)}
.smbtn .smh{display:block;font-size:.84rem;color:var(--ink);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.smbtn .smh b{font-weight:700}
.smbtn .sms{display:block;font-size:.74rem;color:var(--mut);margin-bottom:2px}
.smbtn svg{width:100%;height:auto;display:block}
table.heat{border-collapse:separate;border-spacing:2px;width:100%;min-width:640px;font-size:.88rem}
table.heat th{text-align:left;font-weight:600;color:var(--ink2);font-size:.8rem;padding:4px 8px 6px;
  white-space:nowrap}
table.heat thead th.num{text-align:center}
table.heat tbody th{background:var(--card);padding:6px 10px;border-radius:4px;white-space:nowrap}
table.heat tbody th b{color:var(--ink);font-size:.9rem}
table.heat tbody th span{display:block;color:var(--mut);font-weight:400;font-size:.74rem}
table.heat td.hc{text-align:center;font-weight:700;font-variant-numeric:tabular-nums;
  padding:8px 4px;border-radius:4px}
table.heat td.ov b{display:block;font-size:.98rem}
table.heat td.ov i{display:block;font-style:normal;font-weight:500;font-size:.72rem;opacity:.85}
table.heat td.plain{text-align:center;color:var(--ink2);font-variant-numeric:tabular-nums}
table.heat tr.mmrow th{box-shadow:inset 3px 0 0 var(--n-mm)}
table.heat tr.mmrow td.hc{font-size:.95rem}
table.heat tr[data-sid]{cursor:pointer}
table.heat tr[data-sid].sel th{box-shadow:inset 3px 0 0 var(--n-sys)}
table.heat tr[data-sid]:hover th{background:var(--paper2)}
.klg{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 8px;font-size:.78rem;color:var(--ink2)}
.klg span{display:inline-flex;align-items:center;gap:6px}
.klg i{display:inline-block;width:18px;height:12px;border-radius:3px;border:1px solid var(--line)}
.klg .klt{font-weight:700;color:var(--ink);margin-right:4px}
