/* ══════════════════════════════════════════════════════════
   I THINK…
   Swiss / brutalist institutional document.
   Hard corners. Hairlines. Monospace figures. One signal colour.
   ══════════════════════════════════════════════════════════ */

/* ══ PALETTE — sourced from brand/tokens.json via GET /api/brand.
      Values below are the canonical tokens; JS overwrites them at runtime. ══ */
:root{
  --eu-blue:#003399;
  --eu-gold:#FFCC00;
  --paper:#FFFFFF;
  --ink:#0A0A0A;
  --grey-1:#6B6B6B;
  --grey-2:#9A9A9A;
  --grey-3:#D4D4D4;
  --up:#1E7A3C;
  --dn:#B3261E;

  --sig:var(--eu-gold);          /* the single popping accent */
  --sig-wash:rgba(255,204,0,.16);
  --up-wash:rgba(30,122,60,.12);
  --dn-wash:rgba(179,38,30,.12);
  --rule:var(--grey-3);
  --rule-soft:rgba(10,10,10,.10);
  --wash:rgba(10,10,10,.04);
  --wash-2:rgba(10,10,10,.07);

  --sans:"Helvetica Neue",Helvetica,"Neue Haas Grotesk Text Pro",Arial,"Inter",system-ui,sans-serif;
  --mono:"SF Mono",ui-monospace,"Roboto Mono","DejaVu Sans Mono",Menlo,Consolas,monospace;
  --u:8px;
  --maxw:1560px;
  --radius:0;          /* geometry.radius = 0, everywhere */
}
html[data-theme="ink"]{
  --paper:#0A0A0A;
  --ink:#FFFFFF;
  --grey-1:rgba(255,255,255,.70);
  --grey-2:rgba(255,255,255,.52);
  --grey-3:rgba(255,255,255,.30);
  --rule:rgba(255,255,255,.26);
  --rule-soft:rgba(255,255,255,.12);
  --wash:rgba(255,255,255,.045);
  --wash-2:rgba(255,255,255,.09);
  --eu-blue:#2f5fe0;
  --eu-blue-lt:#6b8dff;
  --sig:var(--eu-gold);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ background:var(--paper); overflow-x:hidden; }
body{
  margin:0; overflow-x:hidden; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:14px; line-height:1.45;
  -webkit-font-smoothing:antialiased;
  -webkit-text-size-adjust:100%;
  font-variant-ligatures:none;
}
h1,h2,h3,h4,p,ul,ol,table{ margin:0; padding:0; }
ul,ol{ list-style:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
input{ font:inherit; color:inherit; }
a{ color:inherit; }
:focus-visible{ outline:2px solid var(--sig); outline-offset:1px; }
::selection{ background:var(--ink); color:var(--paper); }

.mono{ font-family:var(--mono); font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
.micro{ font-size:10px; line-height:1.3; letter-spacing:.12em; text-transform:uppercase; font-weight:600; color:var(--ink-52); }
.r{ text-align:right; }
.center{ text-align:center; }
.hr{ height:1px; background:var(--ink); margin:0 0 calc(var(--u)*3); }
.fine{ font-size:11px; line-height:1.55; color:var(--ink-52); max-width:74ch; }
.fine.joke{ padding:calc(var(--u)*1.5) 0 0; margin:0; border-top:1px solid var(--rule-soft); font-style:italic; color:var(--ink-38); }
.fine.err{ color:var(--sig); font-family:var(--mono); font-size:11px; padding-top:8px; overflow-wrap:anywhere; word-break:break-word; max-width:100%; }
#ob-login-error, #t-err{ overflow-wrap:anywhere; word-break:break-word; max-width:100%; }
.kicker{ font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-52); margin-bottom:calc(var(--u)*2); }
.para{ font-family:var(--mono); font-size:10px; color:var(--sig); letter-spacing:.06em; }
.az{ font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-52); }

/* ── controls: hard rectangles, no radius ── */
.inp{
  width:100%; height:38px; padding:0 10px;
  background:transparent; border:1px solid var(--ink); color:var(--ink);
  font-family:var(--mono); font-size:13px; letter-spacing:.01em;
}
.inp::placeholder{ color:var(--ink-38); }
.inp:focus{ outline:none; border-color:var(--sig); background:var(--wash); }
.inp-nav{ height:34px; width:min(360px,100%); font-size:12px; }
.inp.qty{ text-align:center; height:38px; -moz-appearance:textfield; }
.inp.qty::-webkit-outer-spin-button,.inp.qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  height:34px; padding:0 14px;
  border:1px solid var(--ink); background:transparent; color:var(--ink);
  font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  white-space:nowrap; transition:none;
}
.btn:hover{ background:var(--ink); color:var(--paper); }
.btn:disabled{ opacity:.3; cursor:not-allowed; }
.btn:disabled:hover{ background:transparent; color:var(--ink); }
.btn-solid{ background:var(--ink); color:var(--paper); }
.btn-solid:hover{ background:var(--sig); border-color:var(--sig); color:#fff; }
.btn-wide{ width:100%; height:44px; }
.btn-ghost{ border-color:var(--rule); color:var(--ink-52); }
.btn-ghost:hover{ background:transparent; color:var(--ink); border-color:var(--ink); }
.btn.tiny, .seg-b.tiny{ height:22px; padding:0 8px; font-size:9px; letter-spacing:.1em; }
.linkbtn{
  font-size:10px; letter-spacing:.12em; text-transform:uppercase; font-weight:700;
  color:var(--ink-52); border-bottom:1px solid var(--rule); padding-bottom:1px;
}
.linkbtn:hover{ color:var(--sig); border-color:var(--sig); }

.seg{ display:inline-flex; border:1px solid var(--ink); }
.seg.full{ display:flex; width:100%; margin-bottom:8px; }
.seg-b{
  padding:0 12px; height:30px; display:inline-flex; align-items:center;
  font-size:10px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
  color:var(--ink-52); border-right:1px solid var(--rule);
}
.seg.full .seg-b{ flex:1; justify-content:center; }
.seg-b:last-child{ border-right:0; }
.seg-b:hover{ color:var(--ink); background:var(--wash); }
.seg-b.is-on{ background:var(--ink); color:var(--paper); }
.seg-b.is-on:hover{ background:var(--ink); color:var(--paper); }

/* tags */
.tagrow{ display:flex; flex-wrap:wrap; gap:4px; flex:1; min-width:0; }
.tag{
  display:inline-flex; align-items:center; height:22px; padding:0 8px;
  border:1px solid var(--rule); font-size:10px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-52); white-space:nowrap;
}
.tag:hover{ border-color:var(--ink); color:var(--ink); }
.tag.is-on{ background:var(--ink); border-color:var(--ink); color:var(--paper); }

/* tags inline in tables */
.tagi{ display:inline-block; font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-38); }

/* chips */
.chips{ display:flex; flex-wrap:wrap; gap:4px; margin-bottom:calc(var(--u)*1.5); }
.chip{
  display:inline-flex; align-items:center; gap:5px; height:20px; padding:0 7px;
  border:1px solid var(--rule); font-size:9px; font-weight:700;
  letter-spacing:.11em; text-transform:uppercase; color:var(--ink-52);
}
.chip-auto{ border-color:var(--ink); color:var(--ink); }
.chip-cons{ border-color:var(--sig); color:var(--sig); }
.chip-sim{ background:var(--sig); border-color:var(--sig); color:#fff; }
.chip-neg{ background:var(--ink); border-color:var(--ink); color:var(--paper); }
.chip-live{ border-color:var(--sig); color:var(--sig); }
.chip-ok{ border-color:var(--ok); color:var(--ok); }

/* identity chips — anonymous by design */
.anon-tag, .ver-tag{
  display:inline-flex; align-items:center; height:18px; padding:0 6px;
  border:1px solid var(--ink); font-size:9px; font-weight:800;
  letter-spacing:.14em; text-transform:uppercase; white-space:nowrap;
}
.anon-tag{ color:var(--ink); }
.ver-tag{ border-style:dashed; color:var(--ink-52); }
.ver-tag.is-ver{ border-style:solid; border-color:var(--ok); color:var(--ok); }

/* ══════════ ONBOARDING ══════════ */
.sheet{ position:fixed; inset:0; z-index:100; overflow-y:auto; background:var(--paper); }
.sheet[hidden]{ display:none; }
.sheet-in{ max-width:960px; margin:0 auto; padding:calc(var(--u)*6) calc(var(--u)*3); }
.sheet-in.wide{ max-width:var(--maxw); }
.sheet-full .sheet-in{ padding-top:0; }

.ob{ max-width:620px; }
.ob-h1{ font-size:clamp(38px,7vw,74px); line-height:.92; letter-spacing:-.045em; font-weight:800; text-transform:uppercase; margin:0 0 calc(var(--u)*2); }
.ob-h2{ font-size:clamp(28px,5vw,48px); line-height:.98; letter-spacing:-.035em; font-weight:800; text-transform:uppercase; margin-bottom:calc(var(--u)*2); }
.lede{ font-size:14px; color:var(--ink-70); max-width:56ch; margin-bottom:calc(var(--u)*4); }
.fblock{ border-top:1px solid var(--ink); padding-top:calc(var(--u)*2); margin-bottom:calc(var(--u)*3); }
.fblock>.micro{ display:block; margin-bottom:8px; color:var(--ink); }
.pseudo-row{ display:flex; align-items:center; gap:8px; }
.pseudo-row .inp{ flex:1; height:46px; font-size:16px; }
.avail{ font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-52); padding:6px 0 10px; font-family:var(--mono); overflow-wrap:anywhere; word-break:break-word; max-width:100%; }
.avail.ok{ color:var(--ok); }
.avail.bad{ color:var(--sig); }
.sugg{ display:flex; flex-wrap:wrap; gap:4px; margin-bottom:12px; }
.region-list{ max-height:216px; overflow-y:auto; border:1px solid var(--rule); margin:8px 0 12px; }
.region-list:empty{ display:none; }
.region{
  display:flex; align-items:center; gap:10px; width:100%; text-align:left;
  padding:7px 10px; border-bottom:1px solid var(--rule-soft); font-size:13px;
}
.region:last-child{ border-bottom:0; }
.region:hover{ background:var(--wash); }
.region.is-on{ background:var(--ink); color:var(--paper); }
.region .flag{ font-size:14px; }
.region .minage{ margin-left:auto; font-family:var(--mono); font-size:10px; color:var(--ink-38); }
.region.is-on .minage{ color:var(--paper); }
.check{ display:flex; align-items:flex-start; gap:9px; font-size:13px; cursor:pointer; margin-bottom:10px; }
.check input{ appearance:none; width:16px; height:16px; border:1px solid var(--ink); flex:none; margin-top:1px; cursor:pointer; }
.check input:checked{ background:var(--ink); box-shadow:inset 0 0 0 2px var(--paper); }
.ob-unlock{ margin-top:12px; }

.privnote{ border:1px solid var(--ink); padding:calc(var(--u)*2); margin-bottom:calc(var(--u)*3); }
.privnote p{ font-size:13px; line-height:1.6; color:var(--ink-70); margin-bottom:10px; }
.privnote b{ color:var(--ink); }
.notlist{ display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:2px 12px; }
.notlist li{ font-family:var(--mono); font-size:11px; color:var(--ink-52); padding:2px 0; }
.notlist li::before{ content:"— "; color:var(--sig); }

.verif{ display:grid; gap:8px; margin-bottom:calc(var(--u)*3); }
.vcard{
  display:grid; grid-template-columns:44px 1fr; gap:4px 12px; text-align:left;
  padding:calc(var(--u)*2); border:1px solid var(--ink);
}
.vcard:hover{ background:var(--ink); color:var(--paper); }
.vcard:hover .vdesc,.vcard:hover .vnum{ color:rgba(255,255,255,.72); }
.vcard:hover .vact{ color:#fff; }
.vnum{ font-size:11px; color:var(--ink-38); }
.vname{ font-size:14px; font-weight:700; letter-spacing:.01em; text-transform:uppercase; }
.vdesc{ grid-column:2; font-size:12px; line-height:1.5; color:var(--ink-52); }
.vact{ grid-column:2; font-size:10px; letter-spacing:.12em; text-transform:uppercase; font-weight:700; padding-top:4px; }
.vcard-alt{ border-style:dashed; }
.unlocks{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:calc(var(--u)*3); }
.unlocks .chip{ height:26px; padding:0 10px; border-color:var(--ok); color:var(--ok); }

/* ══════════ APP SHELL ══════════ */
.app{ min-height:100vh; display:flex; flex-direction:column; }
.app[hidden]{ display:none; }

/* header — official form header */
.hd{ border-bottom:2px solid var(--ink); position:sticky; top:0; z-index:40; background:var(--paper); }
.hd-top{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:5px calc(var(--u)*2); border-bottom:1px solid var(--rule-soft);
}
.hd-top-l,.hd-top-r{ display:flex; align-items:center; gap:12px; }
.linkbtn{ font-size:10px; }
.sim-tag{
  display:inline-flex; align-items:center; height:17px; padding:0 6px;
  background:var(--sig); color:#fff; font-size:9px; font-weight:800; letter-spacing:.18em;
}
.conn{ display:inline-flex; align-items:center; gap:5px; }
.conn-dot{ width:6px; height:6px; border-radius:50%; background:var(--ok); }
.conn-dot[data-state="retry"]{ background:var(--sig); animation:blink 1s steps(2) infinite; }
.conn-dot[data-state="mock"]{ background:var(--ink); }
.conn-dot[data-state="off"]{ background:var(--ink-38); }
@keyframes blink{ 50%{ opacity:.2 } }
.conn .mono{ font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-52); }

.hd-main{ display:flex; align-items:center; gap:12px; padding:calc(var(--u)*1.5) calc(var(--u)*2); flex-wrap:wrap; }
.wordmark{
  font-size:clamp(30px,5.2vw,52px); line-height:.85; font-weight:800;
  letter-spacing:-.05em; text-transform:uppercase; padding:0;
}
.wordmark:hover{ color:var(--sig); }
.hd-sub{ font-size:10px; letter-spacing:.3em; color:var(--ink-52); padding-top:6px; }
.hd-right{ display:flex; align-items:center; gap:calc(var(--u)*1.5); margin-left:auto; flex-wrap:wrap; }

.idchip{
  display:flex; align-items:center; gap:8px; padding:4px 8px;
  border:1px solid var(--ink); text-align:left;
}
.idchip:hover{ background:var(--wash); }
.lvl{
  display:flex; align-items:center; justify-content:center;
  width:22px; height:22px; background:var(--ink); color:var(--paper);
  font-size:11px; font-weight:700;
}
.idchip-txt{ display:flex; flex-direction:column; line-height:1.15; }
.lvltitle{ font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-52); }
.idchip-user{ font-family:var(--mono); font-size:12px; }

.xpbox{ display:flex; flex-direction:column; gap:3px; min-width:96px; }
.xpbar{ display:block; height:5px; border:1px solid var(--ink); }
.xpbar i{ display:block; height:100%; background:var(--ink); transition:width .4s steps(8); }
.marksbox{ display:flex; align-items:baseline; gap:5px; padding:4px 8px; border:1px solid var(--ink); }
.marks{ font-size:17px; font-weight:700; }
.tier{ font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-52); padding-left:6px; border-left:1px solid var(--rule); }
.streakbox{ display:flex; align-items:baseline; gap:4px; }
.streakbox .mono{ font-size:15px; font-weight:700; }

.hd-nav{ display:flex; align-items:center; gap:calc(var(--u)*2); padding:0 calc(var(--u)*2) calc(var(--u)*1.5); flex-wrap:wrap; }
.boards{ display:flex; gap:0; overflow-x:auto; scrollbar-width:none; flex:1; min-width:0; }
.boards::-webkit-scrollbar{ display:none; }
.board{
  height:32px; padding:0 13px; flex:none; border:1px solid var(--rule); border-right:0;
  font-size:10px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
  color:var(--ink-52); white-space:nowrap; display:inline-flex; align-items:center;
}
.board:last-child{ border-right:1px solid var(--rule); }
.board:hover{ color:var(--ink); background:var(--wash); }
.board.is-on{ background:var(--ink); border-color:var(--ink); color:var(--paper); }
.board .bno{ font-family:var(--mono); font-size:9px; opacity:.55; margin-right:5px; }

/* season bar */
.seasonbar{
  display:flex; align-items:center; gap:calc(var(--u)*1.5); flex-wrap:wrap;
  padding:6px calc(var(--u)*2); border-bottom:1px solid var(--rule);
  background:var(--wash);
}
.seasonbar .mono{ font-size:10px; letter-spacing:.14em; }
.seasonbar b{ color:var(--sig); }
.sb-name{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.sb-prog{ display:block; width:clamp(80px,16vw,220px); height:5px; border:1px solid var(--ink); }
.sb-prog i{ display:block; height:100%; background:var(--sig); transition:width .5s steps(10); }
.sb-note{ color:var(--ink-38); }
.seasonbar .linkbtn{ margin-left:auto; }

/* ticker */
.ticker{ display:flex; align-items:stretch; border-bottom:1px solid var(--rule); min-height:26px; }
.tick-label{
  display:flex; align-items:center; padding:0 calc(var(--u)*2); flex:none;
  border-right:1px solid var(--rule); color:var(--ink); background:var(--ink); color:var(--paper);
}
.tick-scroll{
  display:flex; align-items:center; gap:calc(var(--u)*3); padding:0 calc(var(--u)*2);
  overflow-x:auto; overflow-y:hidden; scrollbar-width:none; flex:1; min-width:0;
}
.tick-scroll::-webkit-scrollbar{ display:none; }
.tick{
  display:inline-flex; align-items:center; gap:6px; font-size:11px; white-space:nowrap;
  color:var(--ink-70); flex:0 0 auto !important; flex-shrink:0 !important; min-width:max-content !important;
}
.tick::after{
  content:"•"; margin-left:calc(var(--u)*2.5); color:var(--ink-38); font-size:9px;
}
.tick:last-child::after{ display:none; }
.tick b{ font-family:var(--mono); font-weight:600; }
.tick time{ font-family:var(--mono); font-size:9px; color:var(--ink-38); }
.tick-sig{ color:var(--sig); font-weight:700; }

/* ══════════ DOCUMENT ══════════ */
.doc{ flex:1; }
.doc-inner{ max-width:var(--maxw); margin:0 auto; padding:calc(var(--u)*3) calc(var(--u)*2) calc(var(--u)*8); }
.blk{ margin-bottom:calc(var(--u)*4); }
.blk.flush{ border:1px solid var(--ink); }
.blk-hd{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:6px 10px; border-bottom:1px solid var(--ink); background:var(--wash);
}
.blk.flush>.blk-hd{ background:var(--ink); color:var(--paper); border-bottom:1px solid var(--ink); }
.blk.flush>.blk-hd .micro,.blk.flush>.blk-hd .blk-note{ color:rgba(255,255,255,.6); }
.blk.flush>.blk-hd .para{ color:var(--sig); }
.blk-hd h2{ font-size:12px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.blk-note{ margin-left:auto; display:inline-flex; align-items:center; gap:4px; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-52); }
.blk-b{ padding:calc(var(--u)*2); }
.ctrl{ display:flex; align-items:center; gap:calc(var(--u)*2); flex-wrap:wrap; margin-bottom:calc(var(--u)*2); }
.count-row{ display:flex; align-items:baseline; gap:8px; margin-bottom:var(--u); padding-bottom:6px; border-bottom:1px solid var(--ink); }
.count-row .mono{ font-size:11px; }

/* ══════════ RAILS ══════════ */
.rail{ display:flex; gap:0; overflow-x:auto; border:1px solid var(--ink); }
.rail-b{ flex:none; width:250px; padding:calc(var(--u)*1.5); border-right:1px solid var(--rule); text-align:left; }
.rail-b:last-child{ border-right:0; }
.rail-b:hover{ background:var(--wash); }
.rb-top{ display:flex; align-items:baseline; gap:6px; margin-bottom:6px; }
.rb-cat{ font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-38); }
.rb-time{ margin-left:auto; font-family:var(--mono); font-size:9px; color:var(--ink-52); }
.rb-q{ font-size:12px; font-weight:600; line-height:1.35; margin-bottom:10px; min-height:2.7em; }
.rb-foot{ display:flex; align-items:flex-end; justify-content:space-between; gap:8px; }
.rb-px{ font-family:var(--mono); font-size:20px; font-weight:700; line-height:1; }
.rb-vol{ font-family:var(--mono); font-size:9px; color:var(--ink-38); }
.rb-deltas{ display:flex; gap:3px; margin-top:8px; flex-wrap:wrap; }

/* delta chips */
.dlt{ display:inline-flex; align-items:center; gap:2px; padding:1px 4px; border:1px solid var(--rule); font-family:var(--mono); font-size:9px; white-space:nowrap; }
.dlt i{ font-style:normal; color:var(--ink-38); }
.dlt.up{ border-color:var(--ok); color:var(--ok); }
.dlt.down{ border-color:var(--sig); color:var(--sig); }
.dlt.flat{ color:var(--ink-38); }

/* ══════════ FEED / EVENT BLOCKS ══════════ */
.feed{ display:flex; flex-direction:column; gap:calc(var(--u)*2); }
.evblk{ border:1px solid var(--ink); }
.evblk-hd{
  display:flex; align-items:center; gap:10px; width:100%; text-align:left;
  padding:calc(var(--u)*1.5); border-bottom:1px solid var(--ink); background:var(--wash);
}
.evblk-hd:hover{ background:var(--ink); color:var(--paper); }
.evblk-hd:hover .chip{ border-color:currentColor; color:currentColor; background:transparent; }
.evblk-hd:hover .para{ color:var(--sig); }
.evblk-t{ flex:1; min-width:0; }
.evblk-t h3{ font-size:13px; font-weight:800; letter-spacing:.02em; text-transform:uppercase; }
.evblk-meta{ display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-top:5px; }
.evblk-go{ font-family:var(--mono); font-size:11px; opacity:.6; flex:none; }
.evblk-hd:hover .evblk-go{ opacity:1; color:var(--sig); }

.evgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(272px,1fr)); }
.evrow{
  display:flex; flex-direction:column; gap:8px; padding:calc(var(--u)*1.5);
  border-right:1px solid var(--rule-soft); border-bottom:1px solid var(--rule-soft);
  text-align:left;
}
.evrow:hover{ background:var(--wash); }
.evrow-hd{ display:flex; align-items:center; gap:7px; }
.evrow-name{ font-size:12px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.evrow-px{ margin-left:auto; font-family:var(--mono); font-size:13px; font-weight:700; flex:none; }
.pbar{ position:relative; height:6px; border:1px solid var(--ink); }
.pbar i{ position:absolute; left:0; top:0; bottom:0; background:var(--ink); transition:width .5s steps(12); }
.pbar.hi i{ background:var(--ok); }
.evrow-ft{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.evrow-vol{ font-family:var(--mono); font-size:9px; color:var(--ink-38); }

/* single-market block */
.solo-row{
  display:grid; grid-template-columns:1fr 190px 130px 96px 96px 96px;
  gap:10px; align-items:center; padding:calc(var(--u)*1.5);
  text-align:left; width:100%; border-bottom:1px solid var(--rule-soft);
}
.solo-row:hover{ background:var(--wash); }
.solo-q{ font-size:13px; font-weight:600; line-height:1.35; }
.solo-q .mini{ display:block; font-size:10px; font-weight:400; color:var(--ink-38); letter-spacing:.08em; text-transform:uppercase; font-family:var(--mono); margin-top:3px; }
.solo-m{ font-family:var(--mono); font-size:11px; text-align:right; }
.solo-m .lbl{ display:block; font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-38); font-family:var(--sans); }
.solo-px{ font-family:var(--mono); font-size:17px; font-weight:700; }

/* ══════════ INSTITUTIONAL TABLE ══════════ */
.tbl{ width:100%; border-collapse:collapse; }
.tbl th{
  padding:5px 8px; text-align:left; border-bottom:1px solid var(--ink);
  font-size:9px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-52);
  white-space:nowrap;
}
.tbl td{ padding:7px 8px; border-bottom:1px solid var(--rule-soft); font-size:12px; vertical-align:middle; }
.tbl tbody tr:hover{ background:var(--wash); }
.tbl .r{ text-align:right; }
.tbl .mono{ font-family:var(--mono); font-variant-numeric:tabular-nums; }
.tbl tr.is-resolved td{ color:var(--ink-38); }
.tbl tr.rowlink{ cursor:pointer; }
.tbl tr.rowlink:focus-visible{ outline:2px solid var(--sig); outline-offset:-2px; }
.tbl .q-cell{ font-weight:600; line-height:1.3; }
.tbl .q-sub{ font-size:10px; font-family:var(--mono); color:var(--ink-38); letter-spacing:.06em; text-transform:uppercase; margin-top:2px; }
.tbl .px-cell{ font-family:var(--mono); font-size:14px; font-weight:700; }
.tbl-wrap{ overflow-x:auto; border:1px solid var(--ink); }
.tbl-wrap .tbl th{ position:sticky; top:0; background:var(--paper); z-index:1; }
.scrolly{ max-height:280px; overflow-y:auto; }
.up{ color:var(--ok); }
.down{ color:var(--sig); }
.yes{ color:var(--ok); font-weight:700; }
.no{ color:var(--sig); font-weight:700; }

/* competitive score */
.comp{ display:inline-flex; align-items:center; gap:4px; font-family:var(--mono); font-size:10px; }
.comp i{ display:inline-block; width:12px; height:4px; background:var(--rule); }
.comp i.on{ background:var(--ink); }
.comp i.mid{ background:var(--ink-38); }

/* flash */
@keyframes f-up{ from{ background:var(--up-wash) } to{ background:transparent } }
@keyframes f-dn{ from{ background:var(--sig-wash) } to{ background:transparent } }
.f-up{ animation:f-up .8s steps(4) }
.f-dn{ animation:f-dn .8s steps(4) }

/* empty / load */
.empty{ border:1px dashed var(--rule); padding:calc(var(--u)*6); text-align:center; }
.empty-h{ font-size:14px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; margin-bottom:6px; }
.loadwrap{ display:flex; justify-content:center; padding:calc(var(--u)*3) 0; }

/* ══════════ FOOTER (EU fine print) ══════════ */
.ft{ border-top:2px solid var(--ink); margin-top:auto; }
.ft-in{ max-width:var(--maxw); margin:0 auto; padding:calc(var(--u)*3) calc(var(--u)*2); }
.ft-legal{ font-size:11px; line-height:1.7; color:var(--ink-70); max-width:100ch; }
.ft-legal b{ color:var(--ink); }
.ft-fine{ color:var(--ink-38); margin-top:calc(var(--u)*1.5); letter-spacing:.06em; }
.ft-joke{ color:var(--ink-38); font-style:italic; margin-top:6px; max-width:90ch; }

/* ══════════ OVERLAYS ══════════ */
.ov-top{
  position:sticky; top:0; z-index:5; display:flex; align-items:center; justify-content:space-between;
  gap:12px; padding:10px 0; border-bottom:1px solid var(--ink); background:var(--paper); margin-bottom:calc(var(--u)*3);
}
.dhead{ display:flex; align-items:flex-start; gap:calc(var(--u)*3); margin-bottom:calc(var(--u)*3); flex-wrap:wrap; }
.dhead-l{ flex:1; min-width:0; }
.dhead-r{ text-align:right; flex:none; display:flex; flex-direction:column; gap:2px; }
.dtitle{ font-size:clamp(24px,3.6vw,42px); line-height:1.02; letter-spacing:-.035em; font-weight:800; text-transform:uppercase; margin-bottom:8px; }
.dsub{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:11px; color:var(--ink-52); font-family:var(--mono); }
.dprice{ font-size:clamp(30px,4.4vw,54px); font-weight:800; line-height:.9; letter-spacing:-.03em; }
.stamp{
  display:inline-block; padding:3px 8px; margin-bottom:10px;
  border:2px solid var(--sig); color:var(--sig);
  font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:.16em;
  transform:rotate(-1.2deg);
}
.notice{
  display:flex; align-items:center; gap:calc(var(--u)*2); flex-wrap:wrap;
  border:2px solid var(--sig); background:var(--sig-wash);
  padding:calc(var(--u)*1.5) calc(var(--u)*2); margin-bottom:calc(var(--u)*3);
}
.notice-final{ border-color:var(--ok); background:var(--up-wash); }
.notice-neg{ border:1px solid var(--ink); background:var(--wash); font-size:12px; line-height:1.55; }
.notice-neg b{ letter-spacing:.1em; }
.n-main{ flex:1; min-width:200px; }
.n-state{ display:inline-flex; align-items:center; gap:6px; font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:.18em; color:var(--sig); }
.n-state::before{ content:""; width:7px; height:7px; background:var(--sig); animation:blink 1.4s steps(2) infinite; }
.notice-final .n-state{ color:var(--ok); }
.notice-final .n-state::before{ background:var(--ok); animation:none; }
.n-msg{ font-size:13px; line-height:1.5; color:var(--ink-70); margin-top:4px; }
.n-count{ text-align:center; padding:0 calc(var(--u)*2); border-left:1px solid var(--rule); border-right:1px solid var(--rule); }
.n-count .micro{ display:block; }
.n-count b{ font-family:var(--mono); font-size:26px; font-weight:800; color:var(--sig); letter-spacing:-.02em; }
.n-bonds{ display:flex; gap:calc(var(--u)*2); font-family:var(--mono); font-size:10px; color:var(--ink-52); }
.n-bonds b{ color:var(--ink); }

.dgrid{ display:grid; grid-template-columns:1fr 372px; gap:calc(var(--u)*3); align-items:start; }
.dcol{ display:flex; flex-direction:column; gap:calc(var(--u)*3); min-width:0; }

/* criteria */
.crit{ font-size:13px; line-height:1.65; color:var(--ink-70); max-width:88ch; }
.crit-amb{ margin-top:calc(var(--u)*2); padding:calc(var(--u)*1.5); border-left:3px solid var(--sig); background:var(--wash); font-size:12px; line-height:1.6; }
.crit-amb b{ color:var(--sig); }
.crit-ft{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:calc(var(--u)*2); padding-top:calc(var(--u)*1.5); border-top:1px solid var(--rule-soft); }
.src{ display:inline-flex; align-items:center; gap:6px; padding:3px 8px; border:1px solid var(--ink); font-family:var(--mono); font-size:11px; word-break:break-all; }

/* oracle */
.oracle-top{ display:flex; gap:calc(var(--u)*2); align-items:flex-start; flex-wrap:wrap; padding-bottom:calc(var(--u)*2); margin-bottom:calc(var(--u)*2); border-bottom:1px solid var(--rule); }
.ot-q{ flex:1; min-width:200px; }
.ot-val{ font-family:var(--mono); font-size:30px; font-weight:800; line-height:1; }
.ot-summ{ font-size:12px; color:var(--ink-52); margin-top:6px; line-height:1.55; max-width:70ch; }
.evid{ font-family:var(--mono); font-size:11px; line-height:1.7; color:var(--ink-70); padding:calc(var(--u)*1.5); border:1px solid var(--ink); margin-bottom:calc(var(--u)*2); word-break:break-word; }
.evid b{ color:var(--sig); }
.orows{ display:flex; flex-direction:column; gap:1px; background:var(--rule-soft); border:1px solid var(--rule); }
.orow{ display:grid; grid-template-columns:1fr auto; gap:4px 10px; padding:calc(var(--u)*1.5); background:var(--paper); }
.orow-h{ display:flex; align-items:center; gap:8px; }
.orow-a{ font-family:var(--mono); font-size:12px; font-weight:600; }
.orow-v{ font-family:var(--mono); font-size:9px; font-weight:700; letter-spacing:.1em; padding:1px 5px; border:1px solid currentColor; }
.orow-v.YES{ color:var(--ok); } .orow-v.NO{ color:var(--sig); } .orow-v.SPLIT{ color:var(--ink-38); }
.orow-c{ font-family:var(--mono); font-size:11px; color:var(--ink-52); }
.orow-bar{ grid-column:1/-1; height:4px; background:var(--wash-2); }
.orow-bar i{ display:block; height:100%; background:var(--ink); }
.orow-w{ grid-column:1/-1; font-size:11px; line-height:1.55; color:var(--ink-52); }

/* chart */
.chart-b{ padding:calc(var(--u)*2) calc(var(--u)*2) var(--u); }
#chart{ width:100%; height:220px; display:block; }
.axis{ display:flex; justify-content:space-between; font-size:9px; color:var(--ink-38); padding-top:6px; }

/* book */
.book td:first-child{ font-weight:700; }
.book .ask td:first-child{ color:var(--sig); }
.book .bid td:first-child{ color:var(--ok); }
.book .depth{ position:relative; }
.book .depth i{ position:absolute; right:0; top:2px; bottom:2px; opacity:.16; }
.book .ask .depth i{ background:var(--sig); }
.book .bid .depth i{ background:var(--ok); }
.book .depth span{ position:relative; }
.spread-row td{ background:var(--ink); color:var(--paper); font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-align:center; text-transform:uppercase; padding:4px; }

/* ticket */
.slider{ -webkit-appearance:none; appearance:none; width:100%; height:2px; background:var(--ink); outline:none; margin:10px 0 6px; }
.slider::-webkit-slider-thumb{ -webkit-appearance:none; width:14px; height:22px; background:var(--ink); border:0; cursor:ew-resize; }
.slider::-moz-range-thumb{ width:14px; height:22px; background:var(--ink); border:0; border-radius:0; cursor:ew-resize; }
.ticks{ display:flex; justify-content:space-between; font-size:9px; color:var(--ink-38); }
.frow{ margin-top:calc(var(--u)*2); }
.frow-h{ display:flex; align-items:baseline; justify-content:space-between; }
.frow-h b{ font-size:15px; }
.qty{ display:flex; gap:0; margin-top:8px; }
.qty .inp{ flex:1; border-left:0; border-right:0; }
.qb{ width:38px; height:38px; border:1px solid var(--ink); font-family:var(--mono); font-size:14px; flex:none; }
.qb:hover{ background:var(--ink); color:var(--paper); }
.qb-max{ width:auto; padding:0 10px; font-size:9px; letter-spacing:.1em; font-weight:700; }
.sums{ margin-top:calc(var(--u)*2); border-top:1px solid var(--ink); }
.sums td{ padding:5px 0; border-bottom:1px solid var(--rule-soft); font-size:12px; color:var(--ink-52); }
.sums td:last-child{ color:var(--ink); font-weight:600; }
.sums tr.tot td{ border-bottom:2px solid var(--ink); color:var(--ink); font-weight:800; text-transform:uppercase; font-size:10px; letter-spacing:.1em; }
.sums tr.tot td:last-child{ font-size:15px; letter-spacing:0; }
.mini-btn{ font-family:var(--mono); font-size:9px; letter-spacing:.1em; border:1px solid var(--sig); color:var(--sig); padding:1px 6px; }
.mini-btn:hover{ background:var(--sig); color:#fff; }
.mini-btn:disabled{ opacity:.3; }

/* thread */
.msg{ display:grid; grid-template-columns:34px 1fr; gap:10px; padding:calc(var(--u)*1.5); border-bottom:1px solid var(--rule-soft); }
.msg-av{ display:flex; align-items:center; justify-content:center; width:34px; height:34px; border:1px solid var(--ink); font-family:var(--mono); font-size:11px; font-weight:700; }
.msg-h{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:4px; }
.msg-u{ font-family:var(--mono); font-size:12px; font-weight:700; }
.msg-t{ font-size:10px; letter-spacing:.06em; color:var(--ink-38); text-transform:uppercase; }
.msg-time{ margin-left:auto; font-family:var(--mono); font-size:9px; color:var(--ink-38); }
.msg-b{ font-size:13px; line-height:1.55; color:var(--ink-70); }
.msg-f{ display:flex; align-items:center; gap:10px; margin-top:6px; }
.msg-up{ font-family:var(--mono); font-size:10px; color:var(--ink-52); display:inline-flex; align-items:center; gap:4px; }
.msg-up:hover{ color:var(--sig); }
.msg-oracle{ border-left:3px solid var(--sig); background:var(--sig-wash); }
.msg-oracle .msg-av{ background:var(--sig); color:#fff; border-color:var(--sig); }
.msg-oracle .msg-u{ color:var(--sig); letter-spacing:.14em; }
.msg-ev{ margin-top:6px; font-family:var(--mono); font-size:10px; color:var(--ink-52); padding:5px 7px; border:1px solid var(--rule); }
.composer{ display:flex; gap:0; padding:calc(var(--u)*1.5); border-top:1px solid var(--ink); }
.composer .inp{ flex:1; }

/* event view table */
.ev-tbl th{ background:var(--ink); color:var(--paper); }
.ev-tbl td{ padding:9px 8px; }
.ev-row-name{ display:flex; align-items:center; gap:9px; }
.ev-rank{ font-family:var(--mono); font-size:11px; color:var(--ink-38); width:22px; }
.ev-bar .pbar{ height:7px; }
.ev-sum{ display:flex; flex-wrap:wrap; gap:calc(var(--u)*3); margin-top:calc(var(--u)*2); padding-top:calc(var(--u)*1.5); border-top:1px solid var(--ink); font-size:11px; color:var(--ink-52); }
.ev-sum b{ color:var(--ink); }

/* ══════════ GENERIC PAGES ══════════ */
.pg-h{ margin-bottom:calc(var(--u)*3); }
.pg-h h1{ font-size:clamp(26px,4.4vw,50px); line-height:1; letter-spacing:-.04em; font-weight:800; text-transform:uppercase; margin-bottom:8px; }
.pg-h p{ font-size:13px; color:var(--ink-52); max-width:80ch; line-height:1.6; }
.lad{ counter-reset:l; border:1px solid var(--ink); }
.lad-row{ display:grid; grid-template-columns:34px 1fr auto; gap:10px; align-items:center; padding:8px 10px; border-bottom:1px solid var(--rule-soft); }
.lad-row:last-child{ border-bottom:0; }
.lad-row.is-me{ background:var(--sig-wash); }
.lad-row:hover{ background:var(--wash); }
.lad-r{ font-family:var(--mono); font-size:12px; color:var(--ink-38); }
.lad-row:nth-child(1) .lad-r{ color:var(--sig); font-weight:700; }
.lad-u{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.lad-n{ font-family:var(--mono); font-size:12px; font-weight:700; }
.lad-m{ display:flex; align-items:baseline; gap:calc(var(--u)*2); }
.lad-m span{ font-family:var(--mono); font-size:11px; text-align:right; }
.lad-m .lb{ display:block; font-size:8px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-38); font-family:var(--sans); }
.ctx-line{ padding:6px 10px; border:1px solid var(--ink); background:var(--wash); font-family:var(--mono); font-size:11px; margin-bottom:calc(var(--u)*2); display:flex; gap:calc(var(--u)*2); flex-wrap:wrap; }

/* badges */
.badges{ display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:1px; background:var(--rule); border:1px solid var(--ink); }
.badge{ background:var(--paper); padding:calc(var(--u)*2); }
.badge.locked{ opacity:.42; }
.badge-h{ display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.badge-ic{ width:34px; height:34px; border:1px solid var(--ink); display:flex; align-items:center; justify-content:center; font-size:17px; flex:none; }
.badge-n{ font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.badge-d{ font-size:11px; line-height:1.5; color:var(--ink-52); }
.badge-f{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:10px; padding-top:8px; border-top:1px solid var(--rule-soft); }
.rar{ font-family:var(--mono); font-size:9px; letter-spacing:.12em; text-transform:uppercase; padding:1px 5px; border:1px solid currentColor; }
.rar.common{ color:var(--ink-38); } .rar.rare{ color:var(--ink); }
.rar.epic{ color:var(--sig); } .rar.legendary{ color:var(--sig); font-weight:700; }
.badge-p{ font-family:var(--mono); font-size:10px; color:var(--ink-52); }

/* XP breakdown */
.xpbars{ display:flex; flex-direction:column; gap:6px; }
.xpb{ display:grid; grid-template-columns:1fr 60px; gap:10px; align-items:center; }
.xpb-l{ font-size:11px; color:var(--ink-70); }
.xpb-bar{ grid-column:1/-1; height:6px; background:var(--wash-2); }
.xpb-bar i{ display:block; height:100%; }
.xpb-v{ font-family:var(--mono); font-size:11px; text-align:right; }

/* proposals */
.prop{ border:1px solid var(--rule); border-left:3px solid var(--ink); padding:calc(var(--u)*2); margin-bottom:8px; }
.prop.live{ border-left-color:var(--ok); }
.prop.rejected{ opacity:.55; }
.prop-h{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.prop-q{ font-size:14px; font-weight:700; line-height:1.3; margin-bottom:6px; }
.prop-c{ font-size:11px; line-height:1.55; color:var(--ink-52); }
.prop-f{ display:flex; align-items:center; gap:calc(var(--u)*2); flex-wrap:wrap; margin-top:calc(var(--u)*1.5); padding-top:calc(var(--u)*1.5); border-top:1px solid var(--rule-soft); }
.verdict{ font-family:var(--mono); font-size:9px; font-weight:700; letter-spacing:.12em; padding:2px 6px; border:1px solid currentColor; }
.verdict.RESOLVABLE{ color:var(--ok); }
.verdict.AMBIGUOUS{ color:var(--sig); }
.verdict.UNVERIFIABLE{ color:var(--ink-38); }
.vote{ display:inline-flex; align-items:center; gap:4px; font-family:var(--mono); font-size:11px; }
.vote button{ border:1px solid var(--rule); width:22px; height:22px; font-size:10px; }
.vote button:hover{ border-color:var(--ink); background:var(--ink); color:var(--paper); }

/* validation list */
.val{ display:flex; flex-direction:column; gap:1px; background:var(--rule-soft); border:1px solid var(--rule); margin-top:calc(var(--u)*1.5); }
.val-r{ display:grid; grid-template-columns:18px 1fr; gap:8px; padding:6px 9px; background:var(--paper); font-size:11px; line-height:1.5; }
.val-m{ font-family:var(--mono); font-weight:700; }
.val-r.pass .val-m{ color:var(--ok); }
.val-r.fail .val-m{ color:var(--sig); }
.tpl{ display:flex; flex-wrap:wrap; gap:4px; margin-bottom:calc(var(--u)*1.5); }

/* raffle */
.locked-wrap{ position:relative; }
.locked-wrap .lock-blur{ filter:blur(3px); opacity:.5; pointer-events:none; user-select:none; }
.lock-card{ border:2px solid var(--ink); background:var(--paper); padding:calc(var(--u)*3); margin-top:calc(var(--u)*2); position:relative; }
.lock-card h3{ font-size:16px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; margin-bottom:10px; }
.proof{ border:1px solid var(--ink); padding:calc(var(--u)*2); }
.proof-r{ display:grid; grid-template-columns:120px 1fr; gap:10px; padding:6px 0; border-bottom:1px solid var(--rule-soft); font-size:11px; }
.proof-r:last-child{ border-bottom:0; }
.proof-k{ font-family:var(--mono); font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-52); }
.proof-v{ font-family:var(--mono); font-size:11px; word-break:break-all; }
.proof-ok{ display:flex; align-items:center; gap:8px; margin-top:calc(var(--u)*2); padding:8px 10px; border:2px solid var(--ok); color:var(--ok); font-family:var(--mono); font-size:11px; font-weight:700; letter-spacing:.08em; }

/* about / richtlinien */
.richt{ counter-reset:par; border-top:2px solid var(--ink); }
.para-row{ display:grid; grid-template-columns:64px 1fr; gap:calc(var(--u)*2); padding:calc(var(--u)*2) 0; border-bottom:1px solid var(--rule); }
.para-row::before{
  counter-increment:par; content:"§ " counter(par);
  font-family:var(--mono); font-size:11px; color:var(--sig); font-weight:700;
}
.para-row h3{ font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; margin-bottom:6px; }
.para-row p{ font-size:13px; line-height:1.65; color:var(--ink-70); max-width:82ch; }
.para-row .en{ display:block; color:var(--ink-38); font-size:11px; margin-top:4px; font-style:italic; }

/* settings / privacy */
.priv-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:calc(var(--u)*2); }
.priv-card{ border:1px solid var(--ink); padding:calc(var(--u)*2); }
.priv-card h3{ font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; margin-bottom:calc(var(--u)*1.5); padding-bottom:6px; border-bottom:1px solid var(--ink); }
.priv-card ul{ display:flex; flex-direction:column; gap:3px; }
.priv-card li{ font-family:var(--mono); font-size:11px; color:var(--ink-70); padding:2px 0; }
.priv-card li::before{ content:"· "; color:var(--ink-38); }
.priv-card.no li::before{ content:"× "; color:var(--sig); }
.setrow{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 0; border-bottom:1px solid var(--rule-soft); font-size:12px; }
.setrow:last-child{ border-bottom:0; }
.setrow .mono{ font-size:11px; color:var(--ink-52); }
.blk-row{ display:flex; align-items:center; gap:10px; padding:6px 0; font-size:12px; }

/* profile */
.prof-h{ display:flex; align-items:center; gap:calc(var(--u)*3); flex-wrap:wrap; margin-bottom:calc(var(--u)*3); }
.prof-av{ width:64px; height:64px; border:2px solid var(--ink); display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-size:22px; font-weight:800; flex:none; }
.prof-n{ font-size:clamp(20px,3vw,34px); font-weight:800; letter-spacing:-.03em; text-transform:uppercase; }
.prof-m{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:6px; }
.statgrid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:1px; background:var(--rule); border:1px solid var(--ink); margin-bottom:calc(var(--u)*3); }
.stat{ background:var(--paper); padding:calc(var(--u)*1.5); }
.stat b{ display:block; font-family:var(--mono); font-size:20px; font-weight:800; line-height:1.1; }
.stat span{ font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-38); }
.sugg-strip{ display:flex; gap:0; overflow-x:auto; border:1px solid var(--ink); }
.sugg-b{ flex:none; width:190px; padding:calc(var(--u)*1.5); border-right:1px solid var(--rule); text-align:left; }
.sugg-b:hover{ background:var(--wash); }

/* toasts */
.toasts{ position:fixed; z-index:200; right:12px; bottom:12px; display:flex; flex-direction:column; gap:6px; align-items:flex-end; pointer-events:none; max-width:calc(100vw - 24px); box-sizing:border-box; }
.toast{
  display:flex; gap:8px; min-width:0; width:auto; max-width:420px; padding:8px 10px;
  border:1px solid var(--ink); border-left:3px solid var(--ink); background:var(--paper);
  pointer-events:auto; animation:tin .18s steps(3); box-sizing:border-box;
  overflow:hidden; word-break:break-word; overflow-wrap:anywhere;
}
@keyframes tin{ from{ transform:translateY(6px); opacity:0 } }
.toast.out{ animation:tout .18s forwards; }
@keyframes tout{ to{ transform:translateY(6px); opacity:0 } }
.toast-err{ border-left-color:var(--sig); }
.toast-ok{ border-left-color:var(--ok); }
.toast-info{ border-left-color:var(--ink-38); }
.toast-body{ min-width:0; flex:1 1 auto; overflow-wrap:anywhere; word-break:break-word; overflow:hidden; }
.toast-title{ font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; overflow-wrap:anywhere; word-break:break-word; }
.toast-msg{ font-family:var(--mono); font-size:11px; color:var(--ink-52); margin-top:2px; word-break:break-word; overflow-wrap:anywhere; max-width:100%; white-space:pre-wrap; }
.xp-toast{
  display:flex; align-items:baseline; gap:8px; padding:8px 12px;
  border:2px solid var(--sig); background:var(--paper);
  pointer-events:auto; animation:pop .3s cubic-bezier(.2,1.4,.4,1);
}
@keyframes pop{ from{ transform:scale(.86) translateY(8px); opacity:0 } }
.xp-toast.out{ animation:tout .2s forwards; }
.xp-amt{ font-family:var(--mono); font-size:15px; font-weight:800; color:var(--sig); }
.xp-why{ font-size:11px; color:var(--ink-70); }

/* ══════════ RESPONSIVE ══════════ */
@media (max-width:1180px){
  .dgrid{ grid-template-columns:1fr; }
  .solo-row{ grid-template-columns:1fr 1fr 1fr; }
  .solo-row .solo-m:nth-child(n+4){ display:none; }
}
@media (max-width:860px){
  .hd-top,.hd-main,.hd-nav,.seasonbar{ padding-left:12px; padding-right:12px; }
  .hd-right{ gap:8px; width:100%; }
  .xpbox{ min-width:70px; }
  .hd-sub{ display:none; }
  .evgrid{ grid-template-columns:1fr; }
  .rail-b{ width:210px; }
  .solo-row{ grid-template-columns:1fr 110px 90px; gap:8px; }
  .dhead-r{ text-align:left; }
  .notext{ display:none; }
  .doc-inner,.sheet-in,.ft-in{ padding-left:12px; padding-right:12px; }
  .para-row{ grid-template-columns:1fr; gap:4px; }
  .proof-r{ grid-template-columns:1fr; }
  .toasts{ left:12px; right:12px; align-items:stretch; max-width:calc(100vw - 24px); }
  .toast{ max-width:100%; width:100%; min-width:0; }
  .lad-row{ grid-template-columns:26px 1fr; }
  .lad-m{ grid-column:1/-1; justify-content:space-between; }
  .badges{ grid-template-columns:1fr 1fr; }
  .n-count{ border-left:0; padding-left:0; }
}
@media (max-width:520px){
  .wordmark{ font-size:28px; }
  .marksbox{ padding:3px 6px; }
  .marks{ font-size:15px; }
  .tier,.streakbox{ display:none; }
  .badges{ grid-template-columns:1fr; }
  .solo-row{ grid-template-columns:1fr 100px; }
  .solo-row .solo-m:nth-child(n+3){ display:none; }
  .hint{ display:none; }
}
@media print{
  .hd,.ft,.toasts{ display:none; }
}
/* ── governance subnav ── */
.hd-subnav{
  display:flex; gap:0; overflow-x:auto; scrollbar-width:none;
  padding:0 calc(var(--u)*2) 6px; border-top:1px solid var(--rule-soft);
}
.hd-subnav::-webkit-scrollbar{ display:none; }
.lnk{
  flex:none; padding:6px 12px 6px 0; margin-right:12px;
  font-size:10px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
  color:var(--ink-38); border-bottom:1px solid transparent;
}
.lnk:hover{ color:var(--ink); border-color:var(--ink); }

/* ── two explicit trade buttons ── */
.twobtns{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
  flex:0 0 auto !important;
  flex-shrink:0 !important;
  white-space:nowrap !important;
}
.tb{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  padding:5px 12px !important;
  min-width:76px !important;
  height:32px !important;
  border:1px solid var(--ink) !important;
  background:transparent !important;
  font-size:11px !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
  color:var(--ink) !important;
  white-space:nowrap !important;
  flex:0 0 auto !important;
  flex-shrink:0 !important;
  box-sizing:border-box !important;
  cursor:pointer;
  transition:background .15s, color .15s, border-color .15s;
}
.tb .tb-lbl{
  white-space:nowrap !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
}
.tb .tb-pct, .tb b{
  font-family:var(--mono) !important;
  font-size:11px !important;
  font-weight:700 !important;
  white-space:nowrap !important;
}
.tb-y:hover{ background:var(--up) !important; border-color:var(--up) !important; color:#fff !important; }
.tb-n:hover{ background:var(--sig) !important; border-color:var(--sig) !important; color:#fff !important; }
.evrow .evrow-ft .twobtns{ margin-left:auto; }
.evrow-ft{ flex-wrap:wrap; }
.evrow-vol{ flex:none; }

/* ── solo row with buttons ── */
.solo-row{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:16px !important;
  padding:calc(var(--u)*1.5) calc(var(--u)*2) !important;
  text-align:left;
  width:100%;
  border-bottom:1px solid var(--rule-soft);
}
.solo-row .solo-q{
  flex:1 1 auto !important;
  min-width:0 !important;
  font-size:13px;
  font-weight:600;
  line-height:1.35;
}
.solo-row .solo-m{
  flex:0 0 auto !important;
  font-family:var(--mono);
  font-size:11px;
  text-align:right;
  white-space:nowrap;
}
.solo-row .solo-m:nth-of-type(n+3){ display:none; }

/* ── ladder view ── */
.ladder{ border:1px solid var(--ink); }
.ladder-row{ display:grid; grid-template-columns:150px 1fr 90px; gap:10px; align-items:center; padding:8px 10px; border-bottom:1px solid var(--rule-soft); }
.ladder-row:last-child{ border-bottom:0; }
.ladder-row:hover{ background:var(--wash); }
.ladder-step{ position:relative; height:22px; border:1px solid var(--ink); }
.ladder-step i{ position:absolute; left:0; top:0; bottom:0; background:var(--ink); }
.ladder-step.hi i{ background:var(--ok); }
.ladder-lbl{ font-family:var(--mono); font-size:11px; }
.ladder-px{ font-family:var(--mono); font-size:14px; font-weight:700; text-align:right; }

/* ── fee table ── */
.fees{ width:100%; border-collapse:collapse; margin-top:6px; }
.fees th,.fees td{ padding:4px 10px 4px 0; border-bottom:1px solid var(--rule-soft); text-align:left; font-family:var(--mono); font-size:10px; }
.fees th{ font-family:var(--sans); font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-52); border-bottom:1px solid var(--ink); }
.fees td.r{ text-align:right; }
.fees .zero{ color:var(--ok); font-weight:700; }

/* ── verdict strip ── */
.verdict-strip{
  display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;
  padding:8px 0; border-bottom:1px solid var(--ink); margin-bottom:12px;
}
.verdict-ic{ font-size:10px; letter-spacing:.18em; color:var(--sig); font-weight:800; }
.verdict-val{ font-family:var(--mono); font-size:22px; font-weight:800; letter-spacing:-.02em; }
.verdict-note{ font-size:11px; color:var(--ink-52); }

@media (max-width:860px){
  .hd-subnav{ padding-left:12px; padding-right:12px; }
  .solo-row{ flex-wrap:wrap !important; gap:10px !important; }
  .solo-row .solo-q{ flex:1 1 100% !important; width:100% !important; }
  .solo-row .solo-m{ margin-left:auto !important; }
  .ladder-row{ grid-template-columns:96px 1fr 68px; }
}

/* ── Teil headings in the Richtlinien document ── */
.teil + .teil{ border-top:2px solid var(--ink); margin-top:calc(var(--u)*3); padding-top:calc(var(--u)*1); }
.teil::before{
  content:attr(data-head); display:block; font-family:var(--mono);
  font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--sig); padding:calc(var(--u)*1) 0 var(--u);
}
.fee-blk{ margin:calc(var(--u)*2) 0; }
.fee-blk > .micro{ display:block; margin-bottom:6px; color:var(--ink); }

.wm-dots{ color:var(--sig); letter-spacing:.02em; }

/* ── wordmark as an official stamp: the primary brand carrier ── */
.wordmark{
  font-size:clamp(38px,9vw,86px);
  line-height:.82; letter-spacing:-.055em; font-weight:800;
  text-transform:uppercase;
  padding:2px 0 6px;
  border-bottom:3px solid var(--ink);
  display:inline-block;
}
.wordmark:hover{ color:var(--ink); }
.wordmark:hover .wm-dots{ color:var(--sig); }
.wm-dots{
  color:var(--eu-gold);
  font-family:var(--sans);
  font-weight:800;
  font-size:0;                     /* text hidden; ::before draws the ellipsis */
  letter-spacing:0;
  vertical-align:.1em;
  margin-inline-start:.04em;
}
/* three round dots as a deliberate pause — never three square blocks */
.wm-dots::before{
  content:"\\2026";
  font-size:.78em;
  letter-spacing:.08em;
}
.hd-main{ align-items:flex-end; }
@media (max-width:860px){
  .wordmark{ font-size:clamp(34px,11vw,56px); border-bottom-width:2px; }
  .hd-main{ align-items:flex-start; flex-direction:column; align-items:stretch; }
}


/* ══════════════════════════════════════════════════════════
   EU BLUE / GOLD SURFACES + STAR MOTIF
   Stars are an abstract motif only — never a circle of 12.
   ══════════════════════════════════════════════════════════ */

/* ── blue band header ── */
.hd{ background:var(--eu-blue); border-bottom:2px solid var(--ink); }
.hd-top{ border-bottom-color:rgba(255,255,255,.22); }
.hd-top .az,.hd-top .conn .mono{ color:rgba(255,255,255,.72); }
.hd .sim-tag{ background:var(--eu-gold); border-color:var(--eu-gold); color:#0A0A0A; }
.hd .wordmark{ color:#fff; border-bottom:3px solid var(--eu-gold); }
.hd .wm-dots{ color:var(--eu-gold); }
.hd .btn-solid{ background:var(--eu-gold); border-color:var(--eu-gold); color:#0A0A0A; }
.hd .btn-solid:hover{ background:#fff; border-color:#fff; color:#0A0A0A; }
.hd .btn{ border-color:rgba(255,255,255,.55); color:#fff; }
.hd .btn:disabled{ color:rgba(255,255,255,.45); border-color:rgba(255,255,255,.25); }
.hd .btn-ghost{ color:rgba(255,255,255,.78); }
.hd .linkbtn{ color:rgba(255,255,255,.72); border-bottom-color:rgba(255,255,255,.4); }
.hd .linkbtn:hover{ color:var(--eu-gold); border-color:var(--eu-gold); }
.hd .conn-dot{ background:var(--eu-gold); }
.hd .board{ border-color:rgba(255,255,255,.28); color:rgba(255,255,255,.78); }
.hd .board:last-child{ border-right-color:rgba(255,255,255,.28); }
.hd .board:hover{ color:#fff; background:rgba(255,255,255,.10); }
.hd .board.is-on{ background:#fff; border-color:#fff; color:var(--eu-blue); }
.hd .inp{ border-color:rgba(255,255,255,.6); color:#fff; }
.hd .inp::placeholder{ color:rgba(255,255,255,.55); }
.hd .inp:focus{ border-color:var(--eu-gold); background:rgba(255,255,255,.06); }
.hd .idchip,.hd .marksbox,.hd .streakbox,.hd .xpbox{ border-color:rgba(255,255,255,.4); }
.hd .marks,.hd .lvltitle,.hd .idchip-user{ color:#fff; }
.hd .micro{ color:rgba(255,255,255,.62); }
.hd .anon-tag{ border-color:var(--eu-gold); color:var(--eu-gold); }
.hd .ver-tag{ border-color:rgba(255,255,255,.55); color:rgba(255,255,255,.75); }
.hd .xpbar{ border-color:rgba(255,255,255,.5); }
.hd .xpbar i{ background:var(--eu-gold); }
.hd .tier{ border-left-color:rgba(255,255,255,.3); }
.hd .lvl{ background:var(--eu-gold); color:#0A0A0A; }
.hd-subnav{ border-top-color:rgba(255,255,255,.18); }
.hd .lnk{ color:rgba(255,255,255,.62); }
.hd .lnk:hover{ color:var(--eu-gold); border-color:var(--eu-gold); }
.hd .board .bno{ opacity:.6; }

/* ── gold: the popping accent, used sparingly ── */
.px-cell,.dprice,.rb-px,.ladder-px,.crow-px,.solo-px{ color:var(--eu-gold); }
.dprice{ color:var(--eu-gold); }
.stamp{ border-color:var(--eu-gold); color:var(--eu-gold); }
.para{ color:var(--eu-gold); }
.crit-amb{ border-left-color:var(--eu-gold); }
.oracle-val{ color:var(--eu-gold); }
.proof-ok{ border-color:var(--up); color:var(--up); }
.ev-tbl th{ background:var(--eu-blue); color:#fff; }

/* ── probability bars: gold fill, hairline track, flat ── */
.pbar{ border-color:var(--ink); background:var(--wash-2); }
.pbar i{ background:var(--eu-gold); }
.pbar.hi i{ background:var(--eu-gold); }
.ladder-step{ border-color:var(--ink); }
.ladder-step i{ background:var(--eu-gold); }

/* ── order book: blue bids / gold asks, flat ── */
.book .bid td:first-child{ color:var(--eu-blue-lt); }
.book .ask td:first-child{ color:var(--eu-gold); }
.book .bid .depth i{ background:var(--eu-blue-lt); }
.book .ask .depth i{ background:var(--eu-gold); }
.spread-row td{ background:var(--eu-blue); color:#fff; }

/* ── delta chips: flat, hairline, conventional green/red ── */
.dlt.up{ border-color:var(--up); color:var(--up); background:var(--up-wash); }
.dlt.down{ border-color:var(--dn); color:var(--dn); background:var(--dn-wash); }
.up{ color:var(--up); } .down{ color:var(--dn); }
.yes{ color:var(--up); } .no{ color:var(--dn); }

/* ── STAR MOTIF: levels as prestige hierarchy ──
   Filled = solid gold. Outline = hairline stroke. Different
   fill weight, so it survives greyscale and colour blindness.
   Deliberately a ROW of at most 5 — never 12 in a circle. */
.stars{ display:inline-flex; align-items:center; gap:2px; }
.star{ width:13px; height:13px; display:block; flex:none; }
.star path{ display:block; }
.star-f path{ fill:var(--eu-gold); }
.star-o path{ fill:none; stroke:var(--eu-gold); stroke-width:1.4; }
.star-lg .star{ width:19px; height:19px; }
.lvl-stars{ display:inline-flex; align-items:center; gap:5px; }
.lvl-stars .lvl-txt{ font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--grey-2); }
.hd .lvl-stars .lvl-txt{ color:rgba(255,255,255,.7); }

/* single star as wordmark period / bullet marker */
.star-mark{ color:var(--eu-gold); }

/* confidence indicator on the oracle panel: stars, not a bar */
.conf-stars{ display:inline-flex; gap:1px; vertical-align:middle; margin-inline-start:6px; }
.conf-stars .star{ width:9px; height:9px; }

/* ── blue section blocks ── */
.blue-block{ background:var(--eu-blue); color:#fff; border-color:var(--eu-blue); }
.blue-block .blk-hd{ background:var(--eu-blue); border-bottom-color:var(--eu-blue); }
.blue-block .micro{ color:rgba(255,255,255,.66); }

/* ── language switcher ── */
.langsw{ position:relative; display:inline-block; }
.langsw-cur{
  display:inline-flex; align-items:center; gap:7px; height:32px; padding:0 11px;
  border:1px solid rgba(255,255,255,.5); color:#fff;
  font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
}
.langsw-cur:hover{ background:var(--eu-gold); border-color:var(--eu-gold); color:#0A0A0A; }
.langsw-cur .mono{ font-size:10px; opacity:.75; }
.langsw-panel{
  position:absolute; z-index:120; inset-inline-end:0; top:calc(100% + 4px);
  width:min(420px,88vw); max-height:64vh; overflow-y:auto; padding:12px;
  background:var(--paper); border:2px solid var(--ink);
}
.langsw-panel[hidden]{ display:none; }
.langsw-g + .langsw-g{ margin-top:12px; padding-top:10px; border-top:1px solid var(--rule-soft); }
.langsw-gl{ display:block; font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--grey-2); margin-bottom:7px; }
.langsw-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:3px; }
.langsw-i{
  padding:6px 8px; border:1px solid var(--rule); text-align:start;
  font-size:12px; color:var(--ink);
}
.langsw-i:hover{ background:var(--eu-blue); border-color:var(--eu-blue); color:#fff; }
.langsw-i.is-on{ background:var(--eu-gold); border-color:var(--eu-gold); font-weight:700; }
.langsw-i i{ font-style:normal; opacity:.6; font-size:10px; }

/* ── translation affordances ── */
.tx-tag{
  display:inline-flex; align-items:center; height:16px; padding:0 4px; margin-inline-start:4px;
  border:1px solid var(--rule); font-family:var(--mono); font-size:9px;
  letter-spacing:.08em; color:var(--grey-2); vertical-align:middle;
}
.tx-tag:hover{ border-color:var(--eu-gold); color:var(--eu-gold); background:var(--sig-wash); }
.tx-tag-pend{ border-style:dashed; }
.tx-pending{ color:var(--grey-1); }
.tx-mark{ font-family:var(--mono); font-size:9px; letter-spacing:.08em; color:var(--grey-2); text-transform:uppercase; }
.lang-badge{
  display:inline-flex; align-items:center; height:16px; padding:0 4px;
  border:1px solid var(--rule); font-size:9px; color:var(--grey-2);
}
@media (max-width:860px){
  .langsw-panel{ inset-inline-end:auto; inset-inline-start:0; }
  .hd .wordmark{ color:#fff; }
}

/* geometry.radius = 0 — enforced globally, no exceptions */
*,*::before,*::after{ border-radius:0 !important; box-shadow:none !important;
  text-shadow:none !important; filter:none !important; }
img,svg{ filter:none !important; }

/* About — why list, quiet and plain */
.why-list{ display:flex; flex-direction:column; gap:4px; margin-top:2px; }
.why-list li{ font-size:13px; line-height:1.6; color:var(--grey-1); padding-left:16px; position:relative; }
.why-list li::before{ content:"—"; position:absolute; inset-inline-start:0; color:var(--eu-gold); }

/* ══ PHONE (≤860px): the header must not force horizontal scroll ══ */
@media (max-width:860px){
  .hd-top{ flex-wrap:wrap; gap:6px; }
  .hd-top-l,.hd-top-r{ min-width:0; }
  .hd-top-r{ flex:1 1 auto; justify-content:flex-end; }
  /* language switcher collapses to the code only */
  .langsw-cur .langsw-name{ display:none; }
  .langsw-panel{ inset-inline:0 auto; width:100%; max-width:340px; }

  .hd-main{ flex-direction:column; align-items:stretch; gap:8px; }
  .hd-right{ margin-left:0; width:100%; display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; align-items:stretch; }
  .hd-right > *{ min-width:0; }
  .idchip{ grid-column:1/-1; }
  .xpbox{ grid-column:1/-1; }
  .marksbox,.streakbox{ justify-content:center; }
  .btn-claim{ grid-column:1/-1; }
  .marks{ font-size:16px; }

  /* nav rows scroll horizontally instead of widening the page */
  .hd-nav,.hd-subnav,.boards,.seasonbar{ min-width:0; max-width:100%; }
  .boards{ overflow-x:auto; scrollbar-width:none; }
  .boards::-webkit-scrollbar{ display:none; }
  .inp-nav{ width:100%; min-width:0; }
  .seasonbar{ overflow-x:auto; }
  .sb-note{ display:none; }

  /* the document itself must never exceed the viewport */
  .doc-inner,.sheet-in,.ft-in{ max-width:100%; overflow-x:hidden; }
  .feed,.evblk,.evgrid{ min-width:0; }
  .solo-row{ grid-template-columns:1fr; gap:6px; }
  .solo-row .solo-m{ display:none; }
  .tbl-wrap{ overflow-x:auto; max-width:100%; }
  .dgrid{ grid-template-columns:1fr; }
  .notlist{ grid-template-columns:1fr 1fr; }
  .toasts{ left:8px; right:8px; }
}
@media (max-width:420px){
  .marksbox{ padding:3px 5px; }
  .xpbox{ min-width:0; }
  .notlist{ grid-template-columns:1fr; }
}

@media (max-width:860px){
  .hd-top-r{ min-width:0; max-width:100%; flex-wrap:wrap; }
  .hd .conn{ flex:none; }
}

/* header rows must wrap on phones */
@media (max-width:860px){
  .hd-top{ flex-wrap:wrap; row-gap:6px; }
  .hd-top-l{ flex:1 1 100%; }
  .hd-top-r{ flex:1 1 100%; justify-content:space-between; flex-wrap:wrap; gap:8px; }
  .hd-top .az{ font-size:9px; }
  .hd-nav{ flex-wrap:wrap; row-gap:8px; }
  .boards{ flex:1 1 100%; }
  .inp-nav{ flex:1 1 100%; }
}

/* the ticker is a deliberately scrolling strip; contain it */
.ticker{ overflow:hidden; max-width:100%; }
.tick-scroll{ min-width:0; max-width:100%; }
@media (max-width:860px){
  .tick-label{ padding:0 10px; font-size:9px; }
  .tick-scroll{ padding:0 10px; }
}

/* ══ PHONE PASS 2 — eliminate the remaining clipping ══ */
@media (max-width:860px){
  /* 1. utility row: theme toggle gets a short label and cannot clip */
  .hd-top-r{ justify-content:space-between; }
  .hd-top-r .linkbtn{ font-size:9px; letter-spacing:.08em; }
  /* 2/3. nav rows scroll internally, never widen the page */
  .hd-subnav,.boards{ flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .hd-subnav::-webkit-scrollbar,.boards::-webkit-scrollbar{ display:none; }
  .lnk,.board{ flex:0 0 auto; }
  /* 4. ticker scrolls inside its own box */
  .ticker{ width:100%; }
  .tick-scroll{ flex:1 1 auto; min-width:0; overflow-x:auto; }
  .tick-scroll::-webkit-scrollbar{ display:none; }
  /* 5/6. rail cards: one per row, no inner overflow */
  .rail{ display:grid; grid-template-columns:1fr; overflow:visible; }
  .rail-b{ width:auto; border-right:0; border-bottom:1px solid var(--rule); }
  .rail-b:last-child{ border-bottom:0; }
  .rb-deltas{ flex-wrap:wrap; }
  /* the season strip also scrolls rather than clipping */
  .seasonbar{ flex-wrap:nowrap; overflow-x:auto; }
  .seasonbar::-webkit-scrollbar{ display:none; }
  .seasonbar > *{ flex:0 0 auto; }
}
@media (max-width:480px){
  .hd-top-l{ font-size:9px; }
  .hd .az{ letter-spacing:.08em; }
  .board{ padding:0 10px; }
}

.narrow-only{ display:none; }
@media (max-width:560px){
  .wide-only{ display:none; }
  .narrow-only{ display:inline; }
}

/* ══════════════════════════════════════════════════════════════
   OVERFLOW HARDENING
   Long German compounds and 24-language strings were forcing
   horizontal scroll on phones. Flex/grid children default to
   min-width:auto, so a single long word widens the whole page.
   ══════════════════════════════════════════════════════════════ */

/* every flex/grid child may shrink below its content width */
.boards > *, .rail > *, .evrow > *,
.n-main, .ot-q, .s-head > *, .row > *, .card > *{
  min-width:0;
}

/* long tokens break instead of pushing the layout */
body, .ob, .evrow-name, .m-q, .card-q, h1, h2, h3, p, td, th, .lbl, .val{
  overflow-wrap:anywhere;
  word-break:normal;
  hyphens:auto;
}

/* mono numeric blocks must never widen a cell */
.mono, .num, .px, .odds, .dlt, .tick{
  font-variant-numeric:tabular-nums;
}

/* the region grid in onboarding: 2-up on desktop, 1-up on phones */
.regions{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:0;
  border:1px solid var(--rule);
  max-height:38vh;
  overflow-y:auto;
}
.regions .region{ min-width:0; }

/* tables scroll inside their own wrapper, never the page */
.tbl-wrap{ max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }

/* nothing may exceed the viewport */
@media (max-width:860px){
  .sheet-in{ padding:calc(var(--u)*4) calc(var(--u)*2); }
  .ob-h2{ font-size:clamp(26px,8vw,40px); }
  .rail-b{ width:min(78vw,260px); }
  .n-main, .ot-q{ min-width:0; }
  .evrow{ flex-wrap:wrap; }
  .evrow .evrow-side{ width:100%; }
}

/* Sponsorship band. Flat, hairline-ruled, and deliberately unremarkable: a
   credit should look like a credit, not like an advertisement. */
.sponsorband{
  border-top:1px solid var(--rule);
  padding:calc(var(--u)*2) calc(var(--u)*3);
  display:flex;flex-wrap:wrap;gap:calc(var(--u)*2) calc(var(--u)*4);
  align-items:baseline;font-size:11px;letter-spacing:.06em;
}
.sponsorband .sp-label{color:var(--ink-52);text-transform:uppercase;letter-spacing:.16em;font-size:10px}
.sponsorband .sp{color:var(--ink-70)}
.sponsorband .sp b{color:var(--ink);font-weight:700}
.sponsorband .sp a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.sponsorband .sp i{font-style:normal;color:var(--ink-52)}
