
/* in-app dialog (replaces native confirm/alert/prompt) */
.kkdlg-ov{position:fixed;inset:0;z-index:99999;background:rgba(2,6,18,.62);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:18px}
.kkdlg{background:var(--panel);border:1px solid var(--line);border-radius:16px;max-width:440px;width:100%;padding:18px 18px 14px;box-shadow:0 24px 70px rgba(0,0,0,.6);animation:kkdlgIn .16s ease}
@keyframes kkdlgIn{from{transform:translateY(8px) scale(.98);opacity:0}to{transform:none;opacity:1}}
.kkdlg-title{font:800 16px var(--sans);color:var(--ink);margin-bottom:7px}
.kkdlg-msg{font:400 13.5px var(--sans);color:var(--ink);line-height:1.55;white-space:pre-wrap;max-height:46vh;overflow:auto}
.kkdlg-input{width:100%;margin-top:11px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;color:var(--ink);font:500 14px var(--sans);padding:10px 12px;outline:none}
.kkdlg-btns{display:flex;gap:9px;justify-content:flex-end;margin-top:15px;flex-wrap:wrap}
.kkdlg-btn{padding:9px 16px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--ink);font:700 13px var(--sans);cursor:pointer;transition:.14s}
.kkdlg-btn:hover{filter:brightness(1.14)}
.kkdlg-cancel{background:transparent;color:var(--mut)}
.kkdlg-ok{background:var(--acc);border-color:transparent;color:#0b1020}
.kkdlg-danger{background:var(--clay);color:#fff}
@media(max-width:520px){.kkdlg-btns{justify-content:stretch}.kkdlg-btn{flex:1 1 40%}}

:root{--bg:#0b1020;--glow:#182a52;
--panel:#131c30;--panel2:#192645;--line:#27365a;
--ink:#eef3fc;--mut:#94a5c4;
--grass:#36d399;--clay:#fb7185;--sky:#4cb9f8;--gold:#f6b94b;--acc:var(--grass);--dim:#7d8ba8;--pink:#f472b6;--violet:#a855f7;--danger:#ef4444;
--felt:var(--grass);--hawk:var(--sky);
--mono:ui-monospace,'SF Mono','JetBrains Mono',Menlo,monospace;
--sans:-apple-system,'Segoe UI',Inter,sans-serif;
--font-num:ui-monospace,'SF Mono','JetBrains Mono',Menlo,monospace;
--r:14px;--shadow:0 10px 26px rgba(3,8,22,.45)}
body[data-sport=baseball]{--acc:var(--gold)}
body[data-sport=wnba]{--acc:#fb913f}
body[data-sport=golf]{--acc:var(--sky)}
body[data-sport=soccer]{--acc:#22d3a0}
body[data-sport=hockey]{--acc:#7dd3fc}
body[data-sport=nba]{--acc:#fb7185}
body[data-sport=nfl]{--acc:#a78bfa}
body[data-sport=esports]{--acc:#c084fc}
body[data-sport=cricket]{--acc:#2dd4bf}
body[data-sport=movies]{--acc:#fb5a3c}
body[data-sport=ufc]{--acc:#e11d48}
body[data-sport=football]{--acc:#84cc16}
*{box-sizing:border-box;margin:0}html{background:var(--bg)}
body{min-height:100vh;background:radial-gradient(900px 500px at 50% -140px,var(--glow),transparent 70%),var(--bg);
color:var(--ink);font-family:var(--sans);
padding:14px;max-width:680px;margin:0 auto;padding-bottom:48px}
/* ambient gradient wash behind the in-app console — matches the lock/persona vibe */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
 background:
  radial-gradient(560px 380px at 6% 2%,rgba(244,114,182,.13),transparent 60%),
  radial-gradient(580px 400px at 98% 6%,rgba(76,185,248,.13),transparent 62%),
  radial-gradient(680px 460px at 50% 104%,rgba(54,211,153,.10),transparent 60%)}
.hd{display:flex;align-items:center;gap:12px;margin:4px 0 16px;flex-wrap:wrap}
.bmark{flex:0 0 auto;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;
font:800 14px var(--mono);color:#081020;letter-spacing:.02em;
background:linear-gradient(135deg,var(--grass),var(--sky) 55%,var(--gold));
box-shadow:0 6px 18px rgba(76,185,248,.35)}
.bname{font:900 19px/1.32 var(--sans);letter-spacing:-.01em;padding-bottom:2px;
 background:linear-gradient(100deg,#f9a8d4,#7dd3fc 48%,#86efac);
 -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.kk-pfp-sm{width:44px;height:44px;padding:2px;flex:0 0 auto}
.kk-pfp-sm .kk-online{width:12px;height:12px;right:1px;bottom:1px;border-width:2px}
.bsub{font:600 9.5px var(--mono);letter-spacing:.13em;color:var(--mut);text-transform:uppercase;white-space:normal;line-height:1.35;overflow:visible}
.topnav{display:flex;gap:8px;flex:1 1 100%;margin-top:12px;flex-wrap:wrap}
.topnav-b{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:5px;font:700 11px var(--mono);letter-spacing:.05em;padding:11px 14px;min-height:42px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(180deg,rgba(25,38,69,.5),rgba(16,24,43,.5));background-clip:border-box;color:var(--mut);cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s,transform .08s}
.topnav-b:hover{border-color:var(--acc);color:var(--ink)}
.topnav-b:active{transform:translateY(1px)}
.topnav-b.on{border:0;color:#06101f;background:linear-gradient(135deg,#f472b6,#4cb9f8);background-clip:border-box;-webkit-background-clip:border-box;box-shadow:0 6px 18px rgba(76,185,248,.32)}
/* The active pill paints a bright pink->blue gradient, so a glyph carrying a hardcoded accent (the
   Parlay ticks, #36d399) collapses to ~1.1-1.4:1 on it and disappears. Pull the whole mark to the
   pill's own ink while it is active; the two-tone green is still there in every other state. */
.topnav-b.on .kk-svgicon [stroke]{stroke:currentColor}
@media(max-width:430px){.topnav-b{padding:7px 9px;font-size:9px}}
/* ── Complete User Guide ── */
#guidewrap{display:grid;grid-template-columns:210px minmax(0,1fr);gap:14px;align-items:start}
@media(max-width:760px){#guidewrap{grid-template-columns:minmax(0,1fr)}#guidetoc{display:none;position:static!important;max-height:min(56vh,440px)!important}#guidetoc.mobile-open{display:block}.guidetoc-toggle{display:flex!important;width:100%;min-height:44px;align-items:center;justify-content:space-between}.guidetoc-toggle::after{content:"▾"}.guidetoc-toggle[aria-expanded="true"]::after{content:"▴"}.gtoc-item{min-height:44px;padding:10px 9px}}
.guidetoc-toggle{display:none}
#guidetoc{position:sticky;top:8px;max-height:82vh;overflow:auto;padding:10px}
.gtoc-item{display:block;width:100%;text-align:left;border:none;background:none;color:var(--mut);font:600 11.5px var(--sans);padding:6px 9px;border-radius:8px;cursor:pointer;border-left:2px solid transparent}
.gtoc-item:hover{color:var(--ink,#e8edf6);background:color-mix(in srgb,var(--panel) 60%,transparent)}
.gtoc-item.on{color:#4cb9f8;border-left-color:#4cb9f8;background:color-mix(in srgb,#4cb9f8 10%,transparent)}
.gtoc-row{border-radius:8px}
.ghandle{flex:0 0 auto;background:none;border:1px solid var(--line);border-radius:7px;padding:3px 6px;cursor:grab;color:var(--mut);font:700 13px var(--mono);line-height:1;touch-action:none;user-select:none}
.ghandle:active{cursor:grabbing}
.gtoc-row.gdragging{opacity:.85;background:color-mix(in srgb,#4cb9f8 14%,transparent);box-shadow:0 6px 18px rgba(0,0,0,.4);position:relative;z-index:5}
.gtoc-group{padding:12px 8px 4px;font:800 9px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);border-top:1px solid var(--line);margin-top:6px}
.gtoc-group:first-of-type{border-top:0;margin-top:2px}.guidehomeitem{font-weight:800;color:var(--ink)}
.gsection{scroll-margin-top:14px;margin-bottom:14px}
.gsection h3{font:800 16px var(--sans);margin:0 0 4px;display:flex;align-items:center;gap:8px}
.gsection .gpurpose{color:var(--mut);font:600 12px var(--sans);margin:0 0 10px}
.gsection .gbody{font:13.5px/1.65 var(--sans);color:var(--ink,#e8edf6)}
.gsection .gbody b{color:#fff}
.glink{color:#4cb9f8;cursor:pointer;border-bottom:1px dotted color-mix(in srgb,#4cb9f8 55%,transparent)}
.glink:hover{color:#7fd0ff}
.gvisual{margin:11px 0;border:1px dashed color-mix(in srgb,var(--acc) 40%,transparent);border-radius:12px;padding:12px;background:color-mix(in srgb,var(--acc) 6%,transparent);font:600 12px var(--sans);color:var(--mut);line-height:1.55}
.gvisual b{color:var(--acc)}
.gdiagram{margin:12px 0;border:1px solid var(--line);border-radius:12px;padding:10px;background:rgba(0,0,0,.18);overflow:auto}
.gdiagram svg{max-width:100%;height:auto;display:block;margin:0 auto}
.gmistake{margin-top:10px;border-left:3px solid var(--clay);background:color-mix(in srgb,var(--clay) 10%,transparent);border-radius:0 10px 10px 0;padding:8px 11px;font:600 12px var(--sans);color:#ffd7d7}
.grelated{margin-top:10px;font:700 10px var(--mono);letter-spacing:.06em;color:var(--mut)}
.gflash{animation:gflash 1.4s ease}
.guideback{margin:0 0 9px}.guidecrumb,.guidekicker,.guidesearchhead{font:800 9.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--sky);margin-bottom:8px}
.guidehero{border:1px solid color-mix(in srgb,var(--sky) 28%,var(--line));border-radius:18px;padding:22px;margin-bottom:12px;background:radial-gradient(circle at 85% 15%,rgba(76,185,248,.16),transparent 42%),linear-gradient(145deg,rgba(25,38,69,.76),rgba(16,24,43,.66))}.guidehero h2{font:800 clamp(22px,4vw,34px)/1.1 var(--sans);margin:0;color:var(--ink)}.guidehero p{margin:8px 0 0;color:var(--mut);font:600 13px/1.5 var(--sans)}
.guidepaths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:12px}.guidepath{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;gap:3px 10px;text-align:left;border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--panel2);color:var(--ink);cursor:pointer}.guidepath>span{grid-row:1/3;font-size:22px}.guidepath>b{font:800 13px var(--sans)}.guidepath>small{font:500 11.5px/1.45 var(--sans);color:var(--mut)}.guidepath>i{grid-column:3;grid-row:1/3;align-self:center;color:var(--sky);font:800 10px var(--mono);font-style:normal}.guidepath:hover,.guideresult:hover,.guidecatalog button:hover{border-color:var(--sky);transform:translateY(-1px)}
.guidetruth{border-color:color-mix(in srgb,var(--grass) 40%,var(--line));padding:15px}.guidetruth>div{font:800 13px var(--sans)}.guidetruth p{font:500 12.5px/1.55 var(--sans);color:var(--mut);margin:8px 0 0}.guidetruth-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--grass);box-shadow:0 0 9px var(--grass);margin-right:7px}
.guidecatalog{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:8px}.guidecatalog button{display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;border:1px solid var(--line);border-radius:12px;padding:11px;background:rgba(16,24,43,.55);color:var(--ink);cursor:pointer}.guidecatalog b{font:750 11px var(--sans)}.guidecatalog small{color:var(--mut);font:700 9px var(--mono)}
.guideresults{display:grid;gap:8px}.guideresult{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;text-align:left;border:1px solid var(--line);border-radius:13px;padding:12px;background:var(--panel2);color:var(--ink);cursor:pointer}.guideresult-ic{font-size:20px}.guideresult b{display:block;font:800 13px var(--sans)}.guideresult small{display:block;color:var(--mut);font:500 11.5px/1.4 var(--sans);margin-top:2px}
@media(max-width:640px){.guidepaths{grid-template-columns:1fr}.guidehero{padding:18px 16px}.guidearticle{padding:16px}.guidepath,.guideresult{min-height:68px}}
@keyframes gflash{0%{background:color-mix(in srgb,#4cb9f8 22%,transparent)}100%{background:transparent}}
/* ── GLOSSARY (reference layer — distinct blue-? identity, not the Guide's emoji icons) ── */
.gloss-letter{font:800 13px var(--mono);color:#4cb9f8;letter-spacing:.16em;margin:16px 2px 6px;padding-bottom:4px;border-bottom:1px solid color-mix(in srgb,#4cb9f8 30%,transparent)}
.gloss-letter:first-child{margin-top:4px}
.gloss-card{scroll-margin-top:14px;display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:14px;padding:12px 13px;margin-bottom:9px;background:linear-gradient(180deg,rgba(25,38,69,.18),rgba(16,24,43,.30))}
.gloss-q{flex:0 0 auto;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:800 13px var(--mono);color:#06101f;background:linear-gradient(135deg,#4cb9f8,#3aa0e6);box-shadow:0 2px 8px rgba(76,185,248,.35);margin-top:1px}
.gloss-body{min-width:0;flex:1}
.gloss-term{font:800 15px var(--sans);color:var(--ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gloss-cat{font:700 8.5px var(--mono);letter-spacing:.08em;color:var(--mut);border:1px solid var(--line);border-radius:999px;padding:2px 7px;text-transform:uppercase}
.gloss-def{font:13px/1.55 var(--sans);color:var(--ink);margin-top:5px}
.gloss-eg{font:12px/1.5 var(--sans);color:var(--mut);margin-top:7px;border-left:2px solid color-mix(in srgb,#4cb9f8 45%,transparent);padding-left:9px}
.gloss-eg b{color:var(--ink)}
.gloss-viz{flex:0 0 auto;width:84px;height:60px;border:1px solid var(--line);border-radius:10px;background:rgba(10,16,30,.5);display:flex;align-items:center;justify-content:center;overflow:hidden}
.gloss-viz svg{width:100%;height:100%;display:block}
.gloss-hit{background:color-mix(in srgb,#f5c850 38%,transparent);color:var(--ink);border-radius:3px;padding:0 1px}
@media(max-width:640px){ .gloss-viz{width:64px;height:48px} .gloss-card{padding:10px} }
@media(max-width:430px){ .gloss-viz{width:54px;height:42px} }
/* ── Knowledge-tab custom layouts (Intel regimes/biases, Settle cases/sim, Research calib/ledger) ── */
.kb-flip{perspective:1000px;height:158px;cursor:pointer}
.kb-flip-in{position:relative;width:100%;height:100%;transition:transform .55s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}
.kb-flip.flipped .kb-flip-in{transform:rotateY(180deg)}
.kb-flip-f,.kb-flip-b{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden;border:1px solid var(--line);border-radius:13px;padding:13px;overflow:auto;display:flex;flex-direction:column}
.kb-flip-f{background:var(--panel2)}
.kb-flip-b{transform:rotateY(180deg);background:color-mix(in srgb,var(--grass) 9%,var(--panel));border-color:color-mix(in srgb,var(--grass) 35%,var(--line))}
.kb-grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.kb-map{position:relative;height:330px;border:1px solid var(--line);border-radius:14px;background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--acc) 7%,var(--panel)),var(--panel));overflow:hidden}
.kb-chip{position:absolute;transform:translate(-50%,-50%);cursor:pointer;border:1px solid var(--line);border-radius:11px;padding:7px 9px;background:var(--panel2);box-shadow:0 4px 14px rgba(0,0,0,.35);transition:transform .15s,box-shadow .15s;max-width:148px}
.kb-chip:hover{transform:translate(-50%,-50%) scale(1.06);box-shadow:0 8px 22px rgba(0,0,0,.5);z-index:3}
.kb-chip:focus-visible,.intel-dialog button:focus-visible{outline:3px solid color-mix(in srgb,var(--acc) 65%,transparent);outline-offset:2px}
body.intel-modal-open{overflow:hidden}
.intel-dialog-close{min-width:44px;min-height:44px;border-radius:10px}
.intel-audit-disclosure{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.atbtn.sm.intel-audit-toggle{min-height:52px;display:inline-flex;align-items:center;justify-content:center}
.atbtn.sm.intel-audit-more{min-height:52px;margin-top:10px;display:inline-flex;align-items:center;justify-content:center}
.intel-audit-panel{margin-top:9px;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--panel2);overflow-wrap:anywhere}
.intel-audit-panel[hidden]{display:none}
.intel-audit-summary,.intel-audit-status,.intel-audit-empty{color:var(--mut);font:600 10.5px/1.5 var(--sans)}
.intel-audit-list{list-style:none;margin:9px 0 0;padding:0;display:grid;gap:8px}
.intel-audit-event{min-width:0;padding:9px 10px;border-left:3px solid var(--sky);border-radius:8px;background:var(--panel)}
.intel-audit-meta{display:flex;gap:5px 12px;align-items:center;flex-wrap:wrap;color:var(--mut);font:650 9.5px/1.4 var(--mono)}
.intel-audit-transition{margin-top:5px;color:var(--ink);font:800 11.5px/1.45 var(--sans)}
.intel-audit-fields{margin-top:3px;color:var(--mut);font:600 10px/1.45 var(--sans)}
.intel-audit-more-status{margin-top:7px;color:var(--mut);font:600 10px/1.45 var(--sans)}
@media(max-width:640px){
  .kb-map{height:auto;display:grid;grid-template-columns:1fr;gap:8px;padding:10px;overflow:visible;background:var(--panel)}
  .kb-map-axis,.kb-map-gridline{display:none}
  .kb-map .kb-chip{position:relative!important;left:auto!important;top:auto!important;transform:none!important;max-width:none;width:auto;min-height:44px;display:flex;align-items:center;padding:10px 12px;box-shadow:none}
  .kb-map .kb-chip:hover{transform:none;box-shadow:none}
  .atbtn.sm.intel-audit-toggle{width:100%}
  .atbtn.sm.intel-audit-more{width:100%}
  .intel-audit-panel{padding:9px}
  .intel-audit-meta{align-items:flex-start;flex-direction:column;gap:2px}
}
.kb-dossier{border:1px solid var(--line);border-radius:13px;background:var(--panel);overflow:hidden;margin-top:10px;position:relative}
.kb-dossier-tab{display:inline-block;background:var(--gold);color:#0b1020;font:800 11px var(--sans);padding:3px 12px;border-radius:0 0 9px 0}
.kb-stamp{position:absolute;top:12px;right:12px;border:2px solid var(--grass);color:var(--grass);font:800 11px var(--sans);letter-spacing:.08em;padding:2px 8px;border-radius:6px;transform:rotate(7deg);opacity:.85}
.kb-simchip{cursor:pointer;border:1px solid var(--line);border-radius:999px;padding:7px 13px;background:var(--panel2);font:600 12px var(--sans);color:var(--ink);transition:.12s}
.kb-simchip.on{background:var(--acc);color:#0b1020;border-color:var(--acc);font-weight:800}
.kb-mtx{table-layout:fixed;border-collapse:collapse;width:100%;min-width:0;font:12px var(--sans)}
.kb-mtx th{background:var(--panel2);color:var(--mut);font:700 10px var(--mono);letter-spacing:.03em;text-align:left;padding:8px 9px;position:sticky;top:0}
.kb-mtx td{border-top:1px solid var(--line);padding:9px;vertical-align:top;line-height:1.4;color:var(--ink);white-space:normal;word-break:break-word;text-align:left}
.kb-mtx td:first-child{font-weight:800}
.kb-mtx td[data-iopen]{cursor:pointer;color:var(--acc)} .kb-mtx td[data-iopen]:hover{text-decoration:underline}
#refreshbtn:active{transform:scale(.92)} #refreshbtn.kk-spin{animation:kkspin .6s linear infinite} @keyframes kkspin{to{transform:rotate(360deg)}}
.renew-btn{flex:0 0 auto;margin-right:8px;padding:8px 14px;border-radius:11px;border:1px solid color-mix(in srgb,#f5c84c 45%,var(--line));background:linear-gradient(135deg,#f472b6,#a855f7);color:#fff;font:800 12px var(--sans);cursor:pointer;white-space:nowrap;box-shadow:0 4px 14px rgba(168,85,247,.32)}
.renew-btn:active{transform:scale(.96)}
.navpfp{display:inline-block;line-height:0}
/* warm, rounded "Kara is telling you" tooltip — a single floating bubble shown after a 2s hover, anywhere */
#kktip{position:fixed;z-index:200;max-width:240px;background:linear-gradient(135deg,color-mix(in srgb,#f472b6 30%,var(--panel)),color-mix(in srgb,#4cb9f8 15%,var(--panel)));color:var(--ink);border:1px solid color-mix(in srgb,#f472b6 50%,var(--line));border-radius:13px;padding:7px 11px 7px 32px;font:600 11px var(--sans);letter-spacing:.01em;box-shadow:0 12px 30px rgba(0,0,0,.55);pointer-events:none;opacity:0;transform:translateY(-4px);transition:opacity .14s ease,transform .14s ease}
#kktip.on{opacity:1;transform:translateY(0)}
#kktip::before{content:"";position:absolute;left:8px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,#f472b6,#a855f7);background-image:var(--kk-tipav,none);background-size:cover;background-position:center;box-shadow:0 0 0 1px color-mix(in srgb,#f472b6 50%,transparent)}
/* #crownbtn — the Palace door. Bespoke "Sovereign" regalia, deliberately NOT the shared
   KK_ICONS crown, which still paints currentColor for the owner eyebrow, the palette row and
   the link-device link. The sheen fires on hover/focus only: an idle infinite animation on an
   always-visible header element composites forever for no benefit. */
#crownbtn .kk-crown{display:block}
#crownbtn .kk-crown-sheen{opacity:0;transform:translateX(0) skewX(-18deg)}
#crownbtn:hover .kk-crown-sheen,#crownbtn:focus-visible .kk-crown-sheen{animation:kkCrownSheen .85s ease-in-out 1}
@keyframes kkCrownSheen{0%{opacity:0;transform:translateX(0) skewX(-18deg)}35%{opacity:.55}100%{opacity:0;transform:translateX(42px) skewX(-18deg)}}
/* the crown's one-of-a-kind "Palace" tooltip — rainbow flowing text + a springy entrance */
#kktip.kktip-palace{animation:palacepop .34s cubic-bezier(.34,1.56,.64,1);border-color:rgba(255,255,255,.3)}
.kktip-palace-txt{font-weight:900;letter-spacing:.12em;background:linear-gradient(90deg,#ff4d6d,#f5c84c,#36d399,#4cb9f8,#a855f7,#ff4d6d);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:palaceflow 2.6s linear infinite}
@keyframes palaceflow{to{background-position:300% 50%}}
@keyframes palacepop{from{transform:translateY(-6px) scale(.82);opacity:0}to{transform:none;opacity:1}}
@media(max-width:760px){ .renew-btn{padding:7px 10px;font-size:11px} }
@media(max-width:480px){ .renew-btn{padding:6px 9px;font-size:11px} }

/* ── Knowledge-base switcher (#gsecswitch) ───────────────────────────────────────────────────
   These six pills are the SECTION nav for Info/Help, the peer of the top-level Console / Profile /
   Info-Help / Logs row — they were rendering at .atbtn.sm size (32px tall, 10.5px type) and read as
   incidental chrome. On desktop they now get their own full-width track at a weight that matches
   the header nav. Base layout lives here, not inline in client.html, so the desktop grid can win. */
#gsecswitch{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}
@media(min-width:761px){
  #gsecswitch{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:10px;margin-bottom:14px}
  #gsecswitch .atbtn{width:100%;min-height:52px;justify-content:center;gap:8px;padding:10px 12px;border-radius:14px;font-size:12.5px;letter-spacing:.04em;white-space:nowrap}
  #gsecswitch .atbtn .kk-ic{width:17px;height:17px;flex:0 0 auto}
}
@media(max-width:760px){
  #gsecswitch,#risknav{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  #gsecswitch::-webkit-scrollbar,#risknav::-webkit-scrollbar{display:none}
  #gsecswitch .atbtn,#risknav .atbtn{flex:0 0 auto;min-height:44px}
  .edgepill,.gradepill{font-size:10px;padding:4px 8px;max-width:100%;white-space:nowrap}
  .pick .row:first-child{align-items:flex-start!important;flex-wrap:wrap}
}
/* ── One identity for the KB row, in BOTH hosts (#gsecswitch and the lounge's .lw-kbnav) ──
   The active pill inherited `--acc`, which is SPORT-dependent — body[data-sport=nfl] paints it
   violet, baseball gold, nba rose. A knowledge-base nav changing colour because of the board you
   last opened is noise, and it made the same pill look like a different control on every visit.
   This row now owns a fixed Info/Help violet→pink instead. Colour is safe to declare here even
   for .lw-kbnav (learn.css only claims display/gap/margin/padding on it, so there is no tie to
   lose) — and every override is scoped to these two hosts, so the dozens of other .atbtn.on
   toolbars keep inheriting the sport accent exactly as before. */
#gsecswitch .atbtn,.lw-kbnav .atbtn{
  background:linear-gradient(180deg,var(--panel2),var(--panel));
  transition:border-color .17s,color .17s,transform .17s,box-shadow .17s}
#gsecswitch .atbtn .kk-ic,.lw-kbnav .atbtn .kk-ic{opacity:.7;transition:opacity .17s}
#gsecswitch .atbtn:hover,.lw-kbnav .atbtn:hover{
  color:var(--ink);transform:translateY(-1px);
  border-color:color-mix(in srgb,var(--violet) 55%,var(--line));
  box-shadow:0 5px 15px rgba(3,8,22,.4)}
#gsecswitch .atbtn:hover .kk-ic,.lw-kbnav .atbtn:hover .kk-ic{opacity:1}
#gsecswitch .atbtn.on,.lw-kbnav .atbtn.on{
  color:#120b1e;border-color:transparent;
  background:linear-gradient(135deg,var(--violet),var(--pink));
  box-shadow:0 6px 18px color-mix(in srgb,var(--violet) 38%,transparent)}
#gsecswitch .atbtn.on .kk-ic,.lw-kbnav .atbtn.on .kk-ic{opacity:1}
/* the selected pill is a destination, not a target — it should not rise on hover */
#gsecswitch .atbtn.on:hover,.lw-kbnav .atbtn.on:hover{transform:none;color:#120b1e}
/* ── per-tab identity so Intel / Settlement / Research each look distinct (not clones) ── */
.kb-hero{display:flex;align-items:center;gap:13px;padding:14px 16px;border:1px solid var(--line);border-radius:15px;margin-bottom:12px}
.kb-hero-ic{flex:0 0 auto;width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:23px;box-shadow:0 4px 14px rgba(0,0,0,.45)}
.kb-hero-t{font:900 18px var(--sans);color:var(--ink);line-height:1.1}
.kb-hero-s{font:600 10.5px var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--mut);margin-top:3px}
#intelsection .atseg .atbtn.sm.on,#intelsection .atbtn.sm.on[data-inav]{background:#4cb9f8;border-color:#4cb9f8;color:#06101f}
#settlesection .atbtn.sm.on[data-snav]{background:#f5c84c;border-color:#f5c84c;color:#06101f}
#archivesection .atbtn.sm.on[data-anav]{background:#a78bfa;border-color:#a78bfa;color:#06101f}
#intelsection .eyebrow{color:#4cb9f8}#settlesection .eyebrow{color:#f5c84c}#archivesection .eyebrow{color:#a78bfa}
/* ── three genuinely-distinct structures ── */
.kb-nav{gap:7px;margin-bottom:12px}
/* RESEARCH = data dashboard: chip nav + a live KPI strip */
#archivenav{display:flex;flex-wrap:wrap}
.kb-dash{display:grid;grid-template-columns:repeat(auto-fit,minmax(116px,1fr));gap:9px;margin-bottom:12px}
.kb-kpi{border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:linear-gradient(160deg,color-mix(in srgb,#a78bfa 13%,var(--panel)),var(--panel))}
.kb-kpi .kv{font:800 19px var(--mono);line-height:1.05}.kb-kpi .kl{font:600 9px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--mut);margin-top:3px}
/* SETTLEMENT = rulebook: a grid of market-type tiles instead of pills */
#settlenav{display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,1fr))}
#settlenav .atbtn{width:100%;justify-content:flex-start;min-height:48px;border-radius:12px;font-size:12px}
/* INTEL = knowledge-base sidebar (vertical rail + content) on desktop */
#intelnav{display:flex;flex-wrap:wrap}
@media(min-width:780px){
  #intelsection{display:flex;gap:16px;align-items:flex-start}
  #intelnav{flex-direction:column;flex-wrap:nowrap;flex:0 0 198px;position:sticky;top:62px;max-height:calc(100vh - 80px);overflow:auto}
  #intelnav .atbtn{width:100%;justify-content:flex-start;border-radius:10px}
  #intelbody{flex:1;min-width:0}
}
/* RESEARCH picture-book: page art + flip-turn pages + arrow/dot navigation */
.kb-booknav{display:flex;align-items:center;justify-content:center;gap:12px}
.kb-arw{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--panel2);color:var(--ink);font:700 20px var(--sans);cursor:pointer;line-height:1;flex:0 0 auto}
.kb-arw:active{transform:scale(.9)}
.kb-dots{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:center}
.kb-dot{width:10px;height:10px;border-radius:50%;border:1px solid var(--line);background:transparent;cursor:pointer;padding:0;transition:transform .15s,background .15s}
.kb-dot.on{background:#a78bfa;border-color:#a78bfa;transform:scale(1.3)}
.kb-book-page{border:1px solid var(--line);border-radius:16px;padding:14px;background:linear-gradient(180deg,color-mix(in srgb,#a78bfa 7%,var(--panel)),var(--panel));animation:kbflip .42s cubic-bezier(.2,.8,.25,1)}
@keyframes kbflip{from{opacity:0;transform:perspective(900px) rotateY(-10deg) translateX(16px)}to{opacity:1;transform:none}}
.kb-page-art{border-radius:12px;overflow:hidden;margin-bottom:10px;padding:8px 6px;background:radial-gradient(130% 130% at 0% 0%,color-mix(in srgb,#a78bfa 20%,var(--panel)),var(--panel));border:1px solid color-mix(in srgb,#a78bfa 28%,var(--line))}
.kb-pagehd{color:#a78bfa;font:800 10px var(--mono);letter-spacing:.07em;text-transform:uppercase;margin-bottom:10px}
/* ════ Research premium picture-book: library shelf + immersive reader ════ */
.rb-lib-h{font:900 20px var(--sans);color:var(--ink);margin:2px 0 14px}
.rb-shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(218px,1fr));gap:18px}
.rb-card{text-align:left;cursor:pointer;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel);padding:0;position:relative;transition:transform .18s,box-shadow .18s,border-color .18s}
.rb-card:hover{transform:translateY(-5px);box-shadow:-7px 13px 32px rgba(0,0,0,.46);border-color:color-mix(in srgb,var(--acc) 40%,var(--line))}
.rb-card-cv{position:relative;aspect-ratio:1.62/1;background:var(--panel2)}
.rb-card-cv::after{content:"";position:absolute;top:0;left:0;bottom:0;width:8px;background:linear-gradient(90deg,rgba(0,0,0,.38),transparent)}
.rb-card-bm{position:absolute;top:8px;right:9px;font-size:16px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6))}
.rb-card-read{position:absolute;top:9px;left:9px;z-index:3;font:900 9px var(--mono);letter-spacing:.08em;color:#3a2a06;background:linear-gradient(135deg,#ffe066,#f59e0b);border:1px solid #b97e0a;border-radius:6px;padding:3px 7px;transform:rotate(-8deg);box-shadow:0 3px 10px rgba(245,158,11,.5)}
.rb-card-meta{padding:11px 13px 13px}
.rb-card-cat{font:700 9.5px var(--mono);letter-spacing:.1em;text-transform:uppercase}
.rb-card-ttl{font:800 15px var(--sans);color:var(--ink);margin-top:4px;line-height:1.2}
.rb-card-sub{font:400 12px var(--sans);color:var(--mut);margin-top:4px;line-height:1.4}
.rb-card-foot{display:flex;justify-content:space-between;gap:8px;margin-top:10px;font:600 10px var(--mono);color:var(--mut)}
/* ── digital bookshelf (wooden case, tinted books standing on planks) ── */
.rb-bookcase{position:relative;overflow:hidden;border-radius:15px;padding:30px 22px 12px;
  border:1px solid #281708;border-left:8px solid #43280f;border-right:8px solid #43280f;
  background:
   radial-gradient(130% 58% at 50% -10%, rgba(255,216,150,.20), rgba(255,216,150,0) 55%),
   linear-gradient(180deg, rgba(40,24,12,0) 30%, rgba(12,6,2,.62)),
   repeating-linear-gradient(90deg,#5a3a1e,#624120 2px,#543620 5px),
   linear-gradient(135deg,#6e4626,#3d260f);
  box-shadow:inset 0 2px 0 rgba(255,222,176,.16), inset 0 0 90px rgba(0,0,0,.55), 0 20px 48px rgba(0,0,0,.45)}
.rb-bookcase::before{content:"";position:absolute;left:0;right:0;top:0;height:12px;background:linear-gradient(180deg,rgba(255,228,184,.4),rgba(255,228,184,0));pointer-events:none}
.rb-bookcase::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(140% 120% at 50% 120%, rgba(0,0,0,.4), rgba(0,0,0,0) 60%)}
.rb-shelf-row{display:flex;gap:22px;align-items:flex-end;flex-wrap:wrap;position:relative;z-index:1;padding:14px 10px 22px;margin-bottom:26px}
.rb-shelf-row:last-child{margin-bottom:6px}
.rb-shelf-row::after{content:"";position:absolute;left:-16px;right:-16px;bottom:0;height:16px;border-radius:2px;background:linear-gradient(180deg,#8a5a30,#5a3416 58%,#341d09);box-shadow:0 10px 22px rgba(0,0,0,.55),inset 0 2px 0 rgba(255,220,170,.2),inset 0 -3px 6px rgba(0,0,0,.45)}
.rb-book{flex:0 0 auto;width:142px;background:none;border:none;padding:0;cursor:pointer;transition:transform .2s ease}
.rb-book:hover{transform:translateY(-11px) rotate(-1deg)}
.rb-book:hover .rb-book-cv{box-shadow:-9px 16px 30px rgba(0,0,0,.6)}
.rb-book-cv{position:relative;aspect-ratio:.7/1;border-radius:3px 9px 9px 3px;padding:14px 13px 12px 18px;display:flex;flex-direction:column;gap:6px;color:#fff;overflow:hidden;box-shadow:-7px 11px 22px rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.16)}
.rb-book-cv::before{content:"";position:absolute;left:0;top:0;bottom:0;width:10px;background:linear-gradient(90deg,rgba(255,255,255,.30),rgba(255,255,255,0) 58%,rgba(0,0,0,.24))}
.rb-book-cv::after{content:"";position:absolute;right:0;top:3px;bottom:3px;width:5px;background:repeating-linear-gradient(180deg,#f5ecd8,#f5ecd8 1px,#c8bb9d 2px,#c8bb9d 3px);opacity:.85}
.rb-book-cat{font:800 8px var(--mono);letter-spacing:.13em;text-transform:uppercase;opacity:.92}
.rb-book-ic{font-size:27px;line-height:1;margin-top:2px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.45))}
.rb-book-ttl{font:800 14px var(--sans);line-height:1.16;margin-top:auto;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.rb-book-min{font:700 9px var(--mono);letter-spacing:.05em;opacity:.88}
.rb-book-read{position:absolute;top:8px;right:9px;z-index:3;font:900 8px var(--mono);letter-spacing:.06em;color:#3a2a06;background:linear-gradient(135deg,#ffe066,#f59e0b);border:1px solid #b97e0a;border-radius:5px;padding:2px 5px;transform:rotate(7deg);box-shadow:0 2px 8px rgba(245,158,11,.5)}
.rb-book-bm{position:absolute;top:-3px;right:15px;font-size:17px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.5))}
/* extra shelf detail: varied book heights, spine depth, a brass shelf-nosing line */
.rb-book:nth-child(4n+1) .rb-book-cv{aspect-ratio:.66/1}
.rb-book:nth-child(3n+2) .rb-book-cv{aspect-ratio:.73/1}
.rb-book:nth-child(5n+4) .rb-book-cv{aspect-ratio:.685/1}
.rb-book-cv{box-shadow:-7px 11px 22px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.2),inset 0 -12px 20px rgba(0,0,0,.18)}
.rb-shelf-row::before{content:"";position:absolute;left:-16px;right:-16px;bottom:13px;height:2px;background:linear-gradient(90deg,rgba(255,216,150,0),rgba(255,216,150,.55),rgba(255,216,150,0));pointer-events:none}
/* ── book detail screen (cover · summary · start reading) ── */
.rb-detail{max-width:760px;margin:0 auto}
.rb-back{background:var(--panel);border:1px solid var(--line);border-radius:9px;color:var(--ink);font:700 11px var(--mono);padding:8px 13px;cursor:pointer;margin-bottom:14px}
.rb-back:hover{border-color:var(--acc)}
.rb-detail-top{display:flex;gap:22px;flex-wrap:wrap;align-items:flex-start}
.rb-detail-cover{flex:0 0 248px;max-width:100%;aspect-ratio:1.62/1;border-radius:12px;overflow:hidden;box-shadow:-8px 13px 32px rgba(0,0,0,.5);border:1px solid color-mix(in srgb,hsl(var(--bh) 60% 50%) 55%,var(--line))}
.rb-detail-cover>*{width:100%;height:100%;display:block}
.rb-detail-info{flex:1 1 290px;min-width:0}
.rb-detail-cat{font:800 10px var(--mono);letter-spacing:.14em;text-transform:uppercase}
.rb-detail-ttl{font:900 25px var(--sans);color:var(--ink);margin:6px 0 0;line-height:1.12}
.rb-detail-sub{font:400 14px var(--sans);color:var(--mut);margin-top:9px;line-height:1.5}
.rb-detail-meta{font:600 11px var(--mono);color:var(--mut);margin-top:12px;letter-spacing:.03em;line-height:1.5}
.rb-detail-readtag{display:inline-block;margin-top:10px;font:900 9px var(--mono);letter-spacing:.08em;color:#3a2a06;background:linear-gradient(135deg,#ffe066,#f59e0b);border-radius:6px;padding:3px 8px}
.rb-detail-cta{display:block;margin-top:16px;width:100%;background:linear-gradient(135deg,hsl(var(--bh) 62% 50%),hsl(var(--bh) 66% 37%));color:#fff;border:none;border-radius:12px;padding:14px;font:800 14px var(--sans);letter-spacing:.02em;cursor:pointer;box-shadow:0 8px 22px rgba(0,0,0,.32)}
.rb-detail-cta:hover{filter:brightness(1.08)}
.rb-detail-inside{margin-top:26px;border-top:1px solid var(--line);padding-top:18px}
.rb-detail-inside-h{font:800 13px var(--sans);color:var(--ink);letter-spacing:.04em;margin-bottom:11px}
.rb-detail-toc{margin:0;padding-left:20px;columns:2;column-gap:28px}
.rb-detail-toc li{font:400 13px var(--sans);color:var(--mut);line-height:1.5;margin-bottom:6px;break-inside:avoid}
@media(max-width:560px){.rb-detail-toc{columns:1}.rb-book{width:120px}}
.rb-prog{position:sticky;top:0;z-index:7;height:3px;background:var(--line);border-radius:2px;overflow:hidden}
.rb-prog-f{height:100%;width:0;background:var(--rb);transition:width .1s}
.rb-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0}
.rb-back,.rb-bm{border:1px solid var(--line);background:var(--panel2);color:var(--ink);border-radius:999px;padding:7px 13px;font:700 12px var(--sans);cursor:pointer;flex:0 0 auto}
.rb-bm.on{border-color:var(--rb);color:var(--rb)}
.rb-tb-t{font:800 13px var(--sans);color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;text-align:center;min-width:0}
.rb-cover{border:2px solid transparent;border-radius:18px;overflow:hidden;background:linear-gradient(var(--panel),var(--panel)) padding-box,linear-gradient(110deg,#ff4d6d,#a78bfa,#4cb9f8,#36d399,#f5c84c,#ff4d6d) border-box;background-size:auto,300% 100%;animation:rbflow 8s linear infinite;box-shadow:0 0 24px -9px #a78bfa;margin-bottom:14px}
.rb-cover-art{aspect-ratio:2.4/1;max-height:250px;overflow:hidden}
.rb-cover-meta{padding:16px 18px 18px}
.rb-cat{font:800 10px var(--mono);letter-spacing:.12em;text-transform:uppercase}
.rb-cover-ttl{font:900 28px var(--sans);color:var(--ink);line-height:1.08;margin:6px 0}
.rb-cover-sub{font:400 15px var(--sans);color:var(--mut);line-height:1.4}
.rb-cover-by{font:600 11px var(--mono);color:var(--mut);margin-top:10px}
.rb-conf{display:flex;align-items:center;gap:9px;margin-top:12px;font:700 11px var(--mono);color:var(--ink)}
.rb-conf-l{color:var(--mut);letter-spacing:.08em}
.rb-conf-bar{flex:1;max-width:210px;height:7px;border-radius:5px;background:var(--line);overflow:hidden}
.rb-conf-f{display:block;height:100%;background:var(--rb)}
.rb-thesis{font:600 16px/1.5 var(--sans);color:var(--ink);margin:14px 0 0;padding-left:14px;border-left:3px solid var(--rb);font-style:italic}
.rb-wrap{display:block}
.rb-side{display:none}
.rb-side-h{font:800 10px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-bottom:8px}
.rb-tocitem{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:none;background:none;color:var(--mut);cursor:pointer;padding:8px 9px;border-radius:9px;font:600 13px var(--sans);line-height:1.3}
.rb-tocitem:hover{background:var(--panel2);color:var(--ink)}
.rb-tocitem.on{background:color-mix(in srgb,var(--rb) 16%,transparent);color:var(--ink)}
.rb-tocn{flex:0 0 auto;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font:700 11px var(--mono)}
.rb-tocitem.on .rb-tocn{background:var(--rb);color:#06101f;border-color:var(--rb)}
.rb-main{min-width:0}
.rb-ch{animation:kbflip .4s cubic-bezier(.2,.8,.25,1)}
.rb-chnum{font:700 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--rb)}
.rb-chttl{font:900 24px var(--sans);color:var(--ink);margin:5px 0 12px;line-height:1.12}
.rb-chhero{border:2px solid transparent;border-radius:14px;overflow:hidden;padding:10px;margin-bottom:14px;background:radial-gradient(130% 130% at 0% 0%,color-mix(in srgb,var(--rb) 18%,var(--panel)),var(--panel)) padding-box,linear-gradient(90deg,#ff4d6d,#a78bfa,#4cb9f8,#36d399,#f5c84c,#ff4d6d) border-box;background-size:auto,300% 100%;animation:rbflow 7s linear infinite;box-shadow:0 0 20px -9px #4cb9f8}
.rb-lead{font:400 16px/1.65 var(--sans);color:var(--ink);margin:0 0 14px}
.rb-main p{font:400 15px/1.62 var(--sans);color:var(--ink);margin:0 0 12px}
.rb-sub{font:800 16px var(--sans);color:var(--ink);margin:18px 0 8px}
.rb-insight{border:1px solid var(--line);border-left-width:4px;border-radius:0 10px 10px 0;padding:11px 13px;margin:9px 0;background:var(--panel2)}
.rb-ins-h{font:800 12px var(--sans);margin-bottom:3px}
.rb-ins-b{font:400 14px/1.55 var(--sans);color:var(--ink)}
.rb-spread{display:flex;gap:14px;align-items:flex-start;margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--panel)}
.rb-spread-art{flex:0 0 96px;border-radius:10px;overflow:hidden;background:var(--panel2)}
.rb-spread-txt{flex:1;min-width:0}
.rb-scen{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:14px 0}
.rb-scen-c{border:1px solid var(--line);border-top-width:3px;border-radius:11px;padding:11px 12px;background:var(--panel)}
.rb-scen-h{font:800 13px var(--sans);margin-bottom:5px}
.rb-chnav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:22px;flex-wrap:wrap}
.rb-chbtn{border:1px solid var(--line);background:var(--panel2);color:var(--ink);border-radius:10px;padding:9px 14px;font:700 13px var(--sans);cursor:pointer}
@media(min-width:860px){ .rb-wrap{display:flex;gap:22px;align-items:flex-start} .rb-side{display:block;flex:0 0 210px;position:sticky;top:14px;max-height:calc(100vh - 36px);overflow:auto} .rb-main{flex:1} .rb-cover-art{aspect-ratio:3.4/1} }
@media(max-width:520px){ .rb-spread{flex-direction:column} .rb-spread-art{flex:0 0 auto;width:100%;aspect-ratio:3/1} .rb-cover-ttl{font-size:23px} }
/* theme switcher chips */
.rb-themebar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.rb-thb{border:1px solid var(--line);background:var(--panel2);color:var(--mut);border-radius:999px;padding:5px 11px;font:700 11px var(--sans);cursor:pointer}
.rb-thb.on{border-color:var(--rb);color:var(--rb);background:color-mix(in srgb,var(--rb) 14%,transparent)}
/* gradient highlight mark + saved-highlights panel */
.rb-hled{background:linear-gradient(104deg,color-mix(in srgb,#ffd23f 42%,transparent),color-mix(in srgb,#f5a524 18%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,#ffd23f 34%,transparent);border-radius:6px;padding:2px 5px;margin:-2px -5px}
.rb-hlrow{display:flex;gap:10px;align-items:flex-start;border-bottom:1px solid var(--line);padding:10px 0}
.rb-hlrow-t{flex:1;min-width:0;cursor:pointer;font:400 13.5px/1.5 var(--sans);color:var(--ink)}
.rb-hldel{flex:0 0 auto;border:1px solid var(--line);background:var(--panel2);color:var(--clay);border-radius:8px;width:30px;height:30px;cursor:pointer}
/* THEME · Terminal (Bloomberg) */
.rb-th-terminal{--rb:#f5a524}
.rb-th-terminal .rb-cover,.rb-th-terminal .rb-insight,.rb-th-terminal .rb-spread,.rb-th-terminal .rb-scen-c,.rb-th-terminal .rb-chhero,.rb-th-terminal .rb-chbtn{border-radius:4px}
.rb-th-terminal .rb-lead,.rb-th-terminal .rb-main p,.rb-th-terminal .rb-ins-b{font-family:var(--mono);font-size:12.5px;line-height:1.7}
.rb-th-terminal .rb-chttl,.rb-th-terminal .rb-cover-ttl,.rb-th-terminal .rb-sub{font-family:var(--mono);letter-spacing:-.01em}
/* THEME · Hardcover (warm paper, serif, light page) */
.rb-th-paper{--rb:#a05a2c}
.rb-th-paper .rb-ch{background:#efe6d2;border:1px solid #ddcca6;border-radius:14px;padding:16px}
.rb-th-paper .rb-cover-meta,.rb-th-paper .rb-insight,.rb-th-paper .rb-spread,.rb-th-paper .rb-scen-c,.rb-th-paper .rb-chhero{background:#efe6d2;border-color:#ddcca6}
.rb-th-paper .rb-cover-ttl,.rb-th-paper .rb-chttl,.rb-th-paper .rb-sub,.rb-th-paper .rb-lead,.rb-th-paper .rb-main p,.rb-th-paper .rb-ins-b,.rb-th-paper .rb-cover-sub{color:#3a2c16;font-family:Georgia,'Times New Roman',serif}
.rb-th-paper .rb-cover{border-color:#ddcca6}
/* Hardcover READABILITY — force every text element on the cream page to a dark, legible tone */
.rb-th-paper .rb-cover-meta,.rb-th-paper .rb-ch{color:#3a2c16}
.rb-th-paper .rb-thesis,.rb-th-paper .rb-conf,.rb-th-paper .rb-slide-cap,.rb-th-paper .rb-ins-b{color:#3a2c16}
.rb-th-paper .rb-thesis{font-family:Georgia,'Times New Roman',serif}
.rb-th-paper .rb-cover-by,.rb-th-paper .rb-conf-l,.rb-th-paper .rb-cover-sub,.rb-th-paper .rb-chnum{color:#6b5436}
.rb-th-paper .rb-ins-h,.rb-th-paper .rb-scen-h,.rb-th-paper .rb-cat{filter:brightness(.52) saturate(1.7)}
.rb-th-paper .rb-conf-bar{background:#dccba6}
.rb-th-paper .rb-gdot{background:#cbb793}
.rb-th-paper .rb-cover,.rb-th-paper .rb-chhero{animation:none}
/* multi-color flowing edge + glow on book cover & chapter heroes (edges only — never behind text) */
@keyframes rbflow{0%{background-position:0% 50%}100%{background-position:300% 50%}}
@keyframes rbglow{0%,100%{box-shadow:0 0 22px -7px #ff4d6d}25%{box-shadow:0 0 22px -7px #a78bfa}50%{box-shadow:0 0 22px -7px #4cb9f8}75%{box-shadow:0 0 22px -7px #36d399}}
@media(prefers-reduced-motion:reduce){.rb-cover,.rb-chhero{animation:none}}
@media(prefers-reduced-motion:reduce){.rb-cover,.rb-chhero{animation:none}}
/* THEME · Feature (bold magazine) */
.rb-th-feature{--rb:#ffd23f}
.rb-th-feature .rb-cover-ttl{font-size:34px;font-weight:900;letter-spacing:-.02em}
.rb-th-feature .rb-chttl{font-size:30px;font-weight:900;letter-spacing:-.02em}
.rb-th-feature .rb-lead{font-size:17px}
/* ── Settlement digital POSTER BOARD ── */
.pb-board{background:radial-gradient(circle at 72% 16%,rgba(167,128,255,.55),transparent 52%),radial-gradient(circle at 22% 82%,rgba(140,110,246,.42),transparent 50%),radial-gradient(circle at 15% 8%,rgba(255,158,205,.6),transparent 50%),radial-gradient(circle at 88% 84%,rgba(132,178,255,.62),transparent 56%),radial-gradient(circle at 52% 46%,rgba(255,255,255,.5),transparent 58%),linear-gradient(140deg,#f4def0,#e6e1fb 54%,#d9e2fc);border-radius:18px;padding:26px 16px 38px;box-shadow:inset 0 0 90px rgba(150,130,215,.3)}
.pb-board-in{max-width:900px;margin:0 auto}
.pb-spray{width:100%;max-width:600px;display:block;margin:0 auto;filter:drop-shadow(2px 3px 0 rgba(20,20,40,.14))}
.pb-sub{text-align:center;color:#475063;font:600 12.5px var(--sans);margin-top:2px}
.pb-notes{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:26px 20px;margin-top:26px}
.pb-note{position:relative;color:#1b1b24;border:6px solid transparent;border-radius:10px;background:linear-gradient(var(--c),var(--c)) padding-box,linear-gradient(135deg,var(--g,var(--c))) border-box;padding:20px 13px 15px;cursor:pointer;text-align:left;transform:rotate(var(--rot));box-shadow:3px 6px 14px rgba(40,40,60,.26),0 0 18px -2px color-mix(in srgb,var(--gm,transparent) 55%,transparent);transition:transform .18s cubic-bezier(.2,.9,.3,1.35),box-shadow .18s;min-height:130px;display:flex;flex-direction:column;gap:5px;font-family:var(--sans)}
.pb-note:hover{transform:rotate(0) scale(1.06) translateY(-3px);box-shadow:8px 15px 32px rgba(35,35,55,.4),0 0 24px 2px color-mix(in srgb,var(--gm) 65%,transparent);z-index:3}
.pb-note:active{transform:rotate(0) scale(.99)}
.pb-pin{position:absolute;top:-7px;left:50%;transform:translateX(-50%);width:15px;height:15px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff9a9a,#d62828);box-shadow:0 2px 5px rgba(0,0,0,.45),inset 0 -2px 3px rgba(0,0,0,.25)}
.pb-note-ic{font-size:27px;line-height:1}
.pb-note-t{font:900 15px var(--sans);letter-spacing:-.01em}
.pb-note-d{font:500 11.5px/1.42 var(--sans);color:#474e5c}
/* title: PURE-WHITE text in the chosen font (var(--sans)), with an animated purple gradient framing the word */
.pb-title{display:block;width:max-content;max-width:94%;margin:0 auto 6px;text-align:center;color:#fff;font:900 italic clamp(24px,5.4vw,44px)/1.08 var(--sans);letter-spacing:-.01em;padding:8px 24px;border-radius:16px;border:3px solid transparent;text-shadow:0 2px 12px rgba(20,8,40,.5),0 0 2px rgba(0,0,0,.4);background:linear-gradient(#241640,#241640) padding-box,linear-gradient(90deg,#ff3d71,#a780ff,#7c5cf6,#5aa9ff,#a780ff,#ff3d71) border-box;background-size:auto,300% 100%;box-shadow:0 8px 26px rgba(124,92,246,.35);animation:pbTitleFlow 6s linear infinite}
@keyframes pbTitleFlow{to{background-position:0 0,300% 50%}}
/* UNIQUE Settlement entrance (not the shared kbzoom): the board unfurls in 3D + the notes cascade-drop like pins hitting a corkboard */
@keyframes pbBoardIn{0%{opacity:0;transform:perspective(1100px) rotateX(13deg) translateY(26px) scale(.965)}100%{opacity:1;transform:none}}
.pb-board.pb-open{animation:pbBoardIn .55s cubic-bezier(.2,.8,.25,1) both;transform-origin:50% 0}
@keyframes pbNoteDrop{0%{opacity:0;transform:translateY(-30px) rotate(0) scale(.82)}72%{opacity:1}100%{opacity:1;transform:rotate(var(--rot)) scale(1)}}
.pb-board.pb-open .pb-note{animation:pbNoteDrop .5s cubic-bezier(.2,.9,.3,1.32) both;animation-delay:calc(var(--i,0)*55ms + .2s)}
@media (prefers-reduced-motion:reduce){.pb-title{animation:none}.pb-board.pb-open,.pb-board.pb-open .pb-note{animation:none}}
.settle-zoom{animation:pbzoom .5s cubic-bezier(.2,.85,.2,1)}
@keyframes pbzoom{from{opacity:0;transform:scale(.42)}to{opacity:1;transform:none}}
/* shared cinematic zoom — IN when opening, OUT (camera pulls back) when going back */
.kbzoom-in{animation:kbzin .42s cubic-bezier(.2,.85,.2,1)}
.kbzoom-out{animation:kbzout .4s cubic-bezier(.3,.7,.4,1)}
@keyframes kbzin{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:none}}
@keyframes kbzout{from{opacity:0;transform:scale(1.2)}to{opacity:1;transform:none}}
/* a UNIQUE entrance per knowledge-base section (Research has its own zoom) */
.kbanim-guide{animation:kbaGuide .42s cubic-bezier(.2,.8,.3,1);transform-origin:top}
@keyframes kbaGuide{from{opacity:0;transform:translateY(-16px) scaleY(.95)}to{opacity:1;transform:none}}
.kbanim-gloss{animation:kbaGloss .42s cubic-bezier(.2,.85,.3,1)}
@keyframes kbaGloss{from{opacity:0;transform:scale(.93) translateY(10px)}to{opacity:1;transform:none}}
.kbanim-risk{animation:kbaRisk .5s cubic-bezier(.36,1.5,.5,1)}
@keyframes kbaRisk{0%{opacity:0;transform:scale(.9)}60%{opacity:1;transform:scale(1.015)}100%{transform:scale(1)}}
.kbanim-intel{animation:kbaIntel .5s ease;transform-origin:top center}
@keyframes kbaIntel{from{opacity:0;transform:perspective(900px) rotateX(-14deg) translateY(-6px)}to{opacity:1;transform:perspective(900px) rotateX(0) translateY(0)}}
.kbanim-settle{animation:kbaSettle .52s cubic-bezier(.34,1.3,.5,1);transform-origin:top left}
@keyframes kbaSettle{from{opacity:0;transform:rotate(-2.5deg) translateY(-9px)}to{opacity:1;transform:rotate(0) translateY(0)}}
@media(prefers-reduced-motion:reduce){.kbanim-guide,.kbanim-gloss,.kbanim-risk,.kbanim-intel,.kbanim-settle{animation:none}}
@media(max-width:520px){ .pb-notes{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:22px 14px} }
/* ── Settlement Desk · canonical package projection ─────────────────────── */
.sd-shell{--sd-accent:#79b8ff;--sd-warn:#f4c15d;--sd-ok:#54d19a;--sd-bad:#ff7b8b;min-width:0;color:var(--ink)}
.sd-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,340px);gap:18px;align-items:end;margin:4px 0 14px;padding:22px;border:1px solid color-mix(in srgb,var(--line) 76%,var(--sd-accent));border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 90%,#183d64),var(--panel));overflow:hidden;position:relative}
.sd-hero:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;right:-100px;top:-160px;background:radial-gradient(circle,color-mix(in srgb,var(--sd-accent) 28%,transparent),transparent 66%);pointer-events:none}
.sd-hero h1{font:900 clamp(25px,4vw,42px)/1.02 var(--sans);letter-spacing:-.035em;margin:6px 0 10px;color:var(--ink)}
.sd-hero p{max-width:760px;margin:0;color:var(--mut);font:500 13px/1.65 var(--sans)}
.sd-kicker{display:block;color:var(--sd-accent);font:800 10px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.sd-principle{position:relative;z-index:1;display:flex;flex-direction:column;gap:7px;padding:14px;border:1px solid color-mix(in srgb,var(--sd-warn) 40%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--sd-warn) 8%,var(--panel2))}
.sd-principle span{color:var(--sd-warn);font:800 10px var(--mono);letter-spacing:.08em}
.sd-principle b{font:750 13px/1.5 var(--sans)}
.sd-language{margin:0 0 12px;padding:11px 13px;border-left:3px solid var(--sd-warn);border-radius:8px;background:color-mix(in srgb,var(--sd-warn) 9%,var(--panel));font:650 12px/1.5 var(--sans)}
.sd-input{margin:0 0 12px;padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--panel)}
.sd-input label{display:block;margin-bottom:7px;font:750 12px var(--sans)}
.sd-input>div{display:flex;gap:8px}
.sd-input input{min-width:0;flex:1;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--ink);font:500 13px var(--sans)}
.sd-input button,.sd-unavailable button{min-height:44px;padding:0 14px;border:1px solid color-mix(in srgb,var(--sd-accent) 65%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--sd-accent) 17%,var(--panel));color:var(--ink);font:800 12px var(--sans);cursor:pointer}
.sd-input small{display:block;margin-top:7px;color:var(--mut);font:500 10px/1.45 var(--sans)}
.sd-status{min-height:0;color:var(--sd-accent);font:650 11px/1.4 var(--sans)}
#settlenav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:10px 0}
.sd-nav-main{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.sd-tab{min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--mut);font:750 11px var(--sans);cursor:pointer;white-space:nowrap}
.sd-tab span{margin-right:5px;color:var(--sd-accent)}
.sd-tab.on{border-color:color-mix(in srgb,var(--sd-accent) 72%,var(--line));background:color-mix(in srgb,var(--sd-accent) 14%,var(--panel));color:var(--ink)}
.sd-view-controls{display:flex;align-items:center;gap:3px;margin-left:auto;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.sd-view-controls button{min-width:44px;height:44px;border:0;border-radius:7px;background:transparent;color:var(--mut);font:750 12px var(--sans);cursor:pointer}
.sd-view-controls button:hover,.sd-view-controls button:focus-visible{background:var(--panel2);color:var(--ink)}
.sd-view-controls output{min-width:45px;text-align:center;color:var(--ink);font:700 10px var(--mono)}
.sd-workspace{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:12px;align-items:start;min-width:0}
.sd-canvas{position:relative;min-width:0;max-height:calc(100vh - 120px);overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:16px;background:linear-gradient(color-mix(in srgb,var(--panel2) 96%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--panel2) 96%,transparent) 1px,transparent 1px),var(--panel);background-size:22px 22px;padding:16px;outline:none}
.sd-canvas:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--sd-accent) 35%,transparent)}
#sdBoard{transform-origin:50% 0;transition:transform .2s ease;min-width:0}
.sd-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.sd-section-head h2,.sd-section-head h3{margin:4px 0 3px;font:850 21px/1.15 var(--sans);letter-spacing:-.02em}
.sd-section-head p{margin:0;color:var(--mut);font:500 12px/1.5 var(--sans)}
.sd-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-bottom:14px}
.sd-card{display:flex;min-height:190px;flex-direction:column;align-items:flex-start;text-align:left;padding:14px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(150deg,var(--panel),color-mix(in srgb,var(--panel2) 88%,var(--sd-accent)));color:var(--ink);cursor:pointer;box-shadow:0 10px 26px rgba(0,0,0,.08);transition:border-color .2s,transform .2s,box-shadow .2s}
.sd-card:hover,.sd-card:focus-visible,.sd-card.on{border-color:color-mix(in srgb,var(--sd-accent) 72%,var(--line));transform:translateY(-2px);box-shadow:0 13px 30px rgba(0,0,0,.16)}
.sd-card:focus-visible{outline:3px solid color-mix(in srgb,var(--sd-accent) 30%,transparent);outline-offset:2px}
.sd-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;width:100%;margin-bottom:13px}
.sd-card-top small{max-width:47%;color:var(--mut);font:500 9px/1.35 var(--mono);text-align:right}
.sd-card>b{font:820 16px/1.25 var(--sans)}
.sd-card>p{margin:7px 0 12px;color:var(--mut);font:500 11.5px/1.55 var(--sans);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.sd-card-open{margin-top:auto;color:var(--sd-accent);font:750 10px var(--sans)}
.sd-badge{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border:1px solid var(--line);border-radius:999px;color:var(--mut);font:750 9px/1.2 var(--mono);letter-spacing:.02em;white-space:nowrap}
.sd-class-illustrative{border-color:color-mix(in srgb,var(--sd-warn) 58%,var(--line));color:var(--sd-warn)}
.sd-class-verified_reference,.sd-class-verified_market{border-color:color-mix(in srgb,var(--sd-ok) 58%,var(--line));color:var(--sd-ok)}
.sd-ev>span[aria-hidden]{width:7px;height:7px;border-radius:50%;margin-right:5px;background:currentColor}
.sd-ev-loading,.sd-ev-stale{color:var(--sd-warn)}.sd-ev-live{color:var(--sd-ok)}.sd-ev-missing{color:var(--mut)}.sd-ev-disputed,.sd-ev-error{color:var(--sd-bad)}
.sd-steps{margin:0 0 14px;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--panel)}
.sd-steps h2{margin:0 0 12px;font:800 15px var(--sans)}
.sd-steps ol{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px;margin:0;padding:0;counter-reset:none}
.sd-steps li{display:flex;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.sd-steps li>span{display:grid;place-items:center;flex:0 0 29px;width:29px;height:29px;border-radius:8px;background:color-mix(in srgb,var(--sd-accent) 18%,var(--panel));color:var(--sd-accent);font:800 11px var(--mono)}
.sd-steps li b{display:block;font:750 11px/1.35 var(--sans)}
.sd-steps li p{margin:4px 0 0;color:var(--mut);font:500 10px/1.45 var(--sans)}
.sd-venue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.sd-venue{min-width:0;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--panel)}
.sd-venue>p{color:var(--mut);font:500 11px/1.55 var(--sans)}
.sd-lifecycle{list-style:none;margin:12px 0;padding:0;position:relative}
.sd-lifecycle:before{content:"";position:absolute;left:15px;top:15px;bottom:15px;width:1px;background:var(--line)}
.sd-lifecycle li{position:relative;margin-bottom:6px}
.sd-lifecycle button{display:grid;grid-template-columns:31px minmax(0,1fr);column-gap:9px;width:100%;min-height:58px;text-align:left;padding:7px;border:0;border-radius:9px;background:transparent;color:var(--ink);cursor:pointer}
.sd-lifecycle button:hover,.sd-lifecycle button:focus-visible{background:var(--panel2)}
.sd-lifecycle button>span{position:relative;z-index:1;display:grid;place-items:center;grid-row:1/3;width:31px;height:31px;border:1px solid color-mix(in srgb,var(--sd-accent) 55%,var(--line));border-radius:50%;background:var(--panel);color:var(--sd-accent);font:700 9px var(--mono)}
.sd-lifecycle button>b{font:750 11px/1.3 var(--sans)}
.sd-lifecycle button>small{color:var(--mut);font:500 9.5px/1.4 var(--sans)}
.sd-nonstandard{margin-top:9px;padding-top:10px;border-top:1px solid var(--line)}
.sd-nonstandard>b{font:800 10px var(--sans)}
.sd-nonstandard p{margin:7px 0;color:var(--mut);font:500 10px/1.45 var(--sans)}
.sd-nonstandard p span{display:block;color:var(--sd-warn);font-weight:750}
.sd-venue details,.sd-inspector details{margin-top:10px;color:var(--mut);font:600 10px var(--sans)}
.sd-venue summary,.sd-inspector summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
.sd-callout{margin:0 0 12px;padding:11px 13px;border-left:3px solid var(--sd-warn);border-radius:9px;background:color-mix(in srgb,var(--sd-warn) 8%,var(--panel))}
.sd-callout b{font:800 12px var(--sans)}.sd-callout p{margin:4px 0 0;color:var(--mut);font:500 10.5px/1.5 var(--sans)}
.sd-simulator .sd-sim-picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}
.sd-simulator .sd-sim-picks .sd-card{min-height:150px}
.sd-branches{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--panel)}
.sd-branches>h3{margin:0 0 10px;font:800 16px var(--sans)}
.sd-missing{padding:10px;border-radius:9px;background:color-mix(in srgb,var(--sd-warn) 8%,var(--panel2));font:600 10px/1.5 var(--sans)}
.sd-missing ul{margin:5px 0 0;padding-left:18px;color:var(--mut)}
.sd-branches>article{margin-top:9px;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.sd-branches>article>span,.sd-outcomes article>span{color:var(--sd-accent);font:800 9px var(--mono);letter-spacing:.06em;text-transform:uppercase}
.sd-branches h4{margin:5px 0;font:750 12px/1.4 var(--sans)}
.sd-branches article>b{font:800 12px/1.4 var(--sans)}
.sd-branches article>p,.sd-branches article>small{display:block;margin:5px 0 0;color:var(--mut);font:500 10px/1.45 var(--sans)}
.sd-inspector{position:sticky;top:8px;max-height:calc(100vh - 100px);overflow:auto;overscroll-behavior:contain;padding:15px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:0 14px 38px rgba(0,0,0,.15)}
.sd-inspector-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.sd-inspector-title h2,.sd-inspector-empty h2{margin:5px 0 0;font:850 20px/1.18 var(--sans);letter-spacing:-.02em}
.sd-inspector-close{display:none;flex:0 0 44px;width:44px;height:44px;border:0;border-radius:9px;background:var(--panel2);color:var(--mut);font:500 26px var(--sans);cursor:pointer}
.sd-inspector-badges{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0 13px}
.sd-inspector section{margin-top:15px;padding-top:13px;border-top:1px solid var(--line)}
.sd-inspector section>h3{margin:0 0 9px;font:800 12px var(--sans)}
.sd-inspector dl{margin:0}
.sd-field{display:grid;grid-template-columns:112px minmax(0,1fr);gap:9px;padding:7px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 58%,transparent)}
.sd-field dt{color:var(--mut);font:650 9px/1.45 var(--mono);text-transform:uppercase;letter-spacing:.035em}
.sd-field dd{min-width:0;margin:0;overflow-wrap:anywhere;color:var(--ink);font:500 10.5px/1.5 var(--sans)}
.sd-lead{color:var(--mut);font:500 12px/1.6 var(--sans)}
.sd-inspector-empty{display:grid;place-items:center;text-align:center;min-height:360px;padding:20px;color:var(--mut)}
.sd-inspector-empty>span{font-size:44px;color:var(--sd-accent)}
.sd-inspector-empty p{max-width:280px;font:500 11px/1.6 var(--sans)}
.sd-evidence{padding:11px!important;border:1px solid var(--line)!important;border-radius:11px;background:var(--panel2)}
.sd-evidence .sd-section-head{margin:0}
.sd-evidence .sd-section-head h3{font-size:14px}
.sd-ev-list,.sd-state-picks{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.sd-ev-list button,.sd-state-picks button{min-height:44px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--mut);font:700 9px var(--sans);cursor:pointer}
.sd-ev-list button.on,.sd-state-picks button.on{border-color:var(--sd-accent);color:var(--ink);background:color-mix(in srgb,var(--sd-accent) 12%,var(--panel))}
.sd-unverified,.sd-preserved{display:flex;flex-direction:column;gap:4px;margin-top:9px;padding:9px;border-left:3px solid var(--sd-warn);border-radius:7px;background:color-mix(in srgb,var(--sd-warn) 7%,var(--panel))}
.sd-unverified[hidden],.sd-preserved[hidden]{display:none}
.sd-unverified b{color:var(--sd-warn);font:800 9px var(--mono);text-transform:uppercase}.sd-unverified span{overflow-wrap:anywhere;font:650 10px var(--sans)}.sd-unverified small{color:var(--mut);font:500 9px/1.4 var(--sans)}
.sd-preserved b{color:var(--sd-bad);font:800 9px var(--mono);text-transform:uppercase}.sd-preserved span{color:var(--mut);font:600 10px/1.4 var(--sans)}
.sd-outcomes{display:grid;gap:7px}
.sd-outcomes article{padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}
.sd-outcomes article>b{display:block;margin-top:4px;font:750 10.5px/1.4 var(--sans)}
.sd-outcomes article p{margin:4px 0 0;color:var(--mut);font:500 10px/1.45 var(--sans)}
.sd-handling{margin-bottom:7px;padding:9px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}
.sd-handling b{font:750 10.5px var(--sans)}.sd-handling p{margin:5px 0;color:var(--mut);font:500 10px/1.45 var(--sans)}.sd-handling small{color:var(--sd-warn);font:500 9px/1.4 var(--sans)}
.sd-sources{list-style:none;margin:0;padding:0}
.sd-sources li{margin-bottom:7px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);overflow-wrap:anywhere}
.sd-sources a,.sd-sources>li>span{display:flex;align-items:center;min-height:44px;color:var(--sd-accent);font:700 10px/1.35 var(--sans)}
.sd-sources small{display:block;margin-top:3px;color:var(--mut);font:500 8.5px/1.35 var(--mono)}
.sd-muted,.sd-empty{color:var(--mut);font:500 9.5px/1.5 var(--sans)}
.sd-facts{margin:0;padding-left:18px;color:var(--mut);font:500 10.5px/1.55 var(--sans)}
.sd-kara{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;margin-top:16px;padding:0 13px;border:1px solid color-mix(in srgb,var(--sd-accent) 72%,var(--line));border-radius:11px;background:linear-gradient(135deg,color-mix(in srgb,var(--sd-accent) 23%,var(--panel)),color-mix(in srgb,#b485ff 18%,var(--panel)));color:var(--ink);font:800 11px var(--sans);cursor:pointer}
.sd-kara span{font-size:18px}
.sd-minimap{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:9px 0 2px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.sd-mini-map{position:relative;min-width:84px;min-height:44px;padding:17px 8px 8px;border:1px solid var(--line);border-radius:7px;background:var(--panel2);overflow:hidden}
.sd-mini-viewport{position:absolute;min-width:18px;min-height:14px;border:2px solid var(--sd-accent);border-radius:3px;transform:translate(-50%,-50%);background:color-mix(in srgb,var(--sd-accent) 10%,transparent)}
.sd-mini-grid{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:13px;gap:3px}
.sd-mini-grid span{width:13px;height:8px;border-radius:2px;background:var(--line)}.sd-mini-grid span.on{background:var(--sd-accent)}
.sd-minimap output{color:var(--mut);font:600 9px var(--mono)}
.sd-loading,.sd-unavailable{display:grid;place-items:center;min-height:330px;padding:25px;text-align:center;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--mut);font:650 12px var(--sans)}
.sd-loading span{width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--sd-accent);border-radius:50%;animation:sdspin .8s linear infinite}
.sd-unavailable h2{margin:0;color:var(--ink);font:850 20px var(--sans)}.sd-unavailable p{max-width:480px;margin:8px auto 16px;line-height:1.6}
@keyframes sdspin{to{transform:rotate(360deg)}}
@media(max-width:1199px){
 .sd-workspace{grid-template-columns:minmax(0,1fr)}
 .sd-inspector{display:none;position:fixed;left:0;right:0;bottom:0;top:auto;z-index:100050;width:auto;max-height:min(86vh,780px);border-radius:18px 18px 0 0;padding:17px 17px calc(17px + env(safe-area-inset-bottom));box-shadow:0 -24px 70px rgba(0,0,0,.55)}
 .sd-inspector.open{display:block;animation:sdSheetIn .2s ease-out}
 .sd-inspector.open:before{content:"";position:fixed;inset:0;z-index:-1;background:rgba(0,0,0,.55)}
 .sd-inspector-close{display:block}
 @keyframes sdSheetIn{from{transform:translateY(100%)}to{transform:none}}
}
@media(max-width:760px){
 .sd-hero{grid-template-columns:1fr;padding:17px}.sd-principle{padding:11px}
 #settlenav{display:block;overflow:hidden}.sd-nav-main{overflow-x:auto;flex-wrap:nowrap;padding-bottom:6px;scrollbar-width:none}.sd-nav-main::-webkit-scrollbar{display:none}
 .sd-view-controls{width:max-content;max-width:100%;overflow-x:auto;margin:2px 0 0}
 .sd-input>div{display:grid}.sd-input button{width:100%}
 .sd-canvas{max-height:none;padding:10px;overflow-x:hidden}.sd-card-grid{grid-template-columns:1fr}.sd-card{min-height:164px}
 .sd-venue-grid{grid-template-columns:1fr}.sd-steps ol{grid-template-columns:1fr}.sd-field{grid-template-columns:94px minmax(0,1fr)}
 .sd-minimap{align-items:flex-start;flex-direction:column}.sd-minimap output{white-space:normal}
}
@media(max-width:390px){
 .sd-shell,.sd-hero,.sd-workspace,.sd-canvas,#sdBoard,.sd-inspector{max-width:100%;min-width:0}
 .sd-hero h1{font-size:27px}.sd-card{padding:12px}.sd-card-top{display:block}.sd-card-top small{display:block;max-width:none;margin-top:7px;text-align:left}
 .sd-field{display:block}.sd-field dt{margin-bottom:3px}.sd-ev-list button,.sd-state-picks button{flex:1 1 calc(50% - 5px)}
}
#sdBoard[data-sd-zoom="compact"] .sd-card-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px}
#sdBoard[data-sd-zoom="compact"] .sd-card{min-height:150px;padding:10px}
.sd-shell{font-size:12px}
.sd-shell :where(p,small,li,dt,dd,button,a,output,label,summary),.sd-kicker,.sd-badge,.sd-card-open,.sd-muted,.sd-empty{font-size:max(12px,1em)!important}
.sd-shell button:focus-visible,.sd-shell a:focus-visible,[data-sdtitle]:focus-visible,#sdInspectorTitle:focus-visible{outline:3px solid color-mix(in srgb,var(--sd-accent) 55%,transparent);outline-offset:2px}
body.sd-modal-open{overflow:hidden}
@media(prefers-reduced-motion:reduce){#sdBoard,.sd-card,.sd-inspector.open{transition:none;animation:none}.sd-card:hover,.sd-card:focus-visible,.sd-card.on{transform:none}.sd-loading span{animation:none}}
/* Settlement Desk approved corkboard identity — local CSS materials, no decorative network assets. */
#settlenav,.sd-shell{--sd-accent:#48b9f8;--sd-warn:#f3b64b;--sd-ok:#54d19a;--sd-bad:#ff6f91;--sd-board-ink:#261d18;--sd-hand:"Segoe Print","Comic Sans MS",cursive}
.sd-hero{grid-template-columns:minmax(0,1fr) minmax(230px,330px);margin:4px 0 12px;padding:14px 18px;border-color:#283c56;border-radius:12px;background:linear-gradient(145deg,#071626,#0b1e31 64%,#102338)}
.sd-hero:after{width:220px;height:220px;right:-82px;top:-145px}.sd-hero h1{margin:4px 0 5px;font-size:clamp(22px,3vw,32px)}.sd-hero p{font-size:12px;line-height:1.5}
.sd-principle{padding:10px 12px;border-color:#b64867;background:rgba(130,24,61,.12)}.sd-principle span{color:#ff789c}.sd-principle b{font-size:12px}
#settlenav{padding:5px 8px;border:1px solid #263b53;border-radius:12px;background:linear-gradient(180deg,#081828,#071421)}
.sd-tab{border-color:#2e465f;border-radius:8px;background:#081522;color:#bcc8d5}.sd-tab:hover,.sd-tab:focus-visible{border-color:#6c8ba7;color:#fff}.sd-tab.on{border-color:color-mix(in srgb,var(--sd-accent) 65%,#405b72);background:#10253a;color:#fff}
.sd-view-controls{border-color:#2e465f;background:#081522}.sd-view-controls button:hover,.sd-view-controls button:focus-visible{background:#173048;color:#fff}
.sd-workspace{grid-template-columns:minmax(0,1fr) 390px;gap:12px}
.sd-canvas{max-height:calc(100vh - 118px);padding:28px;border:11px solid #5e351b;border-radius:3px;background:radial-gradient(circle at 18% 24%,rgba(66,35,16,.15) 0 1px,transparent 1.8px),radial-gradient(circle at 72% 67%,rgba(255,236,188,.16) 0 1px,transparent 1.7px),repeating-linear-gradient(28deg,rgba(79,43,19,.07) 0 1px,transparent 1px 5px),linear-gradient(135deg,#c58b4e,#ad7138 48%,#c58a4c);background-size:17px 19px,23px 21px,auto,auto;box-shadow:inset 0 0 0 4px #321b0d,inset 0 0 28px rgba(61,29,11,.42),0 12px 30px rgba(0,0,0,.42);color:var(--sd-board-ink)}
.sd-canvas:focus-visible{box-shadow:inset 0 0 0 4px #321b0d,inset 0 0 28px rgba(61,29,11,.42),0 0 0 4px color-mix(in srgb,var(--sd-accent) 55%,transparent),0 12px 30px rgba(0,0,0,.42)}
#sdBoard{position:relative}.sd-canvas .sd-section-head h2,.sd-canvas .sd-section-head h3{color:#251b16}.sd-canvas .sd-section-head p{color:#523b2c}.sd-canvas .sd-kicker{color:#5d241e}
.sd-steps{position:relative;margin:0 0 18px;padding:28px 0 8px;border:0;background:transparent;overflow:hidden}.sd-steps h2{position:absolute;left:0;top:0;margin:0;padding:4px 9px;border-radius:4px;background:rgba(255,247,220,.84);color:#39251b;font:800 10px var(--mono);text-transform:uppercase;letter-spacing:.08em}
.sd-thread{position:absolute;z-index:0;left:3%;right:3%;top:70px;height:4px;border-radius:99px;background:linear-gradient(180deg,#dd3d47,#8d111c);box-shadow:0 2px 4px rgba(54,10,11,.45);transform:rotate(-.7deg)}
.sd-steps ol{position:relative;z-index:1;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.sd-steps li{position:relative;display:block;min-width:0;min-height:185px;padding:33px 10px 12px;border:0;border-radius:1px;background:#f4d67c;color:var(--sd-board-ink);box-shadow:0 9px 13px rgba(55,26,10,.28);transform:rotate(-1deg)}
.sd-steps li:nth-child(2){background:#acd5ae;transform:rotate(.8deg)}.sd-steps li:nth-child(3){background:#9bd3ee;transform:rotate(-.5deg)}.sd-steps li:nth-child(4){background:#c8b1df;transform:rotate(1deg)}.sd-steps li:nth-child(5){background:#eba7ad;transform:rotate(-.8deg)}.sd-steps li:nth-child(6){background:#f3bd90;transform:rotate(.7deg)}.sd-steps li:nth-child(7){background:#d4d89b;transform:rotate(-.4deg)}
.sd-pin{position:absolute;z-index:2;top:7px;left:50%;width:14px;height:14px;border-radius:50%;transform:translateX(-50%);background:radial-gradient(circle at 32% 26%,#ffd1b4 0 11%,#e64545 19% 60%,#7f1622 100%);box-shadow:0 3px 4px rgba(42,17,8,.45)}
.sd-step-number{display:block!important;width:auto!important;height:auto!important;margin-bottom:4px!important;border:0!important;border-radius:0!important;background:transparent!important;color:#17110e!important;font:700 27px/1 var(--sd-hand)!important}.sd-steps li b{font:700 13px/1.22 var(--sd-hand);color:#19120f}.sd-steps li p{color:#4b3629;font:600 9.5px/1.38 var(--sans)}
.sd-board-principle{position:relative;margin:4px auto 20px;padding:22px 28px;border:5px solid #70706d;border-radius:5px;background:linear-gradient(105deg,#f2f0e8,#fff 48%,#e8e7e1);box-shadow:inset 0 0 0 2px #b7b6ae,0 9px 16px rgba(55,26,10,.27);color:#171513;text-align:center}.sd-board-principle strong{font:700 clamp(18px,2.3vw,28px)/1.35 var(--sd-hand)}
.sd-tape{position:absolute;z-index:2;left:14px;right:14px;top:-10px;height:25px;pointer-events:none}.sd-tape:before,.sd-tape:after{content:"";position:absolute;width:58px;height:22px;background:rgba(241,222,180,.76);box-shadow:0 1px 2px rgba(72,45,26,.15);transform:rotate(-8deg)}.sd-tape:after{right:0;transform:rotate(8deg)}
.sd-card-grid{gap:14px}.sd-card{position:relative;min-height:190px;padding:27px 16px 15px;border:0;border-radius:2px;background:#f4d67c;color:var(--sd-board-ink);box-shadow:0 9px 15px rgba(56,27,11,.28);transform:rotate(-.5deg)}.sd-card:nth-child(2n){background:#9ed8bd;transform:rotate(.6deg)}.sd-card:nth-child(3n){background:#9ecbef;transform:rotate(-.7deg)}.sd-card:nth-child(4n){background:#c9b0e6;transform:rotate(.5deg)}.sd-card:nth-child(5n){background:#efa5bd}.sd-card:nth-child(6n){background:#f2ba8c}
.sd-card:hover,.sd-card:focus-visible,.sd-card.on{border-color:transparent;transform:translateY(-3px) rotate(0);box-shadow:0 14px 21px rgba(50,24,10,.36),0 0 0 3px rgba(37,107,150,.38)}.sd-card:focus-visible{outline:3px solid #074a78;outline-offset:3px}.sd-card-top small,.sd-card>p{color:#4c392f}.sd-card>b{font:800 16px/1.25 var(--sd-hand);color:#1f1713}.sd-card-open{color:#174f75}
.sd-card .sd-badge{background:rgba(255,255,255,.32);color:#4e3a2f;border-color:rgba(48,34,27,.3)}.sd-card .sd-class-illustrative{color:#814413;border-color:#a96023}.sd-card .sd-class-verified_reference,.sd-card .sd-class-verified_market{color:#175f42;border-color:#317a5d}
.sd-venue-grid{grid-template-columns:1fr;gap:17px}.sd-venue{position:relative;padding:29px 18px 15px;border:0;border-radius:2px;background:linear-gradient(100deg,#f1ede2,#fffaf0 55%,#e8e0d2);box-shadow:0 9px 15px rgba(55,26,10,.28);color:var(--sd-board-ink)}.sd-venue>p{color:#4d3d31}.sd-lifecycle{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:8px}.sd-lifecycle:before{left:4%;right:4%;top:23px;bottom:auto;width:auto;height:2px;background:#775543}.sd-lifecycle button{position:relative;grid-template-columns:31px minmax(0,1fr);background:rgba(255,255,255,.35)}.sd-lifecycle button:hover,.sd-lifecycle button:focus-visible{background:rgba(255,255,255,.72)}.sd-lifecycle button>span{background:#f5efe2;color:#553323;border-color:#8d6c55}.sd-lifecycle button>small,.sd-nonstandard p{color:#59483c}
.sd-callout,.sd-branches{border-color:#c7ad87;background:rgba(255,247,224,.88);color:var(--sd-board-ink)}.sd-callout p,.sd-branches article>p,.sd-branches article>small,.sd-missing ul{color:#534033}.sd-branches>article,.sd-missing{border-color:#d1bb99;background:rgba(255,255,255,.42)}
.sd-inspector{border-color:#29435c;border-radius:13px;background:linear-gradient(155deg,#071827,#071421 68%,#0b1d2d);box-shadow:0 14px 38px rgba(0,0,0,.32);color:#eaf1f7}.sd-inspector-title h2,.sd-inspector-empty h2{color:#f5f7fa}.sd-inspector .sd-kicker{color:#ff7198}.sd-inspector section{border-top-color:#263a4e}.sd-inspector .sd-field{border-bottom-color:#22384c}.sd-inspector .sd-field dd,.sd-inspector .sd-handling b,.sd-inspector .sd-outcomes article>b{color:#eaf1f7}.sd-inspector .sd-field dt,.sd-inspector .sd-lead,.sd-inspector .sd-muted,.sd-inspector-empty,.sd-inspector .sd-outcomes article p,.sd-inspector .sd-handling p{color:#aebdca}.sd-inspector .sd-evidence,.sd-inspector .sd-outcomes article,.sd-inspector .sd-handling,.sd-inspector .sd-sources li{border-color:#2a4359!important;background:#0c2032}.sd-inspector-close{background:#10283d;color:#d6e1ea}
.sd-inspector-tabs{position:sticky;top:-15px;z-index:3;display:flex;gap:2px;margin:0 -4px 8px;padding:8px 4px 0;border-bottom:1px solid #29435c;background:#071827;overflow-x:auto;scrollbar-width:thin}.sd-inspector-tabs button{flex:0 0 auto;min-height:38px;padding:7px 9px;border:0;border-bottom:2px solid transparent;background:transparent;color:#aebdca;font:700 10.5px var(--sans);cursor:pointer}.sd-inspector-tabs button:hover{color:#fff}.sd-inspector-tabs button.on{border-bottom-color:#ff7198;color:#ff91af}.sd-inspector-tabs button:focus-visible{outline:2px solid #48b9f8;outline-offset:-2px;border-radius:5px}.sd-inspector-panel[hidden]{display:none}.sd-inspector-panel>section:first-child{margin-top:4px;padding-top:9px}.sd-inspector-panel>.sd-lead{margin:13px 0 0}
.sd-minimap{border-color:#273d52;background:#081725}.sd-mini-map{border-color:#344d63;background:repeating-linear-gradient(0deg,transparent 0 10px,rgba(116,145,169,.12) 10px 11px),repeating-linear-gradient(90deg,transparent 0 13px,rgba(116,145,169,.12) 13px 14px),#0b1b2a}.sd-mini-grid span{background:#79694f}.sd-mini-grid span.on{background:#ee7aa2}
@media(max-width:1199px){.sd-workspace{grid-template-columns:minmax(0,1fr)}.sd-inspector{background:linear-gradient(155deg,#071827,#071421 68%,#0b1d2d)}}
@media(max-width:760px){.sd-hero{grid-template-columns:1fr;padding:13px}.sd-canvas{padding:15px;border-width:8px}.sd-steps ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.sd-thread{top:74px;bottom:18px;left:50%;right:auto;width:3px;height:auto}.sd-steps li{min-height:170px}.sd-board-principle{padding:17px 16px}.sd-lifecycle{grid-template-columns:1fr}.sd-lifecycle:before{left:15px;right:auto;top:15px;bottom:15px;width:1px;height:auto}}
@media(max-width:390px){.sd-canvas{padding:11px;border-width:6px}.sd-steps ol{gap:10px}.sd-steps li{min-height:164px;padding-left:8px;padding-right:8px}.sd-step-number{font-size:23px!important}.sd-steps li b{font-size:12px}.sd-board-principle strong{font-size:17px}}
@media(prefers-reduced-motion:reduce){.sd-steps li,.sd-card{transition:none}.sd-card:hover,.sd-card:focus-visible,.sd-card.on{transform:none}}
/* ── swipeable figure gallery (Research book hero) ── */
.rb-gallery{position:relative}
.rb-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;border-radius:12px;scrollbar-width:none}
.rb-track::-webkit-scrollbar{display:none}
.rb-slide{flex:0 0 100%;scroll-snap-align:center}
.rb-slide-art svg{width:100%;height:auto;display:block;border-radius:12px}
.rb-slide-cap{font:600 12px var(--sans);color:var(--ink);text-align:center;padding:8px 6px 2px;opacity:.86}
.rb-garr{position:absolute;top:42%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(10,14,25,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;line-height:1}
.rb-garr-l{left:8px}.rb-garr-r{right:8px}
.rb-garr:hover{background:rgba(10,14,25,.82)}
.rb-gcount{position:absolute;top:8px;right:10px;font:700 10.5px var(--mono);color:#fff;background:rgba(10,14,25,.55);padding:2px 9px;border-radius:999px;z-index:2}
.rb-gdots{display:flex;gap:6px;justify-content:center;margin-top:7px}
.rb-gdot{width:7px;height:7px;border-radius:50%;border:none;background:var(--line);cursor:pointer;padding:0;transition:width .2s,background .2s}
.rb-gdot.on{background:var(--rb);width:18px;border-radius:4px}
.rb-cover-art>svg{will-change:transform}
/* styled checkbox → toggle switch (Risk Hub etc.) */
.kk-tgl{display:flex;align-items:center;gap:10px;cursor:pointer}
.kk-tgl input{position:absolute;opacity:0;width:0;height:0}
.kk-tgl-sw{flex:0 0 auto;width:38px;height:22px;border-radius:999px;background:var(--line);position:relative;transition:background .15s}
.kk-tgl-sw::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s}
.kk-tgl input:checked + .kk-tgl-sw{background:var(--grass)}
.kk-tgl input:checked + .kk-tgl-sw::after{transform:translateX(16px)}
.kk-tgl input:focus-visible + .kk-tgl-sw{outline:2px solid var(--sky);outline-offset:2px}
/* ▶ guide walkthroughs — numbered step flow */
.gwalk{margin-top:12px;border:1px solid color-mix(in srgb,var(--grass) 32%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--grass) 7%,var(--panel2));padding:11px 14px 12px}
.gwalk-h{font:800 12px var(--sans);color:var(--grass);letter-spacing:.04em;margin-bottom:6px}
.gwalk-list{margin:0;padding:0;list-style:none;counter-reset:gw}
.gwalk-list li{counter-increment:gw;position:relative;padding:7px 0 7px 34px;font:400 13.5px/1.5 var(--sans);color:var(--ink);border-top:1px solid var(--line)}
.gwalk-list li:first-child{border-top:none}
.gwalk-list li::before{content:counter(gw);position:absolute;left:0;top:7px;width:22px;height:22px;border-radius:50%;background:var(--grass);color:#06101f;font:800 11px var(--mono);display:flex;align-items:center;justify-content:center}
.autoplan3{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:9px}.autoplan3>button{display:grid;grid-template-columns:auto 1fr;gap:3px 8px;border:1px solid var(--line);border-radius:12px;padding:11px;background:var(--panel2);color:inherit;text-align:left;cursor:pointer}.autoplan3>button:hover,.autoplan3>button:focus-visible{border-color:var(--acc);outline:none}.autoplan3>button:active{transform:scale(.985)}.autoplan3 span{grid-row:1/3;width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:var(--acc);color:#06101f;font:800 11px var(--mono)}.autoplan3 b{font:800 12px var(--sans);color:var(--ink)}.autoplan3 small{font:500 10.5px/1.4 var(--sans);color:var(--mut)}
.seccaps-grid{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.autoauth{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}.autoauth>div{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.autoauth b{font:800 13px var(--sans);color:var(--ink)}.autoauth>span{font:700 9.5px var(--mono);color:var(--mut);letter-spacing:.06em}.autostate{font:900 10px var(--mono);letter-spacing:.1em;border:1px solid currentColor;border-radius:999px;padding:4px 8px}.autoarm{margin-top:12px}
.autogates{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:7px;margin-top:12px}.autogate{display:grid;grid-template-columns:auto 1fr;gap:1px 7px;border:1px solid var(--line);border-radius:10px;padding:8px;background:rgba(10,16,30,.32)}.autogate>span{grid-row:1/3;font:900 15px var(--mono)}.autogate>b{font:750 10.5px var(--sans);color:var(--ink)}.autogate small{font:800 8px var(--mono);text-transform:uppercase;letter-spacing:.08em}.autogate.pass>span,.autogate.pass small{color:var(--grass)}.autogate.block>span,.autogate.block small{color:var(--clay)}
.autoenginecfg{display:grid;grid-template-columns:minmax(170px,1.3fr) repeat(3,minmax(110px,.8fr)) auto;gap:8px;align-items:end;border-top:1px solid var(--line);margin-top:13px;padding-top:13px}.autoenginecfg>div b{display:block;font:800 12px var(--sans);color:var(--ink)}.autoenginecfg>div small,.autoenginecfg label span{display:block;font:650 9px/1.35 var(--mono);color:var(--mut);margin-bottom:4px}.autoenginecfg input,.autoenginecfg select{width:100%}.autoevidence{display:flex;gap:8px 14px;align-items:center;flex-wrap:wrap;border:1px solid color-mix(in srgb,var(--sky) 30%,var(--line));border-radius:11px;padding:10px;margin-top:12px}.autoevidence>b{font:800 11px var(--sans);color:var(--ink)}.autoevidence>span{font:700 10px var(--mono);color:var(--mut)}.autoevidence>small{flex:1 1 100%;font:500 10px/1.45 var(--sans);color:var(--mut)}
@media(max-width:760px){.autoplan3{grid-template-columns:1fr}.autoenginecfg{grid-template-columns:1fr 1fr}.autoenginecfg>div,.autoenginecfg>button{grid-column:1/-1}.autoarm .atbtn{flex:1 1 44%;min-height:44px}}
.kkpasskeycard{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-color:color-mix(in srgb,var(--grass) 35%,var(--line))}.kkpasskeycard>div b{display:block;font:800 13px var(--sans);color:var(--ink)}.kkpasskeycard>div small{display:block;margin-top:3px;font:600 9.5px/1.4 var(--mono);color:var(--mut)}
.kkpasskeycard #kkpasskeylist{flex:1 0 100%;border-top:1px solid var(--line);padding-top:8px}.kkpkrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0}.kkpkrow+.kkpkrow{border-top:1px solid var(--line)}.kkpkrow>span{min-width:0}.kkpkrow .atbtn{flex:0 0 auto}
.qhelp{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1px solid color-mix(in srgb,#4cb9f8 55%,transparent);color:#4cb9f8;font:800 10px var(--mono);cursor:pointer;vertical-align:middle;margin-left:5px;line-height:1}
.qhelp:hover{background:#4cb9f8;color:#06101f}
/* full-screen overlays (onboarding / legal) */
.ovl{position:fixed;inset:0;z-index:9000;background:rgba(6,12,24,.86);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:18px;overflow:auto}
.ovl-card{background:linear-gradient(180deg,#16243b,#101a2e);border:1px solid var(--line);border-radius:18px;max-width:560px;width:100%;padding:22px 22px 18px;box-shadow:0 24px 60px rgba(0,0,0,.5);max-height:92vh;overflow:auto}
.ovl-card h2{font:800 19px var(--sans);margin:0 0 6px}
.ovl-card p{font:13.5px/1.6 var(--sans);color:var(--ink,#e8edf6);margin:8px 0}
.ovl-step{font:700 10px var(--mono);letter-spacing:.1em;color:var(--acc);margin-bottom:8px}
.tos-box{max-height:200px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:11px;font:12px/1.55 var(--sans);color:var(--mut);background:rgba(0,0,0,.2);margin:10px 0}
.tos-chk{display:flex;gap:9px;align-items:flex-start;font:600 12.5px var(--sans);color:var(--ink,#e8edf6);margin:7px 0;cursor:pointer}
.tos-chk input{margin-top:2px;flex:0 0 auto;width:16px;height:16px;accent-color:#36d399}
.eyebrow{display:flex;align-items:center;gap:9px;font:700 11px var(--mono);letter-spacing:.2em;
color:var(--mut);text-transform:uppercase;margin:32px 2px 11px}
/* 32px is the gap BETWEEN sections; the first eyebrow in a view has no preceding section, so that
   much air under the greeting chip is wasted. Halved, scoped to the view containers only so real
   inter-section spacing is untouched. */
#sportsview>.eyebrow:first-child,#weatherview>.eyebrow:first-child,#autoview>.eyebrow:first-child,
#btcview>.eyebrow:first-child,#logsview>.eyebrow:first-child,#guideview>.eyebrow:first-child,
#parlayview>.eyebrow:first-child,#profileview>.eyebrow:first-child,#ownerview>.eyebrow:first-child,
#learnview>.eyebrow:first-child{margin-top:16px}
.eyebrow::before{content:"";width:16px;height:3px;border-radius:2px;background:var(--acc)}
.card{border:1px solid color-mix(in srgb,var(--line) 85%,transparent);border-radius:18px;padding:19px 20px;margin-bottom:15px;
background:linear-gradient(180deg,rgba(25,38,69,.66),rgba(16,24,43,.62));
box-shadow:0 14px 34px rgba(3,8,22,.40),inset 0 1px 0 rgba(255,255,255,.05);
-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.card+.card{margin-top:0}
.row{display:flex;gap:22px;align-items:baseline;flex-wrap:wrap;row-gap:12px}
.big{font:800 26px/1 var(--mono);font-variant-numeric:tabular-nums}
.lbl{font:600 10px var(--mono);letter-spacing:.16em;color:var(--mut);text-transform:uppercase}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:7px}
.ok{background:var(--grass);box-shadow:0 0 10px var(--grass)}
.bad{background:var(--clay);box-shadow:0 0 10px var(--clay)}
@media(prefers-reduced-motion:no-preference){.ok{animation:pu 2.4s infinite}@keyframes pu{50%{opacity:.35}}}
.pos{color:var(--grass)}.neg{color:var(--clay)}.inf{color:var(--sky)}
.tabs{display:flex;gap:8px;margin:14px 0 2px;overflow-x:auto;padding:2px;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:0 0 auto;font:700 11px var(--mono);letter-spacing:.12em;padding:10px 16px;min-height:38px;
border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--mut);cursor:pointer}
.tab.on{border-color:transparent;color:#0a1124;background:var(--acc);
box-shadow:0 4px 14px color-mix(in srgb,var(--acc) 40%,transparent)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:14px}
.kv .v{font:800 19px var(--mono);font-variant-numeric:tabular-nums}
.kv .k{font:600 9.5px var(--mono);letter-spacing:.14em;color:var(--mut);margin-top:2px}
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font:11.5px var(--mono)}
td,th{padding:8px 6px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
th{color:var(--mut);font-weight:700;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase}
td:first-child,th:first-child{text-align:left}
tr:last-child td{border-bottom:0}
pre{font:10.5px/1.8 var(--mono);white-space:pre;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0;color:var(--ink)}
.chip{display:inline-block;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.04);
padding:5px 11px;font:11px var(--mono);color:var(--mut);margin:2px 5px 2px 0}
.pick{border-left:4px solid var(--gold)}
.pick .fx{font:700 10px var(--mono);letter-spacing:.16em;color:var(--mut);text-transform:uppercase}
.edgepill{flex:0 0 auto;font:800 11.5px var(--mono);color:#221504;border-radius:999px;padding:5px 12px;
background:linear-gradient(135deg,#ffd97c,var(--gold));box-shadow:0 4px 12px rgba(246,185,75,.35)}
.gradepill{flex:0 0 auto;font:800 12px var(--mono);letter-spacing:1px;color:#f5a524;border-radius:999px;padding:4px 10px;border:1px solid color-mix(in srgb,#f5a524 45%,transparent);background:color-mix(in srgb,#f5a524 12%,transparent)}
.action{margin:11px 0 10px;padding:12px 14px;border-radius:12px;
background:rgba(54,211,153,.09);border:1px solid rgba(54,211,153,.4)}
.act-k{font:700 9.5px var(--mono);letter-spacing:.22em;color:var(--grass)}
.act-main{font:800 22px/1.15 var(--sans);margin-top:4px}
.act-main .tick{color:var(--grass)}
.act-sub{font:13px var(--sans);color:var(--mut);margin-top:3px}
.act-how{font:12.5px var(--mono);margin-top:9px;color:var(--ink)}
.act-how b{color:var(--sky)}
.mkt{display:inline-block;margin-top:9px;font:800 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#06101f;background:var(--acc);border-radius:7px;padding:4px 10px}
.checks{margin:11px 0 2px;border-top:1px dashed var(--line);padding-top:9px}
.checks .lbl{display:block;margin-bottom:6px}
.checks .ck{font:12px/1.5 var(--sans);color:var(--ink);padding-left:17px;position:relative;margin-bottom:4px}
.checks .ck b{color:var(--mut);font-weight:700}
.checks .ck::before{content:"";position:absolute;left:0;top:6px;width:8px;height:8px;border-radius:50%;background:var(--grass);box-shadow:0 0 7px var(--grass)}
.checks .ck.warn::before{background:var(--clay);box-shadow:0 0 7px var(--clay)}
.combo .leg{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line)}
.combo .leg:last-child{border-bottom:0}
.combo .leg .lpick{font:700 12.5px var(--sans);color:var(--ink)}
.combo .leg .lmkt{font:10px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mut);margin-top:2px}
.combo .leg .lp{font:800 13px var(--mono);color:var(--grass);text-align:right;white-space:nowrap}
.combo .leg .lpx{font:10px var(--mono);color:var(--mut);text-align:right}
.emath{display:flex;flex-wrap:wrap;gap:3px 14px;margin-top:9px;font:11px var(--mono);color:var(--mut)}
.emath .lbl{flex-basis:100%;margin-bottom:1px}
.emath b{color:var(--ink)}
.emath b.pos{color:var(--grass)}
.emath b.neg{color:var(--clay)}
.stake{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font:12px var(--mono);color:var(--mut)}
.stake b{color:var(--gold)}
.confwrap{display:flex;align-items:center;gap:9px;margin-top:9px}
.confbar{flex:1;height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.confbar i{display:block;height:100%;background:linear-gradient(90deg,var(--sky),var(--grass))}
.track{position:relative;height:8px;background:var(--line);border-radius:4px;margin:12px 0 5px}
.band{position:absolute;height:8px;border-radius:4px;background:linear-gradient(90deg,var(--sky),var(--grass))}
.mark{position:absolute;top:-4px;width:3px;height:16px;border-radius:2px}
input,select{background:#0c1428;border:1px solid var(--line);border-radius:10px;
color:var(--ink);font:16px var(--mono);padding:11px 12px;min-width:0;min-height:44px}
input{flex:1}
select{appearance:none;-webkit-appearance:none;padding-right:34px;cursor:pointer;
background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="6"><path d="M1 1l4 4 4-4" stroke="%2394a5c4" stroke-width="1.6" fill="none" stroke-linecap="round"/></svg>');
background-repeat:no-repeat;background-position:right 13px center}
input[type=range]{flex:1;min-height:auto;padding:0;border:0;background:transparent;accent-color:var(--gold);height:26px}
button.cta{font:800 11.5px var(--mono);letter-spacing:.1em;padding:11px 16px;min-height:44px;border-radius:10px;
border:0;cursor:pointer;color:#071322;background:linear-gradient(135deg,var(--sky),#2e7cf0);
box-shadow:0 6px 16px rgba(76,185,248,.3)}
button.ghost{font:700 11px var(--mono);padding:10px 14px;min-height:44px;border-radius:10px;cursor:pointer;
border:1px solid var(--line);background:var(--panel);color:var(--mut)}
button.sm{min-height:38px;padding:8px 12px}
.setrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.setlbl{font:700 10px var(--mono);letter-spacing:.2em;color:var(--mut);text-transform:uppercase}
#tzsel{flex:1;min-width:150px}
.caprow{display:flex;align-items:center;gap:11px;margin-top:9px}
.cap-d{font:800 18px var(--mono);color:var(--gold)}
#capin{flex:0 0 auto;width:104px;text-align:right;font-weight:700;font-family:var(--font-num);font-variant-numeric:tabular-nums}
/* This used to be one rule: `svg text{font:9px var(--mono);fill:var(--mut)}`. A presentation
   attribute ranks BELOW any author rule, so that single `fill` silently beat every `<text fill=…>`
   in the console — measured on the settlement tape, 28 of 40 labels rendered #9db0d0 instead of the
   colour they asked for, including the gold "THE LINE · …" heading. The font default is kept global;
   the fill default is now scoped so an EXPLICIT fill wins inside the chart.
   Deliberately limited to #btcchart: `svg:not(#btcchart) text` matches exactly what `svg text`
   matched before, minus the chart, so every other SVG surface is byte-for-byte unchanged. The same
   defect exists on those surfaces and is worth fixing — but that is a console-wide visual change
   that needs its own review, not a side effect of promoting the tape to default.
   The `font:` SHORTHAND has the same problem and it is worse: it also set size, family and weight,
   so every font-size/font-family/font-weight attribute in the chart was flattened too — measured,
   23 of 37 font-size attributes on the tape rendered at 9px instead of the authored value, with 8px
   captions drawing 12.5% wider than laid out. The layout code measures the AUTHORED typography
   (tpTxtW(s, px, mono) takes both), so the arithmetic and the render disagreed by construction,
   which is where the text collisions came from. Inside the chart the attributes now win, with the
   old values as the default for anything that declares none. */
svg:not(#btcchart) text{font:9px var(--mono);fill:var(--mut)}
#btcchart text:not([font-family]){font-family:var(--mono)}
#btcchart text:not([font-size]){font-size:9px}
#btcchart text:not([fill]){fill:var(--mut)}
footer{color:var(--mut);font:11px/1.9 var(--mono);margin:28px 0 0;text-align:center}
#lock,#persona{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;overflow:hidden;
 background:
  radial-gradient(620px 380px at 16% 10%,rgba(244,114,182,.30),transparent 60%),
  radial-gradient(640px 400px at 86% 16%,rgba(76,185,248,.28),transparent 62%),
  radial-gradient(700px 440px at 50% 112%,rgba(54,211,153,.24),transparent 60%),
  radial-gradient(700px 420px at 50% -80px,var(--glow),transparent 70%),var(--bg)}
#lock::before,#lock::after,#persona::before,#persona::after{content:"";position:absolute;border-radius:50%;filter:blur(64px);opacity:.5;pointer-events:none}
#lock::before,#persona::before{width:320px;height:320px;left:-70px;top:-50px;background:radial-gradient(circle,#f472b6,transparent 70%)}
#lock::after,#persona::after{width:340px;height:340px;right:-80px;bottom:-70px;background:radial-gradient(circle,#4cb9f8,transparent 70%)}
@media(prefers-reduced-motion:no-preference){
 #lock::before,#persona::before{animation:kkfloat1 15s ease-in-out infinite}
 #lock::after,#persona::after{animation:kkfloat2 18s ease-in-out infinite}
 @keyframes kkfloat1{50%{transform:translate(46px,34px) scale(1.12)}}
 @keyframes kkfloat2{50%{transform:translate(-44px,-30px) scale(1.1)}}}
#lock .box,#persona .box{width:100%;max-width:430px;max-height:calc(100vh - 40px);overflow-y:auto;overflow-x:hidden;position:relative;z-index:1;
 background:linear-gradient(180deg,rgba(25,38,69,.74),rgba(17,25,44,.78));
 border:1px solid var(--line);border-radius:24px;padding:28px 24px 24px;
 box-shadow:0 28px 64px rgba(3,8,22,.55),inset 0 1px 0 rgba(255,255,255,.06);
 -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.kk-hero{text-align:center}
.kk-badge{display:inline-grid;place-items:center;width:66px;height:66px;border-radius:20px;
 font:900 23px var(--mono);letter-spacing:.04em;color:#0a0f1f;
 background:linear-gradient(135deg,#f472b6,#4cb9f8 50%,#36d399);
 box-shadow:0 12px 32px rgba(76,185,248,.45)}
@media(prefers-reduced-motion:no-preference){.kk-badge{animation:kkpulse 3.4s ease-in-out infinite}
 @keyframes kkpulse{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-4px,0)}}}
.kk-title{font:900 34px/1.18 var(--sans);margin:5px 0 7px;letter-spacing:-.01em;padding-bottom:3px;
 background:linear-gradient(100deg,#f9a8d4,#7dd3fc 46%,#86efac);
 -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.kk-tag{font:700 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.kk-welcome{font:14.5px/1.6 var(--sans);color:var(--ink);text-align:center;margin:18px 6px 2px}
.kk-field{display:flex;gap:8px;margin-top:18px}
.kk-pk{width:100%;margin-top:10px;background:linear-gradient(135deg,#f472b6,#a855f7)!important;box-shadow:0 6px 16px rgba(168,85,247,.32)!important}
.kk-alt{text-align:center;font:13px var(--sans);color:var(--mut);margin-top:16px}
.kk-link{background:none;border:0;color:var(--sky);font:700 13px var(--sans);cursor:pointer;padding:2px 4px;text-decoration:underline;text-underline-offset:3px}
.kk-link:hover{color:var(--grass)}
.kk-pfp{position:relative;display:inline-block;width:86px;height:86px;border-radius:50%;padding:3px;
 background:linear-gradient(135deg,#f472b6,#ec4899 45%,#a855f7);
 box-shadow:0 12px 34px rgba(244,114,182,.5),inset 0 0 0 1px rgba(255,255,255,.08);will-change:transform;backface-visibility:hidden}
.kk-pfp img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;background:#1a1030}
.kk-online{position:absolute;right:4px;bottom:4px;width:18px;height:18px;border-radius:50%;
 background:#22c55e;border:3px solid #131c30;box-shadow:0 0 10px #22c55e}
@media(prefers-reduced-motion:no-preference){
 .kk-pfp{animation:kkpulse 3.4s ease-in-out infinite}
 .kk-online{animation:kkblink 2.2s ease-in-out infinite}
 @keyframes kkblink{50%{opacity:.4}}}
.kk-legal{font:700 9.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mut);margin-top:8px}
.kk-sep{color:var(--line);margin:0 7px}
.kk-help{margin-top:14px;border:1px solid var(--line);border-radius:16px;padding:14px;text-align:left;
 background:linear-gradient(180deg,rgba(20,30,54,.72),rgba(15,22,40,.72))}
.kk-help-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.kk-help-av{position:relative;display:inline-block;width:42px;height:42px;border-radius:50%;padding:2px;flex:0 0 auto;
 background:linear-gradient(135deg,#f472b6,#4cb9f8)}
.kk-help-av img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.kk-help-av .kk-online{width:12px;height:12px;right:0;bottom:0;border-width:2px}
.kk-help-name{font:800 14px var(--sans)}
.kk-help-sub{font:700 9px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--grass)}
.kk-help-feed{display:flex;flex-direction:column;gap:7px;max-height:240px;overflow-y:auto;margin-bottom:9px}
.kk-hmsg{max-width:90%;padding:9px 11px;border-radius:12px;font:13px/1.5 var(--sans);white-space:pre-wrap;overflow-wrap:anywhere}
.kk-hmsg.bot{align-self:flex-start;background:var(--panel2);border:1px solid var(--line);color:var(--ink)}
.kk-hmsg.me{align-self:flex-end;background:linear-gradient(135deg,#f472b6,#a855f7);color:#fff;font-weight:600}
.kk-help-quick{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:9px}
.kk-chip{font:600 11.5px var(--sans);padding:6px 10px;border-radius:999px;cursor:pointer;
 border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--sky)}
.kk-chip:hover{border-color:var(--sky);color:var(--ink)}
.kk-help-input{display:flex;gap:8px}
.kk-help-input input{flex:1;min-width:0}
.kk-online.off{background:#fb7185;box-shadow:0 0 10px #fb7185}
.kk-online.wait{background:#f6b94b;box-shadow:0 0 10px #f6b94b}
.kk-pfp.noimg{display:inline-grid;place-items:center}
.kk-pfp.noimg::before{content:"KK";font:900 26px var(--mono);color:#0a0f1f}
.kk-help-av.noimg{display:grid;place-items:center}
.kk-help-av.noimg::before{content:"K";font:900 18px var(--mono);color:#0a0f1f}
/* personalization screen */
.ps-lbl{display:block;font:700 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mut);margin:16px 2px 7px}
.ps-opt{color:var(--line);text-transform:none;letter-spacing:0;font-weight:600}
#persona input:not([type=checkbox]):not([type=file]):not([type=color]){width:100%}
#psav:not([src]),#pspfp:not([src]){opacity:0}
/* Identity fieldset — shared by the first-run wizard and Profile → Settings. The avatar sits
   BESIDE the name rather than stacked above it, which is what made the old wizard so tall. */
.ps-idrow{display:flex;align-items:center;gap:12px;margin:4px 0 0}
.ps-idrow .ps-name{flex:1;min-width:0}
.ps-pfpbtns{display:flex;gap:8px;flex-wrap:wrap;margin:9px 0 2px}
.ps-saverow{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-top:15px;padding-top:13px;border-top:1px solid var(--line)}
.ps-aside{margin-top:11px;text-align:center;color:var(--mut);font:600 10px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.ps-age{display:flex;gap:10px}
.ps-age-btn{flex:1;min-height:48px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--mut);font:800 15px var(--mono);cursor:pointer}
.ps-age-btn.on{border:1px solid transparent;color:#06101f;background:linear-gradient(135deg,#f472b6,#4cb9f8) border-box}   /* full edge-to-edge fill, no glow halo (matches the console button) */
.ps-note{font:12.5px/1.6 var(--sans);color:var(--mut);margin-top:12px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(76,185,248,.06)}
.ps-note b{color:var(--ink)}
/* best odds across books (21+) */
.books{margin-top:11px;border-top:1px dashed var(--line);padding-top:10px}
.books .lbl{display:block;margin-bottom:7px}
.book{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:5px 0;font:12px var(--mono)}
.book .bn{color:var(--ink)}
.book .bn .bk-default{color:var(--mut);font-size:10px}
.book .bo{color:var(--mut);font-weight:700;white-space:nowrap}
.book.best .bn,.book.best .bo{color:var(--grass)}
.bk-badge{font:800 8px var(--mono);letter-spacing:.08em;color:#06101f;background:var(--grass);border-radius:6px;padding:2px 6px;margin-left:6px;vertical-align:middle}
.bk-rec{font:12.5px/1.55 var(--sans);color:var(--ink);margin-top:9px}
.bk-rec b{color:var(--grass)}
.bk-rec .bk-default{color:var(--mut)}
/* player histories */
.hist{border:1px solid var(--line);border-radius:10px;padding:9px 11px;margin-bottom:8px;background:rgba(255,255,255,.02)}
.hist summary{cursor:pointer;font:600 13px var(--sans);list-style:none;display:flex;align-items:center;gap:8px}
.hist summary::-webkit-details-marker{display:none}
.hist summary::before{content:"▸";color:var(--acc);font-size:11px}
.hist[open] summary::before{content:"▾"}
.hist summary .lbl{font-weight:600}
.htab{width:100%;border-collapse:collapse;font:11px var(--mono);margin-top:9px}
.htab th,.htab td{padding:5px 6px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.htab th{color:var(--mut);font-size:9px;letter-spacing:.06em;text-transform:uppercase}
.htab td.hseason,.htab th:first-child{text-align:left;color:var(--ink)}
.htab tr:last-child td{border-bottom:0}
/* scalping (volatile / live) */
.scalp-pill{display:inline-block;font:800 9px var(--mono);letter-spacing:.08em;color:#1a0e02;background:linear-gradient(135deg,#f6b94b,#fb7185);border-radius:6px;padding:3px 7px;vertical-align:middle}
.scalp{border:1px solid color-mix(in srgb,var(--gold) 35%,var(--line));border-radius:10px;padding:8px 11px;margin-top:11px;background:rgba(246,185,75,.06)}
.scalp summary{cursor:pointer;font:800 10.5px var(--mono);letter-spacing:.08em;color:var(--gold);text-transform:uppercase;list-style:none}
.scalp summary::-webkit-details-marker{display:none}
.scalp summary::before{content:"▸";margin-right:7px}
.scalp[open] summary::before{content:"▾"}
.scalp .step{display:flex;justify-content:space-between;gap:10px;font:11.5px var(--mono);padding:5px 0;border-bottom:1px solid var(--line)}
.scalp .step:last-child{border-bottom:0}
.scalp .step .sx{color:var(--ink)}
.scalp .step .sg{color:var(--grass);font-weight:700;white-space:nowrap}
.scalp .flip{color:var(--gold);font-weight:700}
.scalp .snote{display:block;font:11.5px/1.55 var(--sans);color:var(--mut);margin-top:8px}
.scalp .snote b{color:var(--grass)}
/* auto-trader */
.atrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.atbtn{font:700 11px var(--mono);letter-spacing:.05em;padding:9px 13px;min-height:38px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--mut);cursor:pointer}
.atbtn.sm{min-height:32px;padding:6px 10px;font-size:10.5px}
.atbtn.big{flex:1;min-width:160px}
.atbtn.on{border-color:transparent;color:#06101f;background:var(--acc);box-shadow:0 4px 14px color-mix(in srgb,var(--acc) 40%,transparent)}
.atbtn[disabled]{opacity:.5;cursor:default}
.atseg{display:inline-flex;gap:6px;flex-wrap:wrap}
/* collapsible auto-trade config groups — keep the panel calm; expand only what you're tuning */
.atpanel{border:1px solid var(--line);border-radius:12px;margin-top:9px;background:var(--panel2);overflow:hidden}
.atpanel.open{border-color:color-mix(in srgb,var(--acc) 42%,var(--line))}
.atpanel-hd{display:flex;align-items:center;gap:10px;width:100%;padding:11px 13px;background:none;border:none;cursor:pointer;text-align:left;color:var(--ink);font:inherit;min-height:46px}
.atpanel-hd:hover{background:color-mix(in srgb,var(--acc) 7%,transparent)}
.atpanel-ic{font-size:15px;flex:0 0 auto;line-height:1}
.atpanel-t{font:800 12px var(--sans);letter-spacing:.02em;flex:0 0 auto}
.atpanel-sum{flex:1 1 auto;min-width:0;color:var(--mut);font:600 10px var(--mono);letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}
.atpanel.open .atpanel-sum{opacity:0}
.atpanel-chev{flex:0 0 auto;color:var(--mut);font-size:11px;transition:transform .15s ease}
.atpanel-bd{padding:2px 13px 13px;border-top:1px dashed var(--line)}
/* community chat: hover toolbar (reply/edit/delete, 1.2s reveal) + reply quote */
.cm-row{position:relative}
.cm-tools{position:absolute;top:-11px;right:8px;display:flex;gap:1px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:2px;opacity:0;pointer-events:none;transition:opacity .12s;z-index:5;box-shadow:0 4px 12px rgba(0,0,0,.45)}
.cm-row:hover .cm-tools{opacity:1;pointer-events:auto;transition-delay:1.2s}
.cm-tools button{background:none;border:none;color:var(--mut);font-size:12px;line-height:1;cursor:pointer;padding:4px 6px;border-radius:5px}
.cm-tools button:hover{background:color-mix(in srgb,var(--acc) 20%,transparent);color:var(--ink)}
.cm-quote{border-left:3px solid color-mix(in srgb,var(--acc) 60%,var(--line));padding:1px 8px;margin-bottom:5px;font-size:11px;line-height:1.35;color:var(--mut);opacity:.92;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.cm-quote b{color:var(--ink);font-weight:700}
/* ── Owner panel — cohesive premium glow-up (CSS only; keeps every existing card + render) ── */
#ownerpanels .eyebrow{font:800 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin:18px 2px 9px;display:flex;align-items:center;gap:9px}
#ownerpanels .eyebrow::before{content:"";width:4px;height:15px;border-radius:3px;background:linear-gradient(180deg,#f472b6,#a855f7);flex:0 0 auto}
#ownerpanels>.card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,color-mix(in srgb,var(--acc) 5%,var(--panel)),var(--panel));box-shadow:0 7px 20px rgba(0,0,0,.24)}
#ownerpanels>.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#f472b6,#4cb9f8);opacity:.6}
#ownerstatus{background:linear-gradient(135deg,color-mix(in srgb,#a855f7 18%,var(--panel)),color-mix(in srgb,#4cb9f8 11%,var(--panel)))!important;border-color:color-mix(in srgb,var(--acc) 38%,var(--line))!important}
#ownerstatus::before{opacity:0!important}
#ownersios{background:linear-gradient(180deg,color-mix(in srgb,#a855f7 7%,var(--panel)),var(--panel))}
.coinrow{display:flex;flex-wrap:wrap;gap:10px;margin:2px 0 4px}
.coinrow>.coinchip{flex:1 1 calc(25% - 10px);min-width:0}   /* desktop: 4 on top row, the remaining 3 grow to fill the bottom row — both rows full-width so % change never clips */
@media (max-width:640px){.coinrow>.coinchip{flex:1 1 calc(50% - 8px)}}   /* mobile: 2-up */
.coinchip{text-align:left;border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:12px 13px;cursor:pointer;display:flex;flex-direction:column;gap:9px;transition:border-color .15s,transform .15s,box-shadow .15s}
.coinchip:hover{border-color:var(--acc);transform:translateY(-1px)}
.coinchip.on{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 12%,var(--panel));box-shadow:0 6px 18px color-mix(in srgb,var(--acc) 20%,transparent)}
.coinchip .cc-top{display:flex;align-items:center;gap:9px}
.coinchip .cc-av{width:30px;height:30px;border-radius:50%;background:transparent;color:var(--acc);display:flex;align-items:center;justify-content:center;font:600 14px var(--sans);flex:0 0 auto}
.coinchip .cc-id{display:flex;flex-direction:column;line-height:1.12;min-width:0}
.coinchip .cc-id b{font:600 13px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.coinchip .cc-tk{font:600 10px var(--mono);color:var(--mut);letter-spacing:.06em}
.coinchip .cc-pill{margin-left:auto;font:700 10px var(--mono);padding:3px 8px;border-radius:999px;white-space:nowrap}
.coinchip .cc-pill.up{background:color-mix(in srgb,var(--grass) 16%,transparent);color:var(--grass)}
.coinchip .cc-pill.dn{background:color-mix(in srgb,var(--clay) 16%,transparent);color:var(--clay)}
.coinchip .cc-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.coinchip .cc-p{font:600 18px var(--sans);color:var(--ink)}
.coinchip .cc-chg{font:600 12px var(--mono)}
.coinchip .cc-edge{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;font:600 11px var(--mono);color:var(--mut)}   /* model-vs-market read (coin-card B) — wraps so the pill never clips */
.coinchip .cc-edge b{color:var(--ink);font-weight:700}
.coinchip .cc-eb{margin-left:auto;font:700 9px var(--mono);padding:2px 6px;border:1px solid;border-radius:999px;white-space:nowrap;flex:0 0 auto}
.coinchip .cc-h{display:flex;justify-content:space-between;align-items:center;font:700 11px var(--mono);color:var(--ink)}
.coinchip svg{display:block;width:100%;height:28px}
.coinchip .coin-logo{width:26px;height:26px}
.coin-logo{display:inline-block;vertical-align:middle;flex:0 0 auto;filter:drop-shadow(0 2px 4px rgba(0,0,0,.22))}
#btceyebrow{display:flex;align-items:center;gap:6px}
.sportwrap{display:flex;flex-wrap:wrap;gap:8px}
.sportchip{position:relative;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--panel);color:var(--mut);border-radius:10px;padding:8px 12px;min-height:38px;font:700 11px var(--mono);letter-spacing:.04em;cursor:pointer}
.sportchip.on{border-color:transparent;color:#06101f;background:var(--acc);box-shadow:0 4px 14px color-mix(in srgb,var(--acc) 36%,transparent)}
.livedot{display:inline-flex;align-items:center;gap:4px;font:700 9px var(--mono);color:#fb7185;letter-spacing:.08em}
.livedot::before{content:"";width:7px;height:7px;border-radius:50%;background:#fb7185;box-shadow:0 0 0 0 rgba(251,113,133,.7);animation:livep 1.6s infinite}
.sportchip.on .livedot{color:#7a1020}.sportchip.on .livedot::before{background:#7a1020;box-shadow:none;animation:none}
/* condensed multi-section auto-trade picker (sports / crypto / pop / weather) with per-section gradients */
.subpick{display:flex;flex-direction:column;gap:8px}
.subgrp{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;padding:7px 9px;border-radius:12px;background:color-mix(in srgb,var(--panel) 70%,transparent);border:1px solid var(--line)}
.subgrp-h{flex:0 0 78px;display:flex;flex-direction:column;gap:1px;padding-top:3px;font:700 9px var(--mono);letter-spacing:.06em;color:var(--mut);text-transform:uppercase}
.subgrp-h b{color:var(--ink,#e8edf6);font-size:11px;letter-spacing:.02em}
.subgrp-h .subcount{color:var(--mut);opacity:.85;font-size:9px}
.subgrp-all{align-self:flex-start;margin-top:2px;background:none;border:1px solid var(--line);border-radius:7px;color:var(--acc);font:700 8.5px var(--mono);letter-spacing:.05em;padding:2px 6px;cursor:pointer;text-transform:uppercase}
.subgrp-all:hover{border-color:var(--acc)}
.subchips{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:0}
.subchip{position:relative;display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:5px 11px;min-height:27px;font:700 10px var(--mono);letter-spacing:.02em;cursor:pointer;color:var(--mut);background:linear-gradient(135deg,color-mix(in srgb,var(--panel) 96%,#fff 4%),color-mix(in srgb,var(--panel) 78%,#000 10%));transition:transform .08s ease,box-shadow .14s ease,opacity .1s;opacity:.72}
.subchip:hover{transform:translateY(-1px);opacity:1}
.subchip.on{border-color:transparent;color:#06101f;opacity:1;background:linear-gradient(135deg,var(--c1,var(--acc)),var(--c2,var(--acc)));box-shadow:0 3px 12px color-mix(in srgb,var(--c1,var(--acc)) 42%,transparent)}
.subchip .livedot{font-size:8px}
.subchip.on .livedot{color:#5a0a16}.subchip.on .livedot::before{background:#5a0a16;box-shadow:none;animation:none}
@media(max-width:520px){.subgrp-h{flex-basis:100%}}
/* live sports tracker */
.lvrow{display:flex;align-items:center;gap:10px;padding:7px 2px;border-bottom:1px solid var(--line);font:600 12px var(--sans)}
.lvrow:last-child{border-bottom:none}
.lvst{flex:0 0 56px;font:800 9px var(--mono);letter-spacing:.06em;color:var(--mut)}
.lvst.on{color:#fb7185}.lvst.on::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#fb7185;margin-right:5px;box-shadow:0 0 0 0 rgba(251,113,133,.7);animation:livep 1.6s infinite;vertical-align:middle}
.lvst.fin{color:var(--mut)}
.lvtm{flex:1;min-width:0;color:var(--ink,#e8edf6)}.lvtm b{color:#fff;font-weight:800}
.lvcl{flex:0 0 auto;font:700 10px var(--mono);color:var(--gold);letter-spacing:.03em}
.lvwp{flex:0 0 auto;font:800 10px var(--mono);color:#06101f;background:linear-gradient(135deg,#36d399,#059669);border-radius:999px;padding:3px 9px;letter-spacing:.02em}
.livebadge{display:inline-flex;align-items:center;gap:4px;font:800 9.5px var(--mono);letter-spacing:.02em;color:#fff;background:linear-gradient(135deg,#fb7185,#be123c);border-radius:999px;padding:3px 9px;box-shadow:0 2px 8px rgba(251,113,133,.35)}
.liveinplay{margin:8px 0 2px;font:700 12px var(--sans);color:#fb7185;background:color-mix(in srgb,#fb7185 12%,transparent);border:1px solid color-mix(in srgb,#fb7185 30%,transparent);border-radius:10px;padding:7px 11px}
.liveinplay b{color:#fff;font-size:14px}.liveinplay .lbl{color:var(--mut);font-weight:600}
@keyframes livep{0%{box-shadow:0 0 0 0 rgba(251,113,133,.6)}70%{box-shadow:0 0 0 6px rgba(251,113,133,0)}100%{box-shadow:0 0 0 0 rgba(251,113,133,0)}}
.atlog{margin-top:10px;border-top:1px dashed var(--line);padding-top:8px;display:flex;flex-direction:column;gap:4px;max-height:210px;overflow-y:auto}
.atline{font:10.5px var(--mono);display:flex;gap:8px;align-items:baseline}
.ats{flex:0 0 auto;font-weight:800;font-size:8.5px;letter-spacing:.05em;padding:2px 6px;border-radius:5px;background:rgba(255,255,255,.06);color:var(--mut);min-width:62px;text-align:center}
.ats-filled,.ats-taken{background:rgba(54,211,153,.16);color:var(--grass)}
.ats-unfilled,.ats-cancel,.ats-halt,.ats-engine{background:rgba(251,113,133,.16);color:var(--clay)}
.ats-reprice,.ats-partial,.ats-resting{background:rgba(246,185,75,.15);color:var(--gold)}
.ats-scalp,.ats-hold{background:rgba(76,185,248,.16);color:var(--sky)}
.att{flex:0 0 auto;color:var(--ink)}
.atn{color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.atv{flex:0 0 auto;font:800 8px var(--mono);letter-spacing:.04em;color:var(--mut);background:rgba(255,255,255,.07);border-radius:4px;padding:2px 4px}
/* ── Auto-trade Logs table — When · Market(symbol+tf+venue) · Side · Entry→Exit · Stake · P&L ── */
/* Taken | Market | Side | Entry→Exit | P&L. Stake left the table for the decision receipt (it is
   qty x entry, derivable and rarely scanned) so the MARKET column could grow enough to hold the
   venue's actual question text — the politics/culture book's titles are long and were the whole
   point of F2. */
.lghead,.lgrow{display:grid;grid-template-columns:64px minmax(190px,2fr) 56px minmax(120px,1fr) minmax(96px,.8fr);gap:12px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line)}
.lghead{font:800 8.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--mut)}
.lgrow{font:12px var(--mono)}
.lgmsg{display:flex;gap:8px;align-items:baseline;padding:7px 4px;border-bottom:1px solid var(--line);font:10.5px var(--mono)}
.lg-note{color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.lg-dup{flex:0 0 auto;font:800 8.5px var(--mono);letter-spacing:.03em;color:var(--gold);background:rgba(246,185,75,.16);border-radius:4px;padding:1px 5px;font-variant-numeric:tabular-nums}
/* ALERT rows: [asset logo] [horizon] [▲ conf]. Direction is carried by the arrow SHAPE as well as
   colour, so it still reads with red-green colour blindness or on a mono display. */
.lgalert{align-items:center}
.lg-amark{flex:0 0 auto;display:inline-flex;align-items:center;line-height:1}
.lg-amark svg,.lg-amark .coin-logo{display:block}
.lg-amark img{width:18px;height:18px;object-fit:contain;border-radius:4px;display:block}
.lg-amark .pbcode{font:800 8px var(--mono);letter-spacing:.03em;color:var(--mut);background:rgba(255,255,255,.07);border-radius:4px;padding:2px 4px}
.lg-dir{flex:0 0 auto;display:inline-flex;align-items:center;gap:3px;border-radius:5px;padding:2px 6px;font:800 11px var(--mono);font-variant-numeric:tabular-nums}
.lg-dir.up{background:color-mix(in srgb,var(--grass) 15%,transparent);color:var(--grass)}
.lg-dir.down{background:color-mix(in srgb,var(--clay) 15%,transparent);color:var(--clay)}
.lg-when{color:var(--mut);font-size:10px}
.lg-what{display:flex;flex-direction:column;gap:2px;min-width:0}
.lg-whatline{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}
.lg-glyph{font-size:14px;font-weight:800;color:var(--ink);line-height:1}
/* F2: the market's own words. nowrap+ellipsis rather than wrapping — a two-line title on every row
   halves how many trades fit a phone screen, and the full text is in the row's title attribute and
   the decision receipt. min-width:0 is load-bearing: without it the flex item refuses to shrink
   below its content width and the P&L column gets pushed off a 390px screen. */
.lg-title{font:600 12.5px var(--sans);color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lg-tf{font:800 8.5px var(--mono);color:var(--sky);background:rgba(76,185,248,.14);border-radius:4px;padding:1px 5px}
.lg-sub{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.lg-venue{font:800 8px var(--mono);letter-spacing:.03em;border-radius:4px;padding:1px 5px}
.lg-venue.kalshi{background:rgba(76,185,248,.13);color:var(--sky)}
.lg-venue.poly{background:rgba(167,139,250,.18);color:#b794f6}
.lg-side{font-weight:800;text-align:center}
.lg-yes,.lg-up{color:var(--grass)} .lg-no{color:var(--clay)} .lg-down{color:var(--sky)}
.lg-px{font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lg-exit{color:var(--mut)}
.lg-stake{font-variant-numeric:tabular-nums;color:var(--ink);text-align:right}
.lg-pnl{font-weight:800;font-variant-numeric:tabular-nums;text-align:right}
.lg-pnl.pos{color:var(--grass)} .lg-pnl.neg{color:var(--clay)} .lg-mut{color:var(--mut);font-weight:600}
.lg-open{font:800 7.5px var(--mono);letter-spacing:.06em;color:var(--gold);background:rgba(246,185,75,.16);border-radius:4px;padding:1px 5px}
.lg-chip{font:800 8px var(--mono);letter-spacing:.03em;border-radius:4px;padding:1px 6px;display:inline-flex;align-items:center;gap:3px}
.lg-chip.stop{background:rgba(251,113,133,.16);color:var(--clay)}
.lg-chip.profit{background:rgba(54,211,153,.16);color:var(--grass)}
.lg-chip.scalp{background:rgba(76,185,248,.16);color:var(--sky)}
@media (max-width:560px){
  /* padding was left at the desktop 10px, so on a phone each row burned ~20px of pure gutter and
     a screenful showed only a handful of trades. 5px keeps the 44px tap target via min-height. */
  .lghead,.lgrow{grid-template-columns:44px minmax(96px,1.6fr) 34px 62px 66px;gap:6px;font-size:10px;padding:5px 3px}
  .lgmsg{padding:4px 3px;gap:6px}                        /* noise rows (REAL-ERR/ALERT) shrink hardest */
  .lg-when{font-size:9px}
  .lg-glyph{font-size:13px}
}
/* venues & API keys */
.vk{border:1px solid var(--line);border-radius:10px;padding:10px 11px;margin-top:9px;background:rgba(255,255,255,.02)}
.vk-h{font:800 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin-bottom:8px;display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.vk-in{width:100%;margin-bottom:7px}
.vk-in:last-child{margin-bottom:0}
.vk-st{font:700 9px var(--mono);letter-spacing:.04em;color:var(--mut)}
/* Venue identity: marks sit on one neutral contained plate and never replace text. */
.venue-intro{line-height:1.55}
.vkwidgets{display:grid;grid-template-columns:repeat(auto-fill,168px);gap:14px;margin:12px 0 4px}
.vkwidget{--vkc:#334155;--vkc2:#172033;--vkt:#fff;--vkpill:rgba(0,0,0,.30);position:relative;width:168px;height:168px;min-width:0;border:1px solid color-mix(in srgb,var(--vkt) 22%,transparent);border-radius:20px;padding:17px 14px 13px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;overflow:hidden;isolation:isolate;color:var(--vkt);background:linear-gradient(145deg,var(--vkc) 0%,color-mix(in srgb,var(--vkc) 70%,var(--vkc2)) 54%,var(--vkc2) 100%);box-shadow:0 9px 25px color-mix(in srgb,var(--vkc2) 43%,transparent),inset 0 1px 0 color-mix(in srgb,var(--vkt) 22%,transparent);text-align:center;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}
.vkwidget::before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(circle at 18% 4%,color-mix(in srgb,var(--vkt) 25%,transparent),transparent 42%),linear-gradient(115deg,transparent 52%,color-mix(in srgb,var(--vkt) 8%,transparent));opacity:.82}
button.vkwidget{cursor:pointer;font:inherit}
button.vkwidget:hover{transform:translateY(-3px);filter:saturate(1.06);box-shadow:0 14px 34px color-mix(in srgb,var(--vkc2) 58%,transparent),inset 0 1px 0 color-mix(in srgb,var(--vkt) 28%,transparent)}
button.vkwidget:active{transform:translateY(0)}
button.vkwidget:focus-visible,.vkwidget .vkw-rm:focus-visible{outline:3px solid #fff;outline-offset:3px}
.vkwidget.on{outline:3px solid color-mix(in srgb,#fff 88%,var(--vkc));outline-offset:-7px}
.vkwidget.vkw-set::after{content:"✓";position:absolute;top:10px;right:11px;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(0,0,0,.34);font:900 13px var(--sans);box-shadow:0 2px 8px rgba(0,0,0,.22)}
.vkwidget .vkw-rm{position:absolute;z-index:2;top:4px;right:4px;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--vkt);display:grid;place-items:center;cursor:pointer;opacity:.8}
.vkwidget .vkw-rm:hover{background:rgba(0,0,0,.28);color:#fff;opacity:1}
.vkwidget .vkw-name{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.vkwidget .vkw-st{max-width:140px;min-height:26px;padding:5px 9px;border-radius:999px;display:-webkit-box;align-items:center;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--vkt)!important;background:var(--vkpill);font:800 8px/1.35 var(--mono);letter-spacing:.025em;text-wrap:balance;text-shadow:0 1px 4px rgba(0,0,0,.22)}
.venue-logo-box{width:128px;height:72px;border:0;border-radius:0;background:transparent;display:flex;align-items:center;justify-content:center;padding:0;overflow:visible;flex:0 0 auto;color:inherit;font:800 15px var(--sans)}
.venue-logo-img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;background:transparent;filter:drop-shadow(0 3px 6px rgba(0,0,0,.18))}
.venue-logo-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.venue-logo-fallback[hidden]{display:none!important}
.vkwidget[data-vkw="kalshi"]{--vkc:#00DD94;--vkc2:#21C891;--vkt:#071A16;--vkpill:rgba(7,26,22,.16)}
.vkwidget[data-vkw="kalshi"] .venue-logo-img{filter:brightness(0) saturate(100%) drop-shadow(0 3px 6px rgba(0,0,0,.12))}
.vkwidget[data-vkw="polymarket_us"],.vkwidget[data-venue-card="polymarket"]{--vkc:#2E5CFF;--vkc2:#1738C7;--vkt:#fff;--vkpill:rgba(0,0,0,.24)}
.vkwidget[data-venue-card="fanduel"]{--vkc:#F7FBFF;--vkc2:#AAD7FF;--vkt:#071D49;--vkpill:rgba(7,29,73,.13)}
.vkwidget[data-venue-card="draftkings"]{--vkc:#07843D;--vkc2:#004B28;--vkt:#fff;--vkpill:rgba(0,0,0,.28)}
.vkwidget[data-venue-card="betmgm"]{--vkc:#242424;--vkc2:#6D5828;--vkt:#fff;--vkpill:rgba(0,0,0,.34)}
.vkwidget[data-venue-card="caesars-sportsbook"]{--vkc:#FFFDF7;--vkc2:#D5BB82;--vkt:#173C35;--vkpill:rgba(23,60,53,.13)}
.vkwidget[data-venue-card="caesars-sportsbook"] .venue-logo-img,.vkwidget[data-venue-card="thescore-bet"] .venue-logo-img{mix-blend-mode:multiply;filter:none}
.vkwidget[data-venue-card="fanatics-sportsbook"]{--vkc:#F8FBFF;--vkc2:#D8E7FA;--vkt:#071D49;--vkpill:rgba(7,29,73,.13)}
.vkwidget[data-venue-card="betrivers"]{--vkc:#184B73;--vkc2:#082D50;--vkt:#fff;--vkpill:rgba(0,0,0,.28)}
.vkwidget[data-venue-card="bet365"]{--vkc:#027B5B;--vkc2:#005440;--vkt:#fff;--vkpill:rgba(0,0,0,.28)}
.vkwidget[data-venue-card="thescore-bet"]{--vkc:#FFF;--vkc2:#FFE072;--vkt:#17191F;--vkpill:rgba(23,25,31,.13)}
.vkwidget[data-venue-card="espn-bet-legacy"]{--vkc:#16224C;--vkc2:#0D565A;--vkt:#fff;--vkpill:rgba(0,0,0,.28)}
.vkwidget[data-venue-card="pointsbet-legacy"]{--vkc:#FFF7F8;--vkc2:#F6BBC4;--vkt:#42121A;--vkpill:rgba(66,18,26,.13)}
.vkwidget[data-venue-card="prizepicks"]{--vkc:#8000FF;--vkc2:#3B0080;--vkt:#fff;--vkpill:rgba(0,0,0,.3)}
.vkwidget[data-venue-card="prizepicks"] .venue-logo-img{filter:brightness(0) invert(1) drop-shadow(0 2px 6px rgba(0,0,0,.30))}
.vkwidget[data-venue-card="underdog-fantasy"]{--vkc:#171717;--vkc2:#725900;--vkt:#fff;--vkpill:rgba(0,0,0,.32)}
.vkwidget[data-venue-card="underdog-fantasy"] .venue-logo-box{width:86px;height:86px}
.vkwidget[data-venue-card="sleeper"]{--vkc:#17132D;--vkc2:#4338CA;--vkt:#fff;--vkpill:rgba(0,0,0,.30)}
.vkwidget[data-venue-card="other"]{--vkc:#475569;--vkc2:#1E293B;--vkt:#fff;--vkpill:rgba(0,0,0,.28)}
@media (max-width:430px){.vkwidgets{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.vkwidget{width:100%;height:auto;min-height:0;aspect-ratio:1/1;padding-inline:10px}.vkwidget .venue-logo-box{width:min(116px,78%);height:64px}.vkwidget[data-venue-card="underdog-fantasy"] .venue-logo-box{width:72px;height:72px}.vkwidget .vkw-st{max-width:100%;padding-inline:7px;font-size:7.5px}}
.vkpanel{border:1px solid var(--line);border-radius:12px;padding:12px;margin:0 0 10px;background:var(--panel2);animation:kkFadeUp .25s ease both}
.vkpanel .vk-in:last-child{margin-bottom:0}
.venue-picker{position:relative;display:inline-block;margin:2px 0 12px;min-width:min(100%,340px)}
.venue-combo{width:100%;min-height:44px;display:flex;align-items:center;justify-content:flex-start;gap:8px;text-align:left}
.venue-list{position:absolute;z-index:80;top:calc(100% + 6px);left:0;width:min(440px,calc(100vw - 40px));max-height:340px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:13px;background:var(--panel);box-shadow:0 18px 45px rgba(0,0,0,.42)}
.venue-option{min-height:54px;padding:7px 9px;border-radius:9px;display:flex;align-items:center;gap:10px;cursor:pointer;color:var(--ink)}
.venue-option:hover,.venue-option.is-active{background:color-mix(in srgb,var(--acc) 13%,transparent);outline:1px solid color-mix(in srgb,var(--acc) 38%,transparent)}
.venue-option.is-added{opacity:.55;cursor:default}
.venue-option .venue-logo-box{width:78px;height:42px;padding:6px;border-radius:8px}
.venue-option-copy{display:flex;flex-direction:column;gap:3px;min-width:0;text-align:left}
.venue-option-copy b{font:700 12px var(--sans)}
.venue-option-copy small{font:600 9px/1.3 var(--mono);color:var(--mut)}
.venue-owner-note,.venue-owner-safety{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel2);color:var(--mut);font:12px/1.5 var(--sans)}
.venue-owner-note{display:flex;align-items:flex-start;gap:9px}
.venue-owner-safety{border-color:color-mix(in srgb,var(--gold) 40%,var(--line));background:color-mix(in srgb,var(--gold) 7%,var(--panel2))}
.venue-owner-safety b{display:flex;align-items:center;gap:7px;color:var(--gold)}
.venue-owner-safety p{margin:7px 0 0}
.venue-destination{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:10px 0;color:var(--mut);font:700 10px var(--mono)}
.venue-destination code{max-width:100%;overflow-wrap:anywhere;color:var(--ink);background:var(--panel2);border:1px solid var(--line);border-radius:7px;padding:5px 7px}
.venue-field{display:block;margin-bottom:8px;color:var(--mut);font:700 10px var(--mono)}
.venue-field>span:first-child{display:block;margin-bottom:5px}
.venue-input-wrap{display:flex;align-items:stretch;position:relative}
.venue-input-wrap .vk-in{margin:0;padding-right:50px}
.venue-reveal{position:absolute;right:0;top:0;width:44px;height:100%;min-height:38px;border:0;border-left:1px solid var(--line);border-radius:0 8px 8px 0;background:transparent;color:var(--mut);display:grid;place-items:center;cursor:pointer}
.venue-reveal:hover{color:var(--ink);background:color-mix(in srgb,var(--acc) 9%,transparent)}
.venue-signer-note{margin:7px 0;color:var(--mut);font:11px/1.5 var(--sans)}
.vkmsg{margin-top:7px;min-height:16px}
@media (max-width:520px){.vkwidgets{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.vkwidget{width:100%;height:auto;min-height:0;aspect-ratio:1/1;padding:10px}.vkwidget .venue-logo-box{width:min(116px,78%);height:64px}.vkwidget[data-venue-card="underdog-fantasy"] .venue-logo-box{width:72px;height:72px}.venue-option .venue-logo-box{width:78px;height:42px}.venue-list{position:fixed;left:14px;right:14px;bottom:74px;top:auto;width:auto;max-height:55vh}}
@keyframes kkJumpFlash{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--acc) 70%,transparent)}100%{box-shadow:0 0 0 14px transparent}}
.kkflash{animation:kkJumpFlash .9s ease-out 1}
/* merged Controls card: dividers + sub-headings for Set up / When it runs */
.ctl-div{border-top:1px solid var(--line);margin:16px 0 12px}
.ctl-sub{font:800 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--acc);margin:0 0 8px}
.hidden{display:none!important}
#lockmsg{font:12px var(--mono);color:var(--clay);min-height:18px;margin-top:10px;text-align:center}

/* Kara console assistant */
.kava{display:inline-flex;padding:2px;border-radius:999px;background:linear-gradient(135deg,#f472b6,#4cb9f8);flex:0 0 auto}
.kava img{width:30px;height:30px;border-radius:999px;display:block;object-fit:cover}
.krow{display:flex;align-items:center;gap:10px}
.kname{font:800 14px var(--sans);letter-spacing:.01em}
.kafeed{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto;margin:12px 0 10px;padding-right:2px}
.kmsg{max-width:88%;padding:9px 11px;border-radius:12px;font:13px/1.5 var(--sans);white-space:pre-wrap;overflow-wrap:anywhere}
.kmsg.bot{align-self:flex-start;background:var(--panel2);border:1px solid var(--line);color:var(--ink)}
.kmsg.me{align-self:flex-end;background:var(--acc);color:#06101f;font-weight:600}
.kmsg-hd{display:flex;align-items:center;justify-content:flex-end;gap:6px;font:600 11px var(--sans);color:#06101f;opacity:.85;margin-bottom:4px}
.kmsg-av{width:20px;height:20px;border-radius:50%;object-fit:cover;display:inline-block;flex:0 0 auto}
.kmsg-av-ph{display:inline-grid;place-items:center;background:#06101f;color:var(--acc);font:700 10px var(--mono)}
.ktyping{align-self:flex-start;color:var(--mut);font:12px var(--mono);padding:2px}
.kainput{display:flex;align-items:flex-end;gap:8px}
.kainput textarea{flex:1;min-width:0;min-height:46px;max-height:140px;resize:vertical;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--ink);font:13px/1.45 var(--sans)}
.kk-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Kara Phase 4: a real conversation workspace, not an in-flow widget. */
.kara-backdrop{display:none;position:fixed;inset:0;z-index:99970;background:rgba(2,6,18,.68);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
#karacard.kara-workspace{display:none;position:fixed;z-index:99971;top:12px;right:12px;bottom:12px;width:min(470px,calc(100vw - 24px));margin:0!important;padding:14px;overflow:hidden;flex-direction:column;min-height:0;border-color:color-mix(in srgb,var(--acc) 42%,var(--line));box-shadow:0 22px 70px rgba(0,0,0,.62);transform:translateX(18px);opacity:0;transition:transform var(--dur-base) var(--ease-std),opacity var(--dur-base) ease}
#karacard.kara-workspace.open{display:flex;transform:none;opacity:1}
#karacard>.krow{flex:0 0 auto;flex-wrap:wrap}
#karacard>.krow .ghost{min-height:36px;padding:7px 10px}
.kara-statebar{display:flex;align-items:center;gap:8px;flex:0 0 auto;margin-top:10px;padding:7px 9px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--panel2) 78%,transparent);font:600 10.5px/1.35 var(--sans);color:var(--mut)}
.kara-state{display:inline-flex;align-items:center;min-height:26px;padding:4px 8px;border-radius:999px;border:1px solid var(--line);font:800 9px var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--mut);white-space:nowrap}
.kara-state[data-state="answering"]{color:var(--sky);border-color:var(--sky)}
.kara-state[data-state="awaiting_user"],.kara-state[data-state="needs_clarification"]{color:var(--gold);border-color:var(--gold)}
.kara-state[data-outcome="answered"]{color:var(--grass);border-color:var(--grass)}
.kara-state[data-outcome="abstained"],.kara-state[data-outcome="unavailable"]{color:var(--gold);border-color:var(--gold)}
.kara-state[data-outcome="error"]{color:var(--clay);border-color:var(--clay)}
.kara-depth{display:flex;gap:6px;flex-wrap:wrap;flex:0 0 auto;margin:9px 0 2px}
.kara-depth button{min-height:34px;padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--mut);font:750 10px var(--sans);cursor:pointer}
.kara-depth button[aria-pressed="true"]{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 16%,var(--panel));color:var(--ink)}
#karacard .kafeed{flex:1 1 auto;min-height:130px;max-height:none;margin:10px 0;padding:2px 4px 8px 0;overscroll-behavior:contain}
#karacard .kmsg{max-width:92%}
.kmsg-outcome{display:inline-flex;margin-bottom:6px;padding:2px 7px;border:1px solid var(--line);border-radius:999px;color:var(--mut);font:800 8.5px var(--mono);letter-spacing:.04em;text-transform:uppercase}
.kmsg-suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding-top:7px;border-top:1px solid var(--line)}
.kmsg-suggestions button{min-height:34px;padding:6px 9px;border:1px solid var(--gold);border-radius:9px;background:transparent;color:var(--ink);font:700 10.5px var(--sans);cursor:pointer}
.kmsg-share{display:flex;align-items:center;gap:7px;margin-top:8px;padding-top:7px;border-top:1px solid var(--line)}
.kmsg-share button{min-height:34px;padding:6px 9px;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--mut);font:700 10.5px var(--sans);cursor:pointer}
.kmsg-share button:hover,.kmsg-share button:focus-visible{border-color:var(--gold);color:var(--gold)}
.kmsg-share button:disabled{cursor:default;opacity:.7}
.kara-composer{flex:0 0 auto;padding-top:9px;border-top:1px solid var(--line)}
.kara-composer>label{display:block;margin-bottom:6px;font:800 11px var(--sans);color:var(--ink)}
.kara-composer-help{margin-top:5px;color:var(--mut);font:600 9px var(--sans)}
#karacard .kainput textarea{min-height:64px;max-height:180px}
#karacard .kainput .cta{min-height:46px}
.kara-evidence{position:absolute;z-index:4;inset:68px 12px 12px;overflow:auto;padding:14px;border:1px solid color-mix(in srgb,var(--gold) 50%,var(--line));border-radius:14px;background:var(--panel);box-shadow:0 16px 45px rgba(0,0,0,.62)}
.kara-evidence[hidden]{display:none}
.kara-evidence-head{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:-14px;margin:-14px -14px 12px;padding:13px 14px 10px;background:var(--panel);border-bottom:1px solid var(--line)}
.kara-evidence-head h2{margin:0;font:850 16px var(--sans);color:var(--ink)}
.kara-evidence-head button,.kara-evidence>a{min-height:38px;padding:7px 11px;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--ink);font:750 10.5px var(--sans);cursor:pointer}
.kara-evidence-warning:empty{display:none}
.kara-evidence-warning{margin-bottom:10px;padding:8px 10px;border:1px solid var(--gold);border-radius:9px;background:color-mix(in srgb,var(--gold) 10%,transparent);color:var(--gold);font:700 10.5px/1.45 var(--sans)}
.kara-evidence-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}
.kara-evidence-meta>div{min-width:0;padding:8px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}
.kara-evidence-meta dt{font:800 8.5px var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--mut)}
.kara-evidence-meta dd{margin:4px 0 0;font:600 10.5px/1.4 var(--sans);color:var(--ink);overflow-wrap:anywhere}
.kara-evidence blockquote{margin:12px 0;padding:11px 12px;border-left:3px solid var(--gold);background:var(--panel2);white-space:pre-wrap;overflow-wrap:anywhere;font:500 12.5px/1.55 var(--sans);color:var(--ink)}
.kara-evidence>a{display:inline-flex;align-items:center;text-decoration:none}
.kmsg-evidence{min-height:28px;padding:3px 8px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--mut);font:750 10px var(--sans);cursor:pointer}
.kmsg-evidence:hover,.kmsg-evidence:focus-visible{border-color:var(--gold);color:var(--gold)}

@media(max-width:820px),(max-height:500px) and (max-width:950px){
  body.kara-workspace-open{overflow:hidden}
  body.kara-workspace-open .kara-backdrop{display:block}
  #karacard.kara-workspace{inset:0;width:100vw;height:100dvh;max-height:none;padding:calc(10px + var(--sa-t)) calc(10px + var(--sa-r)) calc(10px + var(--sa-b)) calc(10px + var(--sa-l));border:0;border-radius:0;transform:translateY(24px)}
  #karacard.kara-workspace.open{transform:none}
  #karacard>.krow .ghost,.kara-depth button,.kmsg-suggestions button,.kara-evidence-head button,.kara-evidence>a,.kmsg-evidence,.kmsg-cchip,#karacard .kainput .cta{min-height:44px}
  .kara-depth{flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}
  .kara-depth::-webkit-scrollbar{display:none}
  .kara-depth button{flex:0 0 auto;padding-inline:12px}
  #karacard .kafeed{min-height:80px}
  .kara-evidence{inset:calc(58px + var(--sa-t)) calc(8px + var(--sa-r)) calc(8px + var(--sa-b)) calc(8px + var(--sa-l))}
}
@media(max-width:430px){.kara-evidence-meta{grid-template-columns:1fr}.kmsg{max-width:96%}}
@media(prefers-reduced-motion:reduce){
  #karacard.kara-workspace,.kara-backdrop{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}

/* ════════════ ADAPTIVE PRESENTATION — token families + environment profiles ════════════
   Desktop profile = the bare :root values below (additive; defining tokens changes nothing
   until consumed → desktop is byte-identical). Profiles override ONLY via the data-* attrs
   that kkEnv writes on <html>. The override selectors below (data-mem=low / data-net=slow /
   data-motion=reduce) cannot match a standard well-specced mouse desktop, so desktop renders
   unchanged. device/pointer/orient/standalone attrs are now exposed for future profile work. */
:root{
  /* spacing scale */    --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:40px;
  /* type scale */       --fs-xs:10px;--fs-sm:12px;--fs-md:14px;--fs-lg:17px;--fs-xl:22px;--fs-2xl:28px;
  /* motion */           --ease-std:cubic-bezier(.2,.8,.25,1);--ease-spring:cubic-bezier(.2,1.5,.4,1);--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s;
  /* elevation */        --elev-1:0 1px 2px rgba(0,0,0,.25);--elev-2:0 6px 18px rgba(0,0,0,.35);--elev-3:0 14px 40px rgba(0,0,0,.5);
  /* safe areas */       --sa-t:env(safe-area-inset-top,0px);--sa-r:env(safe-area-inset-right,0px);--sa-b:env(safe-area-inset-bottom,0px);--sa-l:env(safe-area-inset-left,0px);
  /* touch ergonomics */ --hit-min:44px;
}
/* PERFORMANCE profile — low memory / slow network: drop GPU- & bandwidth-expensive effects.
   Only matches genuinely constrained devices; never a desktop or a normal phone. */
html[data-mem="low"] *,html[data-net="slow"] *{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
html[data-mem="low"] *{box-shadow:none!important}
/* REDUCED MOTION — unify the env flag with prefers-reduced-motion (belt + suspenders) */
html[data-motion="reduce"] *{animation-duration:.001s!important;transition-duration:.001s!important;scroll-behavior:auto!important}

/* ════════════ MOBILE CONSOLE POLISH (Polymarket-style) — pass 1 · ≤640 only, desktop untouched ════════════ */
@media(max-width:640px){
  /* a little more global breathing room (was 10px → felt cramped) */
  body{padding-left:13px;padding-right:13px}
  /* scrollable tab strips: snap + room so the active tab reads as a real selection */
  #sports,#tours{scroll-snap-type:x proximity;gap:9px;margin:16px 0 4px;padding:1px 1px 7px}
  #sports .tab,#tours .tab{scroll-snap-align:start;border-radius:13px;padding:11px 17px;font-size:11.5px;min-height:44px;letter-spacing:.08em}
  /* prominent FILLED active state like Polymarket's selected tab */
  #sports .tab.on,#tours .tab.on{background:linear-gradient(135deg,color-mix(in srgb,var(--acc) 28%,var(--panel)),var(--panel));border-color:var(--acc);color:var(--ink);box-shadow:0 4px 16px color-mix(in srgb,var(--acc) 26%,transparent)}
  /* bolder, better-separated section headers (the "Trending"/"Live" feel) */
  .eyebrow{font-size:12px;letter-spacing:.10em;margin:24px 2px 12px}
  /* …but the FIRST eyebrow in a view still starts high — same halving as desktop, 24px → 12px. */
  #sportsview>.eyebrow:first-child,#weatherview>.eyebrow:first-child,#autoview>.eyebrow:first-child,
  #btcview>.eyebrow:first-child,#logsview>.eyebrow:first-child,#guideview>.eyebrow:first-child,
  #parlayview>.eyebrow:first-child,#profileview>.eyebrow:first-child,#ownerview>.eyebrow:first-child,
  #learnview>.eyebrow:first-child{margin-top:12px}
  /* more air between stacked cards (without shrinking inner padding → not more cramped) */
  #sportsview>.card,#btcview>.card,#weatherview>.card{margin-bottom:16px;border-radius:18px}
  /* board stat strip: even, scannable spacing */
  #board.row{gap:18px;row-gap:11px}
}

/* ════════════ MOBILE CONSOLE POLISH — pass 2 · typography → consumer-app feel · ≤640 only, desktop untouched ════════════ */
@media(max-width:640px){
  /* section headers: drop the mono-UPPERCASE "terminal" look → friendly sans, mixed-case (Polymarket/PrizePicks feel) */
  #sportsview .eyebrow,#weatherview .eyebrow,#btcview .eyebrow,#parlayview .eyebrow{font-family:var(--sans);text-transform:none;letter-spacing:.005em;font-weight:800;font-size:14.5px;gap:8px;color:var(--ink)}
  /* tab chips + stats-card labels: sans, softer tracking (less DOS-prompt) */
  #sports .tab,#tours .tab{font-family:var(--sans);letter-spacing:.02em}
  #board .lbl{font-family:var(--sans);letter-spacing:.04em;text-transform:none}
  /* hide the lone "ALL" market filter when it's the only option (orphaned chip looks odd) — :has() degrades gracefully */
  #tours:has(.tab:only-child){display:none}
}

/* ════════════ MOBILE POLISH — pass 3 · kill the mono-UPPERCASE "terminal" labels app-wide on phone · ≤640, desktop untouched ════════════
   The 3 classes below carry ~all remaining mono+UPPERCASE prose (captions, subtitle, settings labels). Switch to
   sans + mixed-case + tighter tracking (de-cramps). NUMBERS/data classes (.big/.v) keep mono — the Polymarket balance. */
@media(max-width:640px){
  .lbl,.setlbl,.bsub{font-family:var(--sans);text-transform:none;letter-spacing:.012em}
  .lbl{font-size:10.5px}
  .bsub{font-size:11px;letter-spacing:.02em}
  #viewsel{font-family:var(--sans);letter-spacing:.02em}
}

/* ════════════ MOBILE CONSOLE — pass 4 · content-first (predictions lead) + tuck top chrome · ≤640, desktop untouched ════════════ */
@media(max-width:640px){
  /* tuck the owner-status line + compact the Ask-Kara bar so real content starts sooner */
  #authchip{font-size:9.5px;opacity:.6;margin:0 0 8px 4px!important}
  #karabar{padding:8px 12px!important;margin-bottom:9px!important}
  /* CONTENT-FIRST reorder of the console — CSS-only, existing ids only. (.hidden uses !important so the
     hide-on-other-tabs behavior still wins; desktop stays block since this is ≤640.) */
  #sportsview{display:flex;flex-direction:column}
  #sportsview>*{order:5}                  /* default → Session settings / Capital / Scalp / Equity / Tour-perf fall below */
  #board{order:1}
  #sports{order:2}#tours{order:2}
  #livehead{order:3}#livecard{order:3}
  #pickshead{order:4}#picks{order:4}      /* predictions lead — right after Live matches */
}

/* ════════════ PARLAY — provenance-first cards; no excitement badge without evidence ════════════ */
.pbc{position:relative;content-visibility:auto;contain-intrinsic-size:0 190px;min-width:0}
.pbc{overflow:hidden}.pbc .lpick,.pbc .lmkt{max-width:100%;overflow-wrap:anywhere;word-break:normal;white-space:normal}.pbc .lpick{font-size:13px;line-height:1.3}.pbc .lmkt{line-height:1.35}.pbidentity{width:100%;min-width:0;text-align:center}.pbmarket{min-width:0;text-align:center;overflow-wrap:anywhere;line-height:1.35}.pbnumbers{min-width:0;gap:6px;flex-wrap:wrap}.pbnumbers .lbl{min-width:0;overflow-wrap:anywhere}.pbc .pbadd{width:100%}
.pbrefresh{display:inline-flex;align-items:center;gap:6px;color:var(--acc)}.pbrefresh .pbspinner{width:11px;height:11px}.pbskeletons{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.pbskeletons div{height:148px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(100deg,var(--panel) 25%,color-mix(in srgb,var(--acc) 10%,var(--panel2)) 45%,var(--panel) 65%);background-size:250% 100%;animation:pbshimmer 1.3s linear infinite}@keyframes pbshimmer{to{background-position:-250% 0}}
@media(max-width:640px){.pbc .lpick{font-size:12px}.pbc .lmkt{font-size:9px}.pbnumbers{justify-content:center!important}.pbflag{white-space:normal}.pbskeletons{grid-template-columns:1fr 1fr}.pbc .pbteam{flex:0 0 auto}}
@media(max-width:390px){.pbskeletons{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.pbskeletons div,.pbspinner{animation:none}}

/* ════════ CONSOLE LIBRARY reader ════════ */
#libpanel{position:fixed;inset:0;z-index:100040;display:none;background:radial-gradient(900px 500px at 50% -140px,var(--glow),transparent 70%),var(--bg)}
#libpanel .lib-wrap{position:absolute;inset:0;display:flex;flex-direction:column;max-width:760px;margin:0 auto}
#libpanel .lib-top{display:flex;justify-content:space-between;align-items:center;padding:calc(env(safe-area-inset-top,0px) + 12px) 16px 10px;border-bottom:1px solid var(--line);flex:0 0 auto}
#libpanel .lib-top b{font:800 16px var(--sans);color:var(--ink)}
#libpanel .lib-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 16px calc(env(safe-area-inset-bottom,0px) + 24px)}
.lib-cat{font:800 12px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin:16px 2px 8px}
.lib-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(max-width:560px){.lib-grid{grid-template-columns:1fr}}
/* inline Library (knowledge-base section): natural page height + full-width cover grid */
.lib-body.lib-inline{position:static;height:auto;max-height:none;overflow:visible;padding:0}
@media(min-width:1024px){.lib-inline .lib-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}}
.lib-card{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 13px;cursor:pointer;display:flex;flex-direction:row;gap:12px;align-items:flex-start;transition:border-color .15s,transform .12s}
.lib-card:active{transform:scale(.98)} .lib-card:hover{border-color:var(--acc)}
.lib-card.soon{opacity:.55;cursor:default}
/* designed cover thumb on each shelf card (libCoverSVG) + hero cover in the detail view */
.lib-card-cv{flex:0 0 58px;width:58px;border-radius:6px;overflow:hidden;box-shadow:2px 5px 12px -4px #000d;transition:transform .15s}
.lib-card:hover .lib-card-cv{transform:translateY(-2px) rotate(-1deg)}
.lib-card-cv svg{width:100%;height:auto;display:block}
.lib-card-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.lib-dcover.svg{padding:0;background:none;display:block}
.lib-dcover.svg svg{width:100%;height:100%;display:block;border-radius:12px}
.lib-card-t{font:800 15px var(--sans);color:var(--ink)}
.lib-card-s{font:500 12px var(--sans);color:var(--mut);line-height:1.4}
.lib-card-m{display:flex;gap:8px;align-items:center;margin-top:2px}
.lib-tier{font:700 9px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--acc);border:1px solid color-mix(in srgb,var(--acc) 40%,var(--line));border-radius:999px;padding:2px 7px}
.lib-soon{font:700 10px var(--sans);color:var(--gold)} .lib-done{font:700 10px var(--sans);color:var(--grass)}
.lib-bookhead{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.lib-progbar{flex:1;height:5px;border-radius:3px;background:var(--line);overflow:hidden}
.lib-progbar-f{height:100%;background:linear-gradient(90deg,var(--acc),#a855f7);transition:width .3s}
.lib-cover{padding:14px 0 6px;border-bottom:1px solid var(--line);margin-bottom:14px}
.lib-cover-tier{font:700 10px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--acc)}
.lib-cover h1{font:900 26px var(--sans);color:var(--ink);margin:8px 0 6px;line-height:1.15}
.lib-summary{font:500 14px var(--sans);color:var(--mut);line-height:1.5}
.lib-page h2{font:800 20px var(--sans);color:var(--ink);margin:6px 0 12px}
.lib-pagenum{font:700 10px var(--mono);color:var(--mut);letter-spacing:.08em}
.lib-block{margin:0 0 12px;line-height:1.6;font-size:15px;color:var(--ink)}
.lib-block .lib-tag{display:inline-block;font:700 9px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--mut);margin-right:6px;vertical-align:1px}
.lib-block.lib-example,.lib-block.lib-caseStudy{border-left:3px solid var(--acc);padding:2px 0 2px 12px;background:color-mix(in srgb,var(--acc) 6%,transparent);border-radius:0 8px 8px 0}
.lib-block.lib-pitfall{border-left:3px solid var(--clay);padding:2px 0 2px 12px;background:color-mix(in srgb,var(--clay) 7%,transparent);border-radius:0 8px 8px 0}
.lib-block.lib-mentalModel,.lib-block.lib-proPerspective{border-left:3px solid #a855f7;padding:2px 0 2px 12px}
.lib-block.lib-why,.lib-block.lib-history{color:var(--mut)}
.lib-block.lib-diagram pre{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px;overflow-x:auto;font:600 11px var(--mono);color:var(--mut)}
.lib-callout{margin:0 0 12px;padding:11px 13px;border-radius:12px;line-height:1.5;font-size:14px}
.lib-callout.key{background:color-mix(in srgb,var(--acc) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--acc) 35%,var(--line));color:var(--ink)}
.lib-callout.note{background:var(--panel2);border:1px dashed var(--line);color:var(--mut)}
.lib-callout.warn{background:color-mix(in srgb,var(--clay) 10%,var(--panel));border:1px solid color-mix(in srgb,var(--clay) 35%,var(--line));color:var(--ink)}
.lib-callout.info{background:var(--panel2);border:1px solid var(--line);color:var(--ink)}
.lib-flash{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;margin:0 0 10px;cursor:pointer}
.lib-flash-q{font:700 14px var(--sans);color:var(--ink)} .lib-flash-a{margin-top:8px;font-size:14px;color:var(--mut);line-height:1.5}
.lib-quiz{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;margin:0 0 10px}
.lib-quiz-q{font:700 14px var(--sans);color:var(--ink);margin-bottom:8px}
.lib-quiz-c{display:block;width:100%;text-align:left;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0 0 6px;color:var(--ink);font:500 13px var(--sans);cursor:pointer}
.lib-quiz-c.correct{background:color-mix(in srgb,var(--grass) 18%,var(--panel));border-color:var(--grass)}
.lib-quiz-c.wrong{background:color-mix(in srgb,var(--clay) 18%,var(--panel));border-color:var(--clay)}
.lib-quiz-x{margin-top:6px;font-size:13px;color:var(--mut);line-height:1.5;border-top:1px solid var(--line);padding-top:8px}
.lib-extras{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}
.lib-ex-h{font:800 12px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--acc);margin:14px 0 8px}
.lib-take{margin:0 0 4px;padding-left:18px} .lib-take li{margin:0 0 6px;line-height:1.5;font-size:14px;color:var(--ink)}
.lib-rel{display:block;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0 0 6px;color:var(--ink);font-size:13px;cursor:pointer}
.lib-gloss{font-size:13px;line-height:1.5;color:var(--mut);margin:0 0 6px} .lib-gloss b{color:var(--ink)}
.lib-src{font-size:12.5px;line-height:1.6;color:var(--mut)} .lib-src a{color:var(--acc)}
.lib-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:18px;padding-top:12px;border-top:1px solid var(--line)}
.lib-block code,.lib-callout code,.lib-quiz-x code{background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font:600 12px var(--mono)}
.lib-block.lib-scenario{border-left:3px solid var(--gold);padding:2px 0 2px 12px;background:color-mix(in srgb,var(--gold) 8%,transparent);border-radius:0 8px 8px 0}
.lib-block.lib-scenario .lib-tag{color:var(--gold)}
.lib-figure{margin:0 0 14px;text-align:center}
.lib-img{max-width:100%;height:auto;border-radius:12px;border:1px solid var(--line);background:var(--panel2)}
.lib-figure figcaption{font-size:12px;color:var(--mut);line-height:1.45;margin-top:6px}
.lib-credit{color:var(--mut);font-style:italic}
/* embedded glossary diagram (termRef / inline visual) — same renderer as the glossary; the SVG
   draws on a dark canvas with white text, so the reader supplies that canvas here too */
.lib-gvz{margin:6px 0 18px}
.lib-gvz .gvz svg{max-width:540px;margin:0 auto;border:1px solid var(--line);border-radius:14px;background:#070b16;padding:10px 8px}
.lib-figcap{font-size:12.5px;color:var(--mut);line-height:1.5;margin-top:8px}
.lib-figlink{margin-top:6px}
.lib-figlink .glink{font-size:12px}
.lib-block.lib-figfallback .lib-tag{color:var(--sky)}
.lib-chart{width:100%;max-width:420px;height:auto;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:8px}
.lib-chart-lbl{fill:var(--mut);font:600 9px var(--mono)}
.lib-nudge{position:sticky;bottom:0;left:0;right:0;margin:10px -16px 0;padding:11px 14px calc(env(safe-area-inset-bottom,0px) + 11px);display:flex;align-items:center;gap:11px;background:linear-gradient(100deg,color-mix(in srgb,var(--acc) 22%,var(--panel)),var(--panel));border-top:1px solid color-mix(in srgb,var(--acc) 40%,var(--line));box-shadow:0 -8px 24px rgba(0,0,0,.28);animation:libnudgein .3s ease;z-index:5}
@keyframes libnudgein{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
.lib-nudge-av{flex:0 0 auto;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:900 15px var(--sans);color:#fff;background:linear-gradient(135deg,#ff4d6d,#a855f7,#4cb9f8);overflow:hidden}
.lib-nudge-av img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.lib-nudge-msg{flex:1;min-width:0;font:600 13px var(--sans);color:var(--ink);line-height:1.3}
.lib-nudge-x{flex:0 0 auto;background:none;border:none;color:var(--mut);font-size:15px;cursor:pointer;padding:4px}
/* in-reader Kara page-assist (instant canned Q&A from the page content; no API credits) */
.lib-assist{position:sticky;bottom:0;left:0;right:0;margin:10px -16px 0;padding:12px 14px calc(env(safe-area-inset-bottom,0px) + 12px);background:linear-gradient(160deg,color-mix(in srgb,var(--acc) 14%,var(--panel)),var(--panel));border-top:1px solid color-mix(in srgb,var(--acc) 40%,var(--line));box-shadow:0 -10px 28px rgba(0,0,0,.32);animation:libnudgein .3s ease;z-index:6;max-height:62vh;overflow:auto}
.lib-assist-top{display:flex;align-items:center;gap:10px}
.lib-assist-av{flex:0 0 auto;width:38px;height:38px;border-radius:50%;overflow:hidden;border:2px solid color-mix(in srgb,var(--acc) 55%,var(--line));background:#241a3e}
.lib-assist-av.sm{width:26px;height:26px;border-width:1.5px}
.lib-assist-av img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.lib-assist-hi{flex:1;min-width:0;font:700 14px var(--sans);color:var(--ink)}
.lib-assist-qs{display:flex;flex-direction:column;gap:7px;margin:11px 0 4px}
.lib-assist-q{text-align:left;border:1px solid var(--line);background:color-mix(in srgb,var(--acc) 8%,var(--panel));color:var(--ink);border-radius:11px;padding:9px 12px;cursor:pointer;font:600 13px var(--sans);transition:.14s}
.lib-assist-q:hover{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 16%,var(--panel))}
.lib-assist-q.asked{opacity:.6}
.lib-assist-ans:empty{display:none}
.lib-assist-amsg{display:flex;gap:9px;align-items:flex-start;margin:10px 2px 4px;animation:libnudgein .25s ease}
.lib-assist-atext{flex:1;min-width:0;font:400 13.5px/1.55 var(--sans);color:var(--ink);background:color-mix(in srgb,var(--acc) 7%,var(--panel));border:1px solid var(--line);border-radius:12px;padding:10px 13px}
.lib-assist-foot{display:flex;gap:8px;justify-content:space-between;margin-top:12px}
/* ── book DETAIL landing (cover + summary + stats + reading formats; zoom-in) ── */
.lib-detail{animation:libDetailIn .34s cubic-bezier(.3,.7,.2,1)}
@keyframes libDetailIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
.lib-detail-card{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start;margin-top:8px}
.lib-detail-cover{flex:0 0 auto}
.lib-dcover{position:relative;width:150px;height:206px;border-radius:14px;overflow:hidden;display:grid;place-items:center;
  background:linear-gradient(155deg,hsl(var(--h) 62% 46%),hsl(var(--h) 66% 22%));
  box-shadow:0 14px 34px -12px #000c, 0 0 0 1px hsl(var(--h) 70% 60% / .35), 0 0 26px -4px hsl(var(--h) 80% 60% / .55)}
.lib-dcover::after{content:"";position:absolute;inset:0;border-radius:14px;padding:2px;background:linear-gradient(135deg,hsl(var(--h) 90% 68%),hsl(calc(var(--h) + 60) 90% 64%),transparent);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.85}
.lib-dcover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lib-dcover-emo{font-size:46px;filter:drop-shadow(0 3px 8px #0008);z-index:1}
.lib-dcover.gen .lib-dcover-emo{margin-bottom:8px}
.lib-dcover-ttl{position:relative;z-index:1;font:800 14px var(--sans);color:#fff;text-align:center;padding:0 12px;text-shadow:0 2px 8px #0009;line-height:1.25}
.lib-detail-info{flex:1;min-width:200px}
.lib-detail-info h1{font:800 22px var(--sans);color:var(--ink);margin:6px 0 8px}
.lib-detail-stats{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}
.lib-detail-stats span{font:600 11.5px var(--sans);color:var(--mut);background:color-mix(in srgb,var(--acc) 7%,var(--panel));border:1px solid var(--line);border-radius:999px;padding:4px 10px}
.lib-detail-stats .lib-done{color:var(--grass);border-color:color-mix(in srgb,var(--grass) 40%,var(--line))}
.lib-detail-fmt{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:6px 0 12px}
.lib-fmt{font:600 12px var(--sans);border:1px solid var(--line);background:color-mix(in srgb,var(--acc) 6%,var(--panel));color:var(--ink);border-radius:999px;padding:5px 11px;cursor:pointer;transition:.14s}
.lib-fmt:hover{border-color:var(--acc)}
.lib-fmt.on{background:var(--acc);border-color:var(--acc);color:#06101f}
.lib-start{background:linear-gradient(135deg,#f472b6,#4cb9f8);color:#06101f;font-weight:800;border:none}
/* bookmark + per-page notes */
.lib-bm{flex:0 0 auto;background:none;border:1px solid var(--line);border-radius:9px;color:var(--gold);font-size:16px;cursor:pointer;padding:3px 8px;margin-left:6px;line-height:1}
.lib-bm.on{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,var(--panel))}
.lib-notes{margin:14px 0;border-top:1px solid var(--line);padding-top:12px}
.lib-notes-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.lib-notes-h b{font:800 13px var(--sans);color:var(--ink)}
.lib-note{display:flex;align-items:flex-start;gap:8px;background:color-mix(in srgb,var(--gold) 8%,var(--panel));border:1px solid color-mix(in srgb,var(--gold) 30%,var(--line));border-radius:11px;padding:9px 11px;margin-bottom:7px}
.lib-note-t{flex:1;min-width:0;font:400 13px/1.5 var(--sans);color:var(--ink)}
.lib-note-x{flex:0 0 auto;background:none;border:none;color:var(--mut);cursor:pointer;font-size:13px;padding:2px}
/* reading desk (My notes) */
.lib-desk-book{margin:0 0 14px}
.lib-desk-bt{font:800 14px var(--sans);color:var(--gold);margin:6px 0 6px}
.lib-desk-row{display:block;width:100%;text-align:left;background:color-mix(in srgb,var(--acc) 6%,var(--panel));border:1px solid var(--line);border-radius:11px;padding:9px 12px;margin-bottom:6px;cursor:pointer;transition:.14s}
.lib-desk-row:hover{border-color:var(--acc);transform:translateX(3px)}
.lib-desk-pg{font:700 13px var(--sans);color:var(--ink)}
.lib-desk-notes{font:400 11.5px var(--sans);color:var(--mut);margin-top:3px;line-height:1.4}
/* reading FORMATS (applied to #libbody) */
.lib-body.fmt-terminal{font-family:var(--mono,monospace)}
.lib-body.fmt-terminal .lib-page h2,.lib-body.fmt-terminal .lib-block{letter-spacing:.01em}
.lib-body.fmt-paper .lib-page{font-family:Georgia,"Times New Roman",serif}
.lib-body.fmt-paper .lib-page h2{font-family:Georgia,serif}
.lib-body.fmt-feature .lib-page{font-size:15.5px;line-height:1.75}
.lib-body.fmt-feature .lib-page h2{font-size:23px}
.lib-quizcta{margin:0 0 14px;padding:12px;border:1px solid color-mix(in srgb,var(--acc) 35%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--acc) 8%,var(--panel));display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.lib-quiz-c.picked{background:color-mix(in srgb,var(--acc) 20%,var(--panel));border-color:var(--acc)}
.lib-quizscore{margin:6px 0}
.lib-score-card{text-align:center;padding:18px;border:1px solid color-mix(in srgb,var(--acc) 35%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--acc) 10%,var(--panel))}
.lib-score-num{font:900 30px var(--sans);color:var(--ink)}
.lib-score-msg{font:600 13px var(--sans);color:var(--mut);margin:4px 0 12px}
#libpanel .glink{color:var(--acc);cursor:pointer;border-bottom:1px dashed color-mix(in srgb,var(--acc) 50%,transparent);font-weight:700}
.lib-flash-gl{font-size:11px;margin-left:6px;white-space:nowrap}
.rb-lib-cat{font:800 12px var(--sans);letter-spacing:.04em;margin:18px 2px 9px}
.rb-book.rb-soon{opacity:.5;cursor:default}
.rb-book.rb-soon .rb-book-cv{filter:grayscale(.45)}
.pbc .pbhot{position:absolute;top:8px;right:8px;z-index:2;font:800 8px var(--mono);letter-spacing:.07em;color:#fff;background:linear-gradient(135deg,#ff7a18,#ff3d77);padding:3px 7px;border-radius:999px;box-shadow:0 3px 11px rgba(255,61,119,.42)}
.pbc--hot{border-color:color-mix(in srgb,#ff3d77 55%,var(--line));box-shadow:0 9px 26px color-mix(in srgb,#ff3d77 17%,transparent)}
.pbc .av{box-shadow:0 0 0 2px color-mix(in srgb,var(--acc) 32%,transparent)}   /* confidence ring around the avatar */
.pbc .pbadd{margin-top:5px;font-weight:800;border:none;border-radius:11px;padding:10px;letter-spacing:.02em;color:#06101f;background:linear-gradient(135deg,#f472b6,#4cb9f8);box-shadow:0 4px 14px rgba(76,185,248,.28)}
.pbc.on .pbadd{background:var(--acc)}
/* player-prop avatar — "real app" style gradient-ring photo/silhouette slot */
.pbc .pbav{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;margin:0 auto;position:relative;
  background:color-mix(in srgb,var(--acc) 14%,var(--panel));color:color-mix(in srgb,var(--ink) 70%,var(--mut));box-shadow:none!important}
.pbc .pbav::before{content:"";position:absolute;inset:-2px;border-radius:50%;padding:2px;
  background:linear-gradient(135deg,#ff4d6d,#a855f7,#4cb9f8);background-size:200% 200%;animation:rbflow 4.5s linear infinite;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.pbc .pbav .pbsil{position:relative;z-index:1}
.pbc .pbav .pbphoto{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;object-fit:cover;z-index:1}
/* ── Market filter chips (#pbchips) ──────────────────────────────────────────────────────────
   All markets / Moneyline / Totals / Spread / Player prop. These choose what the whole board
   below shows, so they are a SECTION nav, not incidental chrome — they now get the same
   full-width track as the Info/Help switcher (#gsecswitch) instead of five small pills huddled
   at the left edge. Base layout lives here, not inline in client.html, or the inline display:
   would outrank the track. `.pbchip` is also declared in client.html's own <style>, which loads
   after this file — hence the #pbchips prefix, which wins on specificity rather than order. */
#pbchips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
@media(min-width:641px){
  #pbchips{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:10px;margin-top:12px}
  #pbchips .pbchip{width:100%;min-height:46px;display:inline-flex;align-items:center;justify-content:center;
    padding:10px 12px;border-radius:14px;font:800 12.5px var(--sans);letter-spacing:.04em}
}
/* Selected state: was a flat #fff pill, which out-shouted the SPORT tabs directly above it and
   inverted the hierarchy — sport is the primary filter, market type is the secondary one. The
   sport row keeps its two-hue pink→blue gradient (.pbtab.on); this row gets a single-hue blue,
   so it still reads unmistakably selected while sitting a rank below. */
#pbchips .pbchip{background:linear-gradient(180deg,var(--panel2),rgba(16,24,43,.55));
  transition:border-color .17s,color .17s,transform .17s,box-shadow .17s}
#pbchips .pbchip:hover{color:var(--ink);transform:translateY(-1px);
  border-color:color-mix(in srgb,var(--sky) 55%,var(--line));box-shadow:0 5px 15px rgba(3,8,22,.4)}
#pbchips .pbchip.on{color:#04121f;border-color:transparent;
  background:linear-gradient(135deg,var(--sky),#8ad8ff);
  box-shadow:0 6px 18px color-mix(in srgb,var(--sky) 34%,transparent)}
#pbchips .pbchip.on:hover{transform:none;color:#04121f}
/* market filter chips: single scroll row on phone (was wrapping) */
@media(max-width:640px){
  #pbchips{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;scrollbar-width:none}
  #pbchips::-webkit-scrollbar{display:none}
  #pbchips .pbchip{flex:0 0 auto}
}

/* ════════════ X-STYLE ACCOUNT DRAWER (mobile) — opens from the header pfp ════════════ */
#kkdrawer{position:fixed;inset:0;z-index:100000;visibility:hidden;pointer-events:none}
#kkdrawer.open{visibility:visible;pointer-events:auto}
#kkdrawer .kkd-bd{position:absolute;inset:0;background:rgba(0,0,0,.55);opacity:0;transition:opacity .25s}
#kkdrawer.open .kkd-bd{opacity:1}
#kkdrawer .kkd-panel{position:absolute;top:0;left:0;bottom:0;width:72%;max-width:292px;display:flex;flex-direction:column;overflow-y:auto;
  background:linear-gradient(180deg,color-mix(in srgb,var(--acc) 13%,var(--bg)),var(--bg));border-right:1px solid color-mix(in srgb,var(--acc) 30%,var(--line));
  border-radius:0 22px 22px 0;box-shadow:10px 0 52px rgba(0,0,0,.55),0 0 70px -14px color-mix(in srgb,var(--acc) 55%,transparent);
  transform:translateX(-104%);transition:transform .3s cubic-bezier(.22,1,.36,1);
  padding:calc(env(safe-area-inset-top,0px) + 18px) 0 calc(env(safe-area-inset-bottom,0px) + 14px)}
#kkdrawer .kkd-panel::after{content:"";position:absolute;top:14px;right:0;bottom:14px;width:2px;border-radius:2px;pointer-events:none;
  background:linear-gradient(180deg,#ff4d6d,#a855f7,#4cb9f8);opacity:.55}   /* glowing edge highlight */
#kkdrawer .kkd-navav{width:24px;height:24px;border-radius:50%;object-fit:cover;display:block}
#kkdrawer .kkd-dc{color:#5865F2;display:inline-flex;align-items:center}
#kkdrawer.open .kkd-panel{transform:none}
#kkdrawer .kkd-head{display:flex;align-items:center;gap:12px;padding:6px 18px 16px}
#kkdrawer .kkd-av{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--acc);flex:0 0 auto}
#kkdrawer .kkd-name{font:800 17px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#kkdrawer .kkd-sub{font:600 12px var(--sans);color:var(--mut)}
#kkdrawer .kkd-nav{display:flex;flex-direction:column;border-top:1px solid var(--line);padding-top:6px}
#kkdrawer .kkd-nav button,#kkdrawer .kkd-foot button{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:none;border:0;color:var(--ink);font:700 16px var(--sans);padding:13px 20px;cursor:pointer}
#kkdrawer .kkd-nav button:active,#kkdrawer .kkd-foot button:active{background:color-mix(in srgb,var(--acc) 13%,transparent)}
#kkdrawer .kkd-ic{font-size:20px;width:24px;text-align:center;flex:0 0 auto}
#kkdrawer .kkd-foot{margin-top:auto;padding-top:6px}
#kkdrawer .kkd-div{height:1px;background:rgba(255,255,255,.85);margin:4px 18px 12px;border-radius:1px}   /* white separator (image 2) */
#kkdrawer .kkd-actions{display:flex;gap:10px;padding:0 16px 2px}
#kkdrawer .kkd-actions button{flex:1;width:auto;justify-content:center;gap:8px;padding:12px 8px;border-radius:14px;font-size:15px}
#kkdrawer .kkd-glass{background:color-mix(in srgb,var(--panel) 55%,transparent)!important;backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2);
  border:1px solid color-mix(in srgb,var(--line) 85%,transparent)!important;box-shadow:0 4px 16px rgba(0,0,0,.25);transition:transform .1s}
#kkdrawer .kkd-glass:active{transform:scale(.96)}
#kkdrawer .kkd-legal{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:13px 16px 2px;font:600 12px var(--sans)}
#kkdrawer .kkd-legal a{color:var(--mut);text-decoration:none;cursor:pointer}
#kkdrawer .kkd-legal a:active{color:var(--ink)}
#kkdrawer .kkd-legal span{color:var(--line)}

/* combined Profile settings card (#settingshub) — neutralize the immediate nested-card chrome so each
   collapsible panel reads as a clean dropdown, not a box-in-a-box (inner cards e.g. push-alerts kept). */
#settingshub .atpanel-bd>.card,#enginehub .atpanel-bd>.card{border:0;box-shadow:none;background:none;margin:0;padding:8px 2px 2px}

/* ════════════ CONSOLE — richer colors (PrizePicks vibrancy) · ≤640 only, desktop untouched ════════════ */
@media(max-width:640px){
  .card.pick{background:linear-gradient(180deg,color-mix(in srgb,var(--acc) 8%,var(--panel)),var(--panel));border-color:color-mix(in srgb,var(--acc) 20%,var(--line))}
  .pick{border-left-width:5px}
  .pick .action{background:linear-gradient(135deg,color-mix(in srgb,var(--grass) 15%,var(--panel)),color-mix(in srgb,var(--acc) 9%,var(--panel)));border:1px solid color-mix(in srgb,var(--grass) 24%,var(--line));border-radius:13px;padding:12px 13px;margin-top:5px}
  .pick .act-main{font-size:21px}
  #livecard{border-left:4px solid color-mix(in srgb,var(--clay) 55%,var(--line))}
}

/* ══════════ COMMUNITY CHAT — Instagram-groupchat redesign ══════════ */
#cmchat{position:relative}
/* theme/ambient shows through the chat (translucent — NO backdrop-filter on this scrolling element:
   blur-on-scroll janks low-end phones; glass is reserved for the small static composer buttons) */
#cmfeed{background:color-mix(in srgb,var(--panel) 62%,transparent)!important;
  border:1px solid color-mix(in srgb,var(--line) 65%,transparent)!important;border-radius:18px!important;gap:1px!important;scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch}   /* default scroll-chaining so the page scrolls PAST the feed (no trap in Profile) */
.cm-status{font:600 10px var(--sans);color:var(--mut);margin:2px 6px 0;text-align:right}
.cm-status.fail{color:var(--clay)}
.cm-row.tmp .cm-bubble{opacity:.68}
/* perf: freeze all animations when the app is backgrounded */
body.kkidle *,body.kkidle *::before,body.kkidle *::after{animation-play-state:paused!important}
.cm-row{display:flex;gap:7px;align-items:flex-end;margin:1px 0;max-width:100%}
.cm-row.me{flex-direction:row-reverse}
.cm-av{flex:0 0 auto;display:inline-flex}
.cm-av-sp{width:26px;flex:0 0 auto}
.cm-col{display:flex;flex-direction:column;max-width:74%;min-width:0}
.cm-row.me .cm-col{align-items:flex-end}
.cm-name{font:700 11px var(--sans);color:var(--mut);margin:6px 0 2px 9px}
.cm-bubble{padding:8px 12px;border-radius:18px;line-height:1.42;font-size:14px;overflow-wrap:anywhere;white-space:pre-wrap;max-width:100%;
  background:var(--panel);color:var(--ink);border:1px solid var(--line);box-shadow:0 1px 2px rgba(0,0,0,.16);border-bottom-left-radius:7px}
.cm-row.me .cm-bubble{background:linear-gradient(135deg,var(--acc),color-mix(in srgb,var(--acc) 62%,#7c4dff));color:#fff;border-color:transparent;
  border-bottom-left-radius:18px;border-bottom-right-radius:7px}
.cm-bubble.removed{background:transparent;border:1px dashed var(--line);color:var(--mut);font-style:italic;font-size:12px;box-shadow:none}
.cm-media{display:block;max-width:200px;max-height:150px;width:auto;border-radius:13px;margin-top:3px;cursor:zoom-in;object-fit:cover;border:1px solid var(--line)}
.cm-bubble>div+.cm-media{margin-top:5px}
.cm-quote{font-size:11px;border-left:2px solid var(--acc);padding:2px 8px;margin:0 0 3px;color:var(--mut);
  background:color-mix(in srgb,var(--panel2) 70%,transparent);border-radius:6px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Kara — glowing multi-color name + animated gradient edge (same flow as the Palace tooltip) */
.cm-kara-name{font-weight:900;letter-spacing:.04em;background:linear-gradient(90deg,#ff4d6d,#f5c84c,#36d399,#4cb9f8,#a855f7,#ff4d6d);
  background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:palaceflow 2.6s linear infinite}
.cm-row.kara .cm-bubble{position:relative;background:color-mix(in srgb,var(--panel) 82%,transparent);border:1px solid transparent}
.cm-row.kara .cm-bubble::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;
  background:linear-gradient(90deg,#ff4d6d,#f5c84c,#36d399,#4cb9f8,#a855f7,#ff4d6d);background-size:300% 100%;animation:palaceflow 2.6s linear infinite;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
/* hover/tap message tools */
.cm-tools{display:flex;gap:3px;margin:2px 5px 0;opacity:0;transition:opacity .12s}
.cm-row.me .cm-tools{flex-direction:row-reverse}
.cm-row:hover .cm-tools,.cm-col:focus-within .cm-tools{opacity:1}
.cm-tools button{background:none;border:none;color:var(--mut);cursor:pointer;font-size:12px;padding:1px 4px;border-radius:6px;-webkit-tap-highlight-color:transparent}
.cm-tools button:hover{color:var(--ink);background:var(--panel2)}
@media (max-width:820px){ .cm-tools{opacity:.8} .cm-media{max-width:62vw} }
/* pinned bar */
#cmpinbar{display:none;flex-direction:column;gap:5px;margin-bottom:9px}
.cm-pin{display:flex;align-items:center;gap:8px;padding:7px 11px;border-radius:12px;font-size:12px;cursor:pointer;
  background:color-mix(in srgb,var(--acc) 13%,var(--panel));border:1px solid color-mix(in srgb,var(--acc) 34%,var(--line))}
.cm-pin-x{margin-left:auto;color:var(--mut);font-size:13px;flex:0 0 auto;padding:0 3px}
/* liquid-glass composer */
#cmbar{display:flex;gap:8px;margin-top:8px;align-items:center}
.cm-iconbtn{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--ink);
  background:color-mix(in srgb,var(--panel) 58%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border:1px solid color-mix(in srgb,var(--line) 80%,transparent);transition:transform .1s}
.cm-iconbtn:active{transform:scale(.9)}
#cmbar #cmin{flex:1;border-radius:22px!important}
#cmmediaprev{display:none;align-items:center;gap:9px;margin-top:8px;padding:7px;border-radius:13px;background:var(--panel2);border:1px solid var(--line)}
#cmmediaprev img{width:46px;height:46px;border-radius:9px;object-fit:cover;flex:0 0 auto}

/* ══ inline SVG brand icons — gradient stroke + animated colors on the edges ══ */
.kk-svgicon{display:inline-block;vertical-align:middle}   /* static gradient (dropped the always-on hue-rotate filter — it repainted every frame on every screen = lag) */
/* perf: skip rendering off-screen rows in long lists (the 250-row crypto log) */
.cplog-row{content-visibility:auto;contain-intrinsic-size:0 46px}

/* long-press message menu — text-only glass dropdown (visible liquid glass) */
#cmmenu{position:fixed;z-index:100020;display:none;min-width:142px;padding:5px;border-radius:14px;
  background:color-mix(in srgb,var(--panel) 78%,transparent);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);
  border:1px solid color-mix(in srgb,var(--line) 90%,transparent);box-shadow:0 14px 44px rgba(0,0,0,.5);animation:cmMenuIn .12s ease}
@keyframes cmMenuIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
#cmmenu button{display:block;width:100%;text-align:left;background:none;border:0;color:var(--ink);font:600 14px var(--sans);padding:11px 14px;cursor:pointer;border-radius:10px;-webkit-tap-highlight-color:transparent}
#cmmenu button:active,#cmmenu button:hover{background:color-mix(in srgb,var(--acc) 18%,transparent)}

/* swipeable switch (Bot alerts · Vibration) — tap or drag the knob */
.kksw-row{display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;-webkit-tap-highlight-color:transparent;padding:4px 0}
.kksw-tx{min-width:0}
.kksw-lbl{font:600 14px var(--sans);color:var(--ink)}
.kksw-sub{display:block;font:500 11px var(--sans);color:var(--mut);margin-top:1px}
.kksw{flex:0 0 auto;width:48px;height:28px;border-radius:999px;background:var(--line);position:relative;transition:background .18s;touch-action:pan-y}
.kksw.on{background:var(--acc)}
.kksw-knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:left .2s cubic-bezier(.3,1.4,.5,1);box-shadow:0 1px 3px rgba(0,0,0,.32)}
.kksw.on .kksw-knob{left:23px}

/* Giphy GIF picker — bottom-sheet grid */
#cmgifpanel{position:fixed;inset:0;z-index:100030;display:none}
#cmgifpanel .cmgif-bd{position:absolute;inset:0;background:rgba(0,0,0,.5)}
#cmgifpanel .cmgif-sheet{position:absolute;left:0;right:0;bottom:0;max-height:72vh;display:flex;flex-direction:column;background:var(--panel);
  border-radius:18px 18px 0 0;border-top:1px solid var(--line);padding:12px 12px calc(env(safe-area-inset-bottom,0px) + 12px);box-shadow:0 -12px 44px rgba(0,0,0,.55);animation:cmMenuIn .16s ease}
#cmgifpanel .cmgif-top{display:flex;gap:8px;margin-bottom:10px}
#cmgifpanel #cmgifq{flex:1;border-radius:20px}
#cmgifpanel .cmgif-grid{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;overscroll-behavior:contain}
#cmgifpanel .cmgif-i{width:100%;height:92px;object-fit:cover;border-radius:10px;cursor:pointer;background:var(--panel2)}
#cmgifpanel .cmgif-foot{text-align:center;font:700 9px var(--mono);letter-spacing:.12em;color:var(--mut);padding-top:8px}
@media(max-width:480px){#cmgifpanel .cmgif-grid{grid-template-columns:repeat(2,1fr)}#cmgifpanel .cmgif-i{height:104px}}

/* ════════════════════════════════════════════════════════════════════════════
   DESKTOP LAYOUT (≥1024px) — ADDITIVE & MOBILE-FIRST. Everything above is the LOCKED
   mobile design; these rules are gated behind min-width so they can NEVER reach phones.
   Goal: use the screen with a real composition (multi-column where safe), not a
   stretched single column. The body max-width:680px above stays the mobile baseline.
   ════════════════════════════════════════════════════════════════════════════ */
@media (min-width:1024px){
  /* The one thing that mattered: lift the 680px body cap so the app uses the screen.
     Capped (not 100vw) so text lines stay readable; side gutters shrink from ~600px to slim. */
  body{ max-width:min(95vw,1600px); padding-left:26px; padding-right:26px; }

  /* nav rows breathe across the wider header */
  .topnav{ justify-content:center; }

  /* PERSISTENT NAV: pin the top bar (brand + the nav buttons live together in .hd) so the tabs
     stay reachable on every page and while scrolling. The opaque theme-matched surface avoids
     Chromium clipping on repainted sticky backdrop-filter layers.
     Desktop-only — mobile keeps its bottom tab bar baseline untouched. */
  .hd{ position:sticky; top:0; z-index:40; margin:0 0 14px; padding:8px 2px 10px;
       background:color-mix(in srgb,var(--bg) 92%,var(--panel));
       box-shadow:0 9px 24px rgba(3,8,22,.22); isolation:isolate; }

  /* the mobile bottom tab bar is desktop-OFF (already hidden ≥821px; this guarantees it on the
     ≥1024 desktop layer no matter how its own media query changes). Desktop uses the top nav. */
  #botnav{ display:none !important; }

  /* Logs/History: the two compact LAUNCHER cards sit side-by-side; every wide panel
     (analytics, model-audit, filters, log list, the in-place calendar/crypto pages) spans
     full width. Scoped to known ids → cannot disturb other views. */
  /* :not(.hidden) so the grid's ID specificity never overrides the .hidden tab-toggle
     (otherwise Logs would refuse to hide when you switch tabs on desktop). */
  #logsview:not(.hidden){ display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start;
                          max-width:1320px; margin-left:auto; margin-right:auto; }
  #logsview > *{ grid-column:1 / -1; }
  #logsview > #calentry, #logsview > #cpredentry{ grid-column:auto; }

  /* Un-composed views: header/nav stay full-width, but CENTER each view's content at a readable max
     so a single column doesn't stretch across a wide monitor (intentional, not broken). Tunable. */
  #sportsview, #weatherview, #autoview, #btcview, #ownerview, #profileview,
  #communityview, #learnview, #guideview, #glossview, #parlayview{
    max-width:1100px; margin-left:auto; margin-right:auto;
  }

  /* Library/Learn world: stage geometry is owned by learn.css (#learnview .lw-stage) and nothing
     else. The rule that used to sit here was written for the ORIGINAL 1280×920 room; the room was
     later widened to viewBox "-192 0 1664 920" (aspect 1.809) and this never followed it. Because
     `#learnview .lw-stage` (1,1,0) outranks a bare `#lwStage` (1,0,0), learn.css already won on
     height/aspect — but max-width was unopposed, so on a 1920×1000 desktop the room was pinned to
     70vh*1280/920 = 974px and centred: measured 974×672, a 0.73x render with 165 viewBox units
     sliced off EACH side (the Beginner and Historical Vault bookcases), and ~49% of the screen left
     as dead gutter. Do not reintroduce a second owner for this box. */

  /* keep long descriptive copy readable even inside a wide panel (~80ch measure) */
  .card .lbl{ max-width:80ch; }
  /* …but capping the MEASURE is not a reason to leave the rest of a wide card empty. The chart
     caption is the longest copy in the console and sits under a full-width chart, so at 1100px it
     ran ~12 lines down the left half with ~660px of dead space beside it. Columns keep a readable
     measure AND use the width, which is what the measure rule was always trying to buy.
     Note `80ch` under-delivers here: `ch` ignores .lbl's letter-spacing:.16em, so the intended
     80-character measure was really ~57 — which is why the block was so tall. The column width is
     therefore set in px, from the measured value, rather than in a unit that lies about this font. */
  /* Deliberately NO `display:block` on the caption spans: an author `display` beats the UA's
     `[hidden]{display:none}`, so it would show the tape AND legacy copy at once. Inline spans flow
     through columns perfectly well, and the hidden one stays hidden. */
  #btcchartcap{ max-width:none; column-width:430px; column-gap:36px; column-rule:1px solid var(--line); }
}
@media (min-width:1600px){ body{ max-width:1600px; } }


/* ════════════ PREMIUM MOBILE — pass 5 · native bottom-sheet dialogs + touch tooltips · ≤640, desktop untouched ════════════ */
@media(max-width:640px){
  /* kkConfirm/kkAlert/kkPrompt → slide-up bottom sheet (Kalshi/Robinhood pattern) instead of a centered web modal */
  .kkdlg-ov{align-items:flex-end;padding:0;background:rgba(2,6,18,.5)}
  .kkdlg{width:100%;max-width:none;border-radius:24px 24px 0 0;padding:10px 20px calc(env(safe-area-inset-bottom,0px) + 18px);
    box-shadow:0 -16px 50px rgba(0,0,0,.55);animation:kksheetup .34s cubic-bezier(.2,.9,.25,1);will-change:transform;touch-action:pan-y}
  .kkdlg::before{content:"";display:block;width:40px;height:4px;border-radius:3px;background:color-mix(in srgb,var(--ink) 22%,transparent);margin:0 auto 14px}  /* grab handle */
  .kkdlg-title{font-size:18px}
  .kkdlg-msg{font-size:14.5px;line-height:1.5}
  .kkdlg-btns{flex-direction:column-reverse;gap:9px;margin-top:16px}   /* primary (OK) on top, Back below — thumb order */
  .kkdlg-btn{width:100%;flex:none;min-height:52px;font-size:15.5px;border-radius:15px;font-weight:800}
  .kkdlg-input{min-height:50px;font-size:16px;border-radius:14px}      /* 16px = no iOS zoom-on-focus */
  /* touch tooltip bubble: a touch nudge larger + higher-contrast than the hover one */
  #kktip{max-width:min(78vw,300px);font-size:12px;padding:9px 13px 9px 34px;box-shadow:0 16px 40px rgba(0,0,0,.6)}
}
@keyframes kksheetup{from{transform:translateY(100%)}to{transform:none}}
/* premium loading shimmer — apply data-skeleton to any placeholder box for a native skeleton feel (opt-in, no layout change) */
.kk-skel{position:relative;overflow:hidden;background:color-mix(in srgb,var(--line) 40%,transparent);border-radius:10px;min-height:14px}
.kk-skel::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--ink) 8%,transparent),transparent);animation:kkshimmer 1.25s infinite}
@keyframes kkshimmer{100%{transform:translateX(100%)}}
@media(prefers-reduced-motion:reduce){.kkdlg{animation:none}.kk-skel::after{animation:none}}
/* E2 — financial-grade tabular numerals: equal-width digits so figures don't shift horizontally on tick */
.num{font-family:var(--font-num);font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1;letter-spacing:0}
/* E3 — empty states name the action that fills them (never a bare em-dash) */
.empty{color:var(--dim);font-style:normal;font-weight:500}
/* L1 — continue-reading card */
.lib-resume{display:flex;align-items:center;gap:14px;padding:12px 14px;margin:0 0 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel2)}
.lib-resume-ring{flex:0 0 auto;display:flex}
/* L3 — inline glossary popover */
.lib-term-pop{position:absolute;z-index:9000;max-width:320px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:0 16px 40px rgba(0,0,0,.5)}
.lib-term-pop strong{color:var(--ink);font-size:14px}
.lib-term-pop p{color:var(--mut);font-size:13px;line-height:1.5;margin:5px 0 0}
.lib-term-viz{margin-top:8px}.lib-term-viz svg{max-width:100%;height:auto}
.lib-term-pop a{display:inline-block;margin-top:8px;color:var(--acc);font-size:12px;font-weight:700;text-decoration:none}
/* L4 — Study row */
.lib-study-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.lib-streak-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:4px 11px;font-weight:700;color:var(--ink)}
.lib-shelves-stat{display:flex;flex-wrap:wrap;gap:14px;margin-top:11px}
.lib-shelf-stat{display:flex;align-items:center;gap:7px}
/* L5 — real-ledger example card */
.lib-example{border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:var(--panel2)}
.lib-ex-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}
.lib-ex-side{border:1px solid var(--line);border-radius:6px;padding:1px 6px;font-size:11px;font-weight:700;color:var(--mut)}
.lib-ex-out{border-radius:6px;padding:1px 7px;font-size:11px;font-weight:800}
.lib-ex-out.win{background:color-mix(in srgb,var(--grass) 22%,transparent);color:var(--grass)}
.lib-ex-out.loss{background:color-mix(in srgb,var(--clay) 22%,transparent);color:var(--clay)}
/* A2 — attestation CTA disabled until confirmed */
.cta:disabled,.cta[disabled]{opacity:.45;cursor:not-allowed;filter:grayscale(.3)}
/* E1 — hydrated icon slots align like the emoji they replace; labelled nav/buttons get a small gap */
i[data-ic]{display:inline-flex;vertical-align:-3px;line-height:0}
.topnav-b i[data-ic]{margin-right:5px}
/* E5 — the settlement-lock: the ONE signature motion moment. A ledger row locks to settled + its hash
   chip clicks in as the chain extends. Everything else stays calm; honors reduced-motion. */
@keyframes kk-settle{0%{transform:scale(1)}35%{transform:scale(1.015)}100%{transform:scale(1)}}
@keyframes kk-hash-in{from{opacity:0;letter-spacing:.35em}to{opacity:1;letter-spacing:normal}}
.row-settled{animation:kk-settle 320ms cubic-bezier(.2,.9,.3,1)}
.row-settled .hash-chip{animation:kk-hash-in 280ms ease-out 120ms both}
@media(prefers-reduced-motion:reduce){.row-settled,.row-settled .hash-chip{animation:none}}

/* ══ MOBILE: stop long-press text-selection/copy on CONTROLS (owner: "phone thinks I'm copying") —
   native apps don't let chrome/buttons be selectable. Prose the user may genuinely want to copy
   (chat, book pages, guide bodies, dialogs, inputs) is explicitly opted back IN. ≤820 only. ══ */
@media(max-width:820px),(max-height:500px) and (max-width:950px){
  body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
  input,textarea,[contenteditable],.cm-bubble,.kkdlg-msg,.kkdlg-input,
  .rb-main,.rb-main *,.gbody,.gbody *,.gloss-def,.lg-note,.kmsg,.kmsg *{
    -webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
}

/* ── venue-feed lamp (Gate-UI rider): second header light = exchange-tape health, so a healthy
   engine link can never mask a dead market-data feed. Sits beside the engine dot. ── */
.feedlamp{position:absolute;bottom:1px;left:-3px;width:9px;height:9px;border-radius:50%;border:2px solid var(--bg);background:var(--mut)}
.feedlamp.ok{background:#36d399;box-shadow:0 0 6px rgba(54,211,153,.8)}
.feedlamp.warn{background:#f5c84c;box-shadow:0 0 6px rgba(245,200,76,.8)}
.feedlamp.down{background:#ef4444;box-shadow:0 0 8px rgba(239,68,68,.9);animation:feedpulse 1.2s ease-in-out infinite}
@keyframes feedpulse{50%{opacity:.4}}

/* Gate-UI chat presence + activity feed polish */
.cm-presence-dot{width:7px;height:7px;border-radius:50%;background:#36d399;display:inline-block;box-shadow:0 0 6px rgba(54,211,153,.7)}
#cmnav{position:relative}
#cmmorebox .atbtn{background:none}
#cmmorebox .atbtn:active{background:color-mix(in srgb,var(--acc) 14%,transparent)}
@media(max-width:640px){ .cm-media{max-width:64vw;max-height:150px} }

/* ════════════ COMMUNITY CHAT THEME ════════════
   Chat follows the user's selected console background/accent instead of imposing a fixed lounge tint.
   The ambient theme's contrast guard already owns --ink/--mut/--line, so light themes stay readable. */
#cmchat,#cmnav,#cmpinbar{
  --lch-bg:color-mix(in srgb,var(--bg) 92%,#000 8%);--lch-bg2:var(--panel2);--lch-bubble:var(--panel);
  --lch-accent:var(--acc);--lch-accent2:color-mix(in srgb,var(--acc) 72%,var(--ink));
  --lch-ink:var(--ink);--lch-mut:var(--mut);--lch-dim:color-mix(in srgb,var(--mut) 78%,var(--bg));--lch-line:var(--line);--lch-online:#36d399}
#cmchat{background:var(--lch-bg);border:1px solid var(--lch-line);border-radius:16px;padding:10px 12px 12px}
#cmfeed{background:none!important;border:none!important;scrollbar-width:thin;scrollbar-color:var(--lch-accent) var(--lch-bg2)}
#cmfeed::-webkit-scrollbar{width:9px}
#cmfeed::-webkit-scrollbar-track{background:var(--lch-bg2);border-radius:8px}
#cmfeed::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--lch-accent) 55%,var(--lch-bg2));border-radius:8px;border:2px solid var(--lch-bg2)}
#cmfeed::-webkit-scrollbar-thumb:hover{background:var(--lch-accent)}
#cmchat .cm-bubble{background:var(--lch-bubble);color:var(--lch-ink);border:1px solid var(--lch-line);box-shadow:none}
#cmchat .cm-row.me .cm-bubble{background:linear-gradient(135deg,var(--lch-accent),color-mix(in srgb,var(--lch-accent) 68%,var(--lch-bg2)));color:var(--acc-ink,#0b1020);border-color:color-mix(in srgb,var(--lch-accent) 55%,var(--lch-line))}
#cmchat .cm-name{color:var(--lch-ink)}
#cmchat .cm-name b{color:var(--lch-ink)!important}
#cmchat .cm-name span{color:var(--lch-dim)}
#cmchat .cm-quote{border-left-color:var(--lch-accent);background:var(--lch-bg2);color:var(--lch-mut)}
#cmchat .cm-status{color:var(--lch-dim)}
#cmchat .cm-bubble.removed{border-color:var(--lch-line);color:var(--lch-dim)}
#cmpinbar .cm-pin{background:color-mix(in srgb,var(--lch-accent) 14%,var(--lch-bg));border-color:color-mix(in srgb,var(--lch-accent) 40%,var(--lch-line));color:var(--lch-mut)}
#cmbar{border-top:1px solid var(--lch-line);padding-top:9px;margin-top:9px}
#cmbar .cm-iconbtn{color:var(--lch-mut)}
#cmbar .cm-iconbtn:active{color:var(--lch-accent2)}
#cmbar #cmin,#cmbar input{background:none;color:var(--lch-ink)}
#cmbar #cmin::placeholder{color:var(--lch-dim)}
#cmbar #cmsend{color:var(--lch-accent)}
/* presence ring on avatars — same liveness set as "N online" */
.cm-presring{position:absolute;bottom:-1px;right:-1px;width:9px;height:9px;border-radius:50%;background:var(--lch-online,#36d399);border:2px solid var(--lch-bg)}
/* reactions — compact Discord-style emoji chips + an on-demand picker */
.cm-reacts{position:relative;display:flex;flex-wrap:wrap;gap:5px;margin:2px 0 4px 2px}
.cm-row.me .cm-reacts{justify-content:flex-end;margin-right:2px}
.cm-react{display:inline-flex;align-items:center;justify-content:center;gap:4px;font:700 10.5px var(--sans);color:var(--lch-mut);
  background:color-mix(in srgb,var(--lch-bg2) 82%,transparent);border:1px solid var(--lch-line);border-radius:11px;padding:3px 7px;cursor:pointer;min-height:26px;-webkit-tap-highlight-color:transparent}
.cm-react:active{transform:scale(.94)}
.cm-react:hover{color:var(--lch-ink);border-color:color-mix(in srgb,var(--lch-accent) 55%,var(--lch-line))}
.cm-react.on{color:var(--lch-ink);border-color:var(--lch-accent);background:color-mix(in srgb,var(--lch-accent) 18%,var(--lch-bg2))}
.cm-react-emoji>span{font-size:14px;line-height:1}.cm-react-emoji>b{font:800 10px var(--sans)}
.cm-react-add{width:28px;padding:3px;color:var(--lch-dim)}
.cm-react-picker{position:absolute;left:0;bottom:32px;z-index:8;display:grid;grid-template-columns:repeat(4,38px);gap:3px;padding:7px;
  background:var(--lch-bg2);border:1px solid var(--lch-line);border-radius:13px;box-shadow:0 10px 30px rgba(0,0,0,.28)}
.cm-row.me .cm-react-picker{left:auto;right:0}
.cm-react-picker button{display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:9px;background:transparent;font-size:21px;cursor:pointer}
.cm-react-picker button:hover,.cm-react-picker button:focus-visible{background:color-mix(in srgb,var(--lch-accent) 18%,var(--lch-bg))}
@media(max-width:820px){.cm-react-picker{grid-template-columns:repeat(4,42px)}.cm-react-picker button{width:42px;height:42px}}
/* typing indicator */
.cm-typing{font:600 11px var(--sans);color:#7a6d61;padding:4px 0 0 40px;display:flex;align-items:baseline;gap:2px}
.cm-typedots i{animation:cmTypeDot 1.1s ease-in-out infinite;font-style:normal}
.cm-typedots i:nth-child(2){animation-delay:.18s}.cm-typedots i:nth-child(3){animation-delay:.36s}
@keyframes cmTypeDot{40%{opacity:.25}}
@media(prefers-reduced-motion:reduce){.cm-typedots i{animation:none}}
/* ── Gate-UI perf: long card lists skip offscreen rendering (virtualization-lite, zero JS risk) ── */
#picks>.card,#glosslist .gloss-card,.lib-grid>.lib-card,#pbboard>.pbc{content-visibility:auto;contain-intrinsic-size:auto 140px}

/* ── Gate-UI iconography: icon+label pill alignment (KB pills, glossary chips) ── */
.kk-icbtn{display:inline-flex;align-items:center;gap:6px}
.kk-ic{flex:0 0 auto;vertical-align:-2px}
/* ── WCAG item 2 — the base palette passes AA everywhere (lowest text pair 5.56:1); this block
   HARDENS for users who ask for more contrast: brighter muted text, solid (not translucent) card
   edges, and a visible focus ring on every interactive element. Never changes the default look. ── */
@media (prefers-contrast: more){
  :root{--mut:#c2cfe6;--dim:#a7b4cd;--line:#48597e}
  .lbl,.setlbl,.bsub{color:#c2cfe6}
  .card,.pick,.atbtn,.kkdlg,.cm-bubble{border-color:#48597e!important}
}
@media (prefers-contrast: more){:root{--line:#48597e}}
/* keyboard focus: a clear ring on every actionable control (WCAG 2.4.7) — pointer users never see it */
:focus-visible{outline:2px solid var(--sky);outline-offset:2px;border-radius:8px}
button:focus-visible,.atbtn:focus-visible,[role=button]:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--sky);outline-offset:2px}
/* never-meaning-through-color-alone: P&L/state text already carries +/− and ✓/✕ glyphs; this adds a
   non-color weight cue so red/green is never the ONLY signal even to full-color-vision users. */
.lg-pnl.pos,.cm-react.on{font-weight:800}

/* ── investor data-viz: graduation bars + honest status chips (2026-07-04). Green is reserved for
   calibration-in-band / win-rate(n>=30) / model-beats-market Brier / graduation fill — NEVER simulated P&L. */
.gradarm{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px}
.grail{height:6px;border-radius:4px;background:var(--panel2);margin-top:7px;overflow:hidden}
.grail-fill{height:100%;border-radius:4px}
.gchip{font:800 9px var(--mono);letter-spacing:.06em;text-transform:uppercase;border-radius:6px;padding:3px 7px;white-space:nowrap;border:1px solid var(--line);color:var(--mut)}
.gchip.closed{border-color:var(--clay);color:var(--clay)}
.gchip.obs{border-color:var(--gold);color:var(--gold)}
.gchip.ready{border-color:var(--grass);color:var(--grass)}
.gchip.observing{border-color:var(--sky);color:var(--sky)}
.invhero{font:800 18px/1.35 var(--sans);color:var(--ink)}
.eqframe-tag{font:800 9px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold);border-radius:5px;padding:2px 6px}
/* a11y (2D): honor reduced-motion for the blinking status lamps */
@media(prefers-reduced-motion:reduce){.feedlamp{animation:none!important}.ok{animation:none!important}.dot{animation:none!important}}

/* ════════ WAVE 3 · G3 Mastery · G4 Executable Diagrams · G6 TTS · G9 Cited Kara ════════ */
/* ── G3 Mastery Path card ── */
.mz-card{border:1px solid var(--line);border-radius:14px;padding:14px;margin:12px 0;background:var(--card,rgba(255,255,255,.02))}
.mz-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.mz-title{font:800 14px var(--sans);color:var(--ink)}
.mz-review{border:1px solid var(--gold);color:var(--gold);background:transparent;border-radius:999px;padding:5px 12px;font:800 12px var(--sans);cursor:pointer}
.mz-caught{color:var(--mut);font-size:12px}
.mz-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.mz-tile{border:1px solid var(--line);border-radius:10px;padding:8px 4px;text-align:center}
.mz-tile b{display:block;font:800 18px var(--sans);color:var(--ink)}
.mz-tile span{font-size:10.5px;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
.mz-weaklab{margin:12px 0 6px;font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
.mz-weak{display:flex;flex-wrap:wrap;gap:6px}
.mz-wk{border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:12px;color:var(--ink);background:transparent;cursor:pointer}
.mz-wk:hover{border-color:var(--acc)}
.mz-note{margin-top:10px;font-size:11px;line-height:1.5;color:var(--mut)}
.mz-gradebar,.mz-gradebar-inline{margin-top:10px;padding-top:8px;border-top:1px dashed var(--line)}
.mz-gq{display:block;font-size:11.5px;color:var(--mut);margin-bottom:6px}
.mz-grades{display:flex;gap:6px;flex-wrap:wrap}
.mz-g{flex:1;min-width:56px;border:1px solid var(--line);border-radius:8px;padding:7px 4px;font:700 12px var(--sans);cursor:pointer;background:transparent;color:var(--ink)}
.mz-g-again{border-color:var(--clay,#c0563e);color:var(--clay,#c0563e)}
.mz-g-good,.mz-g-easy{border-color:var(--grass,#3c9a5f);color:var(--grass,#3c9a5f)}
.mz-chip{border:1px solid var(--gold);color:var(--gold);background:transparent;border-radius:999px;padding:4px 10px;font:700 12px var(--sans);cursor:pointer;margin-left:8px}

/* ── G6 TTS reader controls ── */
.lib-listen{border:1px solid var(--line);background:transparent;border-radius:8px;padding:4px 8px;cursor:pointer;font-size:14px;margin-left:6px}
.lib-listen:hover{border-color:var(--acc)}
#libtts{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:6px;padding:8px 10px;margin-top:12px;border:1px solid var(--line);border-radius:12px;background:var(--card,rgba(20,20,24,.9));backdrop-filter:blur(6px)}
.tts-b{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:8px;padding:5px 9px;font-size:14px;cursor:pointer;line-height:1}
.tts-b:hover{border-color:var(--acc)}
.tts-pos{font-size:11px;color:var(--mut);margin-left:auto}
.tts-rate{font:700 12px var(--sans);min-width:42px}
.lib-tts-reading{background:color-mix(in srgb,var(--acc,#c99) 14%,transparent);border-left:3px solid var(--acc,#c99);border-radius:6px}
@media(prefers-reduced-motion:no-preference){.lib-tts-reading{transition:background .25s ease}}

/* ── G4 executable diagrams ── */
.lib-exec{padding:0!important;border:0!important}
.xd-card{border:1px solid var(--line);border-radius:12px;padding:13px 14px;margin:10px 0;background:var(--card,rgba(255,255,255,.02))}
.xd-title{font:800 13px var(--sans);color:var(--ink);margin-bottom:10px}
.xd-tag{font:700 10px var(--sans);color:var(--acc);border:1px solid var(--acc);border-radius:999px;padding:1px 7px;margin-left:6px;vertical-align:middle;text-transform:uppercase;letter-spacing:.04em}
.xd-row{display:grid;grid-template-columns:1fr 1.2fr auto;align-items:center;gap:10px;margin:7px 0;font-size:12.5px;color:var(--ink)}
.xd-range{width:100%}
.xd-val{font:800 12.5px var(--mono,ui-monospace,monospace);color:var(--ink);min-width:46px;text-align:right}
.xd-toggle{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:8px;padding:5px 12px;font:700 12px var(--sans);cursor:pointer;justify-self:end}
.xd-toggle[aria-pressed="true"]{border-color:var(--grass,#3c9a5f);color:var(--grass,#3c9a5f)}
.xd-out{margin:10px 0 6px}
.xd-bar{height:8px;border-radius:999px;background:var(--line);overflow:hidden}
.xd-bar>i{display:block;height:100%;width:50%;background:var(--acc,#9a9);transition:width .18s ease}
.xd-bar>i.xd-pos{background:var(--grass,#3c9a5f)}
.xd-bar>i.xd-neg{background:var(--clay,#c0563e)}
.xd-line{margin-top:8px;font:600 12px var(--mono,ui-monospace,monospace);color:var(--ink);line-height:1.5}
.xd-note{margin-top:8px;font-size:11px;line-height:1.5;color:var(--mut)}

/* ── G9 Kara Sources footer ── */
.kmsg-cite{margin-top:8px;padding-top:6px;border-top:1px solid var(--line);font-size:11px;color:var(--mut);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.kmsg-cchip{border:1px solid var(--line);border-radius:999px;padding:3px 9px;font-size:11px;color:var(--ink);background:transparent;cursor:pointer}
.kmsg-cchip:hover{border-color:var(--gold);color:var(--gold)}

/* G13 retrieval-first flashcards + G14 confidence + G16 misconception (5c batch 1) */
.lib-flash-try{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.lib-flash-btn{padding:6px 13px;border-radius:9px;border:1px solid var(--line);background:var(--acc);color:#0b1020;font:800 12px var(--sans);cursor:pointer;transition:.14s}
.lib-flash-btn.ghost{background:transparent;color:var(--mut)}
.lib-flash-btn:hover{filter:brightness(1.06)}
.lib-flash-hint{font:500 11px var(--sans);color:var(--mut)}
.lib-conf{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:6px 0 4px}
.lib-conf-l{font:600 11px var(--sans);color:var(--mut);margin-right:2px}
.lib-cf{padding:4px 11px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--mut);font:700 11px var(--sans);cursor:pointer;transition:.14s}
.lib-cf.on{background:var(--sky);border-color:transparent;color:#081020}
.lib-cf:disabled{opacity:.55;cursor:default}
.kl-insights{margin-top:10px;display:flex;flex-direction:column;gap:9px}
.kl-cal,.kl-misc{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.kl-h{font:800 12px var(--sans);color:var(--ink);margin-bottom:5px;letter-spacing:.01em}
.kl-row{font:500 12.5px var(--sans);color:var(--ink);line-height:1.5}
.kl-mrow{font:500 12px var(--sans);color:var(--mut);padding:2px 0}

/* 5c batch 2: G15 interleave · G17 JIT nudge · G18 recommender · G19 pretest */
.mz-il{padding:6px 12px;border-radius:9px;border:1px solid var(--line);background:transparent;color:var(--sky);font:800 12px var(--sans);cursor:pointer;margin-left:6px;transition:.14s}
.mz-il:hover{border-color:var(--sky)}
.kl-next{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.kl-nextbtn{background:var(--acc);color:#0b1020;border:none;border-radius:8px;padding:4px 11px;font:800 12px var(--sans);cursor:pointer;margin-right:2px}
.kl-nextbtn:hover{filter:brightness(1.06)}
.lib-pretest{margin:6px 0 12px;border:1px dashed var(--line);border-radius:12px;padding:9px 11px;background:rgba(76,185,248,.05)}
.lib-pt-toggle{background:transparent;border:none;color:var(--gold);font:800 12.5px var(--sans);cursor:pointer;padding:2px 0}
.lib-pt-q{font:600 13px var(--sans);color:var(--ink);margin:6px 0 8px;line-height:1.5}
.lib-pt-c{display:block;width:100%;text-align:left;margin:4px 0;padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);font:500 12.5px var(--sans);cursor:pointer}
.lib-pt-c:disabled{opacity:.7;cursor:default}.lib-pt-c.on{border-color:var(--sky)}
.lib-pt-note{margin-top:7px;font:500 12px var(--sans);color:var(--mut);line-height:1.5}
.jit-nudge{position:fixed;left:50%;bottom:76px;transform:translateX(-50%);z-index:1400;display:flex;align-items:center;gap:9px;max-width:92vw;background:var(--panel);border:1px solid var(--sky);border-radius:14px;padding:9px 12px;box-shadow:0 14px 44px rgba(0,0,0,.5);animation:kkdlgIn .18s ease}
.jit-t{font:600 12.5px var(--sans);color:var(--ink)}
.jit-go{background:var(--sky);color:#081020;border:none;border-radius:8px;padding:5px 12px;font:800 12px var(--sans);cursor:pointer}
.jit-x{background:transparent;border:none;color:var(--mut);font:700 14px var(--sans);cursor:pointer;padding:2px 4px}

/* 5c batch 3: G20 map · G21 faded examples · G22 explain-back · G23 transfer */
.kl-map{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.lib-explain{margin:14px 0 8px;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:var(--panel2)}
.lib-explain-h{font:800 13px var(--sans);color:var(--ink);margin-bottom:3px}
.lib-explain-sub{font:500 12px var(--sans);color:var(--mut);line-height:1.5;margin-bottom:8px}
.lib-explain-in{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:9px;color:var(--ink);font:500 13px var(--sans);padding:9px 11px;outline:none;resize:vertical;margin-bottom:8px}
.lib-transfer{margin:14px 0 8px;border:1px solid var(--gold);border-radius:12px;padding:11px 12px;background:rgba(246,185,75,.05)}
.lib-transfer-h{font:800 13px var(--sans);color:var(--gold);margin-bottom:3px}
.lib-transfer-sub{font:500 12px var(--sans);color:var(--mut);line-height:1.5;margin-bottom:8px}
.xd-quiz{margin-top:8px;background:transparent;border:1px solid var(--sky);border-radius:9px;color:var(--sky);font:800 12px var(--sans);padding:6px 12px;cursor:pointer;transition:.14s}
.xd-quiz:hover{background:rgba(76,185,248,.1)}
.xd-chal{margin-top:9px}
.xd-chal-q{font:600 12.5px var(--sans);color:var(--ink);margin-bottom:6px}
.xd-chal-row{display:flex;gap:7px;align-items:center}
.xd-chal-in{flex:0 1 140px;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--ink);font:600 13px var(--mono);padding:7px 10px;outline:none}
.xd-chal-go{background:var(--sky);color:#081020;border:none;border-radius:8px;padding:7px 14px;font:800 12px var(--sans);cursor:pointer}
.xd-chal-go:disabled{opacity:.6;cursor:default}
.xd-chal-fb{margin-top:7px;font:600 12.5px var(--sans);line-height:1.45}
.xd-ok{color:var(--grass)}.xd-no{color:var(--gold)}

/* Parlay per-slip evidence timeline: on-demand, account-isolated, raw observations only. */
.ptimeline{flex:1 0 100%;width:100%;margin-top:9px;padding:10px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel2) 90%,transparent)}
.pwatch{flex:1 0 100%;width:100%;margin-top:6px;justify-content:flex-end;flex-wrap:wrap}.pwatch .lbl{align-self:center;overflow-wrap:anywhere}
.ptitle{display:flex;justify-content:space-between;gap:10px;align-items:center;font:700 12px var(--sans)}
.ptitle span,.ptnote{color:var(--mut);font-weight:500}
.ptchart{width:100%;height:150px;margin-top:8px;border-radius:9px;overflow:hidden;background:color-mix(in srgb,var(--panel) 82%,transparent)}
.ptchart svg{display:block;width:100%;height:100%}.ptchart text{fill:var(--mut);font:10px var(--mono)}.ptzero{stroke:var(--line);stroke-width:1;stroke-dasharray:4 4}
.ptlegend{display:flex;gap:8px 14px;flex-wrap:wrap;margin-top:7px;color:var(--mut);font:600 10px var(--sans)}.ptlegend span{min-width:0;overflow-wrap:anywhere}.ptlegend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}
.ptimeline details{margin-top:9px}.ptimeline summary{cursor:pointer;color:var(--acc);font:700 11px var(--sans)}.pttable{overflow:auto;max-height:280px;margin-top:7px}.pttable table{width:100%;border-collapse:collapse;white-space:nowrap;font:10px var(--mono)}.pttable th,.pttable td{padding:6px 8px;text-align:left;border-bottom:1px solid var(--line)}.pttable th{position:sticky;top:0;background:var(--panel2);color:var(--mut)}
.ptactivity{margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}.ptact{display:grid;grid-template-columns:minmax(135px,.45fr) 1fr;gap:10px;padding:6px 0;border-bottom:1px dashed color-mix(in srgb,var(--line) 75%,transparent);font:11px var(--sans)}.ptact time{color:var(--mut);font:10px var(--mono)}.ptact span{min-width:0;overflow-wrap:anywhere}
.pbload{display:flex;align-items:center;gap:8px;color:var(--mut);font:600 11px var(--sans)}.pbspinner{width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--acc);border-radius:50%;animation:pbspin .8s linear infinite}
@keyframes pbspin{to{transform:rotate(360deg)}}
@media(max-width:640px){.ptimeline{padding:8px}.ptitle{align-items:flex-start;flex-direction:column;gap:3px}.ptchart{height:132px}.pttable{max-height:240px}.ptact{grid-template-columns:1fr;gap:2px;min-height:44px}.pwatch{justify-content:stretch}.pwatch .atbtn{min-height:44px;flex:1 1 30%}}
.pevtabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 8px}.pevtable{overflow:auto;max-height:360px;border:1px solid var(--line);border-radius:10px}.pevtable table{width:100%;border-collapse:collapse;white-space:nowrap;font:10.5px var(--mono)}.pevtable th,.pevtable td{padding:7px 9px;text-align:left;border-bottom:1px solid var(--line)}.pevtable th{position:sticky;top:0;background:var(--panel2);color:var(--mut);z-index:1}.pevtable td:nth-child(2){font-family:var(--sans);font-weight:700}.pevem,.pevnote{margin-top:9px;line-height:1.55}.pevcal{margin-top:9px;color:var(--mut);font:500 11px/1.55 var(--sans)}.pevcal summary{cursor:pointer;color:var(--acc);font-weight:800;margin-bottom:5px}
@media(max-width:640px){.pevtabs .atbtn{min-height:40px;flex:1 1 42%}.pevtable{max-height:300px}.pevtable th,.pevtable td{padding:7px}.pevtable table{font-size:10px}}
.prfq{display:flex;flex-direction:column;gap:7px}.prfqcard{padding:10px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--panel2) 88%,transparent)}.prfqcard.ready{border-color:color-mix(in srgb,var(--grass) 55%,var(--line))}.prfqcard.blocked{opacity:.9}.prfqnums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:8px 0}.prfqnums span{display:flex;flex-direction:column;min-width:0;padding:7px;border-radius:8px;background:var(--panel)}.prfqnums b{font:800 13px var(--mono);color:var(--ink);overflow-wrap:anywhere}.prfqnums small{margin-top:2px;color:var(--mut);font:600 9px var(--sans)}.prfqcard details{margin-top:7px}.prfqcard summary{cursor:pointer;color:var(--acc);font:700 10px var(--sans)}.prfqaccept{width:100%;margin-top:9px;background:linear-gradient(135deg,#b52b44,#7c2d72);color:#fff;border-color:transparent}
.prfqtruth{margin-top:7px;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--panel2);overflow-wrap:anywhere}.prfqtruth.verified{border-color:color-mix(in srgb,var(--grass) 60%,var(--line));background:color-mix(in srgb,var(--grass) 8%,var(--panel2))}.prfqtruth.pending{border-color:color-mix(in srgb,var(--gold) 50%,var(--line))}.prfqtruth .lbl{margin-top:4px;line-height:1.5}.prfqerr{margin-top:6px;color:var(--clay);font:700 10px var(--sans);line-height:1.45}
@media(max-width:640px){.prfqnums{grid-template-columns:1fr 1fr}.prfqcard{padding:9px}.prfqaccept{min-height:48px}}

/* Mobile/PWA completion: one honest network surface, install/offline status, keyboard-safe
   viewports, reachable controls, and deliberate horizontal scrolling for dense evidence tables. */
html,body{min-height:100vh;min-height:100dvh}
.pwa-actions,.push-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pwa-status{margin-top:9px;color:var(--mut);font:600 11px/1.55 var(--mono);overflow-wrap:anywhere}
/* ── Offline access, inside the "Mobile app & offline" panel (#kksynccard) ──────────────────
   Four lines of uppercase mono intro, then four more of undifferentiated grey mono, was a wall:
   the state, the controls, the storage number and the endpoint list all carried the same weight,
   so nothing answered "am I ready for a flight?" at a glance. Scoped to #pwamobilecard, so the
   .lbl uppercase treatment everywhere else in the console is untouched. */
#pwamobilecard .lbl{font:500 12.5px/1.6 var(--sans);letter-spacing:0;text-transform:none;color:var(--mut)}
#pwamobilecard .pwa-actions .atbtn{min-height:40px}
.kk-off-hd{display:flex;align-items:center;gap:9px;margin-bottom:6px}
.kk-off-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;background:var(--gold);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 20%,transparent)}
.kk-off-dot.ready{background:var(--grass);box-shadow:0 0 0 3px color-mix(in srgb,var(--grass) 20%,transparent)}
.kk-off-t{font:700 13px var(--sans);color:var(--ink);line-height:1.25}
.kk-off-meta{color:var(--mut);font:600 11px/1.55 var(--mono);overflow-wrap:anywhere}
.kk-off-meta:empty{display:none}
.kk-off-meta+.kk-off-meta{margin-top:3px}
/* the meter only draws when the browser actually reported a quota — Safari and private windows
   return 0, and a full-looking bar there would be a lie about how much room you have */
.kk-off-meter{height:6px;border-radius:999px;background:var(--panel);border:1px solid var(--line);
  overflow:hidden;margin:10px 0 6px}
.kk-off-meter[hidden]{display:none}
.kk-off-meter i{display:block;height:100%;width:0;border-radius:999px;
  background:linear-gradient(90deg,var(--grass),var(--sky));transition:width .5s ease}
.kk-off-meter i.warn{background:linear-gradient(90deg,var(--gold),var(--clay))}
.kk-off-list{margin-top:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.kk-off-list summary{cursor:pointer;padding:8px 11px;color:var(--mut);font:700 10.5px var(--mono);
  letter-spacing:.08em;text-transform:uppercase;list-style:none}
.kk-off-list summary::-webkit-details-marker{display:none}
.kk-off-list summary::after{content:"▸";float:right;transition:transform .2s;display:inline-block}
.kk-off-list[open] summary::after{transform:rotate(90deg)}
.kk-off-list summary:hover{color:var(--ink)}
.kk-off-list > div{max-height:184px;overflow:auto;padding:0 11px 10px;
  color:var(--mut);font:500 10.5px/1.75 var(--mono)}
.kk-off-note{margin-top:9px;padding-top:9px;border-top:1px solid var(--line);
  color:var(--dim);font:500 11px/1.55 var(--sans)}
.kknetbar{position:fixed;left:max(10px,env(safe-area-inset-left,0px));right:max(10px,env(safe-area-inset-right,0px));bottom:calc(env(safe-area-inset-bottom,0px) + 10px);z-index:99998;display:flex;gap:8px;align-items:center;max-width:680px;margin:0 auto;padding:9px 10px;border-radius:13px;background:#3a2a12;color:#ffd9a8;border:1px solid #7a5a2a;box-shadow:0 8px 28px rgba(0,0,0,.48);font:700 11px/1.35 var(--mono)}
.kknetbar.checking{background:#142841;color:#cfe9ff;border-color:#315b82}.kknet-dot{width:9px;height:9px;flex:0 0 auto;border-radius:50%;background:var(--gold);box-shadow:0 0 8px color-mix(in srgb,var(--gold) 75%,transparent)}.kknetbar.checking .kknet-dot{background:var(--sky);box-shadow:0 0 8px color-mix(in srgb,var(--sky) 75%,transparent)}
.kknet-copy{flex:1;min-width:0;overflow-wrap:anywhere}.kknet-retry,.kknet-details{flex:0 0 auto;min-height:38px;border-radius:9px;border:1px solid currentColor;background:transparent;color:inherit;padding:6px 10px;font:800 10px var(--mono);cursor:pointer}.kknet-details{border-color:transparent;opacity:.82}
.tscroll,.pttable,.pevtable{max-width:100%;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--acc) 55%,var(--line)) transparent}
@media(max-width:820px),(max-height:500px) and (max-width:950px) and (pointer:coarse){
  button:not([hidden]),[role="button"],[role="switch"],summary{min-height:44px;min-width:44px}
  button.atbtn.sm,button.ghost.sm,button.ncbtn,button.tp-chip{min-height:44px}
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea{font-size:16px!important;min-height:44px}
  .pwa-actions .atbtn,.push-actions .atbtn{flex:1 1 120px}
  .kknetbar{bottom:calc(env(safe-area-inset-bottom,0px) + 76px);font-size:10.5px}
  .kknet-retry,.kknet-details{min-height:44px;min-width:44px}
  .pttable table,.pevtable table,#fills{min-width:640px}
  .pttable th:first-child,.pttable td:first-child,.pevtable th:first-child,.pevtable td:first-child{position:sticky;left:0;background:var(--panel2);z-index:2;box-shadow:1px 0 0 var(--line)}
}
html[data-keyboard="1"] body{padding-bottom:16px!important}
html[data-keyboard="1"] #botnav{transform:translateY(120%);pointer-events:none}
html[data-keyboard="1"] .installbar,html[data-keyboard="1"] #focuschip{transform:translateX(-50%) translateY(160%)!important;pointer-events:none}
html[data-keyboard="1"] .kknetbar{transform:translateY(160%)!important;pointer-events:none}
html[data-keyboard="1"] .kkdlg-ov,html[data-keyboard="1"] .ovl,html[data-keyboard="1"] #lock,html[data-keyboard="1"] #persona{height:var(--kk-vvh,100dvh);top:var(--kk-vvo,0px);bottom:auto}
html[data-keyboard="1"] #notifcenter,html[data-keyboard="1"] #themepanel{height:var(--kk-vvh,100dvh)}
@media(max-width:420px){.kknetbar{flex-wrap:wrap}.kknet-copy{flex-basis:calc(100% - 20px)}.kknet-retry,.kknet-details{flex:1 1 40%}}

/* Settlement Desk refined workspace — scoped so every other console view keeps its verified shell. */
/* The desk no longer emits .sd-appbar / .sd-rail at all (settlementdesk.js). This rule stays as a
   belt-and-braces guard: a browser holding a CACHED older settlementdesk.js must not paint the fake
   brand bar and Portfolio/Activity rail on top of the real console shell. */
.sd-appbar,.sd-rail{display:none!important}
.sd-inspector-column{min-width:0}
.sd-step-icon{display:block;margin:13px auto 0;color:#251b16}
.sd-payout-check{display:flex;align-items:center;justify-content:center;gap:9px;margin:10px auto 0;padding-top:8px;border-top:3px solid #cf3c3e;color:#332a25;font:650 10px/1.35 var(--sans)}
.sd-payout-check b{font:750 11px var(--sd-hand)}.sd-payout-check span{color:#594b42}
.sd-venue-teaching{color:#4d3d31;font:600 11px/1.5 var(--sans)}
.sd-venue-short{display:none}
.sd-inspector-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.sd-inspector-actions-solo{grid-template-columns:1fr}   /* "Open Casebook" removed — the lone action spans the column instead of sitting half-width */
.sd-inspector-actions button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:46px;padding:8px;border:1px solid #ff7198;border-radius:9px;background:transparent;color:#edf3f8;font:750 11px var(--sans);cursor:pointer}
.sd-inspector-actions button+button{border-color:#48b9f8}
.sd-overview-callout{display:grid;grid-template-columns:26px minmax(0,1fr);gap:9px;margin-top:11px;padding:12px 13px;border:1px solid #d75478;border-radius:9px;background:#101b2d}
.sd-overview-callout>i{color:#ff7198}.sd-overview-callout b{color:#f4f7fa;font:750 13px var(--sans)}.sd-overview-callout p{margin-top:5px;color:#c4cfda;font:500 11px/1.5 var(--sans)}
.sd-kara-summary{border-color:#36baf5;background:#082035}.sd-kara-summary>i{color:#36baf5}
.sd-last-verified{display:flex;align-items:center;gap:8px;margin-top:10px;color:#f3b64b;font:700 11px var(--sans)}
@media(max-width:1199px){.sd-inspector-column{display:contents}}

/* The immersive Settlement takeover (a fixed full-screen layer at >=1200px that hid the header,
   the Knowledge-base pills and the bottom nav, then painted its own app bar + Portfolio/Activity
   rail) has been REMOVED. Settlement now flows inline with the ordinary base .sd-* rules above,
   the same as Intel / Glossary / Library: the page scrolls normally and every real nav control
   stays on screen. Do not reintroduce a body-level layout class for one KB section. */
/* SETTLEMENT TAPE: the drain bar pulses at 1Hz inside the final minute. One class, one
   keyframe — the only CSS the tape adds, and reduced-motion is respected. */
.kk-pulse{animation:kkPulse 1s ease-in-out infinite}
@keyframes kkPulse{0%,100%{opacity:1}50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){.kk-pulse{animation:none}}

/* ═══ E-A · Profile "Command Card" ═══════════════════════════════════════════
   Pinned identity + vitals; every other section shares ONE pane behind a segmented
   sub-nav. Replaces six full-width .eyebrow bars (32px top margin each) — that
   alone was ~300px of pure whitespace. Panes are display-toggled, never re-rendered. */
.pf-id{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:13px 14px;margin-bottom:9px;position:relative;overflow:hidden}
.pf-id::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(320px 120px at 0% 0%,color-mix(in srgb,var(--pink) 13%,transparent),transparent 70%)}
.pf-idm{flex:1 1 130px;min-width:0}
.pf-idname{font:800 16.5px var(--sans);color:var(--ink);letter-spacing:-.01em;line-height:1.2}
.pf-idsub{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px;min-width:0}
.pf-chip{font:700 9.5px var(--sans);letter-spacing:.09em;text-transform:uppercase;padding:3px 7px;border-radius:6px;
  background:var(--panel2);border:1px solid var(--line);color:var(--mut);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.pf-chip.own{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 42%,transparent)}
.pf-ib{flex:0 0 auto;width:34px;height:34px;min-height:34px;border-radius:10px;border:1px solid var(--line);
  background:var(--panel);color:var(--mut);cursor:pointer;font:700 16px var(--sans);line-height:1;display:grid;place-items:center;transition:.14s}
.pf-ib:hover{color:var(--ink);border-color:var(--pink)}
.pf-more{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:11px 13px;margin-bottom:11px;
  border:1px dashed var(--line);border-radius:14px;background:var(--panel)}
.pf-tagline{border:1px solid var(--line);border-radius:6px;padding:1px 6px;font-size:11px;margin-right:5px}

.pf-vitals{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:11px}
.pf-vital{border:1px solid var(--line);border-radius:12px;padding:9px 10px;background:var(--panel);min-width:0}
.pf-vital .k{font:700 8.5px var(--sans);letter-spacing:.11em;text-transform:uppercase;color:var(--dim)}
.pf-vital .v{font:800 18px var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--ink);
  margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-vital .s{font:600 9px var(--sans);color:var(--mut);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-vital .v small{font-size:12px;color:var(--dim);font-weight:700}

.pf-subnav{display:flex;gap:5px;margin:0 0 13px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.pf-subnav::-webkit-scrollbar{display:none}
.pf-subnav button{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:center;gap:6px;
  border:1px solid var(--line);background:var(--panel);color:var(--mut);cursor:pointer;white-space:nowrap;
  font:700 10.5px var(--sans);letter-spacing:.05em;text-transform:uppercase;padding:9px 8px;border-radius:11px;transition:.14s}
.pf-subnav button:hover{color:var(--ink)}
.pf-subnav button.on{color:var(--ink);border-color:color-mix(in srgb,var(--pink) 48%,transparent);
  background:linear-gradient(135deg,color-mix(in srgb,var(--pink) 24%,var(--panel)),color-mix(in srgb,var(--sky) 24%,var(--panel)))}
/* a glyph with a hardcoded accent collapses on the gradient pill — force it to follow the text colour */
.pf-subnav button.on .kk-svgicon [stroke]{stroke:currentColor}

/* Motion only — deliberately NO opacity. A hidden/background tab PAUSES CSS animations at
   currentTime 0, so an opacity:0 start keyframe leaves the pane permanently invisible until
   something re-triggers it (reproduced: visibilityState "hidden" → playState "paused",
   computed opacity 0, content laid out but unpainted). Never gate content visibility on an
   animation completing. */
.pf-pane{animation:pfFade .18s ease}
@keyframes pfFade{from{transform:translateY(5px)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.pf-pane{animation:none}}

.pf-help{margin-top:13px;border-top:1px solid var(--line);padding-top:11px}
.pf-help>summary{cursor:pointer;color:var(--mut);font:600 11px var(--sans);line-height:1.5;list-style:none}
.pf-help>summary::-webkit-details-marker{display:none}
.pf-help>summary::before{content:"\25B8  ";color:var(--sky)}
.pf-help[open]>summary::before{content:"\25BE  "}
.pf-help>summary b{color:var(--ink)}

/* the log-a-call sheet — replaces the always-on Quick Crypto Call block (~220px of standing form) */
.pf-sheet{border:1px dashed color-mix(in srgb,var(--pink) 45%,var(--line));border-radius:12px;padding:11px;margin-top:10px;
  background:color-mix(in srgb,var(--pink) 6%,var(--panel))}

@media(max-width:640px){
  .pf-vitals{grid-template-columns:repeat(2,1fr)}
  .pf-subnav button{flex:0 0 auto;min-width:44px;min-height:44px;padding:9px 11px}
  .pf-subnav button span{display:none}
  .pf-subnav button.on span{display:inline}
}

/* ═══ E-C · Profile on DESKTOP — "Rail & Sheet" master-detail ════════════════
   Same DOM as the mobile Command Card; only the layout changes. Phones keep A
   (vertical space is the scarce resource → stacked, one pane at a time); desktop
   gets C (horizontal space is abundant → identity+vitals share one header row,
   the sub-nav becomes a vertical icon rail, and the detail pane scrolls INSIDE
   itself so the page itself never scrolls).
   `:not(.hidden)` is mandatory — a bare `#profileview{display:grid}` beats the
   .hidden tab-toggle on ID specificity and the view refuses to hide when you
   switch tabs. That exact bug already shipped once on #logsview (see above). */
@media (min-width:1024px){
  #profileview:not(.hidden){
    display:grid;
    grid-template-columns:64px minmax(0,1.02fr) minmax(0,1fr);
    grid-template-areas:
      "id   id    vitals"
      "more more  more"
      "nav  pane  pane";
    column-gap:14px; align-items:start;
    max-width:1240px; margin-left:auto; margin-right:auto;
  }
  #profileview:not(.hidden) > .pf-id{grid-area:id;margin-bottom:12px;align-self:stretch}
  #profileview:not(.hidden) > #pfmorebox{grid-area:more}
  #profileview:not(.hidden) > #pfvitals{grid-area:vitals;margin-bottom:12px}
  #profileview:not(.hidden) > .pf-pane{grid-area:pane;min-width:0}
  #profileview:not(.hidden) > #pfsubnav{grid-area:nav}

  /* the sub-nav becomes a sticky vertical rail — adding a future section costs
     one icon here instead of another screen of height */
  #pfsubnav{flex-direction:column;gap:5px;overflow:visible;padding:6px;margin:0;
    background:var(--panel);border:1px solid var(--line);border-radius:14px;
    position:sticky;top:104px}
  #pfsubnav button{flex:0 0 auto;flex-direction:column;justify-content:center;gap:4px;
    width:100%;padding:10px 3px;border:0;background:transparent;border-radius:10px;
    font-size:8px;letter-spacing:.02em;line-height:1.1}
  #pfsubnav button span{display:block;text-align:center}

  /* detail pane owns its own scroll → the page stays put. Sized so the header row
     + rail + pane all fit one viewport without the document scrolling. */
  .pf-pane{padding-right:4px}
}
/* The "page never scrolls" contract needs vertical room to be honest: pane top (~410-470, the
   sticky .hd) + a usable 360px pane + the footer tail (~90) ≈ 880px. Below that the cap would
   just force a too-small pane AND still scroll the page, so short desktop windows keep natural
   flow instead. Measured: at 1024x768 only ~208px was actually available. */
@media (min-width:1024px) and (min-height:880px){
  /* --pf-panemax is measured by pfSizePanes(); the .hd's height varies with nav wrapping, so a
     constant is wrong at some widths. The calc() is only a pre-JS fallback. */
  .pf-pane{max-height:var(--pf-panemax,calc(100vh - 500px));min-height:360px;overflow:auto;scrollbar-width:thin}
  .pf-pane::-webkit-scrollbar{width:7px}
  .pf-pane::-webkit-scrollbar-thumb{background:var(--line);border-radius:9px}
  /* Community already nests its own #cmfeed scroller — a scroll inside a scroll is hostile,
     so this pane sizes naturally and lets the page scroll instead. */
  #pfpane-community{max-height:none;min-height:0;overflow:visible}
}

/* ════════════════════════════════════════════════════════════════════════════
   AUDITED DEVICE-POTENTIAL REFINEMENTS
   Same Kara visual language; desktop gains persistent context and task-sized
   canvases, while touch-capable layouts keep dependable controls.
   ════════════════════════════════════════════════════════════════════════════ */
/* Typography hierarchy: Segoe/system for reading, mono for evidence labels and numbers. */
h1,h2,h3,.bname,.invhero{text-wrap:balance}
.eyebrow,.setlbl,.tp-sec,.kk-context-k{font-family:var(--mono);font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.big,.num,.kv .v,.bo,.kk-state{font-variant-numeric:tabular-nums}
.card>h2,.card>h3{letter-spacing:-.012em;line-height:1.25}

/* DR1 — mode names now explain the visible effect; each option previews the current colors. */
#proftheme .tp-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#proftheme .tp-chip.tp-mode{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:9px;width:100%;min-height:58px;padding:7px 9px;border-radius:12px;text-align:left}
#proftheme .tp-mode>span:last-child{min-width:0}
#proftheme .tp-mode b{display:block;font:800 11px/1.25 var(--sans);color:var(--ink)}
#proftheme .tp-mode small{display:block;margin-top:2px;font:500 9.5px/1.3 var(--sans);color:var(--mut)}
.tp-mode-preview{display:block;width:58px;height:40px;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);border-radius:9px;background-color:var(--tp-base);box-shadow:inset 0 0 0 1px rgba(255,255,255,.025)}
.tp-mode-preview[data-preview-mode="single"]{background:radial-gradient(44px 34px at 5% 4%,var(--tp-glow),transparent 72%),var(--tp-base)}
.tp-mode-preview[data-preview-mode="dual"]{background:radial-gradient(42px 34px at 4% 4%,var(--tp-glow),transparent 72%),radial-gradient(42px 34px at 96% 5%,var(--tp-glow2),transparent 72%),var(--tp-base)}
.tp-mode-preview[data-preview-mode="multi"],.tp-mode-preview[data-preview-mode="animated"]{background:radial-gradient(40px 32px at 4% 4%,var(--tp-glow),transparent 72%),radial-gradient(40px 32px at 96% 5%,var(--tp-glow2),transparent 72%),radial-gradient(42px 32px at 52% 102%,var(--tp-accent),transparent 72%),var(--tp-base)}
.tp-mode-preview[data-preview-mode="static"]{background:var(--tp-base)}
@media(prefers-reduced-motion:no-preference){.tp-mode-preview[data-preview-mode="animated"]{animation:tpPreviewDrift 3.8s ease-in-out infinite alternate}@keyframes tpPreviewDrift{to{filter:brightness(1.16) saturate(1.1)}}}

/* DR5/DR6/DR7 — a read-only, sticky decision context. State always has text + shape, not color alone. */
/* ── Ask Kara bar · "aurora rail" ─────────────────────────────────────────────────────────────
   Was a flat strip with the title and a long subtitle running together on one line and a bare "→".
   Now the border IS the gradient: a conic ramp in the console's own hues painted into border-box
   while the panel fill holds padding-box, rotated by an @property angle. Browsers without
   @property just get a static gradient hairline, which is the intended fallback. The rotation is
   gated on prefers-reduced-motion and additionally neutered by html[data-motion="reduce"], same as
   the .kk-pfp pulse it sits beside. Hooks unchanged: #karabarav, #karabarsub, [data-kararrow]. */
@property --kkbar-a{syntax:'<angle>';inherits:false;initial-value:0deg}
.kara-bar{position:relative;display:flex;align-items:center;gap:13px;width:100%;margin:0 0 10px;
  padding:11px 13px;text-align:left;cursor:pointer;color:var(--ink);font:inherit;
  border:1px solid transparent;border-radius:17px;
  background:linear-gradient(var(--panel),var(--panel)) padding-box,
    conic-gradient(from var(--kkbar-a,0deg),#f472b6,#a855f7 25%,#4cb9f8 50%,#36d399 72%,#f472b6) border-box;
  box-shadow:0 4px 20px rgba(3,8,22,.40);transition:box-shadow .2s,transform .1s}
.kara-bar::after{content:"";position:absolute;inset:1px;border-radius:16px;pointer-events:none;
  background:radial-gradient(120% 200% at 0% 50%,rgba(244,114,182,.13),transparent 58%)}
.kara-bar>*{position:relative;z-index:1}
.kara-bar:hover{box-shadow:0 10px 30px rgba(3,8,22,.55),0 0 22px rgba(168,85,247,.18)}
.kara-bar:active{transform:translateY(1px)}
.kara-bar:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.kara-bar-av{width:40px;height:40px;padding:2px;flex:0 0 auto;box-shadow:0 4px 16px rgba(244,114,182,.40),inset 0 0 0 1px rgba(255,255,255,.08)}
.kara-bar-av .kk-online{right:-1px;bottom:-1px;width:11px;height:11px;border-width:2px;box-shadow:0 0 6px #22c55e}
.kara-bar-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.kara-bar-t{font:800 15px var(--sans);letter-spacing:-.01em;color:var(--ink);line-height:1.15}
.kara-bar-s{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font:600 9.5px var(--mono);letter-spacing:.11em;color:var(--mut);line-height:1.3}
.kara-bar-go{flex:0 0 auto;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;
  background:linear-gradient(135deg,#f472b6,#4cb9f8);color:#06101f;font:800 15px var(--sans);
  box-shadow:0 3px 14px rgba(76,185,248,.40);transition:transform .2s ease}
.kara-bar:hover .kara-bar-go{transform:translateX(3px)}
@media(prefers-reduced-motion:no-preference){
  .kara-bar{animation:kkBarAurora 9s linear infinite}
  @keyframes kkBarAurora{to{--kkbar-a:360deg}}}
@media(prefers-reduced-motion:reduce){.kara-bar:hover .kara-bar-go{transform:none}}

/* ── WEATHER · native console view ───────────────────────────────────────────────────────────
   Replaces the weather-cockpit iframe. Uses the console's own card/pill/eyebrow vocabulary so the
   section stops reading as a separate product. `.wx-gate` is load-bearing: it is what prints where
   a number is NOT permitted, because the engine reports that metric unavailable. */
.wxnav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
@media(min-width:761px){
  .wxnav{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:10px;margin-bottom:14px}
  .wxnav .atbtn{width:100%;min-height:52px;justify-content:center;border-radius:14px;font-size:12.5px;letter-spacing:.04em;white-space:nowrap}
}
.wx-cities{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.wx-modh{display:flex;align-items:center;gap:8px;font:700 9.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut);margin-bottom:11px}
.wx-modh .rt{margin-left:auto;color:var(--dim);letter-spacing:.1em;text-transform:none}
.wx-empty{padding:13px 14px;border:1px dashed var(--line);border-radius:13px;color:var(--dim);font:600 11px/1.65 var(--mono);letter-spacing:.04em}
.wx-gate{display:inline-block;padding:3px 9px;border-radius:999px;border:1px dashed color-mix(in srgb,var(--gold) 42%,var(--line));
  color:var(--gold);font:700 8.5px var(--mono);letter-spacing:.08em;text-transform:uppercase}
/* hero */
.wx-sky{position:relative;border-radius:20px;overflow:hidden;isolation:isolate;color:#f4f8ff;margin-bottom:12px;
  display:flex;flex-direction:column;gap:6px;padding-bottom:0}
.wx-sky.wx-day{background:linear-gradient(178deg,#0b1740,#1c3a78 34%,#3f6fae 62%,#8f7fa8 82%,#e2975f)}
.wx-sky.wx-dawn{background:linear-gradient(178deg,#0a1230,#24356f 36%,#6d6296 66%,#d98a72 88%,#f0b184)}
.wx-sky.wx-dusk{background:linear-gradient(178deg,#0a1030,#221f52 34%,#5a3f7a 60%,#a85c72 82%,#e08a5c)}
.wx-sky.wx-night{background:linear-gradient(178deg,#05081c,#0d1638 40%,#182247 72%,#25305c)}
.wx-skytop{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:19px 20px 0}
.wx-loc b{font:600 21px var(--sans);letter-spacing:-.01em;display:block}
.wx-loc span{font:600 9.5px var(--mono);letter-spacing:.13em;text-transform:uppercase;color:rgba(244,248,255,.74)}
.wx-settles{font:700 9.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:rgba(244,248,255,.68);text-align:right}
.wx-temp{display:flex;align-items:flex-start;gap:15px;padding:0 20px}
.wx-temp>b{font:200 84px/.92 var(--sans);letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.wx-tmeta{display:flex;flex-direction:column;gap:3px;padding-top:12px;min-width:0}
.wx-cond{font:500 16px var(--sans)}
.wx-hilo{font:600 11.5px var(--mono);color:rgba(244,248,255,.78);letter-spacing:.03em}
.wx-deck{margin:12px;padding:12px 14px;border-radius:15px;background:rgba(8,14,32,.44);border:1px solid rgba(255,255,255,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) auto;gap:14px;align-items:center}
@supports (backdrop-filter:blur(1px)){.wx-deck{backdrop-filter:blur(15px) saturate(150%);-webkit-backdrop-filter:blur(15px) saturate(150%)}}
.wx-thr .k,.wx-diag .k{font:700 8.5px var(--mono);letter-spacing:.13em;text-transform:uppercase;color:rgba(244,248,255,.62);display:block}
.wx-thr .v{font:700 15px var(--sans);display:block;margin-top:3px}
.wx-gates{display:flex;flex-direction:column;gap:6px}
.wx-gates-wide{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}
.wx-grow{display:flex;align-items:center;justify-content:space-between;gap:10px;font:700 9px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:rgba(244,248,255,.7)}
.wx-gates-wide .wx-grow{padding:9px 11px;border:1px solid var(--line);border-radius:11px;color:var(--mut)}
.wx-diag{text-align:right}
.wx-diag .v{font:800 22px var(--sans);font-variant-numeric:tabular-nums;display:block;margin:1px 0}
.wx-diag .n{font:700 8px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
/* path + hours */
.wx-legend{display:flex;gap:13px;font:700 8.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-top:6px}
.wx-legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.wx-hdtop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:11px}
.wx-hdt b{font:600 16px var(--sans);color:var(--ink);display:block}
.wx-hdt span{font:600 9.5px var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--dim);display:block;margin-top:2px}
.wx-hours{display:flex;gap:0;overflow-x:auto;padding-bottom:4px}
.wx-hh{flex:1 0 58px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 2px;border-radius:11px}
.wx-hh.obs{background:rgba(255,255,255,.055)}
.wx-hh.now{background:color-mix(in srgb,var(--gold) 17%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 40%,transparent)}
.wx-hh .h{font:700 9px var(--mono);color:var(--dim)}
.wx-hh.obs .h{color:var(--mut)}.wx-hh.now .h,.wx-hh.now .t{color:var(--gold)}
.wx-hh .t{font:600 13px var(--sans);color:var(--ink);font-variant-numeric:tabular-nums}
.wx-hh.fc .t{color:var(--mut)}
/* calendar */
.wx-cal{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px}
.wx-cd{border:1px solid var(--line);border-radius:15px;padding:11px 8px;background:linear-gradient(180deg,rgba(27,41,74,.5),rgba(12,19,38,.6));
  display:flex;flex-direction:column;align-items:center;gap:5px;min-height:150px;cursor:pointer;color:var(--ink);
  transition:border-color .16s,transform .09s}
.wx-cd:hover{border-color:color-mix(in srgb,var(--sky) 50%,var(--line));transform:translateY(-2px)}
.wx-cd.on{border-color:color-mix(in srgb,var(--sky) 64%,var(--line));background:linear-gradient(180deg,color-mix(in srgb,var(--sky) 15%,transparent),rgba(12,19,38,.7))}
.wx-cd .dow{font:700 8.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.wx-cd .dt{font:700 13px var(--sans)}
.wx-cd .hi{font:300 23px var(--sans);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.wx-cd .lo{font:600 10.5px var(--mono);color:var(--dim)}
.wx-cd .st{font:700 8px var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--dim)}
/* tiles + tables + receipts */
.wx-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:10px;margin-bottom:12px}
.wx-tile{border:1px solid var(--line);border-radius:15px;padding:12px 13px;background:linear-gradient(180deg,rgba(27,41,74,.45),rgba(12,19,38,.6));min-height:98px;display:flex;flex-direction:column}
.wx-tile .k{font:700 8.5px var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--mut)}
.wx-tile .v{font:300 25px var(--sans);color:var(--ink);margin-top:6px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.wx-tile .d{font:500 10.5px var(--sans);color:var(--dim);margin-top:auto;line-height:1.4}
.wx-tablewrap{overflow-x:auto}
.wx-table{width:100%;border-collapse:collapse;min-width:520px}
.wx-table th{font:700 8.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);text-align:left;padding:0 10px 8px 0;white-space:nowrap}
.wx-table td{padding:10px 10px 10px 0;border-top:1px solid color-mix(in srgb,var(--line) 60%,transparent);font:600 12.5px var(--sans);color:var(--ink)}
.wx-ep{display:inline-block;padding:3px 8px;border-radius:999px;font:700 9px var(--mono);letter-spacing:.06em;border:1px solid var(--line);color:var(--dim)}
.wx-ep.g{color:var(--grass);border-color:color-mix(in srgb,var(--grass) 40%,var(--line))}
.wx-prov{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:11px}
.wx-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid var(--line);
  background:rgba(255,255,255,.03);font:700 8.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.wx-chip i{width:6px;height:6px;border-radius:50%;background:currentColor;display:block;flex:0 0 auto}
.wx-chip.ok{color:var(--grass);border-color:color-mix(in srgb,var(--grass) 38%,var(--line))}
.wx-chip.warn{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 38%,var(--line))}
.wx-chip.no{color:var(--clay);border-color:color-mix(in srgb,var(--clay) 36%,var(--line))}
.wx-rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:8px}
.wx-mode{padding:9px 11px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.03)}
.wx-mode b{display:block;font:700 11.5px var(--sans);color:var(--ink)}
.wx-mode span{display:block;font:700 8.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-top:3px}
.wx-mode.live b{color:var(--clay)}
.wx-rec{display:grid;grid-template-columns:112px minmax(0,1fr) auto;gap:11px;padding:11px 0;border-top:1px solid color-mix(in srgb,var(--line) 60%,transparent);align-items:start}
.wx-rec:first-of-type{border-top:0}
.wx-rec .ts{font:700 9.5px var(--mono);color:var(--dim);padding-top:2px}
.wx-rec .bd b{font:700 12.5px var(--sans);color:var(--ink);display:block}
.wx-rec .bd span{font:500 11.5px var(--sans);color:var(--mut);display:block;margin-top:2px;line-height:1.45}
.wx-rec .bd .meta{font:600 8.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-top:5px}
.wx-rr{font:700 8.5px var(--mono);letter-spacing:.09em;text-transform:uppercase;padding:4px 9px;border-radius:999px;border:1px solid var(--line);color:var(--dim);white-space:nowrap}
.wx-rr.open{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 38%,var(--line))}
.wx-rr.lost{color:var(--clay);border-color:color-mix(in srgb,var(--clay) 36%,var(--line))}
/* data-venue wordmarks — no asset exists in app/venue-logos for these, so we print a mark, not a fake logo */
.wx-mark{font:800 21px var(--sans);letter-spacing:-.01em;color:var(--vkt);text-align:center;line-height:1}
.wx-mark small{display:block;font:700 8.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;opacity:.82;margin-top:3px}
.vkwidget[data-venue-card="nws"]{--vkc:#1D4E9C;--vkc2:#0A2352;--vkt:#fff;--vkpill:rgba(0,0,0,.26)}
.vkwidget[data-venue-card="nbm"]{--vkc:#12798F;--vkc2:#053C4C;--vkt:#fff;--vkpill:rgba(0,0,0,.26)}
.vkwidget[data-venue-card="open-meteo"]{--vkc:#C1512F;--vkc2:#6B2413;--vkt:#fff;--vkpill:rgba(0,0,0,.28)}
@media(max-width:760px){
  .wx-deck{grid-template-columns:1fr;gap:11px}.wx-diag{text-align:left}
  .wx-temp>b{font-size:66px}.wx-cal{grid-template-columns:repeat(auto-fit,minmax(92px,1fr))}
  .wx-rec{grid-template-columns:1fr;gap:5px}
}

/* The context strip is REFERENCE FOR A KARA QUESTION, not standing chrome. It cost 62px of vertical
   space on every tab while answering a question nobody had asked yet, so it now rides the Kara
   workspace: `body.kara-workspace-open` is set by karaOpen() and cleared by karaClose(), which makes
   this a CSS-only gate with no second source of truth. #kkcontext (id) outranks .kk-context. */
#kkcontext{display:none}
body.kara-workspace-open #kkcontext{display:grid;animation:kkContextIn .17s cubic-bezier(.2,.8,.25,1)}
@keyframes kkContextIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){body.kara-workspace-open #kkcontext{animation:none}}
.kk-context{position:relative;z-index:35;display:grid;grid-template-columns:auto minmax(140px,.8fr) minmax(220px,1.4fr) auto auto;align-items:center;gap:8px 12px;margin:0 0 10px;padding:9px 12px;border:1px solid color-mix(in srgb,var(--acc) 35%,var(--line));border-radius:13px;background:color-mix(in srgb,var(--panel) 94%,var(--bg));box-shadow:0 8px 24px rgba(3,8,22,.18)}
.kk-context-k{font-size:8.5px;color:var(--mut);white-space:nowrap}
.kk-context-main{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:800 12px var(--sans);color:var(--ink)}
.kk-context-meta{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 10px var(--mono);color:var(--mut)}
.kk-state{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:4px 8px;border:1px solid var(--line);border-radius:999px;font:800 8.5px var(--mono);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;color:var(--mut)}
.kk-state::before{content:"○";font-size:10px}
.kk-state[data-state="ready"]{color:var(--grass);border-color:color-mix(in srgb,var(--grass) 48%,var(--line));background:color-mix(in srgb,var(--grass) 9%,transparent)}.kk-state[data-state="ready"]::before{content:"✓"}
.kk-state[data-state="active"]{color:var(--sky);border-color:color-mix(in srgb,var(--sky) 48%,var(--line));background:color-mix(in srgb,var(--sky) 9%,transparent)}.kk-state[data-state="active"]::before{content:"◆"}
.kk-state[data-state="warn"]{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 52%,var(--line));background:color-mix(in srgb,var(--gold) 9%,transparent)}.kk-state[data-state="warn"]::before{content:"!"}
.kk-state[data-state="blocked"]{color:var(--clay);border-color:color-mix(in srgb,var(--clay) 52%,var(--line));background:color-mix(in srgb,var(--clay) 9%,transparent)}.kk-state[data-state="blocked"]::before{content:"×"}
.kk-context-kara,.kk-context-pin{border:1px solid color-mix(in srgb,var(--acc) 52%,var(--line));background:color-mix(in srgb,var(--acc) 10%,var(--panel));color:var(--ink);cursor:pointer}
.kk-context-kara{min-height:32px;padding:6px 10px;border-radius:9px;font:800 9.5px var(--mono);white-space:nowrap}
.kk-context-pin{display:inline-grid;place-items:center;width:28px;height:28px;padding:0;border-radius:8px;flex:0 0 auto}
.kk-context-kara:hover,.kk-context-pin:hover{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 18%,var(--panel))}
/* (the immersive-Settlement override that hid #kkcontext is gone — the Ask-Kara context strip is
   available on the Settlement desk now, exactly as on every other Knowledge-base section) */

/* DA9 — saved workspaces extend the existing density panel; no parallel settings system. */
.kk-workspace-save{margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}
.kk-workspace-save>div:first-child{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.kk-workspace-save>div:first-child b{font:800 12px var(--sans);color:var(--ink)}
.kk-workspace-save>div:first-child span{font:500 10.5px/1.4 var(--sans);color:var(--mut)}
.kk-workspace-compose{display:flex;gap:7px;margin-top:9px}
.kk-workspace-compose input{flex:1;min-width:0;min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--ink);font:600 12px var(--sans)}
.kk-workspace-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:8px}
.kk-workspace-preset{display:flex;min-width:0;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--panel2) 76%,transparent);overflow:hidden}
.kk-workspace-preset>button:first-child{flex:1;min-width:0;padding:8px 10px;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer}
.kk-workspace-preset b,.kk-workspace-preset span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kk-workspace-preset b{font:800 11px var(--sans)}.kk-workspace-preset span{margin-top:2px;font:600 8.5px var(--mono);color:var(--mut);text-transform:capitalize}
.kk-workspace-delete{flex:0 0 34px;border:0;border-left:1px solid var(--line);background:none;color:var(--mut);cursor:pointer;font-size:15px}.kk-workspace-delete:hover{color:var(--clay);background:color-mix(in srgb,var(--clay) 8%,transparent)}

/* DR13 — opt-in reader fit/zoom; Auto reproduces the existing reader exactly. */
.lib-viewbar{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap;margin:-2px 0 11px;padding-bottom:9px;border-bottom:1px solid var(--line)}
.lib-viewbar>span{margin-right:auto;font:800 8.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.lib-viewbar button{min-height:30px;padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--mut);font:750 9px var(--mono);cursor:pointer}
.lib-viewbar button.on{border-color:var(--acc);color:var(--ink);background:color-mix(in srgb,var(--acc) 12%,transparent)}
.lib-body[data-libfit="fit"] .lib-page{max-width:none}.lib-body[data-libfit="fit"] .lib-block{font-size:13.8px}
.lib-body[data-libfit="90"] .lib-page{max-width:68ch;margin-left:auto;margin-right:auto}.lib-body[data-libfit="90"] .lib-block{font-size:13.5px}.lib-body[data-libfit="90"] .lib-page h2{font-size:18px}
.lib-body[data-libfit="100"] .lib-page{max-width:72ch;margin-left:auto;margin-right:auto}
.lib-body[data-libfit="110"] .lib-page{max-width:74ch;margin-left:auto;margin-right:auto}.lib-body[data-libfit="110"] .lib-block{font-size:16.5px;line-height:1.66}.lib-body[data-libfit="110"] .lib-page h2{font-size:22px}

@media (min-width:1024px){
  /* DR8 — product-specific canvases: dense decision tools use width; reading remains measured. */
  body{max-width:min(97vw,1760px)}
  #sportsview,#weatherview,#autoview,#btcview,#parlayview{width:100%;max-width:1600px}
  #logsview:not(.hidden){width:100%;max-width:1520px}
  #guideview,#glossview,#learnview{width:100%;max-width:1500px}
  #ownerview,#communityview{width:100%;max-width:1180px}
  #profileview:not(.hidden){width:100%;max-width:1380px}

  /* Stable sticky geometry: changing this compositor layer's height during scroll clipped the
     installed Windows app. Desktop keeps the same full header at every scroll position. */
  .kk-context{position:sticky;top:calc(var(--kk-header-height,0px) + 6px)}
}

/* DR3 — secondary controls remain reliably tappable on touch-screen laptops/tablets. */
@media (min-width:821px) and (pointer:coarse){
  .atbtn,.atbtn.sm,button.ghost,button.ghost.sm,.ncbtn,.tp-chip,.lib-fmt,.lib-viewbar button,.kk-context-kara,.kk-context-pin,.kk-workspace-preset button{min-height:44px}
  .kk-context-pin{min-width:44px}
}
@media(max-width:760px){
  #proftheme .tp-chips,.kk-workspace-presets{grid-template-columns:1fr}
  .kk-context{position:static;grid-template-columns:minmax(0,1fr) auto;gap:5px 8px;padding:7px 9px}
  .kk-context-k,.kk-context-meta,.kk-context-kara{display:none}.kk-context-main{grid-column:1}.kk-state{grid-column:2;grid-row:1}
  .kk-workspace-compose{flex-direction:column}.kk-workspace-compose .atbtn{width:100%}
  .lib-viewbar{justify-content:flex-start}.lib-viewbar>span{flex:1 0 100%}.lib-viewbar button{min-height:44px;flex:1 1 auto}
}

/* ══════════════════════════════════════════════════════════════════════════════════════════════
   LOGS DECK — the V2 composite. Layout rules that are load-bearing, not cosmetic:
   • every flex/grid child holding text carries min-width:0, or it refuses to shrink below its
     content width and pushes the P&L column off a 390px screen;
   • the feed panel height is MEASURED by its content, never a calc() constant (a fixed pane
     height is what clipped the Profile command card);
   • the rail collapses BELOW the feed on phones — the receipt opens inline under its own row.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */
.lgstatus{margin:0 0 8px}
.lgstat-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card,#0a1322);font:600 12px var(--mono)}
.lgdot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.lgstate{font:800 12.5px var(--mono);letter-spacing:.04em;color:var(--ink)}
.lgsep,.lgmut{color:var(--mut)}
.lgspacer{flex:1 1 auto;min-width:0}
.lgkebab{background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:8px;width:30px;height:28px;cursor:pointer;font-size:15px;line-height:1;flex:0 0 auto}
.lgkebab:hover{border-color:var(--acc)}
.lgkpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px;margin-bottom:10px}
.lgkpi-t{border:1px solid var(--line);border-radius:11px;padding:8px 10px;background:var(--card,#0a1322);min-width:0}
.lgkpi-l{font:800 8.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--mut)}
.lgkpi-v{font:800 16px var(--mono);color:var(--ink);margin-top:3px;overflow:hidden;text-overflow:ellipsis}
.lgcard{border:1px solid var(--line);border-radius:12px;background:var(--card,#0a1322);padding:9px 12px;min-width:0}
.lgcard-h{display:flex;align-items:center;justify-content:space-between;gap:8px;font:800 9px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--mut);margin-bottom:6px}
.lgcard-h b{font:800 14px var(--mono)}
.lgdeck{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:8px}
.lgeq{cursor:pointer}
.lgeq:hover{border-color:var(--acc)}
.lgheat{margin-bottom:8px}
.lgheat-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.lgheat-l{min-width:0;flex:0 0 auto}
.lgheat-cells{display:flex;gap:4px;flex:1 1 auto;min-width:0;flex-wrap:wrap}
.lgheat-c{flex:1 1 26px;min-width:20px;height:28px;border:1px solid var(--line);border-radius:7px;cursor:pointer;padding:0}
.lgheat-c:hover{border-color:var(--acc)}
.lgtabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px}
.lgtab{background:transparent;border:1px solid var(--line);color:var(--mut);border-radius:999px;padding:6px 14px;font:700 12px var(--sans);cursor:pointer;min-height:34px}
.lgtab.on{border-color:var(--acc);color:var(--acc)}
/* These six are the SECTION nav for Logs/History — the peer of the Knowledge-base pills, not
   incidental chrome. Same desktop treatment as #gsecswitch: a full-width auto-fit track at a weight
   that matches the header nav, wrapping rather than squeezing.
   901px, NOT the guide's 761px: the logs view's own compact overrides live in @media(max-width:900px)
   further down this file, so a 761px floor would overlap 761-900px and lose there (same specificity,
   declared later), silently collapsing these back to 30px pills inside the grid. */
@media(min-width:901px){
  .lgtabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:10px;margin-bottom:14px}
  .lgtab{width:100%;min-height:52px;padding:10px 12px;border-radius:14px;font-size:12.5px;letter-spacing:.04em;white-space:nowrap}
}
.lgsplit{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:10px;align-items:start}
.lgfeedcol{min-width:0}
.lgrail{min-width:0;display:flex;flex-direction:column;gap:9px;position:sticky;top:8px}
.lgday{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 6px;font:800 10px var(--mono);letter-spacing:.06em;color:var(--mut);background:color-mix(in srgb,var(--line) 26%,transparent);border-bottom:1px solid var(--line)}
.lgrow{cursor:pointer}
.lgrow.lgsel{background:color-mix(in srgb,var(--acc) 11%,transparent);box-shadow:inset 3px 0 0 var(--acc)}
.lgtotal{margin-top:8px}
.lgtotal-in{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:var(--card,#0a1322);font:800 11px var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--mut)}
.lgtotal-in b{font:800 17px var(--mono)}
.lgr-h{display:flex;align-items:center;justify-content:space-between;gap:8px;font:800 9px var(--mono);letter-spacing:.08em;color:var(--acc);margin-bottom:6px}
.lgr-title{font:800 16px var(--sans);color:var(--ink);line-height:1.3}
.lgr-sub{font:600 10.5px var(--mono);color:var(--mut);margin-top:2px;overflow-wrap:anywhere}
.lgr-railh{font:800 8.5px var(--mono);letter-spacing:.07em;color:var(--mut);margin:11px 0 5px}
.lgr-rail{position:relative;height:34px;border-radius:8px;background:color-mix(in srgb,var(--line) 40%,transparent);margin-bottom:20px}
.lgr-span{position:absolute;top:12px;height:4px;opacity:.85;border-radius:2px}
.lgr-mk{position:absolute;top:5px;width:3px;height:24px;border-radius:2px;background:var(--ink)}
.lgr-mk.out{background:var(--clay)}
.lgr-lb{position:absolute;top:36px;transform:translateX(-50%);font:700 10px var(--mono);color:var(--ink);white-space:nowrap}
.lgr-lb.out{color:var(--clay)}
.lgr-grid{margin-top:10px;display:flex;flex-direction:column;gap:5px}
.lgr-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font:600 11.5px var(--mono);color:var(--mut);min-width:0}
.lgr-row b{color:var(--ink);text-align:right;min-width:0;overflow-wrap:anywhere}
.lgr-whatif{margin-top:10px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;font:600 11px var(--mono);color:var(--mut);line-height:1.55}
.lgr-acts{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}
/* the inline accordion is the PHONE presentation of the receipt. On desktop the rail already
   shows it, and rendering both put the same receipt on screen twice. */
.lgacc{display:none;padding:11px 13px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--acc) 6%,transparent)}
@media(max-width:900px){.lgacc{display:block}}
.lgbar{display:flex;align-items:center;gap:8px;margin:5px 0;min-width:0}
.lgbar-k{flex:0 0 84px;font:600 11px var(--sans);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lgbar-t{flex:1 1 auto;min-width:0;height:8px;border-radius:4px;background:color-mix(in srgb,var(--line) 55%,transparent);overflow:hidden}
.lgbar-f{display:block;height:100%;border-radius:4px}
.lgbar-v{flex:0 0 auto;font:800 11px var(--mono)}
.lgquiet-c{margin-bottom:10px;border-color:var(--gold)}
.lgquiet-h{font:800 13px var(--sans);color:var(--gold);margin-bottom:4px}
.lgmenu{position:fixed;right:16px;top:120px;z-index:60;background:var(--panel,#0d1526);border:1px solid var(--line);border-radius:12px;padding:6px;min-width:250px;box-shadow:0 18px 44px rgba(0,0,0,.5)}
.lgmi{display:block;width:100%;text-align:left;background:transparent;border:0;color:var(--ink);padding:9px 11px;border-radius:8px;font:600 12px var(--sans);cursor:pointer;min-height:40px}
.lgmi:hover{background:color-mix(in srgb,var(--acc) 14%,transparent)}
.lgmi.danger{color:var(--clay)}
.lgmi-sep{height:1px;background:var(--line);margin:5px 8px}
.lgchartmodal{position:fixed;inset:0;z-index:70;background:rgba(4,8,16,.86);display:flex;align-items:center;justify-content:center;padding:16px}
.lgchart-in{width:min(1180px,100%);max-height:94vh;overflow:auto;background:var(--panel,#0d1526);border:1px solid var(--line);border-radius:16px;padding:14px}
.lgchart-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.lgleg{display:inline-flex;align-items:center;gap:6px;font:700 11px var(--mono);color:var(--mut)}
.lgleg-l{width:16px;height:3px;border-radius:2px}
.lgleg-d{width:16px;height:0;border-top:2px dashed var(--clay)}
.lgheadroom{border:1px solid var(--grass);color:var(--grass);border-radius:999px;padding:6px 13px;font:800 12px var(--mono)}
.lgx{background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:8px;width:34px;height:32px;cursor:pointer;font-size:15px}
.lgchart-ft{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:8px;font:600 10.5px var(--mono);color:var(--mut)}
.lgviews{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:9px}
.lgview{background:transparent;border:1px solid var(--line);color:var(--mut);border-radius:999px;padding:6px 13px;font:700 11.5px var(--sans);cursor:pointer;min-height:34px}
.lgview.on{border-color:var(--acc);color:var(--acc)}
.lgview.add{border-style:dashed}
.lgbench-h{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 2px 9px;font:700 11px var(--mono);color:var(--mut)}
.lgbh,.lgbr{display:grid;grid-template-columns:58px minmax(0,2fr) 44px 92px 52px 52px minmax(70px,.9fr);gap:9px;align-items:center;padding:9px 4px;border-bottom:1px solid var(--line);font:12px var(--mono)}
.lgbh{font:800 8.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--mut)}
.lgbr{cursor:pointer}
.lgbr.lgsel{background:color-mix(in srgb,var(--acc) 11%,transparent);box-shadow:inset 3px 0 0 var(--acc)}
.lgbr-m{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-family:var(--sans);font-weight:600}
.lgbr b{text-align:right;font-weight:800}
.calbadge-row{margin-bottom:10px}
.calbadge{display:inline-block;border-radius:999px;padding:6px 14px;font:800 11.5px var(--mono)}
.calbadge.ok{border:1px solid var(--grass);color:var(--grass)}
.calbadge.bad{border:1px solid var(--clay);color:var(--clay);background:color-mix(in srgb,var(--clay) 18%,transparent)}
.caltiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;margin-bottom:11px}
.caltile{border:1px solid var(--line);border-radius:11px;padding:8px 10px;min-width:0}
.caltile-l{font:800 8.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--mut)}
.caltile-v{font:800 15px var(--mono);color:var(--ink);margin-top:3px;overflow:hidden;text-overflow:ellipsis}
.calcell{min-height:60px;border:1px solid var(--line);border-radius:9px;padding:5px 6px;display:flex;flex-direction:column;overflow:hidden;cursor:pointer}
.calcell.on{outline:2px solid var(--acc);outline-offset:1px}
.calstrip{margin-top:12px}
.caldrawer{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.caldrawer-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font:800 15px var(--sans);color:var(--ink);margin-bottom:3px}
.calcmp{margin-top:11px;border:1px solid var(--line);border-radius:11px;padding:10px 12px}
@media(max-width:900px){
  .lgdeck{grid-template-columns:1fr}
  .lgsplit{grid-template-columns:1fr}
  .lgrail{display:none}
  .lgbh,.lgbr{grid-template-columns:46px minmax(0,1.6fr) 34px 74px minmax(60px,.8fr);gap:6px;font-size:10.5px}
  .lgbh :nth-child(5),.lgbh :nth-child(6),.lgbr :nth-child(5),.lgbr :nth-child(6){display:none}
  .lgkpi{grid-template-columns:repeat(2,1fr)}
  .lgchart-in{padding:10px}
  .lgstat-line{font-size:11px;gap:5px}
}

/* ── phone compaction ──────────────────────────────────────────────────────────────────────────
   The gate is that the FIRST TRADE ROW is reachable without scrolling past the analytics: measured
   top < 900px at 390x844. On a phone the same deck that fits a desktop costs ~1,250px, because
   every strip wraps. So on phones the deck keeps all of its information but sheds its chrome:
   4-up KPI tiles instead of 2-up, half-height charts, a single non-wrapping heat row, and tab
   chips small enough for two rows. Nothing is removed — only tightened. */
@media(max-width:900px){
  .lgstat-line{padding:7px 10px;gap:4px;line-height:1.35}
  .lgstate{font-size:11.5px}
  .lgkpi{grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:7px}
  .lgkpi-t{padding:5px 6px;border-radius:9px}
  .lgkpi-l{font-size:7px;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lgkpi-v{font-size:12.5px;margin-top:1px}
  .lgcard{padding:7px 9px}
  .lgcard-h{font-size:8px;margin-bottom:3px}
  .lgcard-h b{font-size:12px}
  .lgdeck{gap:6px;margin-bottom:7px}
  /* height as a CSS rule beats the inline height attribute the SVG carries */
  #lgdeck svg{height:64px}
  .lgheat{margin-bottom:7px}
  .lgheat-row{gap:8px;flex-wrap:nowrap}
  .lgheat-l{flex:0 0 auto}
  .lgheat-l .lgcard-h{margin:0}
  .lgheat-l b{font-size:13px !important}
  .lgheat-cells{flex-wrap:nowrap;gap:3px}
  .lgheat-c{height:22px;flex:1 1 12px;min-width:12px;border-radius:5px}
  #lgcalopen{padding:5px 9px;min-height:30px;font-size:11px}
  .lgtabs{gap:5px;margin-bottom:7px}
  .lgtab{padding:5px 11px;min-height:30px;font-size:11px}
  .lgtotal-in{padding:9px 11px}
  .lgtotal-in b{font-size:15px}
  .lghead{padding:4px 3px}
}
.lgnonowner{padding:16px 14px;border:1px solid var(--gold);border-radius:12px;background:color-mix(in srgb,var(--gold) 8%%,transparent)}

/* Alerts and engine notes ride the SAME five-column grid as trades — .lgrow-note only softens
   them so the money rows stay dominant. They previously used a separate flex layout, which put
   three different row geometries on one screen and let a full-width sentence swamp the trades
   either side of it. */
.lgrow-note{opacity:.82}
.lgrow-note .lg-title{font-weight:500;color:var(--mut)}
.lgrow-note:hover{opacity:1}
.lg-kind{font:800 8.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mut);
  border:1px solid var(--line);border-radius:5px;padding:1px 5px}
.lg-kind.alert{color:var(--acc);border-color:color-mix(in srgb,var(--acc) 55%,transparent)}
/* the direction arrow sits inline with its percentage in the SIDE column */
.lg-side svg{vertical-align:-1px;margin-right:2px}
@media(max-width:900px){
  .lg-kind{font-size:7.5px;padding:1px 4px}
}
/* Parlay card design lock — distinct, outcome-first treatments by market type. */
#parlayview #pbboard{grid-template-columns:repeat(auto-fill,minmax(248px,1fr));align-items:stretch}
#parlayview #pbboard .pbboardnote{grid-column:1/-1;margin-bottom:0;color:var(--mut)}
#parlayview .pbcard{padding:0;gap:0;min-height:486px;border-radius:18px;background:linear-gradient(180deg,rgba(20,25,51,.98),rgba(10,15,34,.98));box-shadow:0 16px 34px rgba(0,0,0,.22);isolation:isolate}
#parlayview .pbcard:hover{border-color:color-mix(in srgb,var(--acc) 62%,var(--line));transform:translateY(-1px)}
#parlayview .pbcard.on{border-color:var(--grass);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--grass) 45%,transparent),0 16px 34px rgba(0,0,0,.26)}
.pbhero{position:relative;min-height:145px;overflow:hidden;border-bottom:1px solid color-mix(in srgb,var(--line) 76%,transparent)}
.pbhero::after{content:"";position:absolute;inset:auto 0 0;height:48%;background:linear-gradient(transparent,rgba(10,15,34,.9));pointer-events:none}
.pbhero--moneyline{background:radial-gradient(circle at 27% 40%,color-mix(in srgb,var(--acc) 24%,transparent),transparent 52%),linear-gradient(135deg,#17182f,#0b132b)}
.pbhero--prop{background:radial-gradient(circle at 60% 28%,rgba(238,80,161,.24),transparent 53%),linear-gradient(135deg,#1c132c,#09172e)}
.pbplayerart{position:absolute;inset:0;z-index:1;display:flex;align-items:flex-end;justify-content:center;color:color-mix(in srgb,var(--ink) 62%,var(--mut))}
.pbplayerart .pbphoto{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 8px 12px rgba(0,0,0,.38))}
.pbplayersil{display:grid;place-items:center;width:112px;height:112px;margin-bottom:5px;border-radius:50%;background:linear-gradient(135deg,rgba(244,114,182,.18),rgba(76,185,248,.18))}
#parlayview .pbcard .pbteam{position:relative;display:grid;place-items:center;flex:0 0 auto;width:66px;height:66px;border:1px solid color-mix(in srgb,var(--acc) 48%,var(--line));border-radius:50%;overflow:visible;background:rgba(10,15,34,.9);font:900 14px var(--mono);color:var(--mut);box-shadow:0 8px 20px rgba(0,0,0,.34);z-index:3}
#parlayview .pbcard .pbteam img{position:absolute;inset:7%;width:86%;height:86%;object-fit:contain;border-radius:50%;background:transparent}
.pbteamfallback{position:relative;z-index:0}
.pbcheck{position:absolute;right:-3px;bottom:-3px;z-index:4;display:grid;place-items:center;width:24px;height:24px;border:2px solid #081123;border-radius:50%;background:var(--grass);color:#041910;font:1000 14px var(--sans);box-shadow:0 0 16px color-mix(in srgb,var(--grass) 52%,transparent)}
#parlayview .pbhero .pbteam--hero{position:absolute;right:16px;bottom:16px;width:76px;height:76px}
.pbhero--moneyline>.pbplayerart+.pbteam--hero{width:54px;height:54px}
#parlayview .pbhero--logo-only .pbteam--hero{left:50%;right:auto;bottom:27px;width:92px;height:92px;transform:translateX(-50%)}
.pbteam--badge{position:absolute!important;right:16px;bottom:14px;width:52px!important;height:52px!important}
.pbhero--spread{display:flex;align-items:center;justify-content:space-around;padding:22px 20px;background:linear-gradient(160deg,rgba(16,86,76,.36),rgba(7,28,49,.94))}
.pbhero--spread::before{content:"";position:absolute;inset:13px;border:1px solid rgba(106,221,194,.2);border-radius:48%;box-shadow:inset 0 0 0 24px rgba(24,120,100,.05)}
.pbfieldline{position:absolute;left:50%;top:12%;bottom:12%;border-left:1px dashed rgba(151,235,215,.4)}
.pbhero--spread .pbteam--match{width:72px;height:72px}
.pbhero--spread .pbteam.muted{opacity:.42;filter:saturate(.45);transform:scale(.9)}
.pbhero--total{display:flex;flex-direction:column;justify-content:center;gap:18px;padding:14px 22px;background:radial-gradient(circle at 50% 38%,rgba(111,76,180,.22),transparent 55%),linear-gradient(145deg,#13172e,#0b152d)}
.pbmatchmarks{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;gap:14px}
.pbhero--total .pbteam--match{width:62px;height:62px}
.pbversus{color:var(--mut);font:900 18px var(--mono)}
.pbgauge{position:relative;z-index:3;height:6px;border-radius:999px;background:linear-gradient(90deg,#4cb9f8 0 48%,#f472b6 52% 100%);box-shadow:0 0 13px rgba(76,185,248,.2)}
.pbgauge i{position:absolute;top:50%;width:15px;height:15px;border:3px solid #fff;border-radius:50%;background:#f472b6;transform:translate(-50%,-50%);box-shadow:0 0 13px rgba(244,114,182,.65)}
.pbgauge.under i{background:#4cb9f8;box-shadow:0 0 13px rgba(76,185,248,.65)}
.pbcardbody{display:flex;flex:1;min-width:0;flex-direction:column;align-items:stretch;padding:15px 16px 16px;text-align:left}
.pbeyebrow{font:800 9px var(--mono);letter-spacing:.14em;color:var(--mut)}
.pbsubject{margin-top:5px;color:color-mix(in srgb,var(--ink) 82%,var(--mut));font:750 14px/1.25 var(--sans);overflow-wrap:anywhere}
.pboutcome{display:flex;align-items:flex-start;gap:8px;margin-top:8px;color:#fff;font:900 19px/1.12 var(--sans);letter-spacing:-.02em;overflow-wrap:anywhere}
.pboutcomeicon{display:grid;place-items:center;flex:0 0 auto;width:23px;height:23px;border-radius:50%;background:color-mix(in srgb,var(--grass) 18%,transparent);color:var(--grass);font:1000 15px var(--sans);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--grass) 34%,transparent)}
.pboutcomeicon.over{color:#ff7ab6;background:rgba(244,114,182,.14);box-shadow:inset 0 0 0 1px rgba(244,114,182,.3)}
.pboutcomeicon.under{color:#69cafc;background:rgba(76,185,248,.14);box-shadow:inset 0 0 0 1px rgba(76,185,248,.3)}
.pbplain{min-height:14px;margin:5px 0 0 31px;color:var(--mut);font:800 9px/1.35 var(--mono);letter-spacing:.1em}
.pbplain.flush{margin-left:0}
.pbfixture{margin-top:10px;min-height:32px;color:color-mix(in srgb,var(--mut) 88%,transparent);font:600 10px/1.45 var(--sans);overflow-wrap:anywhere}
.pbmetrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:12px;padding:9px 0;border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent)}
.pbmetrics>span{display:flex;min-width:0;flex-direction:column;gap:2px}
.pbmetrics small{color:var(--mut);font:750 8px var(--mono);letter-spacing:.08em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pbmetrics b{color:var(--ink);font:900 16px var(--mono)}
.pbmetrics .pbedge b{color:var(--grass)}
#parlayview .pbcard .pbmeta{justify-content:flex-start;margin-top:8px;min-height:20px}
.pbmarketlink{align-self:flex-start;margin-top:8px;color:#76cfff;text-decoration:none;font:750 10px var(--sans)}
.pbmarketlink:hover,.pbmarketlink:focus-visible{color:#fff;text-decoration:underline}
#parlayview .pbcard .pbadd{margin-top:auto;padding:11px 10px;min-height:44px;white-space:normal;line-height:1.2}
#parlayview .pbcard--spread{border-color:color-mix(in srgb,#4dd6a8 22%,var(--line))}
#parlayview .pbcard--total{border-color:color-mix(in srgb,#8f7cf5 22%,var(--line))}
.pbcard--generic .pbcardbody{padding-top:20px}.pbcard--generic .pboutcome{margin-top:14px}.pbcard--generic .pbplain{margin-left:31px}
@media(max-width:700px){#parlayview #pbboard{grid-template-columns:1fr}#parlayview .pbcard{min-height:0}.pbhero{min-height:154px}.pbcardbody{padding:15px}.pboutcome{font-size:20px}.pbfixture{min-height:0}#parlayview .pbcard .pbmeta span{display:inline-flex}}
@media(prefers-reduced-motion:reduce){#parlayview .pbcard{transition:none}#parlayview .pbcard:hover{transform:none}}
