/* style.css */
:root{--indigo:var(--accent-ink);--azure:var(--accent-ink);--sky:var(--accent);--pale:var(--new);--navy:var(--indigo);--royal:var(--azure);--accent:var(--azure);--bg:#fff;--card:#fff;--soft:var(--surface-2);--muted:var(--ink-2);--chip:var(--surface-2)}
[data-theme=legacy-navy]{--royal:var(--sky);--navy:var(--pale);--card:var(--surface);--soft:var(--surface-2);--ink:#E8ECF6;--muted:#9AA4BD;--chip:#1E2C50;}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;overflow-x:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.45;padding-bottom:76px}
a{color:var(--royal);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:760px;margin:0 auto;padding:0 14px}
header.top{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:flex-end;gap:9px;padding:10px 0 8px;color:var(--ink)}
.brand:hover{text-decoration:none}.brand .mark{height:var(--mark-h,27px);width:auto;display:block;margin-bottom:-3px}
.brand .tag{display:none}
@media(min-width:700px){header.top .brand{--mark-h:50px}.brand .tag{display:block}header.top .wm b{font-size:24px}}
.wm{display:flex;flex-direction:column;line-height:1}.wm b{font-family:"General Sans","Avenir Next","Futura",Inter,sans-serif;font-size:22px;font-weight:600;letter-spacing:-.3px;color:var(--ink)}
[data-theme=legacy-navy] .wm b{color:var(--white)}
.wm small{font-size:8.5px;letter-spacing:2.6px;color:var(--ink-2);margin-top:4px;font-weight:600}
.foot .wm small{display:block}
.toprow{display:flex;align-items:center;justify-content:space-between;gap:8px}
.iconbtn{background:none;border:1px solid var(--line);border-radius:10px;padding:6px 10px;min-height:44px;min-width:44px;color:var(--ink);font-size:14px;cursor:pointer}
.search{position:relative;padding-bottom:9px}.search input{width:100%;border:1px solid var(--line);background:var(--soft);color:var(--ink);border-radius:12px;padding:9px 12px;font-size:15px}
.sugg{position:absolute;left:0;right:0;top:42px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(20,52,64,.12);display:none;z-index:30;overflow:hidden}
.sugg a{display:flex;justify-content:space-between;padding:9px 12px;border-bottom:1px solid var(--line);color:var(--ink)}.sugg a span{color:var(--muted);font-size:13px}
nav.bottom{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid var(--line);display:flex;justify-content:space-around;z-index:25;padding:6px 0 calc(6px + env(safe-area-inset-bottom))}
nav.bottom a{flex:1;min-height:48px;justify-content:center;text-align:center;font-size:11px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px}
nav.bottom a svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8}
nav.bottom a.on{color:var(--royal);font-weight:600}nav.bottom a:hover{text-decoration:none}
h1{font-size:22px;margin:16px 0 4px;letter-spacing:-.3px}h2{font-size:17px;margin:22px 0 8px;letter-spacing:-.2px}h3{font-size:15px;margin:14px 0 6px}
.sub{color:var(--muted);font-size:13.5px;margin:0 0 10px}.muted{color:var(--muted)}.small{font-size:12.5px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:10px 0}
.card.flat{background:var(--soft);border-color:transparent}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.stat{background:var(--soft);border-radius:12px;padding:9px 10px}.stat .k{font-size:11.5px;color:var(--muted)}.stat .v{font-size:16px;font-weight:650;margin-top:2px}
.up{color:var(--up)}.down{color:var(--down)}
.chip{display:inline-block;background:var(--chip);color:var(--navy);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600;margin:2px 4px 2px 0}
[data-theme=legacy-navy] .chip{color:var(--new)}
.chip.live{background:var(--new);color:var(--accent-ink)}.chip.bt{background:var(--line);color:var(--ink-2)}.chip.warn{background:var(--accent-ink);color:var(--white)}
.tabs{display:flex;gap:6px;overflow-x:auto;padding:4px 0 8px;scrollbar-width:none}.tabs a{white-space:nowrap;border:1px solid var(--line);border-radius:999px;padding:11px 14px;line-height:1;font-size:13px;color:var(--ink)}
.tabs a.on{background:var(--navy);border-color:var(--navy);color:var(--white)}
.list{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:10px 0;background:var(--card)}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;min-height:48px;border-bottom:1px solid var(--line);color:var(--ink)}
.row:last-child{border-bottom:none}.row:hover{text-decoration:none;background:var(--soft)}
.row .l{min-width:0;flex:1}.row .t{font-weight:650}.row .n{color:var(--muted);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .r{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.row .r .big{font-weight:650}
details.row{display:block}details.row summary{display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer;list-style:none}
details.row summary::-webkit-details-marker{display:none}details.row .more{padding-top:8px;font-size:13px;color:var(--muted)}
table.t{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
table.t th{text-align:right;font-weight:600;color:var(--muted);font-size:12px;padding:6px 4px;border-bottom:1px solid var(--line)}
table.t td{text-align:right;padding:7px 4px;border-bottom:1px solid var(--line)}table.t th:first-child,table.t td:first-child{text-align:left}
.scrollx{overflow-x:auto}
.news{display:block;padding:11px 12px;border-bottom:1px solid var(--line);color:var(--ink)}.news:hover{text-decoration:none;background:var(--soft)}
.news .h{font-weight:600;font-size:14.5px;line-height:1.35}.news .m{font-size:12px;color:var(--muted);margin-top:3px}
.strip{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none}
.pill{flex:0 0 auto;border:1px solid var(--line);border-radius:12px;padding:7px 10px;min-width:96px;background:var(--card);color:var(--ink)}
.pill b{display:block;font-size:14px}.pill span{font-size:11.5px;color:var(--muted)}
.chart{width:100%;height:auto;display:block}.chart .grid{stroke:var(--line);stroke-width:1}.chart .axis{fill:var(--muted);font-size:9.5px}
.legend{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--muted);margin-top:4px}.lg i{display:inline-block;width:10px;height:3px;border-radius:2px;margin-right:5px;vertical-align:middle}
.grade{display:inline-flex;align-items:center;justify-content:center;width:38px;height:30px;border-radius:8px;font-weight:700;font-size:14px;color:var(--white)}
.gA{background:var(--accent-ink)}.gB{background:var(--accent-ink)}.gC{background:var(--accent-ink)}.gD{background:var(--accent)}.gF{background:var(--ink-3)}.gN{background:var(--ink-3)}
.btn{display:inline-flex;align-items:center;min-height:44px;background:var(--royal);color:var(--white);border:none;border-radius:10px;padding:9px 14px;font-size:14px;font-weight:600;cursor:pointer}
.btn:hover{text-decoration:none;filter:brightness(1.05)}.btn.ghost{background:transparent;color:var(--royal);border:1px solid var(--royal)}.btn.danger{background:var(--down)}
input[type=text],input[type=password],textarea,select{width:100%;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:10px;padding:9px 11px;font-size:15px;font-family:inherit}
textarea{min-height:140px}label{font-size:13px;font-weight:600;display:block;margin:10px 0 4px}
.flash{background:var(--new);color:var(--navy);border-radius:10px;padding:9px 12px;margin:10px 0;font-size:14px}.err{background:var(--new);color:var(--accent-ink);border:1px solid var(--new)}
.note-body{font-size:15.5px;line-height:1.6}.note-body table{border-collapse:collapse;width:100%;font-size:13.5px;margin:8px 0}.note-body td,.note-body th{border-bottom:1px solid var(--line);padding:5px 6px;text-align:left}
.foot{color:var(--muted);font-size:12px;margin:26px 0 10px;border-top:1px solid var(--line);padding-top:10px}
.kv{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}.kv:last-child{border-bottom:none}.kv span:first-child{color:var(--muted)}
.badge{background:var(--down);color:var(--white);border-radius:999px;font-size:10px;padding:0 5px;margin-left:2px}
@media(min-width:700px){.grid3m{grid-template-columns:repeat(3,1fr)}body{font-size:15.5px}}

/* ===================== coteau color system (inherited from Carré v2) (v2) — see BRAND.md ===================== */
:root{
  --indigo:var(--accent-ink);--azure:var(--accent-ink);--sky:var(--accent);--pale:var(--new);
  --card:#FFFFFF;--soft:var(--surface-2);--muted:#55627A;--chip:#E8EEF8;
  --shadow:0 1px 2px rgba(20,52,64,.06),0 4px 14px rgba(20,52,64,.05);
  --up-bg:#E3F6EA;--down-bg:#FDE7E7;
  --c-news:var(--accent-ink);--c-earn:var(--accent-ink);--c-models:var(--accent-ink);--c-port:var(--accent-ink);--c-copy:var(--accent-ink);--c-user:var(--accent-ink);
  --c-ins:var(--accent-ink);--c-res:var(--accent);--c-cat:var(--accent);--c-stock:var(--accent-ink);
  --sec:var(--azure);
  --hero:linear-gradient(120deg,var(--accent-ink) 0%,var(--accent-ink) 58%,var(--accent) 100%);
}
[data-theme=legacy-navy]{--card:var(--surface);--soft:var(--surface-2);--muted:#9FAAC2;--chip:#1E2C50;--ink:#E8ECF6;
  --shadow:0 1px 2px rgba(0,0,0,.3);--up-bg:rgba(52,210,122,.14);--down-bg:rgba(255,122,122,.14);
  --c-models:var(--accent);--c-ins:var(--new);--c-earn:var(--accent);--c-port:var(--accent);--c-copy:var(--accent)}
body[data-sec=news]{--sec:var(--c-news)}body[data-sec=models]{--sec:var(--c-models)}body[data-sec=portfolios]{--sec:var(--c-port)}
body[data-sec=insiders]{--sec:var(--c-ins)}body[data-sec=research]{--sec:var(--c-res)}body[data-sec=events]{--sec:var(--c-earn)}body[data-sec=stock]{--sec:var(--c-stock)}
body{background:var(--bg)}
header.top{background:var(--card);border-bottom:none;box-shadow:0 1px 0 var(--line)}
header.top::after{content:"";display:block;height:3px;background:var(--hero)}
.card,.list{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}
.list{border-top:3px solid var(--sec)}
.card.flat{background:color-mix(in srgb,var(--sec) 8%,var(--card));border:1px solid color-mix(in srgb,var(--sec) 22%,transparent);box-shadow:none}
h2{display:flex;align-items:center;gap:8px}
h2::before{content:"";width:4px;height:16px;border-radius:2px;background:var(--h2,var(--sec));flex:0 0 auto}
h2.s-news{--h2:var(--c-news)}h2.s-earn{--h2:var(--c-earn)}h2.s-models{--h2:var(--c-models)}h2.s-port{--h2:var(--c-port)}
h2.s-ins{--h2:var(--c-ins)}h2.s-res{--h2:var(--c-res)}h2.s-cat{--h2:var(--c-cat)}
.list.acc-model{border-top-color:var(--c-models)}.list.acc-user{border-top-color:var(--c-user)}.list.acc-copy{border-top-color:var(--c-copy)}
.list.acc-earn{border-top-color:var(--c-earn)}.list.acc-ins{border-top-color:var(--c-ins)}.list.acc-res{border-top-color:var(--c-res)}.list.acc-news{border-top-color:var(--c-news)}.list.acc-models{border-top-color:var(--c-models)}
/* hero */
.hero{background:var(--hero);color:var(--white);border-radius:16px;padding:16px 16px 14px;margin:14px 0 6px;box-shadow:0 6px 20px rgba(20,52,64,.25)}
.hero h1{color:var(--white);margin:0 0 4px}.hero p{color:rgba(255,255,255,.88);font-size:13.5px;margin:0 0 10px}
.hero .hchips{display:flex;flex-wrap:wrap;gap:6px}
.hero .hchip{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:4px 10px;font-size:12.5px;font-weight:600;color:var(--white)}
.hero .hchip b{font-weight:700}.hero .hchip.ok{background:rgba(196,224,226,.30)}.hero .hchip.warn{background:rgba(20,52,64,.45)}
/* pills (horizontal strips) */
.pill{border:1px solid var(--line);box-shadow:var(--shadow);border-top:3px solid var(--sec)}
.pill.earn{border-top-color:var(--c-earn)}.pill.model{border-top-color:var(--c-models)}.pill.more{background:var(--soft)}
.pill.earn b{color:var(--c-earn)}.pill.model b{color:var(--c-models)}
/* chips & badges */
.chip{background:var(--chip);color:var(--indigo)}
[data-theme=legacy-navy] .chip{color:var(--new)}
.chip.tk{background:color-mix(in srgb,var(--azure) 12%,var(--card));color:var(--azure);font-weight:700}
.chip.mdl{background:color-mix(in srgb,var(--c-models) 12%,var(--card));color:var(--c-models)}
.chip.up,.chg.up{background:var(--up-bg);color:var(--up)}.chip.down,.chg.down{background:var(--down-bg);color:var(--down)}
.chg{display:inline-block;border-radius:6px;padding:1px 6px;font-weight:650;font-variant-numeric:tabular-nums}
.row .r .big.up,.row .r .big.down{background:var(--up-bg);border-radius:7px;padding:1px 7px;display:inline-block}.row .r .big.down{background:var(--down-bg)}
.b2{display:inline-block;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700;letter-spacing:.2px}
.b2.buy{background:var(--up-bg);color:var(--up)}.b2.sell{background:var(--down-bg);color:var(--down)}
.sx{display:inline-block;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:600;margin:2px 4px 2px 0}
.sx-it{background:var(--new);color:var(--accent-ink)}.sx-hc{background:var(--surface-2);color:var(--accent-ink)}.sx-fin{background:var(--surface-2);color:var(--accent-ink)}
.sx-cd{background:var(--new);color:var(--accent-ink)}.sx-cs{background:var(--line);color:var(--ink-2)}.sx-en{background:var(--new);color:var(--accent-ink)}
.sx-ind{background:var(--line);color:var(--ink-2)}.sx-mat{background:var(--line);color:var(--ink-2)}.sx-ut{background:var(--surface-2);color:var(--accent-ink)}
.sx-re{background:var(--new);color:var(--accent-ink)}.sx-cm{background:var(--new);color:var(--accent-ink)}.sx-na{background:var(--chip);color:var(--muted)}
[data-theme=legacy-navy] .sx{background:var(--chip);color:var(--pale)}
/* stat tiles */
.stat{background:color-mix(in srgb,var(--sec) 7%,var(--card));border:1px solid color-mix(in srgb,var(--sec) 18%,transparent)}
.stat .k{color:color-mix(in srgb,var(--sec) 70%,var(--muted))}
/* tabs, buttons */
.tabs a{background:var(--card)}.tabs a.on{background:var(--sec);border-color:var(--sec);color:var(--white)}
.btn{background:var(--azure)}.btn.ghost{color:var(--azure);border-color:var(--azure);background:var(--card)}
/* model cards */
a.card.mcard{border-left:4px solid var(--c-models)}
a.card.mcard.bt{border-left-color:var(--c-earn)}
/* tables */
table.t th{background:var(--soft)}
.scrollx table.t{background:var(--card);border-radius:10px;overflow:hidden;box-shadow:var(--shadow)}
/* bottom nav */
nav.bottom{background:var(--card);box-shadow:0 -2px 12px rgba(20,52,64,.06)}
nav.bottom a{position:relative}
nav.bottom a.on{color:var(--sec)}
nav.bottom a.on svg{background:color-mix(in srgb,var(--sec) 14%,transparent);border-radius:10px;padding:3px;width:34px;height:28px}
nav.bottom a.on::before{content:"";position:absolute;top:-6px;left:28%;right:28%;height:3px;border-radius:0 0 3px 3px;background:var(--sec)}
.news .h{color:var(--ink)}
.foot{border-top:1px solid var(--line)}
/* ===================== header v3: single clean bar ===================== */
header.top .toprow{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding-top:0;padding-bottom:0}
header.top .brand{padding:0;flex:0 0 auto}
header.top .tb{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.iconbtn{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:12px;background:var(--soft);border:1px solid var(--line);color:var(--ink);padding:0 10px}
.iconbtn:hover{text-decoration:none;background:var(--chip)}
.dnav{display:none}
header.top .search{display:none;padding:0}
header.top .own{display:none}
body.sopen header.top .search{display:block;position:absolute;left:0;right:0;top:61px;background:var(--card);padding:10px 16px;box-shadow:0 8px 18px rgba(20,52,64,.10);z-index:40}
header.top .wrap{position:relative}
body.sopen header.top .search .sugg{left:16px;right:16px;top:56px}
@media(min-width:900px){
  header.top .toprow{min-height:68px;gap:24px}
  .dnav{display:flex;gap:4px;flex:1;justify-content:center}
  .dnav a{color:var(--ink);font-size:14.5px;font-weight:550;padding:10px 12px;border-radius:10px;min-height:44px;display:flex;align-items:center}
  .dnav a:hover{background:var(--soft);text-decoration:none}
  .dnav a.on{color:var(--sec);background:color-mix(in srgb,var(--sec) 10%,transparent)}
  header.top .search{display:block;position:relative;width:220px}
  header.top .search input{padding:9px 12px}
  .sbtn{display:none}
  header.top .own{display:inline-flex}
  nav.bottom{display:none}
  body{padding-bottom:20px}
}
@media(min-width:700px) and (max-width:899px){header.top .own{display:inline-flex}}
@media(max-width:380px){header.top .wm b{font-size:21px}header.top .brand{gap:7px}}
header.top .wrap{padding:0 18px}
@media(min-width:900px){header.top .wrap{max-width:1180px}}
/* ===================== layout pass (8px grid) ===================== */
:root{--s1:8px;--s2:16px;--s3:24px;--r:14px}
main.wrap{padding-top:var(--s1)}
h1{font-size:24px;line-height:1.2;margin:var(--s2) 0 var(--s1);letter-spacing:-.4px}
h2{font-size:16px;margin:var(--s3) 0 var(--s1);letter-spacing:-.1px}
.card{border-radius:var(--r);padding:var(--s2);margin:var(--s1) 0 var(--s2)}
.list{border-radius:var(--r);margin:var(--s1) 0 var(--s2)}
.row{padding:12px var(--s2)}.news{padding:12px var(--s2)}
.sub{font-size:14px;line-height:1.5}
.hero{padding:var(--s2) var(--s2) 14px;margin:var(--s2) 0 var(--s1)}.hero h1{font-size:24px}
.eyebrow{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--sec);background:color-mix(in srgb,var(--sec) 10%,transparent);border-radius:6px;padding:3px 8px}
.phero h1,.shero h1{margin:var(--s1) 0 4px}
.chiprow{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-top:var(--s1);flex-wrap:nowrap;align-items:center}
.chiprow>*{flex:0 0 auto;margin:0}
.tiles-label{font-size:12px;color:var(--muted);font-weight:600;margin:var(--s2) 0 6px;text-transform:uppercase;letter-spacing:.5px}
.rtiles{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.rt{border-radius:10px;padding:8px 4px;text-align:center;background:var(--soft);border:1px solid var(--line);min-width:0}
.rt .k{font-size:11px;color:var(--muted);font-weight:600}.rt .v{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;margin-top:2px;white-space:nowrap}
.rt .s{font-size:10.5px;color:var(--muted);white-space:nowrap;margin-top:1px}
.rt.up{background:var(--up-bg);border-color:transparent}.rt.up .v{color:var(--up)}.rt.down{background:var(--down-bg);border-color:transparent}.rt.down .v{color:var(--down)}
.shead{display:flex;justify-content:space-between;align-items:center;gap:var(--s1)}
.shead h1{font-size:26px;margin:0}.shead .price{font-size:24px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.5px}
.chartbox{margin:var(--s1) -4px var(--s1)}
.shero .rtiles{grid-template-columns:repeat(3,1fr)}
.gtiles{display:grid;grid-template-columns:1fr 1fr;gap:var(--s1);margin:var(--s1) 0 var(--s2)}
.gt{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 12px;box-shadow:var(--shadow)}
.gt summary{display:flex;justify-content:space-between;align-items:center;gap:6px;list-style:none;cursor:pointer;min-height:44px}
.gt summary::-webkit-details-marker{display:none}
.gt .k{font-weight:700;font-size:14px}.gt .s{font-size:11.5px;color:var(--muted)}
.gt[open]{grid-column:1/-1}.gt .more{font-size:12.5px;color:var(--muted);padding-top:6px}
.grid3 .stat .v{font-size:18px}
table.t{font-size:12.5px}
/* logos */
.lgo{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;background:var(--surface);border-radius:8px;border:1px solid var(--line);overflow:hidden;box-shadow:0 1px 2px rgba(20,52,64,.06)}
.lgo img{object-fit:contain;display:block}
.lgo.mono{color:var(--white);font-weight:800;letter-spacing:-.3px;border:none;border-radius:50%}
.lg-row{display:flex;align-items:center;gap:10px;min-width:0}.lg-row .lt{min-width:0;display:block}
.lg-row .lt .n{display:block}
.pill .lg-row{gap:6px;margin-bottom:4px}
.news.nlg{display:flex;gap:12px;align-items:flex-start}.news.nlg .nb{min-width:0;flex:1}
.shead .lgo{border-radius:12px}
@media(max-width:380px){.rt .v{font-size:13.5px}.rt .s{font-size:9.5px}table.t td,table.t th{padding:6px 3px}h1{font-size:22px}.shead .price{font-size:21px}}
@media(min-width:700px){.rtiles{grid-template-columns:repeat(8,1fr)}.shero .rtiles{grid-template-columns:repeat(6,1fr)}.gtiles{grid-template-columns:repeat(3,1fr)}}
/* header v3 */
header.top .toprow{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px}
header.top .brand{padding:0;flex:0 0 auto}
header.top .tb{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.iconbtn{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:12px;background:var(--soft);border:1px solid var(--line);color:var(--ink);padding:0 10px}
.iconbtn:hover{text-decoration:none;background:var(--chip)}
.dnav{display:none}
header.top .search{display:none;padding:0}
header.top .own{display:none}
header.top .wrap{position:relative;padding:0 18px}
body.sopen header.top .search{display:block;position:absolute;left:0;right:0;top:58px;background:var(--card);padding:10px 16px;box-shadow:0 8px 18px rgba(20,52,64,.10);z-index:40}
body.sopen header.top .search .sugg{left:16px;right:16px;top:56px}
@media(min-width:900px){
  header.top .wrap{max-width:1180px}
  header.top .toprow{min-height:68px;gap:24px}
  .dnav{display:flex;gap:4px;flex:1;justify-content:center}
  .dnav a{color:var(--ink);font-size:14.5px;font-weight:550;padding:10px 12px;border-radius:10px;min-height:44px;display:flex;align-items:center}
  .dnav a:hover{background:var(--soft);text-decoration:none}
  .dnav a.on{color:var(--sec);background:color-mix(in srgb,var(--sec) 10%,transparent)}
  header.top .search{display:block;position:relative;width:220px}
  .sbtn{display:none}
  header.top .own{display:inline-flex}
  nav.bottom{display:none}
  body{padding-bottom:20px}
}
@media(min-width:700px) and (max-width:899px){header.top .own{display:inline-flex}}
.l.hasl{position:relative;padding-left:40px;display:block}.l.hasl>.lgo{position:absolute;left:0;top:50%;transform:translateY(-50%)}
details.row summary .l.hasl>.lgo{top:50%}
/* ===================== news home ===================== */
.chipbar{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:12px 0 4px;margin:0 -18px;padding-left:18px;padding-right:18px}
.chipbar::-webkit-scrollbar{display:none}
.fchip{flex:0 0 auto;display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--ink);font-size:13.5px;font-weight:600;white-space:nowrap;box-shadow:var(--shadow)}
.fchip:hover{text-decoration:none}.fchip.on{color:var(--white);border-color:transparent;background:var(--cc,var(--indigo))}
:root{--k-mk:var(--accent-ink);--k-ec:var(--accent-ink);--k-er:var(--accent-ink);--k-te:var(--accent-ink);--k-en:var(--accent-ink);--k-cr:var(--accent);--k-wo:var(--accent-ink);--k-ma:var(--accent-ink);--k-tp:var(--ink);--k-wl:var(--accent)}
.c-mk{--cc:var(--k-mk)}.c-ec{--cc:var(--k-ec)}.c-er{--cc:var(--k-er)}.c-te{--cc:var(--k-te)}.c-en{--cc:var(--k-en)}.c-cr{--cc:var(--k-cr)}.c-wo{--cc:var(--k-wo)}.c-ma{--cc:var(--k-ma)}.c-tp{--cc:var(--k-tp)}.c-wl{--cc:var(--k-wl)}
[data-theme=legacy-navy] .c-tp{--cc:var(--accent-ink)}
.cat{display:inline-block;border-radius:5px;padding:1px 7px;font-size:11px;font-weight:700;letter-spacing:.2px;color:var(--cc);background:color-mix(in srgb,var(--cc) 12%,transparent);margin-right:4px}
.cat-ic{color:var(--white)!important;background:var(--cc)!important;border:none!important;font-weight:800;font-size:14px;border-radius:8px}
.tops{display:grid;gap:8px;margin:8px 0 8px}
.topcard{display:block;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow);color:var(--ink)}
.topcard:hover{text-decoration:none}
.topcard.lead{background:var(--hero);color:var(--chrome-ink);border:none;padding:16px;box-shadow:0 6px 20px rgba(20,52,64,.25)}
.topcard.lead .th{font-size:19px;line-height:1.3}.topcard.lead .tmeta span{color:rgba(255,255,255,.85)}.topcard.lead .cat{background:rgba(255,255,255,.2);color:var(--chrome-ink)}
.topcard.lead .ts{color:rgba(255,255,255,.88)}.topcard.lead .tkp{background:rgba(255,255,255,.16);color:var(--chrome-ink)}
.tmeta{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);margin-bottom:6px}
.th{font-weight:700;font-size:15.5px;line-height:1.35}.ts{font-size:13.5px;margin-top:6px;line-height:1.45}
.ttk{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.tkp{display:inline-flex;align-items:center;gap:5px;background:var(--soft);border-radius:999px;padding:2px 8px 2px 2px;font-size:12px;font-weight:700}
.tkp .lgo{border-radius:50%}
.mstrip{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:8px -18px 0;padding:0 18px 4px}
.ms{flex:0 0 auto;min-width:118px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;box-shadow:var(--shadow);color:var(--ink)}
.ms:hover{text-decoration:none}.ms .k{font-size:11.5px;color:var(--muted);font-weight:600}.ms .v{font-size:18px;font-weight:750;font-variant-numeric:tabular-nums;margin:2px 0}.ms .s{font-size:11px;color:var(--muted)}
.ms.mdl{border-top:3px solid var(--c-models)}
.news .m{display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px}
/* ===================== THEME VARIANTS (body.v-a|v-b|v-c|v-d; ?theme=a..d) ===================== */
/* A — Slate: gray-blue bg, white cards, colored LEFT accents, no gradients */
body.v-a .list{border-top:1px solid var(--line);border-left:4px solid var(--sec)}
body.v-a .list.acc-model{border-left-color:var(--c-models)}body.v-a .list.acc-user{border-left-color:var(--c-user)}body.v-a .list.acc-copy{border-left-color:var(--c-copy)}
body.v-a .list.acc-news{border-left-color:var(--c-news)}body.v-a .list.acc-ins{border-left-color:var(--c-ins)}body.v-a .list.acc-models{border-left-color:var(--c-models)}
body.v-a .list,body.v-a .list.acc-model,body.v-a .list.acc-user,body.v-a .list.acc-copy,body.v-a .list.acc-news,body.v-a .list.acc-ins,body.v-a .list.acc-models{border-top-color:var(--line)}
body.v-a .card{border-left:4px solid var(--sec)}
body.v-a .hero{background:var(--card);color:var(--ink);border:1px solid var(--line);border-left:4px solid var(--sec);box-shadow:var(--shadow)}
body.v-a .hero h1{color:var(--ink)}body.v-a .hero p{color:var(--muted)}
body.v-a .hero .hchip{background:var(--chip);border-color:transparent;color:var(--indigo)}
body.v-a .topcard.lead{background:var(--card);color:var(--ink);border:1px solid var(--line);border-left:4px solid var(--azure);box-shadow:var(--shadow)}
body.v-a .topcard.lead .tmeta span{color:var(--muted)}body.v-a .topcard.lead .cat{background:color-mix(in srgb,var(--cc) 12%,transparent);color:var(--cc)}
body.v-a .topcard.lead .ts{color:var(--muted)}body.v-a .topcard.lead .tkp{background:var(--soft);color:var(--ink)}
body.v-a .topcard{border-left:4px solid var(--line)}
body.v-a .ms,body.v-a .pill{border-top-width:1px;border-left:4px solid var(--sec)}body.v-a .ms.mdl{border-top:1px solid var(--line);border-left-color:var(--c-models)}body.v-a .pill.earn{border-top-color:var(--line);border-left-color:var(--c-earn)}
body.v-a header.top::after{background:var(--line);height:1px}

/* B — Tinted: soft tinted fills per section, bold colored headers; most colorful */
body.v-b{--bg:var(--surface-2)}
body.v-b .list,body.v-b .card{background:color-mix(in srgb,var(--sec) 6%,var(--surface));border-color:color-mix(in srgb,var(--sec) 20%,transparent);border-top-width:1px}
body.v-b .list.acc-model,body.v-b .list.acc-models{background:var(--new);border-color:var(--new)}body.v-b .list.acc-copy{background:var(--new);border-color:var(--new)}
body.v-b .list.acc-user,body.v-b .list.acc-news{background:var(--new);border-color:var(--new)}body.v-b .list.acc-ins{background:var(--new);border-color:var(--new)}
body.v-b .row,body.v-b .news{border-bottom-color:color-mix(in srgb,var(--sec) 14%,transparent)}
body.v-b h2{color:var(--h2,var(--sec));font-size:17px;font-weight:800;text-transform:none}
body.v-b h2::before{width:22px;height:22px;border-radius:7px;background:color-mix(in srgb,var(--h2,var(--sec)) 18%,transparent);box-shadow:inset 0 0 0 6px color-mix(in srgb,var(--h2,var(--sec)) 70%,transparent)}
body.v-b .hero{background:linear-gradient(135deg,var(--new),var(--new));color:var(--ink);box-shadow:none;border:1px solid var(--new-edge)}
body.v-b .hero h1{color:var(--indigo)}body.v-b .hero p{color:var(--muted)}body.v-b .hero .hchip{background:var(--surface);border-color:var(--new-edge);color:var(--indigo)}
body.v-b .topcard.lead{background:linear-gradient(135deg,var(--new),var(--new));color:var(--ink);box-shadow:none;border:1px solid var(--new)}
body.v-b .topcard.lead .tmeta span,body.v-b .topcard.lead .ts{color:var(--muted)}body.v-b .topcard.lead .cat{background:color-mix(in srgb,var(--cc) 14%,var(--surface));color:var(--cc)}body.v-b .topcard.lead .tkp{background:var(--surface);color:var(--ink)}body.v-b .topcard.lead .th{color:var(--indigo)}
body.v-b .topcard{background:color-mix(in srgb,var(--azure) 5%,var(--surface))}
body.v-b .ms{background:var(--new);border-color:var(--new)}body.v-b .ms.mdl{background:var(--new);border-color:var(--new)}
body.v-b .pill.earn{background:var(--new);border-color:var(--new)}
body.v-b .gt{background:color-mix(in srgb,var(--azure) 6%,var(--surface))}
body.v-b .rt{border:none}body.v-b .shero,body.v-b .phero{background:var(--surface)}
body.v-b .fchip{background:color-mix(in srgb,var(--cc,var(--azure)) 9%,var(--surface));border-color:color-mix(in srgb,var(--cc,var(--azure)) 25%,transparent);color:var(--cc,var(--ink))}
body.v-b .fchip.on{color:var(--white)}

/* C — Navy Pro: dark terminal-lite (forced dark tokens), sky/azure accents, compact, tabular numbers */
body.v-c{--card:var(--ink);--soft:#17264A;--line:var(--ink);--ink:var(--surface-2);--muted:#8E9BB8;--chip:var(--ink);
  --up-bg:rgba(59,219,138,.12);--down-bg:rgba(255,107,107,.12);--c-models:var(--accent);--c-ins:var(--new);--c-earn:var(--accent);--c-port:var(--accent);--c-copy:var(--accent);--sec:var(--accent);
  --shadow:none;--hero:linear-gradient(120deg,var(--ink) 0%,#1A4450 60%,var(--accent-ink) 100%)}
body.v-c header.top{background:var(--bg);box-shadow:0 1px 0 var(--chrome)}body.v-c header.top::after{background:linear-gradient(90deg,var(--accent-ink),var(--accent-ink) 35%,var(--accent-ink) 70%,var(--accent));height:2px}
body.v-c .wm b{color:var(--white)}body.v-c .iconbtn{background:var(--ink);border-color:var(--ink);color:var(--surface-2)}
body.v-c .list,body.v-c .card{border-radius:10px;border-top-width:2px}
body.v-c .row,body.v-c .news{padding:10px 14px}
body.v-c h2{text-transform:uppercase;font-size:12.5px;letter-spacing:1.2px;color:var(--muted)}
body.v-c h2::before{background:var(--h2,var(--sky));width:3px;height:12px}
body.v-c .hero{border:1px solid var(--ink);box-shadow:none}
body.v-c .topcard.lead{background:linear-gradient(120deg,var(--chrome) 0%,var(--accent-ink) 65%,var(--accent-ink) 140%);border:1px solid var(--accent-ink);box-shadow:none}
body.v-c .ms .v,body.v-c .rt .v,body.v-c .row .r,body.v-c table.t,body.v-c .shead .price{font-family:"SF Mono","JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;letter-spacing:-.3px}
body.v-c .fchip{background:var(--ink);border-color:var(--ink);color:var(--accent-ink);box-shadow:none}
body.v-c .chip.tk{background:rgba(125,185,190,.12);color:var(--accent)}body.v-c .chip{background:var(--ink);color:var(--new)}
body.v-c .lgo{border-color:var(--ink)}body.v-c nav.bottom{background:var(--bg);border-top-color:var(--new-edge)}
body.v-c .sx{background:var(--ink);color:var(--new)}body.v-c .eyebrow{color:var(--accent)}
body.v-c table.t th{background:var(--accent)}

/* D — Gradient Hero: light bg, indigo→azure gradient heroes + gradient stat tiles, clean white cards */
body.v-d{}
body.v-d .list{border-top:1px solid var(--line)}body.v-d .card{border-radius:16px}
body.v-d .hero{border-radius:20px;padding:20px 18px}
body.v-d .phero,body.v-d .shero{background:var(--card)}
body.v-d .phero{background:var(--hero);color:var(--white);border:none;box-shadow:0 8px 24px rgba(20,52,64,.25)}
body.v-d .phero h1,body.v-d .phero .sub,body.v-d .phero .tiles-label{color:var(--white)}body.v-d .phero .sub{opacity:.88}body.v-d .phero .eyebrow{background:rgba(255,255,255,.18);color:var(--white)}
body.v-d .phero .rt{background:rgba(255,255,255,.14);border:none}body.v-d .phero .rt .k,body.v-d .phero .rt .s{color:rgba(255,255,255,.8)}
body.v-d .phero .rt.up .v{color:var(--up)}body.v-d .phero .rt.down .v{color:var(--down)}body.v-d .phero .rt .v{color:var(--white)}
body.v-d .phero .chip{background:rgba(255,255,255,.16);color:var(--white)}
body.v-d .ms{background:linear-gradient(135deg,var(--accent-ink),var(--accent-ink));color:var(--white);border:none;box-shadow:0 4px 14px rgba(74,144,152,.25)}
body.v-d .ms .k,body.v-d .ms .s{color:rgba(255,255,255,.82)}body.v-d .ms .v.up,body.v-d .ms .chg.up{color:var(--up);background:none}body.v-d .ms .v.down,body.v-d .ms .chg.down{color:var(--down);background:none}
body.v-d .ms:nth-child(2){background:linear-gradient(135deg,var(--accent-ink),var(--accent))}body.v-d .ms.mdl{background:linear-gradient(135deg,var(--accent-ink),var(--accent-ink))}
body.v-d .stat{background:linear-gradient(135deg,var(--new),var(--new));border:none}
body.v-d .gt{border:none;box-shadow:0 2px 10px rgba(20,52,64,.07)}
body.v-d .rt{border:none}
body.v-d .shero{border:none;box-shadow:0 6px 20px rgba(20,52,64,.08)}
body.v-d .fchip{box-shadow:none}
body.v-b .fchip.on{background:var(--cc,var(--indigo));border-color:transparent;color:var(--white)}
/* ===================== wordmark variants ===================== */
.wm b{font-family:"General Sans","Avenir Next",Inter,sans-serif;font-weight:600;letter-spacing:-.2px}
.wm small,.wm .tag{text-transform:uppercase;font-weight:500;letter-spacing:1.6px;color:var(--muted)}
/* stacked: tagline under "Carré", ~45% size */
body.wm-stacked header.top .wm{flex-direction:column;align-items:flex-start}
body.wm-stacked header.top .wm b{font-size:21px;line-height:1}
body.wm-stacked header.top .wm .tag{display:block;font-size:7.6px;letter-spacing:1.5px;margin-top:3px;white-space:nowrap}
body.wm-stacked header.top .brand .mark{height:30px}
/* inline: tagline right of "Carré" on the same baseline, ~50% size */
body.wm-inline header.top .wm{flex-direction:row;align-items:baseline;gap:8px}
body.wm-inline header.top .wm b{font-size:20px;line-height:1}
body.wm-inline header.top .wm .tag{display:inline;font-size:9.5px;letter-spacing:1.4px;white-space:nowrap;margin:0;padding-left:8px;border-left:1px solid var(--line)}
body.wm-inline header.top .brand .mark{height:24px}
@media(max-width:400px){body.wm-inline header.top .wm .tag{font-size:8px;letter-spacing:1px;padding-left:6px}body.wm-inline header.top .wm b{font-size:18px}body.wm-inline header.top .brand{gap:6px}}
header.top .brand{align-items:center}
header.top .brand .mark{margin-bottom:0}
header.top .toprow{gap:8px}
.menubtn{margin-right:2px}
header.top .tb{margin-left:auto}
/* ===================== drawer ===================== */
.dov{position:fixed;inset:0;background:rgba(20,52,64,.45);opacity:0;pointer-events:none;transition:opacity .2s;z-index:60}
.drawer{position:fixed;top:0;bottom:0;left:0;width:min(86vw,320px);background:var(--card);z-index:61;transform:translateX(-102%);transition:transform .22s ease;overflow-y:auto;box-shadow:8px 0 30px rgba(20,52,64,.18);padding:0 0 24px}
body.dopen .dov{opacity:1;pointer-events:auto}body.dopen .drawer{transform:none}body.dopen{overflow:hidden}
.dhead{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 12px 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--card);z-index:2}
.dhead .brand{padding:0;gap:9px;align-items:center}.dhead .mark{height:30px}.dhead .wm b{font-size:20px}.dhead .wm small{font-size:7.6px;margin-top:3px}
.dgrp{padding:10px 10px 4px}.dgt{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--muted);padding:6px 10px 4px}
.dnav2 a{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 10px;border-radius:10px;color:var(--ink);font-size:15px;font-weight:500}
.dnav2 a:hover{background:var(--soft);text-decoration:none}.dnav2 a svg{color:var(--muted);flex:0 0 auto}
.dnav2 a.on{background:color-mix(in srgb,var(--azure) 12%,transparent);color:var(--azure);font-weight:650}.dnav2 a.on svg{color:var(--azure)}
.dnav2 a em{margin-left:auto;font-style:normal;font-size:10.5px;font-weight:700;color:var(--muted);background:var(--soft);border-radius:5px;padding:1px 6px}
/* ===================== Slate background exploration (?bg=s1..s6, ds) — use with theme A ===================== */
body[data-bg=s1]{--bg:#E3E9F1}
body[data-bg=s2]{--bg:#D9E1EC;--line:#D2DBE7}
body[data-bg=s3]{--bg:#CDD7E3;--line:#C9D3E0;--muted:#4D5A70;--shadow:0 1px 2px rgba(20,52,64,.08),0 4px 14px rgba(20,52,64,.07)}
body[data-bg=s4]{--bg:#C3CEDB;--line:#C2CCDA;--muted:#46536A;--shadow:0 1px 2px rgba(20,52,64,.10),0 6px 16px rgba(20,52,64,.08)}
body[data-bg=s5]{--bg:#D6DEEA;--line:#CDD8E8;--muted:#4D5A72}
body[data-bg=s6]{--bg:#AEBBCB;--line:#B7C3D2;--muted:#3F4B60;--shadow:0 1px 2px rgba(20,52,64,.12),0 6px 18px rgba(20,52,64,.10)}
body[data-bg=s3] .sub,body[data-bg=s4] .sub,body[data-bg=s6] .sub,body[data-bg=s3] main>.small,body[data-bg=s4] main>.small,body[data-bg=s6] main>.small{color:var(--ink-2)}
body[data-bg=s6] .foot,body[data-bg=s4] .foot{color:var(--ink-2)}
body[data-bg=s4] header.top,body[data-bg=s6] header.top{background:var(--surface-2)}
body[data-bg=s4] .fchip,body[data-bg=s6] .fchip{border-color:transparent}
/* dark slate: graphite-blue, not navy */
body[data-bg=ds]{--bg:#2B3645;--card:#364356;--soft:#3E4C61;--line:#4A5970;--ink:#EEEDEA;--muted:#B3BECD;--chip:#44536A;
  --up-bg:rgba(74,222,149,.14);--down-bg:rgba(255,128,128,.14);--c-models:var(--accent);--c-ins:var(--new);--c-earn:var(--accent);--c-port:var(--accent);--c-copy:var(--accent);
  --shadow:0 1px 2px rgba(0,0,0,.25),0 4px 12px rgba(0,0,0,.18)}
body[data-bg=ds] header.top{background:var(--chrome);box-shadow:0 1px 0 var(--ink-3)}body[data-bg=ds] .wm b{color:var(--surface-2)}
body[data-bg=ds] .iconbtn{background:var(--chrome);border-color:var(--ink-3);color:var(--ink-3)}
body[data-bg=ds] .chip{background:var(--ink-3);color:var(--accent-ink)}body[data-bg=ds] .chip.tk{background:rgba(125,185,190,.16);color:var(--new-edge)}
body[data-bg=ds] nav.bottom{background:var(--chrome);border-top-color:var(--ink-3)}
body[data-bg=ds] .fchip{background:var(--chrome);border-color:var(--ink-3);color:var(--ink-3)}
body[data-bg=ds] .topcard.lead .cat{color:var(--new-edge)}
/* ===================== FINAL: light = D Gradient Hero, dark = C Navy Pro; inline lowercase wordmark ===================== */
.wm b{font-family:"General Sans","Avenir Next",Inter,sans-serif}
body.wm-inline header.top .wm,.dhead .wm,.foot .wm{flex-direction:row;align-items:baseline;gap:7px}
body.wm-inline header.top .wm b,.dhead .wm b{font-size:20px;font-weight:600;letter-spacing:-.3px;line-height:1}
body.wm-inline header.top .wm .tag,.dhead .wm .tag,.foot .wm small{display:inline;font-size:11px;font-weight:500;letter-spacing:.2px;text-transform:none;color:var(--muted);margin:0;padding:0;border:none;white-space:nowrap}
body.wm-inline header.top .brand .mark,.dhead .mark{height:24px;width:auto}
header.top .brand{gap:7px}
header.top .toprow{gap:6px}
.dtheme{display:flex;align-items:center;gap:12px;width:calc(100% - 20px);margin:10px 10px 0;min-height:44px;padding:0 10px;border-radius:10px;border:1px solid var(--line);background:var(--soft);color:var(--ink);font-size:15px;font-weight:500;cursor:pointer}
@media(max-width:430px){header.top .wrap{padding:0 12px}}
@media(max-width:400px){
  header.top .themebtn{display:none}          /* theme toggle moves into the drawer on small phones; search stays */
  body.wm-inline header.top .wm b{font-size:19px}
  body.wm-inline header.top .wm .tag{font-size:10.5px}
  body.wm-inline header.top .brand .mark{height:22px}
  header.top .brand{gap:6px}
  .wm{gap:6px!important}
}
@media(min-width:900px){body.wm-inline header.top .wm b{font-size:22px}body.wm-inline header.top .wm .tag{font-size:12px}body.wm-inline header.top .brand .mark{height:28px}}
/* dark (Navy Pro) polish for drawer + header */
body.v-c .drawer,body.v-c .dhead{background:var(--chrome)}body.v-c .dov{background:rgba(0,0,0,.55)}
body.v-c .dnav2 a.on{background:rgba(125,185,190,.14);color:var(--accent)}body.v-c .dnav2 a.on svg{color:var(--accent)}
body.v-c .dtheme{background:var(--ink);border-color:var(--ink);color:var(--surface-2)}
body.v-c .wm .tag{color:var(--ink-3)}
/* light (Gradient Hero) header */
body.v-d header.top{background:var(--surface)}
.chipbar,.mstrip{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}
/* Wordmark tagline: ALL CAPS, letterspaced (Jason, Oct 18) */
body.wm-inline header.top .wm .tag,.dhead .wm .tag,.foot .wm small{text-transform:uppercase;letter-spacing:.1em;font-size:9.5px;font-weight:600}
@media(max-width:400px){body.wm-inline header.top .wm .tag{font-size:8.5px;letter-spacing:.09em}}
@media(min-width:900px){body.wm-inline header.top .wm .tag{font-size:11px}}
/* News: GICS sector chips + pills (light / dark) */
.s-it{--cc:var(--accent-ink)}.s-cm{--cc:var(--accent-ink)}.s-cd{--cc:var(--accent-ink)}.s-cs{--cc:var(--accent-ink)}.s-hc{--cc:var(--accent-ink)}.s-fin{--cc:var(--accent-ink)}
.s-ind{--cc:var(--ink-2)}.s-en{--cc:var(--accent-ink)}.s-mat{--cc:var(--ink-2)}.s-ut{--cc:var(--accent-ink)}.s-re{--cc:var(--accent-ink)}.s-na{--cc:var(--ink-2)}
[data-theme=legacy-navy] .s-it{--cc:var(--accent)}[data-theme=legacy-navy] .s-cm{--cc:var(--accent)}[data-theme=legacy-navy] .s-cd{--cc:var(--new)}[data-theme=legacy-navy] .s-cs{--cc:var(--new-edge)}
[data-theme=legacy-navy] .s-hc{--cc:var(--new-edge)}[data-theme=legacy-navy] .s-fin{--cc:var(--accent)}[data-theme=legacy-navy] .s-ind{--cc:#A9B6CB}[data-theme=legacy-navy] .s-en{--cc:var(--accent)}
[data-theme=legacy-navy] .s-mat{--cc:#B3BECD}[data-theme=legacy-navy] .s-ut{--cc:var(--accent)}[data-theme=legacy-navy] .s-re{--cc:var(--new)}[data-theme=legacy-navy] .s-na{--cc:#9AA6BF}
.chipsep{flex:0 0 1px;align-self:stretch;margin:6px 2px;background:var(--line)}
.news .m .cat{margin-right:3px}
body.v-c .fchip.on{background:color-mix(in srgb,var(--cc,var(--accent-ink)) 58%,var(--chrome));color:var(--white);border-color:transparent}
body.v-c .fchip.c-tp.on{background:var(--accent-ink);color:var(--white)}
body.v-c .topcard.lead .cat{background:rgba(255,255,255,.14);color:var(--chrome-ink)}
body.v-d .topcard.lead .cat{background:rgba(255,255,255,.2);color:var(--chrome-ink)}
/* Wordmark v-final (Jason, Oct 18): "General Sans" 600 lowercase 'carré' + "General Sans" 500 ALL-CAPS tagline, same baseline */
body.wm-inline header.top .wm,.dhead .wm,.foot .wm{display:inline-flex;flex-direction:row;align-items:baseline}
body.wm-inline header.top .wm b,.dhead .wm b,.foot .wm b{font-family:"General Sans","Avenir Next",Inter,sans-serif;font-weight:600;text-transform:none}
body.wm-inline header.top .wm .tag,.dhead .wm .tag,.foot .wm small{font-family:"General Sans","Avenir Next",Inter,sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.12em;font-size:9.5px;line-height:1;align-self:baseline}
@media(max-width:400px){body.wm-inline header.top .wm .tag{font-size:8.5px;letter-spacing:.12em}}
@media(min-width:900px){body.wm-inline header.top .wm .tag{font-size:11px}}
/* model detail: factor grid, checklist, live-only */
.fxgrid{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.fxgrid span{background:var(--soft,var(--surface-2));border:1px solid var(--line);border-radius:8px;padding:3px 8px;font-size:12px;font-weight:600}
.fxgrid i{font-style:normal;color:var(--muted);font-weight:500;margin-right:4px}
.cklist{display:grid;gap:3px;margin-top:8px;font-size:12.5px}.cklist .ok{color:var(--azure,var(--accent-ink))}.cklist .no{color:var(--muted)}
.lonly{margin-top:8px}.basis{border-left:3px solid var(--azure,var(--accent))}
body.v-c .fxgrid span{background:var(--ink);border-color:var(--ink)}
/* ---------- Valuation & fundamentals ---------- */
.s-val{--sc:var(--accent-ink)}
.bline{border-left:4px solid var(--muted)}.bline.pos{border-left-color:var(--up)}.bline.neg{border-left-color:var(--down)}
.bl-v{font-family:"General Sans",Inter,sans-serif;font-weight:600;font-size:22px;margin:2px 0 4px;color:var(--ink)}
.bline.pos .bl-v{color:var(--up)}.bline.neg .bl-v{color:var(--down)}
.bl-list{display:grid;gap:6px;margin-top:10px}.bl-row{display:grid;grid-template-columns:18px 1fr auto;gap:8px;align-items:baseline;font-size:13.5px}
.bl-k{color:var(--muted)}.bl-t{font-weight:600;text-align:right}.bl-ic.g{color:var(--accent-ink)}.bl-ic.b{color:var(--ink-3)}.bl-ic.n{color:var(--muted)}
.scen{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}
.sc{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px;min-width:0}
.sc .k{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.sc .v{font-size:20px;font-weight:700;margin:2px 0}
.sc .s{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.3}.sc-base{border-color:var(--azure,var(--accent));box-shadow:0 0 0 1px var(--azure,var(--accent)) inset}
.dcfform{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.dcfform label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);font-weight:600}
.dcfform input{min-height:44px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font-size:16px;background:var(--card);color:var(--ink);width:100%;box-sizing:border-box}
.dcfout{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:12px 0 4px;padding:10px 12px;border-radius:10px;background:var(--soft,var(--surface-2))}
.dcfout b{font-size:22px}.dcfout span:first-child{font-size:13px;color:var(--muted)}
.pill2{display:inline-block;font-size:11px;font-weight:700;border-radius:6px;padding:1px 6px;margin-top:2px}.pill2.up{background:rgba(15,138,95,.12);color:var(--up)}.pill2.down{background:var(--down-bg,rgba(208,36,36,.10));color:var(--down)}
.qgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.q{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.q .k{font-size:12px;color:var(--muted)}.q .v{font-size:17px;font-weight:700}
.bars{display:flex;align-items:flex-end;gap:6px;height:84px;margin-top:12px}.bar{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}
.bar i{display:block;width:100%;background:linear-gradient(180deg,var(--accent),var(--accent-ink) 55%,var(--accent-ink));border-radius:4px 4px 0 0;min-height:2px}.bar span{font-size:10px;color:var(--muted);margin-top:3px}
.rangebar{position:relative;height:10px;border-radius:5px;background:var(--line);margin:16px 6px 6px}.rangebar .rg{position:absolute;top:0;bottom:0;background:rgba(125,185,190,.35);border-radius:5px}
.rangebar b{position:absolute;top:50%;transform:translate(-50%,-50%);width:12px;height:12px}.rangebar .pm{border-radius:50%;background:var(--ink)}.rangebar .tm{background:var(--accent-ink);transform:translate(-50%,-50%) rotate(45deg);width:10px;height:10px}
.small2{font-size:15px!important}
body.v-c .sc,body.v-c .q,body.v-c .dcfform input{background:var(--ink);border-color:var(--ink);color:var(--surface-2)}body.v-c .dcfout{background:var(--ink)}
body.v-c .bline.pos .bl-v,body.v-c .pill2.up{color:var(--up)}body.v-c .bline.neg .bl-v,body.v-c .pill2.down{color:var(--down)}body.v-c .bl-ic.g{color:var(--accent)}body.v-c .bl-ic.b{color:var(--ink-3)}
body.v-c .rangebar .tm{background:var(--accent)}body.v-c .rangebar .pm{background:var(--surface-2)}
@media(max-width:360px){.scen{gap:6px}.sc{padding:8px}.sc .v{font-size:17px}}
/* screener */
.scform{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.scform label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);font-weight:600}
.scform input,.scform select{min-height:44px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font-size:16px;background:var(--card);color:var(--ink);width:100%;box-sizing:border-box}
.scbtns{grid-column:1/-1;display:flex;gap:8px}.scbtns .btn{flex:1;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}
.scl .row{align-items:flex-start}.scm{display:flex;flex-wrap:wrap;gap:4px 8px;margin-top:6px;font-size:12px;font-weight:600}.scm i{font-style:normal;color:var(--muted);font-weight:500;margin-right:3px}
.scl .l .n{font-size:12.5px}
body.v-c .scform input,body.v-c .scform select{background:var(--ink);border-color:var(--ink);color:var(--surface-2)}
.tok,.apidoc pre{white-space:pre-wrap;word-break:break-all;background:var(--soft,var(--surface-2));border:1px solid var(--line);border-radius:8px;padding:8px;font-size:12px}
.ckl{display:inline-flex;align-items:center;gap:6px;min-height:44px}.ckl input{width:20px;height:20px}
body.v-c .tok,body.v-c .apidoc pre{background:var(--ink);border-color:var(--ink)}
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:10px 0}.tscroll table{min-width:100%;white-space:nowrap}
details.row>summary{display:flex;align-items:center;gap:8px}details.row>summary .l{min-width:0;flex:1 1 auto;overflow:hidden}
details.row>summary .l .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}details.row>summary .r{flex:0 0 auto;text-align:right}

/* ===================== Logo-palette fades (Jason, Oct 18): var(--accent-ink) · var(--accent-ink) · var(--accent-ink) · var(--accent) · var(--new) ===================== */
:root{--g-indigo:var(--accent-ink);--g-overlap:var(--accent-ink);--g-azure:var(--accent-ink);--g-sky:var(--accent);--g-pale:var(--new);--g-tint:var(--new);--g-tint2:var(--new)}
body.v-d header.top::after,header.top::after{background:linear-gradient(90deg,var(--accent-ink),var(--accent-ink) 35%,var(--accent-ink) 70%,var(--accent))}
body.v-d .ms{background:linear-gradient(135deg,var(--accent-ink),var(--accent-ink) 55%,var(--accent-ink));box-shadow:0 4px 14px rgba(58,122,130,.25)}
body.v-d .ms:nth-child(2){background:linear-gradient(135deg,var(--accent-ink),var(--accent))}
body.v-d .ms.mdl{background:linear-gradient(135deg,var(--accent-ink),var(--accent-ink))}
body.v-d .ms.mdl:nth-of-type(odd){background:linear-gradient(135deg,var(--accent-ink),var(--accent-ink))}
body.v-d .topcard.lead{background:var(--hero);box-shadow:0 6px 20px rgba(58,122,130,.28)}
body.v-d .hero{box-shadow:0 6px 20px rgba(58,122,130,.25)}
body.v-d .phero{box-shadow:0 8px 24px rgba(58,122,130,.25)}
body.v-d .card.flat{background:color-mix(in srgb,var(--sec) 7%,var(--surface))}
body.v-d .dnav2 a.on{background:var(--new);color:var(--accent-ink)}body.v-d .dnav2 a.on svg{color:var(--accent-ink)}
/* dark: deep navy fades in the same hue family */
body.v-c .ms.mdl{background:linear-gradient(135deg,var(--new),var(--new));border-color:var(--accent-ink)}
body.v-c .stat{background:linear-gradient(135deg,rgba(74,144,152,.10),rgba(58,122,130,.16));border-color:rgba(125,185,190,.22)}
body.v-c .hero{background:linear-gradient(120deg,var(--ink) 0%,var(--accent) 60%,var(--accent-ink) 100%);border-color:var(--new-edge)}
body.v-c .hero[style]{background:linear-gradient(120deg,var(--ink) 0%,var(--accent) 60%,var(--accent-ink) 100%)!important}
/* active filter pill: white text on a darkened chip color in dark mode (WCAG AA) */
[data-theme=legacy-navy] .fchip.on,body.v-c .fchip.on{background:color-mix(in srgb,var(--cc,var(--accent-ink)) 58%,var(--bg));color:var(--ink);border-color:transparent}
[data-theme=legacy-navy] .fchip.c-tp.on,body.v-c .fchip.c-tp.on{background:var(--accent-ink);color:var(--white)}
/* models page: three-model lineup */
.cmpcard{padding:14px 16px}
.cmprow{display:grid;grid-template-columns:118px 1fr 62px;align-items:center;gap:10px;min-height:36px;color:var(--ink);font-size:13.5px}
.cmprow:hover{text-decoration:none}.cmprow b{text-align:right;font-variant-numeric:tabular-nums}
.cmpn{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmpbar{height:10px;border-radius:5px;background:var(--soft);overflow:hidden}.cmpbar i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--accent-ink),var(--accent-ink) 45%,var(--accent-ink) 80%,var(--accent))}
.cmprow.spy .cmpbar i{background:var(--ink-3)}.cmprow.spy{color:var(--muted)}
a.card.mcard.flag{border-left-width:5px;border-left-color:var(--accent-ink);box-shadow:0 6px 20px rgba(58,122,130,.14)}
.chip.flagchip{background:linear-gradient(120deg,var(--accent-ink),var(--accent-ink));color:var(--white)}
body.v-c a.card.mcard.flag{border-left-color:var(--accent);background:linear-gradient(160deg,var(--accent),var(--ink) 60%)}
body.v-c .chip.flagchip{background:linear-gradient(120deg,var(--accent-ink),var(--accent));color:var(--white)}
/* reverse DCF */
.rdcf{border-left:4px solid var(--accent-ink)}
.rd-h{display:flex;align-items:center;gap:8px}.rd-for{font-size:11.5px;color:var(--muted);font-weight:600}
.itip{margin-left:auto;width:28px;height:28px;min-width:28px;border-radius:50%;border:1.5px solid var(--muted);background:none;color:var(--muted);font:italic 700 14px/1 Georgia,serif;cursor:pointer;position:relative}
.itip::after{content:"";position:absolute;inset:-9px}
.tipbox{margin:8px 0 2px;padding:10px 12px;border-radius:10px;background:var(--new);color:var(--ink);font-size:13px;line-height:1.5}
.rd-line{font-size:16px;line-height:1.45;margin:10px 0 10px;font-weight:500}.rd-line b{color:var(--accent-ink)}
.rd-cmp{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:baseline;padding:10px 12px;border-radius:10px;background:var(--soft);margin-bottom:8px;font-size:13.5px}
.rd-k{color:var(--muted)}.rd-v{font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.rd-v small{font-weight:500;color:var(--muted);font-size:11px}
.rd-imp{color:var(--accent-ink);font-size:17px}
body.v-c .tipbox{background:var(--accent);color:var(--surface-2)}body.v-c .rd-line b,body.v-c .rd-imp{color:var(--accent)}body.v-c .rdcf{border-left-color:var(--accent)}body.v-c .rd-cmp{background:var(--accent)}
.cycnote{display:flex;align-items:center;gap:8px;margin:2px 0 8px;font-size:13px;font-weight:600}
.cyc-chip{background:var(--new);color:var(--accent-ink);border-radius:6px;padding:2px 8px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.cycnote .itip{margin-left:4px}
body.v-c .cyc-chip{background:rgba(125,185,190,.16);color:var(--accent)}
/* ===================== members, alerts, pro features, tools ===================== */
:root{--c-watch:var(--accent);--k-news:var(--accent-ink);--k-research:var(--accent);--k-insider:var(--accent-ink);--k-earnings:var(--accent-ink);--k-model:var(--accent-ink)}
[data-theme=legacy-navy]{--k-model:var(--accent);--k-insider:var(--new);--k-earnings:var(--accent)}
.k-news{--cc:var(--k-news)}.k-research{--cc:var(--k-research)}.k-insider{--cc:var(--k-insider)}.k-earnings{--cc:var(--k-earnings)}.k-model{--cc:var(--k-model)}
.btn.wide{width:100%;justify-content:center}.btn.sm{min-height:40px;padding:6px 12px;font-size:13.5px}
.iconbtn.bell{position:relative}.bdg{position:absolute;top:3px;right:3px;min-width:18px;height:18px;border-radius:9px;background:var(--accent-ink);color:var(--white);font-size:10.5px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 5px;border:2px solid var(--card)}
body.v-c .bdg{border-color:var(--bg)}
.dnav2 a em.n{background:var(--accent-ink);color:var(--white)}
.dhb{display:flex;gap:10px;align-items:flex-start;background:var(--new);color:var(--accent-ink);border:1px solid var(--new);border-radius:12px;padding:10px 12px;margin:12px 0 4px;font-size:13.5px;line-height:1.4}
.dhb svg{flex:0 0 auto;margin-top:1px;color:var(--accent-ink)}.dhb a{color:var(--accent-ink);text-decoration:underline}
body.v-c .dhb{background:rgba(125,185,190,.10);border-color:rgba(125,185,190,.35);color:var(--new)}body.v-c .dhb a{color:var(--accent)}body.v-c .dhb svg{color:var(--accent)}
.flinks{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px}.flinks a{min-height:32px;display:inline-flex;align-items:center}
.okcard{border-left:4px solid var(--azure,var(--accent-ink))}.devcard{border:1px dashed var(--accent-ink);background:color-mix(in srgb,var(--accent-ink) 6%,var(--card))}
/* push prompt */
.pushprompt{position:fixed;left:10px;right:10px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:30;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 30px rgba(20,52,64,.22);padding:12px;align-items:center;gap:10px;max-width:520px;margin:0 auto}
.pp-ic{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--accent-ink),var(--accent-ink));color:var(--white);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.pp-t{flex:1;min-width:0;font-size:13.5px;line-height:1.3}.pp-t span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.pp-b{display:flex;gap:6px;flex:0 0 auto}.pp-b .btn{min-height:40px}
@media(min-width:900px){.pushprompt{bottom:20px}}
.pushcard{border-left:4px solid var(--azure)}.pushcard.done{border-left-color:var(--up)}.ioshint{margin-top:8px}
/* watchlist */
.whero{--hero:linear-gradient(120deg,var(--accent-ink),var(--accent-ink) 50%,var(--accent-ink))}
.hero a.hchip{color:var(--white)}.hero a.hchip:hover{text-decoration:none}
.wadd{display:flex;gap:8px;margin:12px 0}.wsearch{position:relative;flex:1;min-width:0}.wsearch input{width:100%;min-height:48px;font-size:16px}
.wsearch .sugg{top:52px}.wadd .btn{min-height:48px}
.list.acc-watch{border-top-color:var(--c-watch)}.list.acc-alerts{border-top-color:var(--azure)}
.wrow{position:relative;gap:8px}.wrow .l{color:var(--ink)}.wrow .l:hover{text-decoration:none}.wrow .l.hasl{padding-left:46px}
.wlast{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.wlast i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cc,var(--azure));margin-right:5px;vertical-align:1px}
.wrm{margin:0}.wrm .iconbtn{min-width:40px;min-height:40px;padding:0;color:var(--muted)}
.wlhint{margin-top:6px;color:var(--muted)}
/* alerts */
.ahead{display:flex;justify-content:space-between;align-items:center;gap:8px}.ahead h1{display:flex;align-items:center;gap:8px}
.cnt{font-size:12px;font-weight:700;background:var(--accent-ink);color:var(--white);border-radius:999px;padding:3px 9px;letter-spacing:0}
.fchip.k-news,.fchip.k-research,.fchip.k-insider,.fchip.k-earnings,.fchip.k-model{border-left:3px solid var(--cc)}
.arow{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border-bottom:1px solid var(--line);color:var(--ink);position:relative;border-left:3px solid transparent}
.arow:last-child{border-bottom:none}.arow:hover{text-decoration:none;background:var(--soft)}
.arow.unread{background:color-mix(in srgb,var(--cc) 6%,var(--card));border-left-color:var(--cc)}
.ab{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.am{font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:5px}.am .tk{font-weight:700;color:var(--ink)}
.akind{font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--cc);background:color-mix(in srgb,var(--cc) 12%,transparent);border-radius:5px;padding:1px 6px}
.at{font-weight:600;font-size:14.5px;line-height:1.35}.ad{font-size:12.5px;color:var(--muted);line-height:1.35}
.arow .dot{width:9px;height:9px;border-radius:50%;background:var(--cc);flex:0 0 auto;margin-top:6px}
/* settings */
.setl .srow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;min-height:56px;border-bottom:1px solid var(--line);margin:0;font-weight:400}
.setl .srow:last-child{border-bottom:none}.srow .l{min-width:0;flex:1}.srow .t{font-weight:650;font-size:14.5px;display:flex;align-items:center;gap:7px}.srow .n{display:block;color:var(--muted);font-size:12.5px;margin-top:1px}
.kd{width:10px;height:10px;border-radius:3px;background:var(--cc);display:inline-block}
input.sw{appearance:none;-webkit-appearance:none;width:48px;height:28px;border-radius:14px;background:var(--line);position:relative;cursor:pointer;flex:0 0 auto;transition:background .15s;margin:0}
input.sw::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .15s}
input.sw:checked{background:var(--accent-ink)}input.sw:checked::after{left:23px}
.segs{display:grid;grid-template-columns:1fr 1fr;gap:6px}.seg{margin:0;font-weight:600}.seg input{position:absolute;opacity:0}
.seg span{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--line);border-radius:10px;font-size:13.5px;background:var(--card)}
.seg input:checked+span{background:var(--accent-ink);border-color:var(--accent-ink);color:var(--white)}.seg input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
select{min-height:44px}
/* search page */
.bigsearch{display:flex;gap:8px;margin:8px 0 12px}.bigsearch input{flex:1;min-width:0;min-height:48px;border:1px solid var(--line);border-radius:12px;padding:0 12px;font-size:16px;background:var(--card);color:var(--ink)}
.sugg a b{margin-right:8px}.sugg a em.st,.sugg a .st{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--azure);margin-left:auto;padding-left:8px}
.sugg a{align-items:center;gap:8px}.sugg a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sugg .lgo{width:22px;height:22px;border-radius:6px}
/* track record */
.tcard{display:block;color:var(--ink);border-left:4px solid var(--up)}.tcard:hover{text-decoration:none}
.tc-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.tc-h b{font-size:16px}
.tc-pend{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;background:var(--soft);border-radius:10px;padding:10px 12px}
.pend-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);flex:0 0 auto;margin-top:5px;animation:pulse 1.6s infinite}
@keyframes pulse{50%{opacity:.35}}
.tc-f{margin-top:8px;overflow-wrap:anywhere}.btbox{border-left:4px solid var(--c-earn)}
.fz summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;list-style:none;min-height:44px}.fz summary::-webkit-details-marker{display:none}
.fzh{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.fzh .tkp{color:var(--ink)}.fzh .tkp:hover{text-decoration:none}
/* glossary */
.gfilter{width:100%;min-height:48px;border:1px solid var(--line);border-radius:12px;padding:0 12px;font-size:16px;background:var(--card);color:var(--ink);margin:12px 0 4px}
.gterm{display:block}.gterm .t{font-size:15px}.gd{font-size:13.5px;color:var(--muted);margin-top:3px;line-height:1.5;white-space:normal}.gterm.hl{background:color-mix(in srgb,var(--accent) 12%,var(--card))}
/* legal */
.legal h3{margin:16px 0 4px;font-size:15px}.legal h3:first-child{margin-top:0}.legal p,.legal li{font-size:14px;line-height:1.6;color:var(--ink)}.legal ul{padding-left:18px;margin:6px 0}
/* status */
.hdot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;background:var(--new)}.hdot.warn{background:var(--accent-ink)}.hdot.bad{background:var(--accent-ink)}
/* tour */
.tour{position:fixed;inset:0;z-index:90;background:rgba(8,16,31,.55)}
.tour-ring{position:fixed;border-radius:14px;box-shadow:0 0 0 3px var(--accent),0 0 0 9999px rgba(8,16,31,.35);transition:all .25s;pointer-events:none}
.tour-card{position:fixed;left:14px;right:14px;max-width:420px;margin:0 auto;background:var(--card);color:var(--ink);border-radius:16px;padding:16px;box-shadow:0 14px 40px rgba(0,0,0,.3);border-top:4px solid var(--accent-ink)}
.tour-step{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink)}.tour-t{font-size:18px;font-weight:700;margin:4px 0}.tour-b{font-size:14px;line-height:1.5;color:var(--muted)}
.tour-nav{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:8px}.tour-dots{display:flex;gap:5px}.tour-dots i{width:7px;height:7px;border-radius:50%;background:var(--line)}.tour-dots i.on{background:var(--accent-ink);width:18px;border-radius:4px}
/* interactive charts */
.chartwrap{position:relative}.ixon svg.chart{touch-action:pan-y;cursor:crosshair}
.ixl{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3}.ixd{stroke:var(--card);stroke-width:1.5}
.ixtip{position:absolute;top:-6px;transform:translateY(-100%);background:var(--ink);color:var(--card);border-radius:10px;padding:7px 10px;font-size:12px;line-height:1.45;pointer-events:none;box-shadow:0 6px 18px rgba(0,0,0,.2);white-space:nowrap;z-index:5}
.ixtip b{display:block;font-size:11.5px;opacity:.8}.ixtip span{display:flex;align-items:center;gap:6px}.ixtip i{width:8px;height:8px;border-radius:2px;display:inline-block}.ixtip em{font-style:normal;font-weight:700;margin-left:auto;padding-left:10px}
body.v-c .ixtip{background:var(--surface-2);color:var(--bg)}
/* tools */
.tform label{margin-top:0}.tform textarea{min-height:110px;font-size:15px}.tgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}.tgrid label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);margin:0}
.tgrid input,.tgrid select{min-height:44px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font-size:16px;background:var(--card);color:var(--ink);width:100%}
.tform select{min-height:44px;font-size:16px}
.pgm{display:flex;flex-direction:column;gap:2px}.pgm .ckl{font-size:14px;font-weight:600;margin:0}.sw2{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.xbar,.secrow{display:grid;grid-template-columns:minmax(0,1.3fr) 1fr 48px;gap:8px;align-items:center;min-height:32px;font-size:13px}.xbar b,.secrow b{text-align:right;font-variant-numeric:tabular-nums}
.sk{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sbar{height:10px;position:relative;background:var(--soft);border-radius:5px}
.sbar i{position:absolute;top:0;bottom:0;border-radius:5px}.sbar i.pos{left:50%;background:linear-gradient(90deg,var(--accent-ink),var(--accent))}.sbar i.neg{right:50%;background:var(--down)}
.dstat{display:block;color:var(--ink)}.dstat:hover{text-decoration:none}
.copycard{border-left:4px solid var(--c-copy)}
@media(max-width:380px){.cmprow{grid-template-columns:100px 1fr 56px;gap:8px;font-size:12.5px}.segs{grid-template-columns:1fr 1fr}.pp-t span{display:none}}
.sugg a em.st{font-style:normal}
/* header fits menu + wordmark + search + bell + theme at 360px */
@media(max-width:430px){.toprow{gap:4px}.tb{gap:0}.tb .iconbtn{width:40px;min-width:40px;padding:0;justify-content:center}.menubtn{width:40px;min-width:40px;padding:0}.brand{min-width:0}.wm{min-width:0}}
@media(max-width:374px){.wm .tag{font-size:7.5px;letter-spacing:.08em}.wm b{font-size:19px}.brand .mark{width:26px;height:26px}}
@media(max-width:374px){header .wrap.toprow{padding-left:8px;padding-right:8px;gap:2px}header .tb .iconbtn,header .menubtn{width:38px;min-width:38px}header .brand .wm small.tag{font-size:7.5px;letter-spacing:.06em}header .brand .wm b{font-size:18px}header .brand{gap:5px}}
@media(max-width:374px){body.wm-inline header.top .wm .tag,body header.top .wm .tag{font-size:7.6px!important;letter-spacing:.07em!important}body header.top .wm b{font-size:18px!important}}
.iconbtn.bell{overflow:visible}.bdg{top:-3px;right:-5px;min-width:17px;height:17px;font-size:9.5px;padding:0 4px;line-height:1}
/* ============================ layout polish pass (Oct 19) ============================ */
/* 1. bottom tab bar pinned to the viewport; content clears it */
@media(max-width:899px){
  body{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  nav.bottom{position:fixed!important;left:0;right:0;bottom:0;top:auto;transform:none;padding:6px max(4px,env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-right))}
  .pushprompt{bottom:calc(76px + env(safe-area-inset-bottom))}
}
/* 2. consistent 16px side margins on phones */
@media(max-width:699px){
  main.wrap,body main.wrap{padding-left:16px;padding-right:16px}
  .chipbar,.mstrip,.strip,body .chipbar,body .mstrip{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}
}
/* true horizontal scrollers: snap + right-edge fade so they read as scrollable, not clipped */
.chipbar,.strip,.tabs{scroll-snap-type:x proximity;scroll-padding-left:16px;-webkit-overflow-scrolling:touch;
  -webkit-mask-image:linear-gradient(90deg,var(--ink-3) calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,var(--ink-3) calc(100% - 36px),transparent)}
.chipbar>*,.strip>*,.tabs>*{scroll-snap-align:start}
.chipbar::after,.strip::after{content:"";flex:0 0 20px}
.strip::-webkit-scrollbar,.tabs::-webkit-scrollbar{display:none}
.strip{padding-bottom:8px}
/* rows that should fit, not scroll */
.chipbar.fit{flex-wrap:wrap;overflow:visible;-webkit-mask-image:none;mask-image:none;gap:8px;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important}
.chipbar.fit::after{display:none}
.chipbar.fit .fchip{min-height:38px;padding:0 13px}
.tabs{-webkit-mask-image:none;mask-image:none;flex-wrap:nowrap}
.shero .chiprow,.chiprow.wrap-ok{flex-wrap:wrap;overflow:visible;row-gap:6px}
/* market strip: SPY + brake on one row, the models on the next, all fitting the width */
.mstrip,body .mstrip{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px;overflow:visible;margin-left:0!important;margin-right:0!important;padding:0!important;-webkit-mask-image:none;mask-image:none}
.mstrip>.ms{min-width:0;grid-column:span 6;padding:10px 11px}
.mstrip>a.ms.mdl{grid-column:span 4}
.mstrip>a.ms.mdl:first-of-type:nth-last-of-type(1){grid-column:span 12}
.mstrip>a.ms.mdl:first-of-type:nth-last-of-type(2),.mstrip>a.ms.mdl:first-of-type:nth-last-of-type(2)~a.ms.mdl{grid-column:span 6}
.mstrip>a.ms.mdl:first-of-type:nth-last-of-type(4),.mstrip>a.ms.mdl:first-of-type:nth-last-of-type(4)~a.ms.mdl{grid-column:span 6}
.mstrip .ms .k{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mstrip .ms .s{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mstrip>a.ms.mdl .v{font-size:17px}
@media(min-width:700px){.mstrip>.ms{grid-column:span 3}.mstrip>a.ms.mdl,.mstrip>a.ms.mdl:first-of-type:nth-last-of-type(n)~a.ms.mdl{grid-column:auto}.mstrip{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.mstrip>.ms,.mstrip>a.ms.mdl{grid-column:auto!important}}
/* earnings cards: equal size, snap */
.strip .pill{min-width:112px;max-width:150px}
.strip .pill span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 3. header: balanced at every phone width; bell badge stays inside */
header.top .wrap.toprow{padding-left:12px;padding-right:12px;gap:6px}
header.top .tb{gap:6px}
header.top .tb .iconbtn,header.top .menubtn{width:40px;min-width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center}
.iconbtn.bell{position:relative;overflow:visible}
.iconbtn.bell .bdg{top:-5px;right:-4px;min-width:18px;height:18px;padding:0 5px;font-size:10px;line-height:18px;border:2px solid var(--card);box-sizing:content-box;height:14px;line-height:14px}
body.v-c .iconbtn.bell .bdg{border-color:var(--bg)}
@media(max-width:389px){
  header.top .wrap.toprow{padding-left:10px;padding-right:12px;gap:4px}
  header.top .tb{gap:4px}
  header.top .tb .iconbtn,header.top .menubtn{width:38px;min-width:38px;height:38px}
  body.wm-inline header.top .brand,header.top .brand{gap:5px}
}
@media(max-width:374px){header.top .wrap.toprow{padding-left:8px;padding-right:12px}}
/* 4. alerts list: one grid for every row */
.list.acc-alerts{padding:0;overflow:hidden}
.arow{display:grid!important;grid-template-columns:36px minmax(0,1fr) 10px;column-gap:12px;align-items:start;padding:12px 14px 12px 13px;border-left:3px solid color-mix(in srgb,var(--cc) 55%,transparent)!important;background:var(--card)}
.arow.unread{background:color-mix(in srgb,var(--cc) 7%,var(--card));border-left-color:var(--cc)!important}
.arow .alg{width:36px;height:36px;display:block}.arow .alg .lgo{margin:0}
.arow .ab{gap:3px}
.arow .am{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0;line-height:18px}
.arow .am .tk{font-size:12px;font-weight:700;color:var(--ink)}
.arow .aw{font-size:11.5px;color:var(--muted);margin-left:auto;white-space:nowrap}
.arow .at{font-size:14.5px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.arow .ad{font-size:12.5px;line-height:1.4;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.arow .adot{width:10px;display:flex;justify-content:center;padding-top:5px}
.arow .adot .dot{margin:0;width:8px;height:8px}
.ahead{margin:4px 0 2px}.ahead h1{margin:8px 0}
/* 7. general: nothing wider than its card */
main.wrap img,main.wrap svg,main.wrap video{max-width:100%}
main.wrap svg.chart{height:auto}
.card,.list,.topcard,.th,.at{overflow-wrap:break-word}
.card table,.list table{max-width:100%}
.tscroll,.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.tipbox{max-width:100%;box-sizing:border-box;overflow-wrap:anywhere}
.ixtip{max-width:calc(100vw - 40px);white-space:normal}
h1{overflow-wrap:anywhere}
.row .l{min-width:0}
pre,code{white-space:pre-wrap;overflow-wrap:anywhere}
/* header on phones: menu, wordmark, search, bell only; theme + owner live in the drawer */
@media(max-width:699px){header.top .tb .themebtn,header.top .tb .own{display:none!important}}
header.top .tb .own{width:auto!important;padding:0 12px!important}
.shero .chiprow .iconbtn.small{min-height:34px}.iconbtn.shareic{width:36px;min-width:36px;padding:0;display:inline-flex;align-items:center;justify-content:center}
:root{--k-recap:var(--accent-ink)}[data-theme=legacy-navy]{--k-recap:var(--accent)}.k-recap{--cc:var(--k-recap)}.sub-srow{padding:12px 0 0!important;border:none!important;margin-top:8px!important;border-top:1px solid var(--line)!important}
/* ===== model insights (Oct 19): why-in-model, on the bubble, owner health/alerts, weekly recap ===== */
:root{--ix-a:var(--accent-ink);--ix-b:var(--accent-ink);--ix-t:var(--accent-ink);--ix-w:var(--accent-ink);--ix-wbg:var(--new);--ix-abg:var(--new);--ix-tbg:var(--new)}
[data-theme=legacy-navy]{--ix-a:var(--accent);--ix-b:var(--new);--ix-t:var(--accent);--ix-w:var(--new);--ix-wbg:rgba(196,224,226,.12);--ix-abg:rgba(143,196,199,.10);--ix-tbg:rgba(143,196,199,.10)}
.whyin{margin:10px 0 2px;padding:10px 12px;border-radius:12px;background:var(--ix-abg);border-left:3px solid var(--ix-a);font-size:13.5px;line-height:1.45;color:var(--ink);overflow-wrap:anywhere}
.whyin.card{margin:10px 0}
.whyin .wh{font-weight:700;font-size:12px;letter-spacing:.02em;text-transform:uppercase;color:var(--ix-b);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.whyin .wr{font-weight:700;text-transform:none;letter-spacing:0;font-size:12px;background:var(--card);color:var(--ix-b);border-radius:999px;padding:1px 8px}
.whyin p{margin:6px 0 0}.whyin .wk{color:var(--muted)}.whyin .wk b{color:var(--ink);font-weight:600}
.chip.prev{background:var(--ix-abg);color:var(--ix-b);vertical-align:middle}
.chip.sm{font-size:11px;padding:1px 7px;vertical-align:middle}
.bubsum{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 10px}
.bubsum .bs{flex:1 1 0;min-width:0;border-radius:12px;padding:10px 12px;font-size:13px;font-weight:600;background:var(--card);border:1px solid var(--line)}
.bubsum .bs b{display:block;font-size:22px;line-height:1.1}
.bubsum .bs.enter b{color:var(--ix-t)}.bubsum .bs.risk b{color:var(--ix-w)}
.list.bubble .row{border-left:3px solid transparent}
.list.bubble .row.bub-enter{border-left-color:var(--ix-t)}.list.bubble .row.bub-risk{border-left-color:var(--ix-w)}
.list.bubble .row.bub-hold{border-left-color:var(--ix-a)}
.list.bubble .row.cutline{border-top:2px dashed var(--ix-a)}
.list.bubble .r{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:0 0 auto;text-align:right}
.brank{font-weight:700;font-size:15px}
.blab{font-size:11.5px;font-weight:700;border-radius:999px;padding:2px 8px;white-space:nowrap;background:var(--chip);color:var(--muted)}
.blab.enter{background:var(--ix-tbg);color:var(--ix-t)}.blab.risk{background:var(--ix-wbg);color:var(--ix-w)}.blab.hold{background:var(--ix-abg);color:var(--ix-b)}
.list.bubble .lt{min-width:0}.list.bubble .lt .n{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card.caveat{border-left:3px solid var(--ix-a)}
.hsum{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;margin:6px 0 10px}
.hsum .hs{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--ink);min-width:0}
.hsum .hs b{font-size:24px;line-height:1.1}.hsum .hs span{font-size:12.5px;font-weight:600;color:var(--muted);overflow-wrap:anywhere}
.hsum .hs.warn{border-color:var(--ix-w);background:var(--ix-wbg)}.hsum .hs.warn b{color:var(--ix-w)}.hsum .hs.ok b{color:var(--ix-t)}
.hlink{font-size:13px;font-weight:600;margin-left:auto;float:right}
.hlist .l{display:flex;align-items:center;gap:10px;min-width:0}.hlist .lt{display:flex;flex-direction:column;min-width:0}
.hdot{flex:0 0 10px;height:10px;border-radius:50%;background:var(--ix-t)}
.hc-warn .hdot{background:var(--ix-w)}.hc-pending .hdot{background:var(--line)}
.hst{font-size:12px;font-weight:700;border-radius:999px;padding:2px 9px;background:var(--ix-tbg);color:var(--ix-t)}
.hst.warn{background:var(--ix-wbg);color:var(--ix-w)}.hst.pending{background:var(--chip);color:var(--muted)}
.ownercard{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:12px;border-radius:14px;background:var(--ix-abg);border:1px solid var(--line);color:var(--ink);text-decoration:none}
.ownercard .oc-ic,.oic{flex:0 0 36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--card);color:var(--ix-b)}
.ownercard .oc-t{display:flex;flex-direction:column;min-width:0;flex:1}.ownercard .oc-t span{font-size:12.5px;color:var(--muted)}
.ownercard .cnt{flex:0 0 auto}
.oic.health{color:var(--ix-w)}.oic.brief{color:var(--ix-b)}.oic.recap{color:var(--ix-t)}
.arow.ok-health{--cc:var(--ix-w)}.arow.ok-brief{--cc:var(--ix-b)}.arow.ok-recap{--cc:var(--ix-t)}
.iconbtn.bell .bdg.own{background:var(--accent-ink)}
.rcap{display:grid;grid-template-columns:1fr;gap:8px;margin:8px 0 6px}
@media(min-width:700px){.rcap{grid-template-columns:repeat(3,1fr)}}
.rcap .rc{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:2px 10px;padding:12px 14px;border-radius:14px;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--ix-a);color:var(--ink);text-decoration:none}
.rcap .rn{font-weight:700}.rcap .rv{font-size:22px;font-weight:800;text-align:right;background:none!important;padding:0!important}
.rcap .rs{grid-column:1/-1;font-size:12.5px;color:var(--muted)}.rcap .rs b{background:none!important;padding:0!important}
.card.briefnote{border-left:3px solid var(--ix-b)}
body .row .r .blab,body .row .r .hst,body.v-c .row .r .blab,body.v-c .row .r .hst{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;letter-spacing:0}
.list.rcl .row{align-items:center;gap:10px}.list.rcl .l{flex:1 1 auto;min-width:0}.list.rcl .lt{display:flex;flex-direction:column;min-width:0}
.list.rcl .lt .n{display:block;font-size:12.5px;white-space:normal;line-height:1.3}.list.rcl .r{flex:0 0 auto;text-align:right}
.note-body table{display:block;max-width:100%;overflow-x:auto}
.srow.sub-srow{display:flex;align-items:center;justify-content:space-between;gap:12px}.srow.sub-srow .l{flex:1;min-width:0}.srow.sub-srow .sw{flex:0 0 auto}
/* Drawer lockup: full one-line mark + carré + SYSTEMATIC STRATEGIES beside the close button (Oct 19) */
.drawer{width:min(88vw,330px)}
.dhead{padding:12px 10px 12px 16px;gap:8px}
.dhead .brand{flex:0 1 auto;min-width:0;gap:7px}
.dhead .brand .mark{height:24px;width:auto;flex:0 0 auto}
.dhead .wm{gap:6px!important;white-space:nowrap}
.dhead .wm b{font-size:19px}
.dhead .wm .tag{font-size:9px;letter-spacing:.1em}
.dhead .iconbtn{flex:0 0 auto;width:38px;min-width:38px;height:38px}
.mheld{margin:-2px 2px 8px;line-height:1.4}
body.v-c .row .r .chip,body .row .r .chip{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;letter-spacing:0}
/* brand-css */
/* Carré (Oct 19): dark theme uses mark-dark.svg (outer square var(--accent-ink), readable on the navy header). */
[data-theme=legacy-navy] img.mark{content:url(/static/mark-dark.svg?v=84dda9b70d)}
/* Short name: no long-name shrink rules; slightly larger, crisper wordmark on phones (still >=20px clear of search/bell at 360px). */
.wm b,.wm .tag,.wm small{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
@media(max-width:430px){body.wm-inline header.top .wm b{font-size:20px;letter-spacing:-.2px}body.wm-inline header.top .wm .tag{font-size:9px;letter-spacing:.1em}body.wm-inline header.top .wm{gap:6px}}
@media(max-width:374px){body header.top .wm b{font-size:19px!important}body.wm-inline header.top .wm .tag,body header.top .wm .tag{font-size:8.4px!important;letter-spacing:.08em!important}}
/* /brand-css */
/* Blues and whites only (Jason, Oct 19): green/red stay only on gain/loss numbers and up/down arrows. Non-gain uses of --up/--down move to blues. */
.btn.danger{background:var(--accent-ink)}
.badge{background:var(--accent-ink)}
.pushcard.done{border-left-color:var(--accent-ink)}
.tcard{border-left-color:var(--accent-ink)}
.b2.buy{background:var(--new);color:var(--accent-ink)}.b2.sell{background:var(--line);color:var(--ink-2)}
[data-theme=legacy-navy] .b2.buy,body.v-c .b2.buy{background:rgba(125,185,190,.16);color:var(--accent)}[data-theme=legacy-navy] .b2.sell,body.v-c .b2.sell{background:rgba(160,172,178,.14);color:var(--ink-3)}
/* portfolio builder */
.pb label{display:block;font-size:12.5px;color:var(--muted);margin:8px 0 4px}.pb-card label:first-child{margin-top:0}
.pb-h{display:flex;align-items:center;gap:8px;font-size:16px;margin:16px 0 8px}.pb-n{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--accent-ink);color:var(--white);font-size:12px}
[data-theme=legacy-navy] .pb-n{background:var(--accent-ink)}
.pb-search{position:relative}.pb-search input{width:100%;box-sizing:border-box}
.pb-sugg{display:none;position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--card);border:1px solid var(--line);border-radius:12px;z-index:15;overflow:hidden;box-shadow:0 8px 24px rgba(20,52,64,.12)}
.pb-sugg button{display:flex;width:100%;gap:10px;align-items:baseline;background:none;border:0;border-bottom:1px solid var(--line);padding:11px 12px;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.pb-sugg button span{color:var(--muted);font-size:13px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pb-none{padding:11px 12px;color:var(--muted)}
.pb-meter{padding:12px 14px}.pb-mrow{display:flex;justify-content:space-between;gap:8px;font-size:14px}.pb-mrow b{color:var(--accent-ink)}[data-theme=legacy-navy] .pb-mrow b{color:var(--new)}
.pb-bar{height:8px;border-radius:99px;background:var(--chip);overflow:hidden;margin:8px 0 6px}.pb-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent-ink),var(--accent-ink) 60%,var(--accent));border-radius:99px;transition:width .15s}
.pb-list:empty{display:none}
.pb-row{display:grid;grid-template-columns:1fr 92px 40px;align-items:center;gap:8px;padding:8px 8px 8px 12px;border-bottom:1px solid var(--line)}.pb-row:last-child{border-bottom:0}
.pb-l{min-width:0;display:flex;flex-direction:column}.pb-l span{color:var(--muted);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pb-w{position:relative}.pb-w input{width:100%;box-sizing:border-box;text-align:right;padding-right:26px!important;font-variant-numeric:tabular-nums}.pb-w em{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-style:normal;color:var(--muted);font-size:14px}
.pb-w input.bad{border-color:var(--accent-ink);box-shadow:0 0 0 2px rgba(74,144,152,.25)}
.pb-x{width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:none;color:var(--muted);font-size:20px;line-height:1;cursor:pointer}
.pb-msg{display:none;grid-column:1/-1;font-size:12.5px;color:var(--accent-ink);background:var(--chip);border-radius:8px;padding:6px 10px}[data-theme=legacy-navy] .pb-msg{color:var(--new)}
.pb-acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.pb-acts .btn{width:100%;text-align:center;justify-content:center;box-sizing:border-box}
html body .list .row>.r.ct-rpend{flex:0 1 9.5em!important;max-width:9.5em!important;text-align:right!important;line-height:1.35!important;white-space:normal!important}

/* coteau.css */
/* ===================== coteau preview layer (Waterfall gray, locked) =====================
   header #D9DDE0 · page var(--bg) (option 7: cool gray, white cards + soft shadow) · ink var(--ink) · accent var(--accent) · hairline var(--accent-ink)→var(--accent-ink) (2px)
   newest card var(--new) + var(--new-edge) edge + subtle X · older cards white + var(--line-2) · square corners */
/* LIGHT ACCENT (round 4, Oct 19): bright cyan. Swap point = the light tokens below (--ct-accent / --ct-accent-d / --ct-edge / --ct-tile /
   --ct-tile-edge / --ct-line / --ct-new / --ct-new-edge). Filled buttons + active chip: #3EC8C9 with ink var(--ink) text (6.46:1) and a 1px var(--accent-ink) edge.
   Previous seafoam, to swap back: accent var(--accent) · accent-d var(--accent-ink) · edge var(--accent) · tile var(--new) / var(--new-edge) · new var(--new) / var(--new-edge) ·
   line var(--accent-ink)→var(--accent-ink) · fills white text · x-card.svg strokes var(--accent) / var(--accent-ink). Dark theme overrides all of these further down. */
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(/static/fonts/inter-var-latin.woff2?v=aa252a96e5) format("woff2")}
:root,[data-theme=light],[data-theme=dark]{
  --ct-header:#D9DDE0;--ct-page:var(--bg);--ct-ink:var(--ink);--ct-accent:#3EC8C9;--ct-accent-d:var(--accent-ink);--ct-edge:var(--accent-ink);--ct-on-accent:var(--ink);--ct-tile:var(--new);--ct-tile-edge:var(--new-edge);--ct-gray:var(--line-2);--ct-soft:var(--ink-2);
  --ct-new:var(--new);--ct-new-edge:var(--new-edge);--ct-line:linear-gradient(90deg,var(--accent-ink),var(--accent-ink));
  --card:#FFFFFF;--muted:var(--ink-2);--line:#D9DCDF;--soft:var(--surface-2);--chip:var(--surface-2);
  --accent:#3EC8C9;--royal:var(--accent-ink);--navy:var(--ink);--indigo:var(--accent-ink);--azure:var(--accent-ink);--sky:#3EC8C9;--pale:var(--new-edge);
  --sec:var(--accent-ink);--hero:none;--shadow:none;
  --c-news:#3EC8C9;--c-models:#3EC8C9;--c-port:#3EC8C9;--c-ins:#3EC8C9;--c-earn:#3EC8C9;--c-res:#3EC8C9;--c-cat:#3EC8C9;--c-stock:#3EC8C9;--c-copy:#3EC8C9;--c-watch:#3EC8C9;
  color-scheme:light}
html body.ct{background:var(--ct-page)!important;background-image:none!important;color:var(--ct-ink);font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
html body.ct main.wrap{background:transparent!important;background-image:none!important}
#bbLayer{display:none!important}

/* ---------- corners (round 4): 4px on cards, chips, buttons, tiles, inputs, heroes, sheets, toasts, tour, drawer cards; 2px on small tags
   and ticker pills; logo dots round; everything else (header, nav bar, bottom nav, drawer panel, pseudo-elements) square. Both themes. ---------- */
html body.ct *:not(img),html body.ct *::before,html body.ct *::after{border-radius:0!important}
html body.ct :is(.topcard,.fchip,.btn,button.pri,.ms,.pill,.iconbtn,input:not([type=checkbox]):not([type=radio]):not(.sw),select,textarea,.card,.hero,.hchip,.ct-step-card,.ct-getapp-top,
 .tour-card,.sheet,.seg span,.stat,.rt,.news,.list,.whyin,.tabs a,.sugg,.flash,.dhb,.pushprompt,.ct-getapp-drawer,.ct-themesw:not(.in-page),.ct-seg,.grade,.chip){border-radius:4px!important}
html body.ct :is(.topcard .tkp,.cat,.tmeta span,.blab,.sx,.badge,.hchip .n,.whyin .wr,.ct-getapp-drawer img){border-radius:2px!important}
html body.ct .sw{border-radius:999px!important}html body.ct .sw::after{border-radius:50%!important}
html body.ct :is(.tkp .lgo,.tkp .lgo img,.lgo.mono,.lgo,.lgo img){border-radius:50%!important}
html body.ct .topcard.lead,html body.ct .hero,html body.ct .ct-seg,html body.ct .list{overflow:hidden}

/* ---------- header ---------- */
html body.ct header.top{background:var(--ct-header)!important;background-image:none!important;border-bottom:0!important;box-shadow:none!important}
html body.ct header.top::after{content:""!important;display:block!important;height:2px!important;background:var(--ct-line)!important;box-shadow:0 1px 0 rgba(20,52,64,.10),0 2px 3px rgba(20,52,64,.06)!important;position:relative;z-index:3}
html body.ct header.top .wrap,html body.ct header.top .toprow{background:transparent!important}
html body.ct header.top .toprow{min-height:58px;height:58px}
html body.ct header.top .iconbtn{background:var(--surface)!important;border:1px solid var(--ct-gray)!important;color:var(--ct-ink)!important;box-shadow:none!important}
html body.ct header.top .iconbtn:hover{background:var(--surface-2)!important}
html body.ct .themebtn,html body.ct .dtheme{display:none!important}
/* header lockup R2 (Oct 19): lowercase coteau, Inter 500 23px, then the mark on the RIGHT (24px tall, 6px gap, centred on the letters) */
.ct-brand{position:absolute!important;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;padding:0!important;margin:0!important;display:block!important;color:var(--ct-ink)!important;text-decoration:none!important;line-height:1}
.ct-word{position:relative;display:block;font:500 23px/1 "Inter",system-ui,sans-serif;letter-spacing:-.005em;color:var(--ct-ink);white-space:nowrap;padding-right:calc(24px * 170 / 133.6 + 6px);transform:translateY(-1.5px)}
.ct-word .ct-mark{position:absolute;right:0;left:auto;top:-.25px;height:24px;width:auto;margin:0;display:block}
.ct-getapp-top{display:none}
@media(min-width:900px){
  html body.ct header.top .toprow{min-height:64px;height:64px}
  .ct-brand{position:static!important;transform:none;flex:0 0 auto;margin-left:4px!important}
  html body.ct .dnav a{border-radius:0!important;color:var(--ct-ink)}
  html body.ct .dnav a.on{color:var(--ct-ink)!important;background:rgba(255,255,255,.55)!important;box-shadow:inset 0 -2px 0 var(--ct-accent-d)}
  html body.ct .dnav a:hover{background:rgba(255,255,255,.4)!important}
  html body.ct header.top .search input{background:var(--surface)!important;border:1px solid var(--ct-gray)!important}
  .ct-getapp-top{display:inline-flex;align-items:center;height:40px;padding:0 12px;background:var(--ct-accent);border:1px solid var(--ct-edge);color:var(--ct-on-accent)!important;font-size:13.5px;font-weight:600;white-space:nowrap;text-decoration:none!important}
  html body.ct .dnav{gap:0}
}
@media(min-width:900px) and (max-width:1199px){html body.ct .dnav a{padding:10px 8px;font-size:14px}html body.ct header.top .search{width:180px}}
/* drawer + footer lockups */
.ct-dbrand,.ct-fbrand{display:flex!important;align-items:center;gap:6px;color:var(--ct-ink)!important;text-decoration:none!important}
.ct-dbrand .ct-mark,.ct-fbrand .ct-mark{height:22px;width:auto;order:2}
.ct-dword{font:500 21px/1 "Inter",system-ui,sans-serif;letter-spacing:-.005em;color:var(--ct-ink)}
html body.ct aside.drawer{background:var(--ct-page)!important;box-shadow:none!important}
html body.ct aside.drawer .dhead{background:var(--ct-header)!important;border-bottom:2px solid var(--ct-edge)}
html body.ct .dnav2 a.on{background:var(--surface)!important;color:var(--ct-ink)!important;box-shadow:inset 3px 0 0 var(--ct-accent)}
.ct-getapp-drawer{display:flex;align-items:center;gap:10px;margin:12px 14px 4px;padding:10px 12px;background:var(--surface);border:1px solid var(--ct-gray);color:var(--ct-ink)!important;text-decoration:none!important}
.ct-getapp-drawer img{border:1px solid var(--ct-gray)}
.ct-getapp-drawer span{display:flex;flex-direction:column;line-height:1.25}.ct-getapp-drawer b{font-size:14.5px}.ct-getapp-drawer small{font-size:12px;color:var(--ct-soft)}
/* never show Get the app inside the installed app */
html.ct-standalone .ct-getapp,html.ct-standalone .ct-getapp-top,html.ct-standalone .ct-getapp-drawer,html.ct-standalone .ct-desk-only{display:none!important}
.ct-only-standalone{display:none}html.ct-standalone .ct-only-standalone{display:block}

/* ---------- news chips ---------- */
html body.ct .chipbar{background:var(--ct-page)!important;background-image:none!important}
html body.ct .fchip{background:var(--surface)!important;border:1px solid var(--ct-gray)!important;color:var(--ct-ink)!important;box-shadow:none!important;font-weight:600}
html body.ct .fchip.on{background:var(--ct-accent)!important;border-color:var(--ct-edge)!important;color:var(--ct-on-accent)!important}
html body.ct .chipsep{background:var(--ct-gray)!important}

/* ---------- news cards: ONLY the newest is filled ---------- */
html body.ct .topcard{background:var(--surface)!important;background-image:none!important;border:1px solid var(--ct-gray)!important;box-shadow:none!important;color:var(--ct-ink)!important}
html body.ct .topcard:not(.lead)::before{display:none!important;background:none!important}
html body.ct .topcard .tmeta span{color:var(--ct-soft)!important}
html body.ct .topcard .th{color:var(--ct-ink)!important}
html body.ct .topcard .ts{color:var(--ct-soft)!important}
html body.ct .topcard.lead{position:relative;overflow:hidden;isolation:isolate;background:var(--ct-new)!important;border:1px solid var(--ct-new-edge)!important;border-left:4px solid var(--ct-new-edge)!important;color:var(--ct-ink)!important}
html body.ct .topcard.lead>*{position:relative;z-index:1}
html body.ct .topcard.lead::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:url(/static/x-card.svg?v=89b3eabe3e) right center/cover no-repeat}
@media(min-width:700px){html body.ct .topcard.lead::before{background-image:url(/static/x-card-desk.svg?v=6c16cfc36c)}}
html body.ct .topcard .tkp{background:var(--surface)!important;color:var(--ct-ink)!important;border:1px solid rgba(20,52,64,.10)}
html body.ct .topcard.lead .tkp{background:rgba(255,255,255,.72)!important}
/* sector tags: one line, quiet */
html body.ct .cat{white-space:nowrap;background:var(--surface)!important;color:var(--ct-ink)!important;border:1px solid rgba(20,52,64,.14);font-weight:650}
html body.ct .topcard.lead .cat{background:rgba(255,255,255,.72)!important;border-color:rgba(20,52,64,.10)}
html body.ct .news{background:var(--surface);border-color:var(--ct-gray)}
html body.ct .list.acc-news{border-color:var(--ct-gray)}

/* ---------- SPY + model tiles ---------- */
html body.ct .ms{background:var(--surface-2)!important;background-image:none!important;border:1px solid var(--ct-gray)!important;box-shadow:none!important;color:var(--ct-ink)!important}
html body.ct .ms.mdl{background:var(--ct-tile)!important;border:1px solid var(--ct-tile-edge)!important;border-top:3px solid var(--ct-accent)!important}
html body.ct .ms .k,html body.ct .ms .s{color:var(--ct-soft)!important}
html body.ct .ms .v{color:var(--ct-ink)!important}
html body.ct .ms .up,html body.ct .ms .v.up{color:var(--up)!important}html body.ct .ms .down,html body.ct .ms .v.down,html body.ct .ms .chg.down{color:var(--down)!important}
html body.ct .ms .chg.up{color:var(--up)!important}
@media(min-width:700px){html body.ct .mstrip{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));overflow:visible;margin-left:0;margin-right:0;padding-left:0;padding-right:0}
  html body.ct .mstrip .ms{min-width:0}html body.ct .ms .k{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

/* ---------- section heads, pills, cards, buttons ---------- */
html body.ct h2::before{background:var(--ct-accent)!important;box-shadow:none!important;width:4px!important;height:16px!important}
html body.ct .pill{background:var(--surface)!important;background-image:none!important;border:1px solid var(--ct-gray)!important;border-top:3px solid var(--ct-accent)!important;box-shadow:none!important;color:var(--ct-ink)!important}
html body.ct .card{box-shadow:none!important}
html body.ct .btn.pri,html body.ct button.pri,html body.ct .btn:not(.ghost):not(.sec){background:var(--ct-accent)!important;border:1px solid var(--ct-edge)!important;color:var(--ct-on-accent)!important}
html body.ct .btn:not(.ghost):not(.sec) *{color:var(--ct-on-accent)!important}
html body.ct .btn.ghost{background:var(--surface)!important;border:1px solid var(--ct-gray)!important;color:var(--ct-ink)!important}
html body.ct a{color:var(--ct-accent-d)}
html body.ct .topcard,html body.ct .news,html body.ct .ms,html body.ct .pill,html body.ct .fchip,html body.ct .dnav a,html body.ct nav.bottom a,html body.ct .iconbtn,html body.ct .brand{color:var(--ct-ink)}

/* ---------- bottom nav ---------- */
html body.ct nav.bottom{background:var(--surface-2)!important;border-top:1px solid var(--ct-gray)!important;box-shadow:none!important}
html body.ct nav.bottom a{color:var(--chrome-mute)!important}
html body.ct nav.bottom a.on{color:var(--ct-accent-d)!important}
html body.ct nav.bottom a.on svg{background:none!important;padding:0!important;width:22px!important;height:22px!important}
html body.ct nav.bottom a.on::before{background:var(--ct-accent)!important;left:30%!important;right:30%!important;height:2px!important;top:-7px!important}

/* ---------- footer ---------- */
html body.ct .foot{border-top:1px solid var(--ct-gray)}

/* ---------- get the app landing (the only page with the page-background X) ---------- */
.ct-landing{position:relative;margin:0 -18px;padding:0 18px}
.ct-hero{position:relative;z-index:1;text-align:center;padding:48px 0 28px;display:flex;flex-direction:column;align-items:center}
.ct-hero-mark{height:64px;width:auto;margin-bottom:18px}
.ct-hero-word{font:500 46px/1 "Inter",system-ui,sans-serif;letter-spacing:-.01em;color:var(--ct-ink)}
.ct-hero-lede{margin:20px auto 0;font-size:16px;line-height:1.55;color:var(--ct-soft);max-width:440px}
.ct-hero-ctas{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap;justify-content:center}
.ct-hero-ctas .btn{height:46px;padding:0 22px;display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14.5px;text-decoration:none!important}
.ct-hero-note{margin-top:14px;font-size:12.5px;color:var(--ink-3)}
.ct-install{position:relative;z-index:1;display:grid;gap:12px;grid-template-columns:1fr;max-width:980px;margin:8px auto 28px}
.ct-step-card{background:var(--surface);border:1px solid var(--ct-gray);border-top:3px solid var(--ct-accent);padding:14px 16px}
.ct-step-card h3{margin:0 0 8px;font-size:15px}.ct-step-card ol{margin:0;padding-left:20px;font-size:14px;line-height:1.65;color:var(--ct-ink)}
.ct-desk-only{display:none}
.ct-install-note{position:relative;z-index:1;max-width:980px;margin:-14px auto 32px;text-align:center;font:400 13px/1.5 "Inter",system-ui,sans-serif;color:var(--ink-3)}
@media(min-width:900px){
  .ct-landing{margin:0 calc(50% - 50vw);padding:0 calc(50vw - 50%)}
  .ct-landing::before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;opacity:.75;background:url(/static/x-landing.svg?v=7a99f29336) center top/1440px 1000px repeat;
    -webkit-mask-image:linear-gradient(to bottom,transparent 0,var(--ink-3) 110px);mask-image:linear-gradient(to bottom,transparent 0,var(--ink-3) 110px)}
  .ct-landing::after{content:"";position:absolute;left:50%;top:210px;width:900px;height:520px;transform:translate(-50%,-50%);pointer-events:none;
    background:radial-gradient(ellipse at center,var(--bg) 0%,rgba(238,241,243,.85) 40%,rgba(238,241,243,0) 72%)}
  .ct-hero{padding:84px 0 40px}.ct-hero-mark{height:78px}.ct-hero-word{font-size:62px}
  .ct-install{grid-template-columns:repeat(3,1fr)}.ct-desk-only{display:block}
}

/* ---------- page heroes (Models, Portfolios, Insiders ...): calm seafoam panel, not a blue gradient ---------- */
html body.ct .hero{background:var(--ct-tile)!important;background-image:none!important;border:1px solid var(--ct-tile-edge)!important;border-left:4px solid var(--ct-accent)!important;box-shadow:none!important;color:var(--ct-ink)!important}
html body.ct .hero h1{color:var(--ct-ink)!important}html body.ct .hero p{color:var(--ct-soft)!important}
html body.ct .hero .hchip{background:var(--surface)!important;border:1px solid var(--ct-tile-edge)!important;color:var(--ct-ink)!important}
html body.ct .hero .hchip.ok{background:var(--new)!important}html body.ct .hero .hchip.warn{background:var(--surface-2)!important;border-color:var(--warn)!important}
/* earnings pills: ticker in ink, not light seafoam */
html body.ct .pill b,html body.ct .pill .lg-row b{color:var(--ct-ink)!important}
html body.ct .pill span{color:var(--ct-soft)}
/* tiles: full model names on phone (no ellipsis) */
html body.ct .mstrip .ms .k{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;font-size:12px;line-height:1.25}
html body.ct .mstrip .ms .s{white-space:nowrap;font-size:10.5px;overflow:visible!important;text-overflow:clip!important}
html body.ct .mstrip .ms.mdl{padding:9px 10px!important}
@media(min-width:700px){html body.ct .mstrip{grid-auto-flow:column;grid-auto-columns:1fr;grid-template-columns:none!important}}
.ct-landing{margin:0;padding:0}
@media(min-width:900px){.ct-landing{margin:0 calc(50% - 50vw);padding:0 calc(50vw - 50%);overflow:visible}}
/* model comparison rows: room for "Momentum Top 15" */
html body.ct .cmprow{grid-template-columns:132px 1fr 58px}
@media(min-width:700px){html body.ct .cmprow{grid-template-columns:160px 1fr 62px}}
@media(max-width:380px){html body.ct .cmprow{grid-template-columns:118px 1fr 54px}}
html body.ct .dnav2 a{color:var(--ct-ink)!important}html body.ct .dnav2 a svg{color:var(--ct-accent-d)}
/* ---------- option 7 (Oct 19): cool-gray page, white cards lift with a soft shadow; SPY tiles white ---------- */
html body.ct .topcard,html body.ct .ms,html body.ct .pill{box-shadow:0 1px 2px rgba(20,52,64,.06)!important}
html body.ct .ms:not(.mdl){background:var(--surface)!important}

/* light (round 4): remaining seafoam bits from style.css move to cyan */
html[data-theme=light] body.ct .seg input:checked+span{background:var(--ct-accent)!important;border-color:var(--ct-edge)!important;color:var(--ct-on-accent)!important}
html[data-theme=light] body.ct .seg input:focus-visible+span,html[data-theme=light] body.ct :focus-visible{outline:2px solid var(--ct-accent)!important;outline-offset:2px}
html[data-theme=light] body.ct{accent-color:var(--ct-accent-d)}
html[data-theme=light] body.ct .cmpbar i{background:linear-gradient(90deg,var(--accent-ink),var(--accent-ink))!important}
html[data-theme=light] body.ct .sw:checked{background:var(--accent-ink)}
html[data-theme=light] body.ct .tour-ring{box-shadow:0 0 0 3px var(--new-edge),0 0 0 9999px rgba(8,16,31,.35)}
html[data-theme=light] body.ct .tour-card{border-top-color:var(--new-edge)}html[data-theme=light] body.ct .tour-step{color:var(--accent-ink)}html[data-theme=light] body.ct .tour-dots i.on{background:var(--accent-ink)}
html[data-theme=light] body.ct .tabs a.on{background:var(--accent-ink);border-color:var(--accent-ink);color:var(--white)}
html[data-theme=light] body.ct .dnav2 a svg{color:var(--accent-ink)}
/* light: eyebrows and portfolio heroes (the old --hero gradient is gone, so the white-on-gradient text needs ink) */
html[data-theme=light] body.ct .eyebrow{color:var(--accent-ink)!important;background:rgba(62,200,201,.14)!important}
html[data-theme=light] body.ct .chip.flagchip{background:var(--accent-ink)!important;color:var(--white)!important}
html[data-theme=light] body.ct .chip.mdl{background:var(--ct-tile)!important;color:var(--accent-ink)!important}
html[data-theme=light] body.ct .phero{background:var(--ct-tile)!important;background-image:none!important;border:1px solid var(--ct-tile-edge)!important;border-left:4px solid var(--ct-accent)!important;box-shadow:none!important;color:var(--ct-ink)!important;border-radius:4px!important;overflow:hidden}
html[data-theme=light] body.ct .phero h1,html[data-theme=light] body.ct .phero .tiles-label{color:var(--ct-ink)!important}
html[data-theme=light] body.ct .phero .sub{color:var(--ct-soft)!important;opacity:1}
html[data-theme=light] body.ct .phero .chip{background:var(--surface)!important;border:1px solid var(--ct-tile-edge)!important;color:var(--ct-ink)!important}
html[data-theme=light] body.ct .phero .rt{background:var(--surface)!important;border:1px solid var(--ct-tile-edge)!important}
html[data-theme=light] body.ct .phero .rt .k,html[data-theme=light] body.ct .phero .rt .s{color:var(--ct-soft)!important}
html[data-theme=light] body.ct .phero .rt .v{color:var(--ct-ink)!important}
html[data-theme=light] body.ct .phero .rt.up .v{color:var(--up)!important}html[data-theme=light] body.ct .phero .rt.down .v{color:var(--down)!important}

/* ======================================================================================================
   THEMES (Oct 19): DARK "B" is the default; LIGHT (option 7 above) when the visitor picks it.
   html[data-theme] is set before paint by the <head> script (localStorage 'ct-theme'); app.js applyMode() flips it.
   Dark B: page #121314 · cards var(--surface) · newest #1A2022 · raised var(--line) · text #F2F4F5 · secondary var(--ink-3)
           LINES in logo cyan: newest card #3EC8C9 (1px + 3px left rule), everything else dim cyan var(--line-2) hairlines
           cyan fills carry black #0B0C0D text (9.61:1) · gains var(--up) · losses var(--down) · square corners
   ====================================================================================================== */
/* mark swap: teal mark A in light, lightened mark B1 (#3EC8C9 / #E6F2F2 / var(--accent-ink)) in dark */
.ct-mark.ct-mk-d{display:none!important}
html[data-theme=dark] .ct-mark.ct-mk-l{display:none!important}
html[data-theme=dark] .ct-mark.ct-mk-d{display:block!important}
html[data-theme=dark] .mk-b{fill:var(--ink)}html[data-theme=dark] .mk-c{fill:var(--accent-ink)}

/* Light / Dark switch (drawer + Settings) */
.ct-themesw{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 14px 6px;padding:10px 12px;border:1px solid var(--ct-gray);background:var(--surface)}
.ct-themesw-l{font-size:13px;font-weight:600;color:var(--ct-ink)}
.ct-seg{display:inline-flex;border:1px solid var(--ct-edge);overflow:hidden}
.ct-seg button{appearance:none;-webkit-appearance:none;border:0;margin:0;min-width:64px;height:34px;padding:0 12px;background:transparent;color:var(--ct-ink);font:600 13.5px/1 "Inter",system-ui,sans-serif;cursor:pointer;border-radius:0}
.ct-seg button+button{border-left:1px solid var(--ct-edge)}
html[data-theme=light] .ct-seg [data-ct-theme-set=light]{background:var(--ct-accent);color:var(--ct-on-accent)}
html[data-theme=dark] .ct-seg [data-ct-theme-set=dark]{background:var(--accent);color:var(--on-accent)}
.ct-seg button:focus-visible{outline:2px solid var(--new-edge);outline-offset:2px}
.ct-themesw.in-page{margin:0;border:0;padding:4px 0;background:transparent}

/* ---------- dark tokens ---------- */
html[data-theme=dark]{--ct-header:#121314;--ct-page:#121314;--ct-ink:#F2F4F5;--ct-soft:var(--ink-3);--ct-gray:var(--line-2);--ct-accent:#3EC8C9;--ct-accent-d:#3EC8C9;
 --ct-new:#1A2022;--ct-new-edge:#3EC8C9;--ct-line:#3EC8C9;--ct-card:var(--surface);--ct-raise:var(--line);--ct-hair:var(--line);--ct-dim:var(--line-2);--ct-on-cyan:#0B0C0D;
 --bg:#121314;--card:var(--surface);--ink:#F2F4F5;--muted:var(--ink-3);--soft:var(--line);--chip:var(--line);
 --accent:#3EC8C9;--royal:#3EC8C9;--navy:#F2F4F5;--indigo:#3EC8C9;--azure:#3EC8C9;--sky:#3EC8C9;--pale:var(--line-2);--sec:#3EC8C9;--h2:#F2F4F5;
 --c-news:#3EC8C9;--c-models:#3EC8C9;--c-port:#3EC8C9;--c-ins:#3EC8C9;--c-earn:#3EC8C9;--c-res:#3EC8C9;--c-cat:#3EC8C9;--c-stock:#3EC8C9;--c-copy:#3EC8C9;--c-watch:#3EC8C9;
 --up-bg:rgba(61,214,140,.12);--down-bg:rgba(255,138,101,.12);color-scheme:dark;background:var(--surface)}
html[data-theme=dark] body.ct{background:var(--surface)!important;color:var(--ink)!important}
html[data-theme=dark] body.ct main.wrap,html[data-theme=dark] body.ct .chipbar{background:var(--surface)!important}

/* header: all dark + 1px cyan line */
html[data-theme=dark] body.ct header.top{background:var(--chrome)!important}
html[data-theme=dark] body.ct header.top::after{height:1px!important;background:var(--accent)!important;box-shadow:none!important}
html[data-theme=dark] body.ct header.top .iconbtn{background:transparent!important;border:1px solid var(--line-2)!important;color:var(--chrome-ink)!important}
html[data-theme=dark] body.ct header.top .iconbtn:hover{background:var(--surface)!important}
html[data-theme=dark] .ct-brand,html[data-theme=dark] .ct-word,html[data-theme=dark] .ct-dword,html[data-theme=dark] .ct-dbrand,html[data-theme=dark] .ct-fbrand{color:var(--ink)!important}
html[data-theme=dark] body.ct .dnav a{color:var(--line-2)!important}
html[data-theme=dark] body.ct .dnav a.on{color:var(--ink)!important;background:transparent!important;box-shadow:inset 0 -2px 0 var(--new-edge)!important}
html[data-theme=dark] body.ct .dnav a:hover{background:var(--surface)!important}
html[data-theme=dark] body.ct header.top .search input{background:var(--surface)!important;border:1px solid var(--line-2)!important;color:var(--chrome-ink)!important}
html[data-theme=dark] body.ct header.top .search input::placeholder{color:var(--ink-3)}
html[data-theme=dark] .ct-getapp-top{background:var(--accent)!important;color:var(--on-accent)!important}
html[data-theme=dark] body.ct .sugg{background:var(--surface)!important;border:1px solid var(--line-2)!important;box-shadow:0 8px 24px rgba(0,0,0,.5)!important}
html[data-theme=dark] body.ct .sugg a{color:var(--ink)!important;border-color:var(--line)!important}html[data-theme=dark] body.ct .sugg a:hover{background:var(--line)!important}
html[data-theme=dark] body.ct .sugg span,html[data-theme=dark] body.ct .sugg em{color:var(--ink-3)!important}html[data-theme=dark] body.ct .sugg b{color:var(--ink)!important}

/* drawer */
html[data-theme=dark] body.ct aside.drawer{background:var(--chrome)!important;border-right:1px solid var(--line-2)}
html[data-theme=dark] body.ct aside.drawer .dhead{background:var(--chrome)!important;border-bottom:1px solid var(--new-edge)!important}
html[data-theme=dark] body.ct aside.drawer .iconbtn{background:transparent!important;border:1px solid var(--line-2)!important;color:var(--chrome-ink)!important}
html[data-theme=dark] body.ct .dgt{color:var(--ink-3)!important}
html[data-theme=dark] body.ct .dnav2 a{color:var(--ink)!important}html[data-theme=dark] body.ct .dnav2 a svg{color:var(--accent-ink)!important}
html[data-theme=dark] body.ct .dnav2 a:hover{background:var(--surface)!important}
html[data-theme=dark] body.ct .dnav2 a.on{background:var(--surface)!important;color:var(--ink)!important;box-shadow:inset 2px 0 0 var(--new-edge)!important}
html[data-theme=dark] .ct-getapp-drawer{background:var(--surface)!important;border:1px solid var(--line-2)!important;color:var(--chrome-ink)!important}
html[data-theme=dark] .ct-getapp-drawer img{border-color:var(--line-2)!important}html[data-theme=dark] .ct-getapp-drawer small{color:var(--ink-3)!important}
html[data-theme=dark] .ct-themesw:not(.in-page){background:var(--surface);border-color:var(--line-2)}
html[data-theme=dark] .ct-seg{border-color:var(--new-edge)}html[data-theme=dark] .ct-seg button{color:var(--line-2)}html[data-theme=dark] .ct-seg button+button{border-left-color:var(--new-edge)}
html[data-theme=dark] body.ct .dov{background:rgba(0,0,0,.6)!important}

/* news chips */
html[data-theme=dark] body.ct .fchip{background:transparent!important;border:1px solid var(--line-2)!important;color:var(--line-2)!important}
html[data-theme=dark] body.ct .fchip.on{background:var(--accent)!important;border-color:var(--new-edge)!important;color:var(--on-accent)!important}
html[data-theme=dark] body.ct .chipsep{background:var(--line-2)!important}

/* news cards: newest = bright cyan edge + 3px left rule + dim cyan X; older = dim cyan hairline */
html[data-theme=dark] body.ct .topcard{background:var(--surface)!important;border:1px solid var(--line-2)!important;box-shadow:none!important;color:var(--chrome-ink)!important}
html[data-theme=dark] body.ct .topcard .th{color:var(--chrome-ink)!important}
html[data-theme=dark] body.ct .topcard .tmeta span,html[data-theme=dark] body.ct .topcard .ts{color:var(--ink-3)!important}
html[data-theme=dark] body.ct .topcard.lead{background:var(--chrome)!important;border:1px solid var(--new-edge)!important;border-left:3px solid var(--new-edge)!important}
html[data-theme=dark] body.ct .topcard.lead::before{background-image:url(/static/x-card-dark.svg?v=7c7fd73d7a)!important}
@media(min-width:700px){html[data-theme=dark] body.ct .topcard.lead::before{background-image:url(/static/x-card-desk-dark.svg?v=98c76e9a33)!important}}
html[data-theme=dark] body.ct .topcard .tkp{background:var(--line)!important;color:var(--chrome-ink)!important;border:1px solid var(--line)!important}
html[data-theme=dark] body.ct .topcard.lead .tkp{background:rgba(36,39,42,.85)!important;border-color:var(--line-2)!important}
html[data-theme=dark] body.ct .cat{background:transparent!important;color:var(--line-2)!important;border:1px solid var(--line)!important}
html[data-theme=dark] body.ct .topcard.lead .cat{background:transparent!important;border-color:var(--line-2)!important}
html[data-theme=dark] body.ct .news,html[data-theme=dark] body.ct .list,html[data-theme=dark] body.ct .list.acc-news{background:var(--surface)!important;border-color:var(--line-2)!important}
html[data-theme=dark] body.ct .list>*,html[data-theme=dark] body.ct .news>*{border-color:var(--line)!important}
html[data-theme=dark] body.ct .lgo:not(.mono):not(.cat-ic){background:var(--ink)!important}

/* SPY + model tiles, stats */
html[data-theme=dark] body.ct .ms,html[data-theme=dark] body.ct .ms:not(.mdl){background:var(--surface)!important;border:1px solid var(--line-2)!important;box-shadow:none!important;color:var(--ink)!important}
html[data-theme=dark] body.ct .ms.mdl{background:var(--surface)!important;border:1px solid var(--line-2)!important;border-top:2px solid var(--new-edge)!important}
html[data-theme=dark] body.ct .ms .k,html[data-theme=dark] body.ct .ms .s{color:var(--ink-3)!important}html[data-theme=dark] body.ct .ms .v{color:var(--ink)!important}
html[data-theme=dark] body.ct .up,html[data-theme=dark] body.ct .ms .up,html[data-theme=dark] body.ct .ms .v.up,html[data-theme=dark] body.ct .ms .chg.up{color:var(--up)!important}
html[data-theme=dark] body.ct .down,html[data-theme=dark] body.ct .ms .down,html[data-theme=dark] body.ct .ms .v.down,html[data-theme=dark] body.ct .ms .chg.down{color:var(--down)!important}
html[data-theme=dark] body.ct .stat{background:var(--line)!important;background-image:none!important;border:1px solid var(--line)!important;box-shadow:none!important;color:var(--ink)!important}
html[data-theme=dark] body.ct .stat .k{color:var(--ink-3)!important}html[data-theme=dark] body.ct .stat .v{color:var(--ink)!important}

/* headings, pills, cards, chips, buttons, links */
html[data-theme=dark] body.ct h1,html[data-theme=dark] body.ct h2,html[data-theme=dark] body.ct h3,html[data-theme=dark] body.ct h4{color:var(--ink)}
html[data-theme=dark] body.ct h2::before{background:var(--accent)!important;width:2px!important}
html[data-theme=dark] body.ct .pill{background:var(--surface)!important;border:1px solid var(--line-2)!important;border-top:2px solid var(--ink-2)!important;box-shadow:none!important;color:var(--ink)!important}
html[data-theme=dark] body.ct .pill b,html[data-theme=dark] body.ct .pill .lg-row b{color:var(--ink)!important}html[data-theme=dark] body.ct .pill span{color:var(--ink-3)!important}
html[data-theme=dark] body.ct .card{background:var(--surface)!important;background-image:none!important;border:1px solid var(--line-2)!important;box-shadow:none!important;color:var(--ink)}
html[data-theme=dark] body.ct .chip{background:transparent!important;border:1px solid var(--line-2)!important;color:var(--line-2)!important}
html[data-theme=dark] body.ct .chip.live{border-color:var(--new-edge)!important;color:var(--accent-ink)!important}
html[data-theme=dark] body.ct .chip.flagchip{background:var(--accent)!important;border-color:var(--new-edge)!important;color:var(--on-accent)!important}
html[data-theme=dark] body.ct .btn.pri,html[data-theme=dark] body.ct button.pri,html[data-theme=dark] body.ct .btn:not(.ghost):not(.sec){background:var(--accent)!important;border:1px solid var(--new-edge)!important;color:var(--on-accent)!important}
html[data-theme=dark] body.ct .btn:not(.ghost):not(.sec) *{color:var(--on-accent)!important}
html[data-theme=dark] body.ct .btn.ghost,html[data-theme=dark] body.ct .btn.sec{background:transparent!important;border:1px solid var(--new-edge)!important;color:var(--accent-ink)!important}
html[data-theme=dark] body.ct a{color:var(--accent-ink)}
html[data-theme=dark] body.ct .topcard,html[data-theme=dark] body.ct .news,html[data-theme=dark] body.ct .ms,html[data-theme=dark] body.ct .pill,html[data-theme=dark] body.ct .brand,html[data-theme=dark] body.ct a.row,html[data-theme=dark] body.ct .cmprow{color:var(--chrome-ink)}
html[data-theme=dark] body.ct .muted,html[data-theme=dark] body.ct .small.muted{color:var(--ink-3)!important}
html[data-theme=dark] body.ct .badge{background:var(--accent)!important;color:var(--on-accent)!important}

/* page heroes (Models, Portfolios, Insiders ...) */
html[data-theme=dark] body.ct .hero{background:var(--surface)!important;background-image:none!important;border:1px solid var(--line-2)!important;border-left:2px solid var(--ink-2)!important;color:var(--ink)!important}
html[data-theme=dark] body.ct .hero h1{color:var(--ink)!important}html[data-theme=dark] body.ct .hero p{color:var(--ink-3)!important}
html[data-theme=dark] body.ct .hero .hchip,html[data-theme=dark] body.ct .hero .hchip.ok,html[data-theme=dark] body.ct .hero .hchip.warn{background:transparent!important;border:1px solid var(--line-2)!important;color:var(--ink)!important}
html[data-theme=dark] body.ct .cmprow.spy{color:var(--ink-3)}
html[data-theme=dark] body.ct .cmpbar{background:var(--line)!important}html[data-theme=dark] body.ct .cmpbar i{background:linear-gradient(90deg,var(--accent-ink),var(--accent))!important}
html[data-theme=dark] body.ct .cmprow.spy .cmpbar i{background:var(--ink)!important}

/* forms */
html[data-theme=dark] body.ct input:not([type=checkbox]):not([type=radio]):not([type=range]),html[data-theme=dark] body.ct select,html[data-theme=dark] body.ct textarea{background:var(--surface)!important;border:1px solid var(--line-2)!important;color:var(--ink)!important}
html[data-theme=dark] body.ct input::placeholder,html[data-theme=dark] body.ct textarea::placeholder{color:var(--ink-3)!important}
html[data-theme=dark] body.ct input:focus,html[data-theme=dark] body.ct select:focus,html[data-theme=dark] body.ct textarea:focus{border-color:var(--new-edge)!important;outline:none;box-shadow:0 0 0 1px var(--new-edge)!important}
html[data-theme=dark] body.ct label{color:var(--line-2)}
html[data-theme=dark] body.ct{accent-color:var(--new-edge)}

/* tables */
html[data-theme=dark] body.ct table{color:var(--ink)}
html[data-theme=dark] body.ct th{color:var(--ink-3)!important;background:transparent!important;border-color:var(--line)!important}
html[data-theme=dark] body.ct td{border-color:var(--line)!important}
html[data-theme=dark] body.ct tr:hover td{background:rgba(62,200,201,.05)}

/* charts (server SVG from charts.py): readable axis/grid, the navy series turns off-white */
html[data-theme=dark] body.ct .chart .grid{stroke:var(--line)!important}
html[data-theme=dark] body.ct .chart .axis,html[data-theme=dark] body.ct .chart text{fill:var(--ink-3)!important}
html[data-theme=dark] body.ct .chart [stroke="var(--ink)"]{stroke:var(--ink)!important}
html[data-theme=dark] body.ct .chart [stroke="var(--accent-ink)"]{stroke:var(--new-edge)!important}
html[data-theme=dark] body.ct .chart [fill="var(--accent-ink)"]{fill:var(--new-edge)!important}
html[data-theme=dark] body.ct .chart [fill="var(--new)"]{fill:var(--ink-3)!important}
html[data-theme=dark] body.ct .legend{color:var(--ink-3)}
html[data-theme=dark] body.ct .legend i[style*="var(--ink)"]{background:var(--ink)!important}
html[data-theme=dark] body.ct .legend i[style*="var(--accent-ink)"]{background:var(--accent)!important}
html[data-theme=dark] body.ct .legend i[style*="var(--new)"]{background:var(--line-2)!important}

/* bottom nav, footer, banners */
html[data-theme=dark] body.ct nav.bottom{background:var(--chrome)!important;border-top:1px solid var(--line-2)!important}
html[data-theme=dark] body.ct nav.bottom a{color:var(--ink-3)!important}html[data-theme=dark] body.ct nav.bottom a.on{color:var(--accent-ink)!important}
html[data-theme=dark] body.ct nav.bottom a.on::before{background:var(--accent)!important;height:1px!important}
html[data-theme=dark] body.ct .foot{border-top:1px solid var(--line-2)!important;color:var(--ink-3)}
html[data-theme=dark] body.ct .flash{background:var(--surface-2)!important;border:1px solid var(--new-edge)!important;color:var(--ink)!important}
html[data-theme=dark] body.ct .dhb{background:var(--warn-bg)!important;border:1px solid var(--warn)!important;color:var(--warn)!important}

/* get the app landing */
html[data-theme=dark] .ct-hero-word{color:var(--ink)}html[data-theme=dark] .ct-hero-lede{color:var(--ink-3)}
html[data-theme=dark] .ct-hero-note,html[data-theme=dark] .ct-install-note{color:var(--ink-3)}
html[data-theme=dark] .ct-step-card{background:var(--surface);border:1px solid var(--line-2);border-top:2px solid var(--ink-2);color:var(--ink)}
html[data-theme=dark] .ct-step-card ol{color:var(--line-2)}
@media(min-width:900px){
 html[data-theme=dark] .ct-landing::before{background-image:url(/static/x-landing-dark.svg?v=560ce341e3);opacity:.6}
 html[data-theme=dark] .ct-landing::after{background:radial-gradient(ellipse at center,var(--surface) 0%,rgba(18,19,20,.85) 40%,rgba(18,19,20,0) 72%)}
}

/* dark: model "why it's in" boxes, buy/hold labels, sector chips, tabs, grades */
html[data-theme=dark]{--ix-a:#3EC8C9;--ix-abg:rgba(62,200,201,.08);--ix-b:var(--new-edge);--ix-t:#3EC8C9;--ix-tbg:rgba(62,200,201,.10);--ix-w:#FFB59A;--ix-wbg:rgba(255,138,101,.12)}
html[data-theme=dark] body.ct .whyin{background:var(--surface-2)!important;border-left:2px solid var(--new-edge)!important;color:var(--ink)!important}
html[data-theme=dark] body.ct .whyin p,html[data-theme=dark] body.ct .whyin b{color:var(--ink)!important}html[data-theme=dark] body.ct .whyin .wk{color:var(--ink-3)!important}
html[data-theme=dark] body.ct .whyin .wr{background:var(--line)!important;color:var(--new-edge)!important}
html[data-theme=dark] body.ct .blab{background:var(--line)!important;color:var(--line-2)!important}
html[data-theme=dark] body.ct .blab.enter{background:rgba(62,200,201,.12)!important;color:var(--accent-ink)!important}
html[data-theme=dark] body.ct .blab.hold{background:rgba(62,200,201,.08)!important;color:var(--new-edge)!important}
html[data-theme=dark] body.ct .blab.risk{background:rgba(255,138,101,.12)!important;color:var(--down)!important}
html[data-theme=dark] body.ct .sx{background:transparent!important;border:1px solid var(--line);color:var(--line-2)!important}
html[data-theme=dark] body.ct .tabs a{background:transparent!important;border:1px solid var(--line-2)!important;color:var(--line-2)!important}
html[data-theme=dark] body.ct .tabs a.on{background:var(--accent)!important;border-color:var(--new-edge)!important;color:var(--on-accent)!important}
html[data-theme=dark] body.ct .seg span{background:var(--surface)!important;border-color:var(--line-2)!important;color:var(--line-2)!important}
html[data-theme=dark] body.ct .seg input:checked+span{background:var(--accent)!important;border-color:var(--new-edge)!important;color:var(--on-accent)!important}
html[data-theme=dark] body.ct .gN{background:var(--line-2)!important}
html[data-theme=dark] body.ct .rd-imp{color:var(--accent-ink)!important}
html[data-theme=dark] body.ct .rangebar .rg{background:rgba(62,200,201,.30)}html[data-theme=dark] body.ct .rangebar .pm{background:var(--ink)}html[data-theme=dark] body.ct .rangebar .tm{background:var(--accent)}
/* dark: switches, tour, push prompt */
html[data-theme=dark] body.ct .sw{background:var(--line)}html[data-theme=dark] body.ct .sw:checked{background:var(--accent)}
html[data-theme=dark] body.ct .sw::after{background:var(--ink)}html[data-theme=dark] body.ct .sw:checked::after{background:var(--bg)}
html[data-theme=dark] body.ct .tour{background:rgba(0,0,0,.6)}
html[data-theme=dark] body.ct .tour-ring{box-shadow:0 0 0 2px var(--new-edge),0 0 0 9999px rgba(0,0,0,.45)}
html[data-theme=dark] body.ct .tour-card{background:var(--surface);color:var(--ink);border:1px solid var(--line-2);border-top:2px solid var(--new-edge);box-shadow:0 14px 40px rgba(0,0,0,.6)}
html[data-theme=dark] body.ct .tour-step{color:var(--accent-ink)}html[data-theme=dark] body.ct .tour-b{color:var(--ink-3)}
html[data-theme=dark] body.ct .tour-dots i{background:var(--line)}html[data-theme=dark] body.ct .tour-dots i.on{background:var(--accent)}
html[data-theme=dark] body.ct .tour-nav .iconbtn{background:transparent!important;border:1px solid var(--line-2)!important;color:var(--ink)!important}
html[data-theme=dark] body.ct .pushprompt{background:var(--surface);border:1px solid var(--line-2);border-left:2px solid var(--new-edge);box-shadow:0 10px 30px rgba(0,0,0,.5)}
html[data-theme=dark] body.ct .pp-ic{background:var(--accent);color:var(--on-accent)}
html[data-theme=dark] body.ct .lgo.mono{color:var(--ink)!important}
html[data-theme=light] body.ct .gN{background:var(--ink-3)}

/* ---------- spacing (Oct 19, round 5): 12px gaps between cards and tiles everywhere, ~18px above section heads. Both themes. ----------
   before: grids 8px (news cards, SPY/model tiles, earnings pills, stats), 6px (return tiles), stacked cards 16px, 24px above h2 */
html body.ct :is(.tops,.mstrip,.strip,.grid2,.grid3,.gtiles,.qgrid,.rtiles,.scen,.rcap,.tgrid,.hsum,.ct-install,.bubsum){gap:12px!important}
html body.ct main .tops{margin-bottom:12px}html body.ct main .bubsum{margin-bottom:12px}
html body.ct main :is(.card,.list,.phero,.shero){margin-top:0;margin-bottom:12px}
html body.ct main .hero{margin-bottom:12px}
html body.ct main h2{margin-top:18px}
html body.ct main h2+:is(.card,.list,.tops,.mstrip,.strip){margin-top:0}
html body.ct .whyin{margin:12px 0 0}html body.ct .whyin+.whyin{margin-top:12px}

/* ====================== refine (Oct 19, round 6) ====================== */
/* lead news headline: General Sans 600 (one heading face site-wide) */

html body.ct .topcard.lead .th{font-family:var(--f-head)!important;font-weight:600!important;font-size:24px!important;line-height:1.18!important;letter-spacing:-.005em}
@media(min-width:700px){html body.ct .topcard.lead .th{font-size:26px!important}}

/* tabular numbers on prices, percentages, returns, tiles, tables and chart labels (Inter has tnum) */
html body.ct :is(.v,.chg,.up,.down,.ms,.rt,.stat,.pill,table,th,td,.chart,.chart text,.cmprow,.rd-v,.legend,.grade,.k,.s,.px,.price,.pct,.ret,.rtiles,.gtiles,.qgrid,.scen,.hsum,.tkp,.badge,.n){font-variant-numeric:tabular-nums}

/* letter-only company logos: light = ink letter on a pale cyan tile (12.9:1); dark keeps the brand-color tile with a white letter */
html[data-theme=light] body.ct .lgo.mono{background:var(--new)!important;color:var(--ink)!important;box-shadow:inset 0 0 0 1px var(--new-edge);font-weight:700}

/* dark active chip: outlined, cyan text on a faint cyan tint (primary buttons stay filled) */
html[data-theme=dark] body.ct .fchip.on{background:rgba(62,200,201,.12)!important;border:1px solid var(--new-edge)!important;color:var(--accent-ink)!important}

/* translucent blurred sticky header (Point72-style); solid fallback where backdrop-filter is unsupported */
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
 html[data-theme=light] body.ct header.top{background:rgba(217,221,224,.82)!important;-webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%)}
 html[data-theme=dark] body.ct header.top{background:rgba(18,19,20,.82)!important;-webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%)}
}
html body.ct.dopen header.top{-webkit-backdrop-filter:none;backdrop-filter:none}

/* company logo tiles (kind from logos.logo_kind): neutral, consistent, no filters, readable in both themes.
   Selectors carry :not(.mono):not(.cat-ic) + the theme attribute so they outrank the older dark-mode plate rule. */
html[data-theme] body.ct .lgo:not(.mono):not(.cat-ic){box-shadow:none!important;filter:none!important;mix-blend-mode:normal!important}
html[data-theme] body.ct .lgo:not(.mono):not(.cat-ic) img{filter:none!important;mix-blend-mode:normal!important}
html[data-theme=light] body.ct .lgo.lgo-plate:not(.mono):not(.cat-ic){background:var(--surface-2)!important;border:1px solid var(--line)!important}
html[data-theme=dark] body.ct .lgo.lgo-plate:not(.mono):not(.cat-ic){background:var(--ink)!important;border:1px solid var(--ink-3)!important}
html[data-theme=light] body.ct .lgo.lgo-white:not(.mono):not(.cat-ic){background:var(--surface)!important;border:1px solid var(--line)!important}
html[data-theme=dark] body.ct .lgo.lgo-white:not(.mono):not(.cat-ic){background:var(--ink)!important;border:1px solid var(--ink-3)!important}
html[data-theme=light] body.ct .lgo.lgo-dark:not(.mono):not(.cat-ic){background:var(--surface-2)!important;border:1px solid var(--line)!important}
html[data-theme=dark] body.ct .lgo.lgo-dark:not(.mono):not(.cat-ic){background:var(--surface-2)!important;border:1px solid var(--line-2)!important}
html[data-theme] body.ct .lgo.lgo-fill:not(.mono):not(.cat-ic){background:var(--lg-bg,var(--surface))!important;border:0!important}
html[data-theme=light] body.ct .lgo.lgo-fill:not(.mono):not(.cat-ic){box-shadow:0 0 0 1px rgba(20,52,64,.10)!important}
html[data-theme] body.ct .lgo.lgo-fill:not(.mono):not(.cat-ic) img{width:100%!important;height:100%!important;object-fit:cover}
html[data-theme=dark] body.ct .lgo.lgo-fill:not(.mono):not(.cat-ic){box-shadow:0 0 0 1px rgba(255,255,255,.14)!important}

/* get-app hero on phones: larger mark + wordmark (desktop sizes unchanged) */
@media(max-width:699px){html body.ct .ct-hero{padding:40px 0 26px}html body.ct .ct-hero-mark{height:84px;margin-bottom:22px}html body.ct .ct-hero-word{font-size:58px}}

/* pull-to-refresh (touch devices; installed app gets it everywhere, browsers keep their own) */
.ct-ptr{position:fixed;left:50%;top:0;z-index:60;width:36px;height:36px;margin-left:-18px;border-radius:50%!important;display:flex;align-items:center;justify-content:center;
  background:var(--surface);border:1px solid var(--line);box-shadow:0 2px 8px rgba(20,52,64,.14);transform:translateY(-48px);opacity:0;pointer-events:none;transition:opacity .15s}
.ct-ptr svg{width:20px;height:20px;display:block}
.ct-ptr .ct-ptr-arc{stroke:var(--new-edge);stroke-width:2.6;fill:none;stroke-linecap:round}
.ct-ptr.ready .ct-ptr-arc{stroke:var(--accent-ink)}
.ct-ptr.spin svg{animation:ctptr .7s linear infinite}
html[data-theme=dark] .ct-ptr{background:var(--surface);border-color:var(--line-2);box-shadow:0 2px 10px rgba(0,0,0,.5)}
html[data-theme=dark] .ct-ptr.ready .ct-ptr-arc{stroke:var(--accent)}
@keyframes ctptr{to{transform:rotate(360deg)}}
html body.ct .ct-ptr{border-radius:50%!important}
html.ct-standalone,html.ct-standalone body{overscroll-behavior-y:contain}

/* return-period chips + values (portfolios, models) */
html body.ct .ct-pbar{display:flex;align-items:center;gap:10px;margin:12px 0 4px;flex-wrap:wrap}
html body.ct .ct-pbar-l{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ct-soft,var(--ink-2))}
html body.ct .ct-pchips{display:flex;gap:4px;flex-wrap:nowrap;max-width:100%;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
html body.ct .ct-pchips::-webkit-scrollbar{display:none}
html body.ct .ct-pchip{flex:0 0 auto;height:30px;min-width:36px;padding:0 7px;border-radius:4px!important;border:1px solid var(--line);background:var(--surface);color:var(--ink);
  font:600 12px/28px "Inter",system-ui,sans-serif;font-variant-numeric:tabular-nums;cursor:pointer;-webkit-tap-highlight-color:transparent}
html body.ct .ct-pchip.on{background:var(--accent);color:var(--ink);border-color:var(--accent-ink)}
html body.ct .ct-pchip:focus-visible{outline:2px solid var(--new-edge);outline-offset:2px}
html[data-theme=dark] body.ct .ct-pchip{background:var(--surface);border-color:var(--line-2);color:var(--line-2)}
html[data-theme=dark] body.ct .ct-pchip.on{background:rgba(62,200,201,.12);border-color:var(--new-edge);color:var(--accent-ink)}
html body.ct .ct-pv{font-variant-numeric:tabular-nums}
html body.ct .ct-psrc{color:inherit;opacity:.85}
html body.ct .ct-psel{display:flex;align-items:baseline;gap:12px;margin:10px 0 8px;flex-wrap:wrap}
html body.ct .ct-psel .ct-big{font-size:30px;font-weight:700;letter-spacing:-.01em}
html body.ct .ct-psel-s{font-size:13px;color:var(--ct-soft,var(--ink-2));font-variant-numeric:tabular-nums}
html body.ct .ct-pstrip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
@media(min-width:700px){html body.ct .ct-pstrip{grid-template-columns:repeat(7,minmax(0,1fr))}}
html body.ct .ct-pcell{padding:6px 4px;border:1px solid var(--line);border-radius:4px!important;background:var(--surface);text-align:center;cursor:pointer;min-width:0}
html body.ct .ct-pcell .k{font-size:11px;font-weight:600;color:var(--ink-2)}
html body.ct .ct-pcell .v{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
html body.ct .ct-pcell .s{font-size:9.5px;color:var(--ink-3);margin-top:1px}
html body.ct .ct-pcell.on{border-color:var(--new-edge);box-shadow:inset 0 0 0 1px var(--new-edge)}
html[data-theme=dark] body.ct .ct-pcell{background:var(--surface);border-color:var(--line-2)}
html[data-theme=dark] body.ct .ct-pcell .k,html[data-theme=dark] body.ct .ct-pcell .s{color:var(--ink-3)}
html[data-theme=light] body.ct .up.ct-pv,html[data-theme=light] body.ct .ct-pcell .v.up{color:var(--up)}
html[data-theme=light] body.ct .down.ct-pv,html[data-theme=light] body.ct .ct-pcell .v.down{color:var(--down)}

/* owner: soft-delete a portfolio */
html body.ct .ct-owner-del{display:flex;align-items:center;gap:10px;margin:10px 0 4px}
html[data-theme] body.ct .btn.ct-danger-ghost,html[data-theme] body.ct .ct-danger-ghost{background:transparent!important;color:var(--down)!important;border:1px solid var(--down)!important;height:36px;padding:0 14px;font-weight:600}
html[data-theme] body.ct .btn.ct-danger,html[data-theme] body.ct .ct-danger{background:var(--down)!important;color:var(--white)!important;border:1px solid var(--down)!important;font-weight:600}
html[data-theme] body.ct .btn.ct-danger:disabled{opacity:.45;cursor:not-allowed}
html body.ct dialog.ct-dlg{border:1px solid var(--line);border-radius:4px!important;padding:18px;max-width:min(92vw,420px);width:100%;background:var(--surface);color:var(--ink)}
html body.ct dialog.ct-dlg::backdrop{background:rgba(10,20,25,.45)}
html body.ct dialog.ct-dlg h3{margin:0 0 8px;font-size:18px}
html body.ct dialog.ct-dlg input[name=confirm]{width:100%;height:40px;margin:6px 0 12px;padding:0 10px;border:1px solid var(--line-2);border-radius:4px!important;font:inherit;box-sizing:border-box}
html body.ct .ct-dlg-a{display:flex;justify-content:flex-end;gap:8px}
html[data-theme=dark] body.ct dialog.ct-dlg{background:var(--surface);color:var(--ink);border-color:var(--line-2)}
html[data-theme=dark] body.ct dialog.ct-dlg input[name=confirm]{background:var(--surface);color:var(--ink);border-color:var(--line-2)}
html[data-theme=dark] body.ct .btn.ct-danger-ghost{color:var(--down)!important;border-color:var(--line-2)!important}

/* header L1: lockup on the left, 10px right of the menu button (approved Oct 19) */
@media(max-width:899px){
  html body.ct header.top .toprow{gap:10px}
  .ct-brand{position:static!important;transform:none!important;flex:0 0 auto;margin:0 auto 0 0!important}
}
@media(min-width:900px){
  html body.ct header.top .ct-brand{margin-left:2px!important}
}

/* H1b (approved Oct 19): light theme keeps light pages/cards but uses the dark header + dark bottom nav */
html[data-theme=light] body.ct header.top{background:rgba(18,19,20,.94)!important;-webkit-backdrop-filter:saturate(1.2) blur(10px);backdrop-filter:saturate(1.2) blur(10px);border-bottom-color:transparent!important}
html[data-theme=light] body.ct header.top::after{height:1px!important;background:var(--accent)!important;box-shadow:none!important}
html[data-theme=light] body.ct header.top .ct-word,html[data-theme=light] body.ct header.top .ct-brand{color:var(--chrome-ink)!important}
html[data-theme=light] header.top .ct-mark.ct-mk-l,html[data-theme=light] aside.drawer .dhead .ct-mark.ct-mk-l{display:none!important}
html[data-theme=light] header.top .ct-mark.ct-mk-d,html[data-theme=light] aside.drawer .dhead .ct-mark.ct-mk-d{display:block!important}
html[data-theme=light] body.ct header.top .iconbtn{background:var(--surface)!important;border:1px solid var(--line-2)!important;color:var(--chrome-ink)!important}
html[data-theme=light] body.ct header.top .iconbtn:hover{background:var(--line)!important}
html[data-theme=light] body.ct header.top .dnav a{color:var(--line-2)!important}
html[data-theme=light] body.ct header.top .dnav a.on{color:var(--chrome-ink)!important;background:transparent!important;box-shadow:inset 0 -2px 0 var(--new-edge)!important}
html[data-theme=light] body.ct header.top .dnav a:hover{background:rgba(255,255,255,.06)!important;color:var(--chrome-ink)!important}
html[data-theme=light] body.ct header.top .search input{background:var(--surface)!important;border:1px solid var(--line-2)!important;color:var(--chrome-ink)!important}
html[data-theme=light] body.ct header.top .search input::placeholder{color:var(--ink-3)!important}
html[data-theme=light] body.ct aside.drawer .dhead{background:var(--chrome)!important;border-bottom:1px solid var(--new-edge)!important}
html[data-theme=light] body.ct aside.drawer .dhead .ct-dword,html[data-theme=light] body.ct aside.drawer .dhead .ct-dbrand{color:var(--chrome-ink)!important}
html[data-theme=light] body.ct aside.drawer .dhead .iconbtn,html[data-theme=light] body.ct aside.drawer .dhead button{background:var(--surface)!important;border:1px solid var(--line-2)!important;color:var(--chrome-ink)!important}
html[data-theme=light] body.ct nav.bottom{background:var(--chrome)!important;border-top:1px solid var(--line-2)!important}
html[data-theme=light] body.ct nav.bottom a{color:var(--chrome-ink)!important}
html[data-theme=light] body.ct nav.bottom a.on{color:var(--accent-ink)!important}
html[data-theme=light] body.ct nav.bottom a.on::before{background:var(--accent)!important;height:1px!important}

/* O4 (approved Oct 19): method tags (outline), LIVE (solid cyan), LOOK-BACK / BACKTEST (dashed) + legend */
html body.ct .mtag{display:inline-flex;align-items:center;font:700 10px/1 Inter,system-ui,sans-serif;letter-spacing:.07em;text-transform:uppercase;padding:3px 6px;border-radius:2px!important;vertical-align:3px;margin-left:6px;white-space:nowrap;opacity:1}
html body.ct .mtag.m0{margin-left:0;margin-right:6px}
html body.ct .mtag.none{display:none}
html body.ct .mtag.solid{background:var(--accent);color:var(--ink);border:1px solid var(--accent-ink)}
html body.ct .mtag.out{background:transparent;color:var(--accent-ink);border:1px solid var(--accent-ink)}
html body.ct .mtag.bt{background:var(--surface-2);color:var(--ink-2);border:1px dashed var(--ink-3)}
html body.ct h1 .mtag{vertical-align:6px}
html body.ct .mnote{font-size:12.5px;color:var(--ink-2);margin:4px 0 10px;line-height:1.7}
html body.ct .ct-legend{margin:2px 0 6px}
html body.ct .ct-rsrc{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:0 2px}
html body.ct .ct-psel-s .mtag{vertical-align:1px}
html[data-theme=dark] body.ct .mtag.solid{background:var(--accent);color:var(--accent-ink);border-color:var(--new-edge)}
html[data-theme=dark] body.ct .mtag.out{color:var(--accent);border-color:var(--accent-ink)}
html[data-theme=dark] body.ct .mtag.bt{background:transparent;color:var(--ink-2);border-color:var(--ink-3)}
html[data-theme=dark] body.ct .mnote{color:var(--ink-2)}
html body.ct .mtag.xs{font-size:8.5px;padding:2px 4px;letter-spacing:.05em;margin:3px 0 0;vertical-align:0}
html body.ct .ct-rsrc .mtag{margin:0 6px 0 0}

/* size fix (Oct 19): O4 tags at prior density: smaller tags, no extra lines from tags, compact legend/notes */
html body.ct .mtag{font-size:9px;padding:2px 5px;letter-spacing:.06em;vertical-align:2px}
html body.ct .mtag.xs{font-size:8px;padding:2px 4px;letter-spacing:.05em;margin:2px 0 0;vertical-align:1px}
html body.ct h1 .mtag{font-size:9px;vertical-align:5px;margin-left:8px}
html body.ct .mnote{line-height:1.45;margin:2px 0 8px}
html body.ct .ct-legend{font-size:11.5px;margin:0 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.ct .ct-legend .mtag.xs{margin:0 3px 0 0;vertical-align:1px}
html body.ct .ct-legend .ct-lsep{margin:0 4px 0 1px}
html body.ct .ct-has-edge{position:relative}
html body.ct .mtag.edge{position:absolute;top:-6px;right:8px;margin:0;z-index:1}
html[data-theme=light] body.ct .mtag.edge{background:var(--surface-2)}
html[data-theme=dark] body.ct .mtag.edge{background:var(--surface)}
/* iOS zooms the page when a <16px field is focused and the installed app can stay zoomed: keep fields at 16px on phones */
@media(max-width:899px){html body.ct input:not([type=checkbox]):not([type=radio]):not([type=range]),html body.ct select,html body.ct textarea{font-size:16px!important}}
html body.ct .ct-pcell .mtag.xs{padding:1px 3px;margin-top:1px;font-size:7.5px}

/* slim bottom nav (Oct 19): ~48px bar in browser + app; browser mode adds almost no bottom padding (Safari's own
   toolbar already sits over the home indicator); the installed app keeps a reduced home-indicator pad. Auto-hides on
   scroll down in browser mode only (static/app.js). */
@media(max-width:899px){
  html body.ct{--ct-nav-pb:max(3px, calc(env(safe-area-inset-bottom) * .25))}
  html.ct-standalone body.ct{--ct-nav-pb:max(6px, calc(env(safe-area-inset-bottom) - 12px))}
  @media (display-mode: standalone){html body.ct{--ct-nav-pb:max(6px, calc(env(safe-area-inset-bottom) - 12px))}}
  html body.ct nav.bottom{padding:3px max(4px,env(safe-area-inset-left)) var(--ct-nav-pb) max(4px,env(safe-area-inset-right))!important;
    transition:transform .22s ease;will-change:transform}
  html body.ct nav.bottom a{min-height:42px;gap:2px;font-size:10px;line-height:12px;letter-spacing:.01em}
  html body.ct nav.bottom a svg,html body.ct nav.bottom a.on svg{width:20px!important;height:20px!important;padding:0!important}
  html body.ct nav.bottom a.on::before{top:-3px!important}
  html body.ct nav.bottom.ct-nav-hide{transform:translateY(calc(100% + 2px))}
  html body.ct{padding-bottom:calc(60px + var(--ct-nav-pb))!important}
  html body.ct .pushprompt{bottom:calc(54px + var(--ct-nav-pb))}
}
@media (prefers-reduced-motion: reduce){html body.ct nav.bottom{transition:none!important}}

/* narrow desktop (900-1199px): the longer "Get the Coteau app" button + nav + search must fit without sideways scroll.
   Search and button shrink a little; the nav row scrolls horizontally inside its own box when it still doesn't fit. */
@media(min-width:900px) and (max-width:1199px){
  html body.ct header.top .search{width:150px}
  html body.ct .ct-getapp-top{font-size:12.5px;padding:0 10px}
  html body.ct header.top .dnav{flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,var(--ink-3) calc(100% - 18px),transparent)}
  html body.ct header.top .dnav::-webkit-scrollbar{display:none}
  html body.ct header.top .dnav a{flex:0 0 auto}
  html body.ct header.top .tb{flex:0 0 auto}
}

/* wordmark F4 (Oct 19): lowercase coteau in "General Sans" 600, 22px, -0.01em; UI text stays Inter.
   (@font-face for "General Sans" lives in base.html's inline boot CSS so the splash and header get it before paint) */
html body.ct .ct-word{font:600 22px/1 "General Sans",Inter,system-ui,sans-serif;letter-spacing:-.01em;transform:none}
html body.ct .ct-word .ct-mark{top:-1px}
html body.ct .ct-dword{font:600 20px/1 "General Sans",Inter,system-ui,sans-serif;letter-spacing:-.01em}
html body.ct .ct-hero-word{font-family:"General Sans",Inter,system-ui,sans-serif;font-weight:600;letter-spacing:-.01em;font-size:44px}
@media(min-width:900px){html body.ct .ct-hero-word{font-size:59px}}
@media(max-width:699px){html body.ct .ct-hero-word{font-size:55px}}

/* bars (Oct 19): header, bottom nav, drawer header and the status-bar strip are SOLID #121314, the dark page colour,
   in every theme/mode. No translucency, blur or gradient. The installed iOS app uses status-bar-style black-translucent,
   so the header itself paints the status-bar strip (padding = the top safe-area inset; 0 in the browser). */
html body.ct header.top,html[data-theme] body.ct header.top{background:var(--chrome)!important;background-image:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;opacity:1!important;padding-top:env(safe-area-inset-top,0px)}
html body.ct nav.bottom,html[data-theme] body.ct nav.bottom{background:var(--chrome)!important;background-image:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important;opacity:1!important}
html body.ct aside.drawer .dhead,html[data-theme] body.ct aside.drawer .dhead{background:var(--chrome)!important;background-image:none!important;padding-top:calc(12px + env(safe-area-inset-top,0px))}
html body.ct .ct-ptr{top:env(safe-area-inset-top,0px)}

/* nav tap feedback: pressed tab + progress bar until the next page arrives */
html body.ct nav.bottom a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
html body.ct nav.bottom a:active,html body.ct nav.bottom a.ct-tap{opacity:.75}
html.ct-going body.ct::before{content:"";position:fixed;left:0;top:env(safe-area-inset-top,0px);height:2px;width:100%;z-index:9999;pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--accent) 40%,var(--accent) 60%,transparent);background-size:50% 100%;background-repeat:no-repeat;animation:ctgo 1s linear infinite}
@keyframes ctgo{from{background-position:-50% 0}to{background-position:150% 0}}

/* Oct 20: phone header tagline (option A) + drawer quick row (Get app + Light/Dark at top) */
html body.ct aside.drawer .ct-dbrand{align-items:flex-start!important}
html body.ct aside.drawer .ct-dbrand .ct-mark{margin-top:0}
html body.ct .ct-dlock{display:flex;flex-direction:column;align-items:flex-start}
html body.ct .ct-dtag{display:block;margin-top:4px;font:500 8px/1 "Inter",system-ui,-apple-system,sans-serif!important;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)!important;white-space:nowrap}
html body.ct .cx-dr .cx-quick{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 16px 6px!important;width:auto!important}
html body.ct .cx-qapp{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border-radius:9px;background:var(--accent);color:var(--ink);font:600 13px/1 "Inter",system-ui,sans-serif;text-decoration:none;white-space:nowrap}
html body.ct .cx-qtheme{flex:none}

/* ===== Get-the-app page (Oct 20): same look as the v9 share card — big mark over a small "General Sans" "coteau" on #121314 ===== */
html body.ct .ga{margin:-18px calc(50% - 50vw) 0;padding:0}
html body.ct .ga-hero{background:var(--chrome);color:var(--white);text-align:center;padding:56px 24px 44px;display:flex;flex-direction:column;align-items:center}
html body.ct .ga-mark{width:150px;height:auto;display:block}
html body.ct .ga-word{margin-top:0;font:600 48px/1 "General Sans",Inter,system-ui,sans-serif!important;letter-spacing:-.01em;color:var(--surface-2)}
html body.ct .ga-lede{margin:22px auto 0;max-width:300px;font-size:14.5px;line-height:1.5;color:var(--ink-3)}
html body.ct .ga-done{margin:16px 0 0;font-size:13.5px;color:var(--ink-3)}html body.ct .ga-done a{color:var(--accent-ink)}
html body.ct .ga-what,html body.ct .ga-how{max-width:560px;margin:0 auto;padding:30px 20px 4px}
html body.ct .ga-h{margin:0 0 6px;font-size:19px;font-weight:600;letter-spacing:-.01em}
html body.ct .ga-sub{margin:0 0 16px;font-size:14px;line-height:1.5;color:var(--ct-soft,var(--ink-2))}
html body.ct .ga-list{display:grid;gap:10px}
html body.ct .ga-list a{display:block;padding:14px 16px;border:1px solid var(--ct-gray,var(--line-2));border-left:3px solid var(--new-edge);background:var(--ct-card,var(--surface));color:inherit!important;text-decoration:none!important;border-radius:4px}
html body.ct .ga-list b{display:block;font-size:15px;margin-bottom:3px}html body.ct .ga-list span{display:block;font-size:13.5px;line-height:1.45;color:var(--ct-soft,var(--ink-2))}
html body.ct .ga-fine{margin:14px 0 0;font-size:12.5px;color:var(--ink-3)}
html body.ct .ga-tabs{display:flex;gap:0;border:1px solid var(--ct-gray,var(--line-2));border-radius:4px;overflow:hidden;margin:0 0 14px}
html body.ct .ga-tabs button{flex:1;height:40px;border:0;background:transparent;color:inherit;font-size:14px;font-weight:500;cursor:pointer;border-radius:0!important}
html body.ct .ga-tabs button+button{border-left:1px solid var(--ct-gray,var(--line-2))}
html body.ct .ga-tabs button[aria-selected=true]{background:var(--chrome);color:var(--surface-2);font-weight:600}
html body.ct .ga-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px}
html body.ct .ga-steps[hidden]{display:none}
html body.ct .ga-steps li{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--ct-gray,var(--line-2));background:var(--ct-card,var(--surface));border-radius:4px;font-size:15px;line-height:1.45}
html body.ct .ga-steps .n{flex:none;width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--ink);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:-1px}
html body.ct .ga-ic{width:16px;height:16px;vertical-align:-3px}
html body.ct .ga-btn{display:block;width:100%;height:48px;margin:14px 0 0;border:0;border-radius:4px;background:var(--accent);color:var(--ink);font-size:15.5px;font-weight:600;cursor:pointer}
html body.ct .ga-btn[hidden]{display:none}
html body.ct .ga-after{margin:16px 0 0;font-size:13.5px;line-height:1.5;color:var(--ct-soft,var(--ink-2))}
html body.ct .ga-skip{display:block;text-align:center;margin:18px 0 34px;font-size:14px;color:var(--ct-soft,var(--ink-2))!important}
html[data-theme=dark] body.ct .ga-hero{border-bottom:1px solid var(--line)}
html[data-theme=dark] body.ct .ga-list a,html[data-theme=dark] body.ct .ga-steps li{background:var(--surface);border-color:var(--line-2);color:var(--ink)}
html[data-theme=dark] body.ct .ga-list span,html[data-theme=dark] body.ct .ga-sub,html[data-theme=dark] body.ct .ga-after,html[data-theme=dark] body.ct .ga-skip{color:var(--ink-3)!important}
html[data-theme=dark] body.ct .ga-tabs,html[data-theme=dark] body.ct .ga-tabs button+button{border-color:var(--line-2)}
html[data-theme=dark] body.ct .ga-tabs button[aria-selected=true]{background:var(--accent);color:var(--on-accent)}
@media(min-width:900px){html body.ct .ga{margin:-24px calc(50% - 50vw) 0}html body.ct .ga-hero{padding:96px 24px 76px}html body.ct .ga-mark{width:220px}html body.ct .ga-word{margin-top:0;font-size:68px}html body.ct .ga-lede{max-width:420px;font-size:16px}
 html body.ct .ga-what,html body.ct .ga-how{max-width:760px}html body.ct .ga-list{grid-template-columns:repeat(3,1fr)}}

/* ===== Type system (Oct 20): "General Sans" for titles and headlines (matches the wordmark), Inter for everything else ===== */
html body.ct :is(h1,h2,.ga-h,.topcard .th,.topcard.lead .th,.news .h,.ct-hero-word):not(#_){font-family:"General Sans",Inter,system-ui,sans-serif!important;font-weight:600!important;letter-spacing:-.01em!important}
html body.ct h3:not(#_){font-family:"General Sans",Inter,system-ui,sans-serif!important;font-weight:600!important;letter-spacing:-.005em!important}
html body.ct .topcard.lead .th:not(#_){font-size:21px!important;line-height:1.25!important}
/* get-app v2 (Oct 20): two side-by-side choices under the logo, What is Coteau folded, install steps right after */
html body.ct .ga-ctas{display:flex;gap:10px;margin-top:26px;width:100%;max-width:420px}
html body.ct .ga-ctas a{flex:1;display:flex;align-items:center;justify-content:center;height:48px;padding:0 10px;border-radius:4px;font-weight:600;font-size:14.5px;text-decoration:none!important;white-space:nowrap}
html body.ct .ga-b1{background:var(--accent);color:var(--ink)!important;border:1px solid var(--new-edge)}
html body.ct .ga-b2{background:transparent;color:var(--white)!important;border:1px solid var(--ink-2)}
html.ct-standalone body.ct .ga-b2{flex:0 1 240px}
html body.ct .ga-what{max-width:560px;margin:16px auto 0;padding:0 20px}
html body.ct .ga-what summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border:1px solid var(--ct-gray,var(--line-2));border-radius:4px;background:var(--ct-card,var(--surface));font-weight:600;font-size:15px}
html body.ct .ga-what summary::-webkit-details-marker{display:none}
html body.ct .ga-what summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:-4px 4px 0 0}
html body.ct .ga-what[open] summary::after{transform:rotate(-135deg);margin-top:4px}
html body.ct .ga-what[open] summary{margin-bottom:12px}
html body.ct .ga-how{padding-top:22px}
html body.ct .ga-after{margin-bottom:36px}
html[data-theme=dark] body.ct .ga-what summary{background:var(--surface);border-color:var(--line-2);color:var(--ink)}
@media(max-width:360px){html body.ct .ga-ctas a{font-size:13.5px}}
@media(min-width:900px){html body.ct .ga-what{max-width:760px}}
html body.ct .ga-hero a.ga-b2:not(#_){color:var(--white)!important}
html body.ct .ga-hero a.ga-b1:not(#_){color:var(--ink)!important}
@media(max-width:899px){html body.ct .ga-hero{padding:36px 20px 28px}html body.ct .ga-mark{width:132px}html body.ct .ga-word{margin-top:0;font-size:44px}html body.ct .ga-lede{margin-top:16px}html body.ct .ga-ctas{margin-top:20px}}
/* iPhone install guide overlay */
html body.ct .ga-ov{position:fixed;inset:0;z-index:10000;background:rgba(6,7,8,.72);display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:0 16px calc(18px + env(safe-area-inset-bottom))}
html body.ct .ga-ov[hidden]{display:none}
html body.ct .ga-ovc{position:relative;width:100%;max-width:420px;background:var(--surface);color:var(--white);border:1px solid var(--line-2);border-radius:6px;padding:18px 18px 12px;font-size:15px;line-height:1.5}
html body.ct .ga-ovc>b{display:block;font-size:16px;margin-bottom:8px}
html body.ct .ga-ovc ol{margin:0;padding-left:20px}html body.ct .ga-ovc li{margin-bottom:6px}
html body.ct .ga-x{position:absolute;top:6px;right:8px;border:0;background:none;color:var(--ink-3);font-size:24px;line-height:1;cursor:pointer}
html body.ct .ga-arrow{width:44px;height:44px;margin-top:12px;color:var(--accent-ink);}
@keyframes gaBob{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}
html.ga-lock,html.ga-lock body{overflow:hidden}
/* Get the app button: app icon + two lines + soft glow */
html body.ct .ga-ctas a{height:54px}
html body.ct .ga-hero a.ga-b1:not(#_){justify-content:flex-start;gap:10px;padding:0 10px 0 9px;box-shadow:0 0 0 1px rgba(62,200,201,.45),0 6px 24px rgba(62,200,201,.38)}
html body.ct .ga-bic{flex:none;width:36px;height:36px;border-radius:8px;background:var(--chrome);display:flex;align-items:center;justify-content:center}
html body.ct .ga-bic img{width:auto;height:24px}
html body.ct .ga-btx{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;font-size:15px;font-weight:600}
html body.ct .ga-btx small{font-size:11px;font-weight:500;opacity:.72;margin-top:2px}
/* Continue to the site: plain text link, no box, so Get the app is the clear choice */
html body.ct .ga-hero a.ga-b2:not(#_){border:0;background:none;color:var(--ink-3)!important;font-weight:500;flex:0 1 auto;padding:0 6px}
html body.ct .ga-hero a.ga-b1:not(#_){flex:1 1 auto}
html body.ct .ga-ctas{align-items:center;justify-content:center;gap:16px}

/* Get App pill in the top bar: phone + desktop browsers, never in the installed app */
html body.ct .tb .ct-getapp-top{display:inline-flex!important;align-items:center;height:32px;padding:0 11px;margin-right:2px;background:var(--accent)!important;border:0!important;color:var(--ink)!important;font:600 13px/1 "General Sans",Inter,system-ui,sans-serif!important;white-space:nowrap;text-decoration:none!important}
@media(min-width:900px){html body.ct .tb .ct-getapp-top{height:36px;padding:0 14px;font-size:13.5px!important}}
html.ct-standalone body.ct .tb .ct-getapp-top{display:none!important}
/* ---- live mover tiles (TradingView Mini Chart inside Coteau tiles; static/tv.js) ---- */
.mvg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;color-scheme:light;--tv-widget-font-family:"Inter",system-ui,-apple-system,sans-serif;--tv-widget-background-color:transparent;--tv-widget-accent-color:#3EC8C9;--tv-widget-positive-color:var(--up);--tv-widget-positive-area-top-color:rgba(21,128,61,.16);--tv-widget-positive-area-bottom-color:rgba(21,128,61,0);--tv-widget-negative-color:var(--down);--tv-widget-negative-area-top-color:rgba(194,65,12,.14);--tv-widget-negative-area-bottom-color:rgba(194,65,12,0)}
html[data-theme=dark] .mvg{color-scheme:dark;--tv-widget-positive-color:var(--up);--tv-widget-positive-area-top-color:rgba(61,214,140,.16);--tv-widget-positive-area-bottom-color:rgba(61,214,140,0);--tv-widget-negative-color:var(--down);--tv-widget-negative-area-top-color:rgba(255,138,101,.14);--tv-widget-negative-area-bottom-color:rgba(255,138,101,0)}
@media (min-width:600px){.mvg:not(.mvrow){grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1000px){.mvsec .mvg{width:100%;max-width:100%;gap:10px}.mvg:not(.mvrow){grid-template-columns:repeat(4,minmax(0,1fr))}}
.mvt{box-sizing:border-box;max-width:100%}.mvt .mvw{overflow:hidden}
.mvt{position:relative;display:flex;flex-direction:column;aspect-ratio:1/1.08;min-width:0;background:var(--surface);border:1px solid var(--line-2);border-radius:4px;overflow:hidden}
html[data-theme=dark] .mvt{background:var(--surface);border-color:var(--line-2)}
.mvt.cnew{background:var(--ct-new,var(--new));border-color:var(--ct-new-edge,var(--new-edge));box-shadow:inset 3px 0 0 var(--ct-new-edge,var(--new-edge))}html[data-theme=dark] .mvt.cnew{background:var(--surface-2);box-shadow:inset 3px 0 0 var(--new-edge)}
.mvt .mvh{display:flex;align-items:baseline;gap:6px;padding:8px 10px 0 12px;min-width:0;color:inherit;text-decoration:none!important;border:0!important;background:none!important}
.mvt .mvk{flex:none;font:600 12px/1.2 "General Sans",system-ui,sans-serif;letter-spacing:.01em}
.mvt .mvn{min-width:0;font:500 11.5px/1.2 "Inter",system-ui,sans-serif;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}html[data-theme=dark] .mvt .mvn{color:var(--ink-3)}
.mvt .mvw{position:relative;flex:1;min-height:0;display:flex}.mvt .mvw tv-mini-chart{display:block;flex:1;min-width:0;min-height:0}
.mvt .mvf{position:absolute;inset:0;display:flex;flex-direction:column;gap:4px;padding:8px 12px;color:inherit;text-decoration:none!important;border:0!important;background:none!important}
.mvt .mvf .mvfp{font:600 17px/1.2 "General Sans",system-ui,sans-serif;font-variant-numeric:tabular-nums;margin-top:4px}.mvt .mvf b{font:600 14px/1.2 "Inter",system-ui,sans-serif}
.mvt .mvfl{margin-top:auto;font-size:11px;color:var(--ink-3)}
/* desktop: the TradingView mini chart is chart-only (its quote is delayed); Coteau's live price + % sit above it (live.js, ~15 s) */
.mvt.mvlive .mvw{flex-direction:column}.mvt.mvlive .mvf{position:static;flex:none;flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:6px 12px 2px}
.mvt.mvlive .mvf .mvfp{margin-top:0}.mvt.mvlive .mvfl{display:none}.mvt.mvlive .mvf .mvfp,.mvt.mvlive .mvf b{border-radius:3px}
.mvsec .mvtop{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:18px 2px 8px}
.mvsec .mvtop h2{margin:0;font-family:"General Sans",system-ui,sans-serif;font-weight:600}.mvsec .mvtop a{font:600 13px "Inter",system-ui,sans-serif;color:var(--accent-ink);text-decoration:none}html[data-theme=dark] .mvsec .mvtop a{color:var(--accent-ink)}
.mvseg{display:inline-flex;gap:0;border:1px solid var(--line-2);border-radius:4px;overflow:hidden;margin:2px 0 10px}html[data-theme=dark] .mvseg{border-color:var(--line-2)}
.mvseg button{appearance:none;border:0;background:transparent;color:inherit;font:600 13px/1 "Inter",system-ui,sans-serif;padding:9px 13px;cursor:pointer}.mvseg button+button{border-left:1px solid var(--line-2)}html[data-theme=dark] .mvseg button+button{border-left-color:var(--line-2)}
.mvseg button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}
/* movers filter chips: one row of small neutral chips (selected = ink fill, design.css .fchip.on); scrolls inside itself if narrow */
.mvchips{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 0 10px;padding:1px 0;max-width:100%}.mvchips::-webkit-scrollbar{display:none}
html[data-theme] body.ct .mvchips .fchip{height:28px;padding:0 8px!important;font:500 12px/1 var(--f-body)!important;cursor:pointer;flex:none}
.mvnone{margin:4px 0 8px;font-size:13px}
.mvpane .mvmore{grid-column:1/-1}@media (max-width:899px){html body .mvpane .mvmore.mvfew{display:none}}
@media (min-width:900px) and (max-width:999px){.mvpane:not(.open) .mvt:nth-of-type(n+9){display:none}}@media (max-width:899px){.mvpane:not(.open) .mvt:nth-of-type(n+10){display:none}}@media (min-width:1000px){html body .mvpane .mvmore{display:none}}
.mvnote{font-size:11.5px;line-height:1.45;margin:8px 2px 0}
/* home: one swipeable row on phones, a fixed row of 6 on desktop */
.mvrow{display:grid;grid-auto-flow:column;grid-auto-columns:47%;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}
.mvrow::-webkit-scrollbar{display:none}.mvrow .mvt{scroll-snap-align:start}
@media (min-width:900px){.mvrow{grid-auto-columns:calc((100% - 30px)/4);scroll-padding:0}}
/* stock page live chart */
.tvchart{padding:0!important;overflow:hidden;border-radius:4px}.tvadv{height:380px}@media (min-width:900px){.tvadv{height:480px}}
.tvadv .tvcr,.tvadv .tvcr a{font:500 11px/22px "Inter",system-ui,sans-serif;color:var(--ink-3)!important;text-decoration:none;padding-left:10px}
.tvph{display:flex;align-items:center;justify-content:center;height:100%;font-size:12px;color:var(--ink-3)}

/* ---- declutter: airier news lists, quick links, "How this works" rows ---- */
html body.ct .list:has(>.news){display:flex;flex-direction:column;gap:12px;background:transparent!important;border:0!important;box-shadow:none!important;overflow:visible!important;padding:0!important}
html body.ct .list>.news{background:var(--surface);border:1px solid var(--ct-gray,var(--line-2))!important;border-radius:4px!important;padding:14px 16px!important;min-height:0}
html[data-theme=dark] body.ct .list:has(>.news){background:transparent!important;border:0!important}
html[data-theme=dark] body.ct .list>.news{background:var(--surface)!important;border:1px solid var(--line-2)!important}
html body.ct .list>.news .h{line-height:1.38}html body.ct .list>.news .m{margin-top:6px}
html body.ct .tops{gap:14px!important}
.cx-quicklinks{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:14px 0 4px;padding-bottom:2px}.cx-quicklinks::-webkit-scrollbar{display:none}
html body.ct .cx-quicklinks a{flex:none;padding:8px 12px;border:1px solid var(--ct-gray,var(--line-2));border-radius:4px;font:600 13px/1 "Inter",system-ui,sans-serif;color:inherit!important;text-decoration:none!important;background:var(--surface)}
html[data-theme=dark] body.ct .cx-quicklinks a{background:var(--surface);border-color:var(--line-2)}
html body.ct .cx-quicklinks a:first-child{border-color:var(--new-edge)}
.cx-how{margin:10px 2px 0}.cx-how summary{cursor:pointer;font-weight:600}.cx-how p{margin:6px 0 0;line-height:1.5}

/* ---- compact mover tiles on phones / installed app (<900px): no chart, snapshot price ---- */
.mvt .mvc,.mvasof{display:none}
@media (max-width:899px){
 .mvg{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px}
 .mvt{aspect-ratio:auto}.mvt .mvh,.mvt .mvw{display:none}
 .mvt .mvc{display:flex;flex-direction:column;gap:3px;padding:9px 9px 10px 10px;min-width:0;color:inherit;text-decoration:none!important;border:0!important;background:none!important}
 .mvt .mvct{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:500 11px/1.25 "Inter",system-ui,sans-serif;color:var(--ink-3)}
 html[data-theme=dark] .mvt .mvct{color:var(--ink-3)}
 .mvt .mvct b{font:600 12.5px/1.25 "General Sans",system-ui,sans-serif;color:var(--ct-ink,var(--ink));letter-spacing:.01em}html[data-theme=dark] .mvt .mvct b{color:var(--ink)}
 .mvt .mvcp{font:600 19px/1.15 "General Sans",system-ui,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:3px;white-space:nowrap}
 .mvt .mvcc{font:600 13px/1.2 "Inter",system-ui,sans-serif;font-variant-numeric:tabular-nums}
 .mvasof{display:block;font-size:11px;margin:6px 2px 0}
 .mvrow{grid-template-columns:none!important;grid-auto-columns:calc((100% - 12px)/3.15)}
}


.mvsec .mvnav{display:inline-flex;align-items:center;gap:6px}.mvsec .mvar{display:none;width:28px;height:28px;border:1px solid var(--line-2);border-radius:4px;background:transparent;color:inherit;font:600 16px/1 "Inter",system-ui,sans-serif;cursor:pointer;padding:0}
html[data-theme=dark] .mvsec .mvar{border-color:var(--line-2)}@media (min-width:900px){.mvsec .mvar{display:inline-block}.mvsec .mvnav a{margin-left:6px}}
/* ---- Top Social Mentions list (home block + /tools/social) ---- */
.smlist{display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:4px;overflow:hidden;background:var(--surface)}
html[data-theme=dark] .smlist{background:var(--surface);border-color:var(--line-2)}
.smlist .smh,.smlist .sml{display:grid;grid-template-columns:22px minmax(0,1fr) auto 56px;align-items:center;gap:8px;padding:9px 12px}
.smlist .smh{padding:7px 12px;font:600 10.5px/1 "Inter",system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line)}
.smlist .smh span:nth-child(n+3){text-align:right}
html[data-theme=dark] .smlist .smh{color:var(--ink-3);border-bottom-color:var(--line)}
html body.ct .smlist a.sml{color:inherit!important;text-decoration:none!important;border:0!important;border-top:1px solid var(--line)!important;background-image:none!important}
html body.ct .smlist a.sml:first-of-type{border-top:0!important}html[data-theme=dark] body.ct .smlist a.sml{border-top-color:var(--line)!important}
.smlist .sml.cnew{background:var(--ct-new,var(--new));box-shadow:inset 3px 0 0 var(--ct-new-edge,var(--new-edge))}html[data-theme=dark] .smlist .sml.cnew{background:var(--surface-2);box-shadow:inset 3px 0 0 var(--new-edge)}
.smlist .smr{font:600 12px/1 "General Sans",system-ui,sans-serif;color:var(--ink-3);text-align:center}html[data-theme=dark] .smlist .smr{color:var(--ink-3)}
.smlist .smt{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:500 12.5px/1.3 "Inter",system-ui,sans-serif;color:var(--ink-3)}html[data-theme=dark] .smlist .smt{color:var(--ink-3)}
.smlist .smt b{font:600 14px/1.3 "General Sans",system-ui,sans-serif;color:var(--ct-ink,var(--ink));margin-right:2px}html[data-theme=dark] .smlist .smt b{color:var(--ink)}
.smlist .smm{display:inline-flex;align-items:baseline;gap:6px;justify-content:flex-end;font-variant-numeric:tabular-nums;white-space:nowrap}
.smlist .smm b{font:600 14px/1 "General Sans",system-ui,sans-serif}.smlist .smm i{font:600 11.5px/1 "Inter",system-ui,sans-serif;font-style:normal;color:var(--ink-3);min-width:42px;text-align:right}
.smlist .smm i.smu{color:var(--accent-ink)}html[data-theme=dark] .smlist .smm i.smu{color:var(--accent-ink)}.smlist .smm i.smn{color:var(--accent-ink)}
.smlist .smc{text-align:right;font:600 13px/1 "Inter",system-ui,sans-serif;font-variant-numeric:tabular-nums}
.smcred{font-size:11px;margin:6px 2px 0}.smcred a{color:inherit!important}
.smhome{margin-top:6px}.smseg{flex-wrap:wrap}
@media (max-width:420px){.smseg button{padding:8px 9px;font-size:12px}}
/* ---- live prices (static/live.js) ---- */
.q-up{animation:qUp 1.1s ease-out}.q-dn{animation:qDn 1.1s ease-out}
@keyframes qUp{0%{background:rgba(21,128,61,.28)}100%{background:transparent}}@keyframes qDn{0%{background:rgba(194,65,12,.26)}100%{background:transparent}}
[data-qtag]{display:inline-block;margin-left:4px;padding:1px 4px;border-radius:2px;font:600 9.5px/1.2 "Inter",system-ui,sans-serif;letter-spacing:.03em;text-transform:uppercase;color:var(--accent-ink);border:1px solid currentColor;vertical-align:middle}
html[data-theme=dark] [data-qtag]{color:var(--accent-ink)}[data-qtag][hidden]{display:none}
[data-qlive]{display:inline-flex;align-items:center;gap:5px;font:600 11px/1 "Inter",system-ui,sans-serif;color:var(--ink-3)}
html[data-theme=dark] [data-qlive]{color:var(--ink-3)}
.q-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 rgba(62,200,201,.6);animation:qPulse 1.8s infinite}
@keyframes qPulse{0%{box-shadow:0 0 0 0 rgba(62,200,201,.55)}70%{box-shadow:0 0 0 6px rgba(62,200,201,0)}100%{box-shadow:0 0 0 0 rgba(62,200,201,0)}}
@media (prefers-reduced-motion:reduce){.q-dot,.q-up,.q-dn{animation:none}}

/* ---- news slide-in (static/newslive.js) ---- */
.news.nslide{animation:none}@keyframes nSlide{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
html body.ct .list>.news.cnew{background:var(--ct-new,var(--new))!important;border-color:var(--ct-new-edge,var(--new-edge))!important;box-shadow:inset 3px 0 0 var(--ct-new-edge,var(--new-edge))}
html[data-theme=dark] body.ct .list>.news.cnew{background:var(--surface-2)!important;border-color:var(--line-2)!important;box-shadow:inset 3px 0 0 var(--new-edge)}
.nnew{position:fixed;left:50%;transform:translateX(-50%);top:calc(env(safe-area-inset-top,0px) + 70px);z-index:60;border:0;border-radius:4px;padding:8px 14px;background:var(--accent);color:var(--accent-ink);font:600 13px/1 "Inter",system-ui,sans-serif;box-shadow:0 4px 14px rgba(0,0,0,.18);cursor:pointer}
.nnew[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.news.nslide{animation:none}}
/* live movers list: sub-$1 tag + new names sliding in (static/moverslive.js) */
.mvt .mvpn{flex:none;font:600 9px/1 "Inter",system-ui,sans-serif;font-style:normal;color:var(--warn);background:rgba(214,170,60,.16);border-radius:3px;padding:1px 3px;margin-left:4px;vertical-align:1px;letter-spacing:0}
html[data-theme=dark] .mvt .mvpn{color:var(--warn);background:rgba(214,170,60,.14)}
.mvt.mvin{animation:none}
@keyframes mvIn{0%{opacity:.2;transform:translateY(6px);box-shadow:0 0 0 2px rgba(143,196,199,.9)}35%{opacity:1;transform:none}100%{box-shadow:0 0 0 0 rgba(143,196,199,0)}}
@media (prefers-reduced-motion:reduce){.mvt.mvin{animation:none}}
/* thin "SYSTEMATIC STRATEGIES" strip under the #121314 header bar (scrolls away; the header stays sticky) */
html body.ct .ct-tagstrip{background:var(--chrome);color:var(--chrome-mute);text-align:center;font:500 9px/1 "Inter",system-ui,-apple-system,sans-serif;letter-spacing:.24em;text-transform:uppercase;padding:5px 0 6px;white-space:nowrap;overflow:hidden}
@media (min-width:900px){html body.ct .ct-tagstrip{font-size:9.5px;padding:6px 0 7px}}
/* movers status: "Top movers  • Live · 2:58 PM ET" (static/moverslive.js) */
.mvsec .mvtop h2+.mvstat,.mvsec .mvtop .mvstat{display:inline-flex;align-items:center;gap:5px;margin-right:auto;margin-left:2px;font:500 11.5px/1 "Inter",system-ui,sans-serif;color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums}
.mvsec .mvstat b{font-weight:600;color:var(--up)}.mvsec .mvstat b::after{content:"·";margin-left:5px;color:var(--ink-3);font-weight:400}
.mvsec .mvstat .q-dot{flex:none}
.mvsec .mvstat.mv-delayed b{color:var(--warn)}.mvsec .mvstat.mv-closed b{color:var(--ink-3)}
html[data-theme=dark] .mvsec .mvstat{color:var(--ink-2)}html[data-theme=dark] .mvsec .mvstat b{color:var(--up)}html[data-theme=dark] .mvsec .mvstat.mv-closed b{color:var(--ink-2)}
.mvsec .mvtop-c{justify-content:flex-start;gap:10px}.mvsec .mvtop-c h2{margin:0}
.mvsec .mvstat .q-dot{background:var(--up);animation:mvPulse 1.8s infinite;align-self:center}
@keyframes mvPulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)}70%{box-shadow:0 0 0 6px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
@media (prefers-reduced-motion:reduce){.mvsec .mvstat .q-dot{animation:none}}
.mvsec .mvstat.mv-delayed .q-dot,.mvsec .mvstat.mv-closed .q-dot{animation:none;background:var(--ink-3);box-shadow:none}
/* Safari macOS: "File > Add to Dock" popover under the desktop Get App pill (static/app.js) */
.ct-dockpop{position:fixed;z-index:60;display:flex;flex-direction:column;gap:5px;max-width:250px;padding:11px 13px;background:var(--chrome);color:var(--chrome-ink);border:1px solid var(--ink-3);border-radius:6px;box-shadow:0 10px 28px rgba(0,0,0,.28);font:400 12.5px/1.4 "Inter",system-ui,sans-serif}
.ct-dockpop b{color:var(--chrome-ink);font-weight:600;font-size:13px}.ct-dockpop kbd{font:600 11.5px/1 "Inter",system-ui,sans-serif;padding:2px 5px;border:1px solid var(--ink-3);border-radius:3px;background:var(--chrome);color:var(--chrome-ink)}

/* ===== desktop header tidy (Oct 20): same 760px column as the page; menu + logo + nav grouped left with even 24px gaps,
   actions (Get App, search, alerts) grouped right with 8px gaps, everything centered on one line. Search opens as a field. ===== */
@media(min-width:900px){
  html body.ct header.top .wrap.toprow{max-width:760px;padding:0 14px;display:flex;align-items:center;justify-content:flex-start;gap:0}
  html body.ct header.top .menubtn{flex:none;margin:0}
  html body.ct header.top .ct-brand{flex:none;margin:0 0 0 12px!important}
  html body.ct header.top .dnav{flex:0 1 auto!important;min-width:0;display:flex;align-items:center;gap:24px!important;margin:0 0 0 28px;overflow:visible!important;-webkit-mask-image:none!important;mask-image:none!important}
  html body.ct header.top .dnav a{flex:none;padding:0!important;height:64px;display:flex;align-items:center;font-size:14px!important;line-height:1}
  html body.ct header.top .tb{flex:none;margin-left:auto;display:flex;align-items:center;gap:8px}
  html body.ct header.top .tb>*{margin:0!important}
  html body.ct .tb .ct-getapp-top{height:34px;padding:0 13px;font-size:13px!important}
  html body.ct header.top .iconbtn{width:34px;height:34px;min-width:34px;min-height:34px;padding:0}
  html body.ct header.top .search{display:none!important}
  html body.ct header.top .sbtn{display:inline-flex!important}
  html body.sopen.ct header.top .search{display:block!important;position:absolute!important;right:14px;left:auto!important;top:60px!important;width:320px!important;padding:8px!important;background:var(--chrome)!important;border:1px solid var(--ink-3);border-radius:6px;box-shadow:0 12px 30px rgba(0,0,0,.25);z-index:40}
  html body.sopen.ct header.top .search input{width:100%}
}
.mvsec .mvstat .q-dot{width:7px;height:7px;border-radius:50%!important}

.mvxv{font-size:11.5px;margin:6px 2px 0}

/* fonts/general-sans.css */
/* General Sans by Indian Type Foundry, via Fontshare. Free for commercial use under the ITF Free Font License (FFL); see LICENSE-GeneralSans.txt. Self-hosted. */
@font-face{font-family:"General Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/static/fonts/general-sans-500.woff2?v=60bade557d) format("woff2")}
@font-face{font-family:"General Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/general-sans-600.woff2?v=2b65af1fa2) format("woff2")}
@font-face{font-family:"Brand Wordmark Caps";font-style:normal;font-weight:200 700;font-display:swap;src:url(/static/fonts/general-sans-var.woff2?v=7b5937ef19) format("woff2-variations"),url(/static/fonts/general-sans-var.woff2?v=7b5937ef19) format("woff2")}

/* ct-cleanup.css */
/* ===== Coteau cleanup v1 (mock) — one system: neutrals + one cyan + green/red returns ===== */
html body.ct{--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;
  --cy:#3EC8C9;--cy-tint:var(--new);--cy-line:var(--new-edge);--muted:var(--ink-2);--faint:var(--ink-3);--card:#FFFFFF;
  --ct-ink:var(--ink);--ct-accent-d:var(--ink);--ct-tile:var(--new);--ct-new:var(--new);--ct-new-edge:var(--new-edge);}
/* dark: crisp near-black. Page #121314, cards one step up, hairline borders, bright text */
html[data-theme=dark] body.ct{--cy-tint:#0F2324;--cy-line:var(--accent-ink);--ink:var(--surface-2);--muted:#A6AEB3;--faint:var(--ink-3);--card:var(--surface);--bg:#121314;--ct-ink:var(--surface-2);}
html[data-theme=dark] body.ct{background:var(--surface)!important}
html[data-theme=dark] body.ct .card.flat,html[data-theme=dark] body.ct .stat{background:transparent!important}
html[data-theme=dark] body.ct .fchip.on{background:var(--surface-2)!important;color:var(--on-accent)!important;border-color:var(--surface-2)!important}
html[data-theme=dark] body.ct aside.drawer{background:var(--chrome)!important;border-right:1px solid var(--line)!important}
html[data-theme=dark] body.ct .cx-more .cx-dr{background:var(--surface)}
/* fonts: Inter everywhere, tabular numbers, General Sans for headings and news headlines */
html body.ct,html body.ct *:not(.ct-word):not(.ct-dword):not(.boot-wm):not(.boot-desk):not(.ga-word):not(.ct-hero-word):not(.bword):not(.bwx){font-family:"Inter",system-ui,-apple-system,sans-serif!important}
/* wordmark: "General Sans" 600 lowercase (logo only) */
html body.ct .ct-word,html body.ct .ct-dword,html body.ct .ga-word,html body.ct .ct-hero-word,.boot-wm{font-family:"General Sans","Avenir Next",Inter,sans-serif!important;font-weight:600!important;letter-spacing:normal!important;text-transform:none!important}
html body.ct .topcard .th,html body.ct .news .h{font-family:var(--f-head)!important}
html body.ct .v,html body.ct .r,html body.ct .big,html body.ct .ct-pv,html body.ct .ct-big,html body.ct table,html body.ct .chg,html body.ct .cmprow b,html body.ct .price,html body.ct .k{font-variant-numeric:tabular-nums!important;letter-spacing:0!important}
html body.ct h1{font:650 24px/1.2 "Inter"!important;letter-spacing:-.01em!important;margin:var(--s4) 0 var(--s1)!important;color:var(--ink)!important}
html body.ct h2{font:600 15px/1.3 "Inter"!important;margin:var(--s5) 0 var(--s2)!important;color:var(--ink)!important;text-transform:none!important;letter-spacing:0!important;border:0!important;padding:0!important;background:none!important}
html body.ct h2::before,html body.ct h2::after{display:none!important}
html body.ct .sub,html body.ct .mnote{font-size:13px!important;line-height:1.45!important;color:var(--muted)!important;margin:0 0 var(--s3)!important}
/* purpose line */
.cx-purpose{font:400 14px/1.45 "Inter";color:var(--muted);margin:0 0 var(--s3)}
/* hero boxes -> plain title */
html body.ct .hero{background:none!important;border:0!important;padding:0!important;margin:0!important;box-shadow:none!important;color:var(--ink)!important}
html body.ct .hero>p{font:400 14px/1.45 "Inter"!important;color:var(--muted)!important;margin:0 0 var(--s3)!important;opacity:1!important}
html body.ct .hero .hchips{margin:0 0 var(--s3)!important}
html body.ct .hero h1{color:var(--ink)!important}
html body.ct .hero h1 .mtag{display:none!important}
/* stale banner quieter */
html body.ct .dhb{background:transparent!important;border:0!important;border-bottom:1px solid var(--line)!important;padding:var(--s2) 0!important;margin:0 0 var(--s2)!important;font-size:12px!important;color:var(--muted)!important;box-shadow:none!important}
html body.ct .dhb svg{width:14px!important;height:14px!important;color:var(--faint)!important}
html body.ct .dhb b{font-weight:500!important}
/* cards: one radius, one border, one padding */
html body.ct .card,html body.ct .list,html body.ct .topcard,html body.ct .mcard,html body.ct .ms{border-radius:10px!important;border:1px solid var(--line)!important;background:var(--card)!important;box-shadow:none!important;background-image:none!important}
html body.ct .card,html body.ct .mcard{padding:var(--s4)!important;margin:0 0 var(--s3)!important}
html body.ct .card.flat{background:transparent!important}
html body.ct .list{overflow:hidden!important;margin:0 0 var(--s3)!important}
html body.ct .list>.row,html body.ct .list>a.row,html body.ct .list>.news{padding:var(--s3) var(--s4)!important;border-bottom:1px solid var(--line)!important;border-left:0!important;min-height:56px}
html body.ct .list>*:last-child{border-bottom:0!important}
html body.ct .row .t{font-weight:600!important;font-size:15px!important;color:var(--ink)!important}
html body.ct .row .n{font-size:12.5px!important;color:var(--muted)!important;margin-top:2px}
html body.ct .mcard.flag,html body.ct .topcard.lead{background:var(--cy-tint)!important;border-color:var(--cy-line)!important;background-image:none!important}
html body.ct .topcard.lead::before,html body.ct .topcard.lead::after,html body.ct .mcard::before{display:none!important}
html body.ct .topcard{padding:var(--s4)!important}
html body.ct .tops{gap:var(--s3)!important;margin-bottom:var(--s4)!important}
/* less per card */
html body.ct .topcard .tmeta .cat+.cat,html body.ct .news .m .cat+.cat,html body.ct .news .m .chip.tk{display:none!important}
html body.ct .grid3 .stat:nth-child(2){display:none!important}
html body.ct .grid3{grid-template-columns:1fr 1fr!important;gap:var(--s2)!important}
html body.ct .stat{background:transparent!important;border:1px solid var(--line)!important;border-radius:8px!important;padding:var(--s2) var(--s3)!important}
html body.ct .mstrip .ms.mdl{display:none!important}
/* ===== 2 chip styles ===== */
/* A: outline pill (categories, tickers, filters, facts) */
html body.ct .cat,html body.ct .chip:not(.live):not(.bt):not(.warn),html body.ct .chip.tk,html body.ct .tkp,html body.ct .hchip,html body.ct .fchip,html body.ct .chip.mdl{background:transparent!important;border:1px solid var(--line)!important;color:var(--muted)!important;border-radius:999px!important;font:500 11.5px/1 "Inter"!important;padding:5px 9px!important;text-transform:none!important;letter-spacing:0!important;box-shadow:none!important;height:auto!important}
html body.ct .cat{font-size:11px!important;padding:3px 8px!important}
html body.ct .fchip{font-size:13px!important;padding:8px 13px!important;color:var(--ink)!important}
html body.ct .fchip.on{background:var(--ink)!important;color:var(--card)!important;border-color:var(--ink)!important}
html body.ct .chipbar{gap:var(--s2)!important;margin:0 0 var(--s4)!important}
/* B: status tags — LIVE solid cyan, BACKTEST/LOOK-BACK dashed */
html body.ct .mtag,html body.ct .chip.live,html body.ct .chip.bt,html body.ct .chip.warn{border-radius:4px!important;font:600 9.5px/1 "Inter"!important;letter-spacing:.04em!important;text-transform:uppercase!important;padding:3px 5px!important;box-shadow:none!important}
html body.ct .mtag.solid,html body.ct .chip.live{background:var(--cy)!important;color:var(--ink)!important;border:1px solid var(--cy)!important}
html body.ct .mtag.bt,html body.ct .chip.bt,html body.ct .mtag.out{background:transparent!important;color:var(--muted)!important;border:1px dashed var(--faint)!important}
html body.ct .chip.warn{background:transparent!important;color:var(--down)!important;border:1px solid currentColor!important}
/* period chips: same control everywhere */
html body.ct .ct-pbar{display:flex!important;align-items:center!important;gap:var(--s2)!important;margin:0 0 var(--s3)!important;padding:0!important;background:none!important;border:0!important}
html body.ct .ct-pbar-l,html body.ct .tiles-label{font:500 12px/1 "Inter"!important;color:var(--muted)!important;text-transform:none!important;letter-spacing:0!important}
html body.ct [data-period]:not(.ct-pcell),html body.ct .ct-pchips button,html body.ct .ct-pchips a{border-radius:999px!important}
html body.ct .ct-legend{font-size:12px!important;margin:0 0 var(--s3)!important}
/* bars on models compare */
html body.ct .cmpbar i{background:var(--cy)!important}
html body.ct .cmpbar{background:var(--line)!important;border-radius:3px!important}
html body.ct .cmprow.spy .cmpbar i{background:var(--faint)!important}
/* links */
html body.ct main a:not(.row):not(.btn):not(.fchip):not(.topcard):not(.news):not(.mcard):not(.cmprow):not(.ms):not(.pill):not(.cx-seg a){color:var(--ink)!important;text-decoration:underline;text-decoration-color:var(--cy);text-underline-offset:2px}
html body.ct .btn{border-radius:8px!important;font:600 13.5px/1 "Inter"!important}
html body.ct .btn.ghost{background:transparent!important;border:1px solid var(--line)!important;color:var(--ink)!important}
html body.ct .up{color:var(--up)!important}html body.ct .down{color:var(--down)!important}
/* ===== sub-segment bar (same spot on every section page) ===== */
.cx-seg{display:flex;gap:20px;border-bottom:1px solid var(--line);margin:0 0 var(--s4);overflow-x:auto;scrollbar-width:none}
.cx-seg a{flex:none;padding:var(--s3) 0 10px;font:500 14px/1 "Inter";color:var(--muted)!important;text-decoration:none!important;border-bottom:2px solid transparent;margin-bottom:-1px}
.cx-seg a.on{color:var(--ink)!important;font-weight:600;border-bottom-color:var(--cy)}
/* ===== new bottom nav ===== */
html body.ct nav.bottom.cx{display:grid!important;grid-template-columns:repeat(5,1fr)!important;background:var(--chrome)!important;border-top:1px solid var(--ink-3)!important}
html body.ct nav.bottom.cx a{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;color:var(--chrome-ink)!important;font:500 10.5px/1 "Inter"!important;min-height:46px!important;position:relative}
html body.ct nav.bottom.cx a svg{width:21px!important;height:21px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.5!important;stroke-linecap:round;stroke-linejoin:round}
html body.ct nav.bottom.cx a.on{color:var(--chrome-ink)!important}
html body.ct nav.bottom.cx a.on svg{stroke:var(--new-edge)!important}
html body.ct nav.bottom.cx a.on::before{content:""!important;position:absolute!important;top:-1px!important;left:28%!important;right:28%!important;height:2px!important;background:var(--accent)!important}
html body.ct nav.bottom.cx a .cx-n{position:absolute;top:6px;left:calc(50% + 8px);background:var(--accent);color:var(--chrome);font:700 9px/14px "Inter";min-width:14px;height:14px;border-radius:7px;padding:0 3px;text-align:center}
html.cx-text body.ct nav.bottom.cx a svg{display:none!important}
html.cx-text body.ct nav.bottom.cx a{font:600 13px/1 "Inter"!important;min-height:44px!important;letter-spacing:0!important}
/* header: drop bell (alerts live in Watchlist tab) */
/* alerts bell stays in the header (Oct 20) */
/* ===== drawer ===== */
html body.ct aside.drawer .cx-dr{padding:var(--s2) 0 var(--s5)}
.cx-dl{font:600 11px/1 "Inter";color:var(--faint);margin:var(--s5) var(--s4) var(--s2);letter-spacing:.02em}
.cx-dr a.cx-row{display:flex;justify-content:space-between;align-items:center;padding:0 var(--s4);min-height:48px;font:500 15px/1.2 "Inter";color:var(--ink)!important;text-decoration:none;border-bottom:1px solid var(--line)}
.cx-dr a.cx-row small{display:block;font:400 12px/1.3 "Inter";color:var(--muted);margin-top:2px}
.cx-dr a.cx-row::after{content:"›";color:var(--faint);font-size:18px}
.cx-dr .cx-tag{margin:var(--s1) var(--s4) 0;font:400 13px/1.45 "Inter";color:var(--muted)}
.cx-dr .cx-theme{display:flex;justify-content:space-between;align-items:center;margin:var(--s5) var(--s4) 0;font:500 14px/1 "Inter";color:var(--ink)}
.cx-dr .ct-seg button{min-width:56px;height:30px;font-size:13px}
html body.ct aside.drawer{background:var(--card)!important}
/* intro card */
.cx-intro{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--cy);border-radius:10px;padding:var(--s4);margin:var(--s3) 0 var(--s4);position:relative}
.cx-intro h3{font:650 16px/1.3 "Inter";margin:0 var(--s5) var(--s1) 0;color:var(--ink)}
.cx-intro p{font:400 13.5px/1.45 "Inter";color:var(--muted);margin:0 0 var(--s2)}
.cx-intro ul{margin:0 0 var(--s3);padding:0 0 0 18px;font:400 13.5px/1.5 "Inter";color:var(--ink)}
.cx-intro ul b{font-weight:600}
.cx-intro .cx-act{display:flex;gap:var(--s2);align-items:center}
.cx-intro .cx-go{background:var(--cy);color:var(--ink)!important;text-decoration:none!important;font:600 14px/1 "Inter";padding:11px 14px;border-radius:8px}
.cx-intro .cx-x{background:none;border:0;color:var(--muted);font:500 14px/1 "Inter";padding:11px 8px}
.cx-intro .cx-close{position:absolute;top:10px;right:10px;width:32px;height:32px;border:0;background:none;color:var(--faint);font-size:18px}
/* footer */
.cx-foot{font:400 12px/1.5 "Inter";color:var(--muted)}
.cx-foot b{display:block;font:600 13px/1.3 "Inter";color:var(--ink);margin-bottom:2px}
/* About */
.cx-about .card h3{font:600 15px/1.3 "Inter";margin:0 0 var(--s1);color:var(--ink)}
.cx-about .card p{font:400 14px/1.5 "Inter";color:var(--muted);margin:0}
.cx-about .cx-lead{font:400 16px/1.5 "Inter";color:var(--ink);margin:0 0 var(--s4)}
/* desktop */
@media (min-width:900px){html body.ct .dnav a{font:500 14px/1 "Inter"!important;text-transform:none!important}}
/* more page as compact list */
.cx-more .cx-dr{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;padding:0 0 var(--s4)}
html body.ct .row .r .big{background:none!important;padding:0!important;font-size:16px!important;font-weight:600!important}
html body.ct .row .n .mtag.out{display:none!important}
html body.ct .cx-dr a.cx-row{text-decoration:none!important}
html body.ct .cx-gname{text-align:center;margin:8px auto 4px;max-width:340px}
@media (min-width:900px){html body.ct nav.bottom.cx{display:none!important}}

/* patch-only helpers */
.cx-back{display:inline-block;margin-top:12px;font:500 13px/1 "Inter";color:var(--muted)!important;text-decoration:none!important}
.cx-fine{margin:16px 0}.cx-fine summary{cursor:pointer;font-weight:500}
.cx-tag b{color:var(--ink);font-weight:600}
.ct-hero-lede b{font-weight:600}

/* ship: fund holdings groups, compact rows, intro eyebrow */
html body.ct .row .l{min-width:0}
html body.ct .row .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html body.ct .list>a.row.cx-crow{min-height:52px;padding-top:10px!important;padding-bottom:10px!important}
html body.ct .cx-crow .t{font-size:14.5px!important}
.cx-gh{font:600 13px/1.2 "Inter";color:var(--muted);margin:var(--s5) 0 var(--s2);letter-spacing:.01em}
.cx-gh span{font-weight:500;color:var(--faint);margin-left:4px;font-variant-numeric:tabular-nums}
.cx-eyebrow{font:600 11px/1 "Inter";letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:0 0 6px}
.cx-intro .cx-comp{font-size:12px!important;color:var(--faint)!important;margin:0 0 var(--s3)!important}
.cx-compcard{border-left:3px solid var(--cy)!important}
.ct-hero-lede .cx-sub{display:inline-block;margin-top:6px;font-size:.88em;opacity:.8}
html body.ct .btn.wide{display:flex;justify-content:center;width:100%;padding:12px!important}
html body.ct .cx-seg a{white-space:nowrap}
/* stock page: "What they do" company description, under the charts and before the grades (Oct 21) */
html body.ct .sdesc-b{padding:var(--s3,12px) var(--s4,16px)!important}
html body.ct .sdesc-b p{margin:0;font:400 14px/1.55 "Inter";color:var(--ink);max-width:72ch;overflow-wrap:anywhere}
html body.ct .sdesc-b p.sdesc-fb{color:var(--muted)}
html body.ct .sdesc-m{margin-top:8px;font:500 12px/1.3 "Inter";color:var(--muted)}

/* push.css */
/* Alerts sheet (bell) */
.ps-wrap{position:fixed;inset:0;z-index:80}
.ps-wrap[hidden]{display:none}
.ps-scrim{position:absolute;inset:0;background:rgba(18,19,20,.38)}
.ps-sheet{position:absolute;left:0;right:0;bottom:0;max-height:88vh;overflow:auto;background:var(--card,var(--surface));color:var(--ink,var(--ink));
 border-top:2px solid var(--new-edge);border-radius:14px 14px 0 0;padding:18px 18px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -10px 34px rgba(20,52,64,.22);
 font-family:Inter,system-ui,-apple-system,sans-serif}
@keyframes psUp{from{transform:translateY(24px);opacity:.4}to{transform:none;opacity:1}}
@media(min-width:700px){.ps-sheet{left:auto;right:24px;top:64px;bottom:auto;width:380px;border-radius:6px;border-top:2px solid var(--new-edge);box-shadow:0 14px 40px rgba(20,52,64,.24)}}
.ps-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.ps-top h2{font-family:"General Sans",Inter,sans-serif;font-weight:600;font-size:19px;margin:0;color:var(--ink,var(--ink))}
.ps-x{border:0;background:none;color:var(--muted,var(--ink-2));font-size:17px;width:36px;height:36px;border-radius:50%;cursor:pointer}
.ps-note{margin:6px 0 12px;font-size:14.5px;line-height:1.45;color:var(--muted,var(--ink-2))}
.ps-note a{color:var(--accent-ink);font-weight:600}
.ps-list{margin:2px 0 10px}
.ps-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line,var(--line-2));cursor:pointer}
.ps-row:last-child{border-bottom:0}
.ps-row .ps-t{flex:1;min-width:0}
.ps-row b{display:block;font-weight:600;font-size:15.5px}
.ps-row small{display:block;font-size:13px;color:var(--muted,var(--ink-2));margin-top:1px}
.ps-sw{position:relative;flex:none;width:46px;height:28px}
.ps-sw input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.ps-sw i{position:absolute;inset:0;border-radius:14px;background:var(--line-2);transition:background .15s}
.ps-sw i:after{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.ps-sw input:checked+i{background:var(--accent)}
.ps-sw input:checked+i:after{transform:translateX(18px)}
.ps-sw input:focus-visible+i{outline:2px solid var(--new-edge);outline-offset:2px}
.ps-go{display:block;width:100%;position:sticky;bottom:0;box-shadow:0 -8px 14px var(--card,var(--surface));border:0;border-radius:10px;background:var(--accent);color:var(--accent-ink);font:600 16.5px "General Sans",Inter,sans-serif;padding:15px 16px;cursor:pointer}
.ps-go[disabled]{opacity:.6;cursor:default}
.ps-go.ps-done{background:transparent;color:var(--accent-ink);border:1px solid var(--new-edge)}
.ps-foot{display:flex;flex-wrap:wrap;gap:4px 18px;justify-content:center;margin-top:10px}
.ps-foot:empty{display:none}
.ps-link{border:0;background:none;padding:6px 2px;font:500 14px Inter,sans-serif;color:var(--muted,var(--ink-2));text-decoration:none;cursor:pointer}
.ps-link:hover{color:var(--ink,var(--ink))}
html[data-theme=dark] .ps-scrim{background:rgba(0,0,0,.55)}
html[data-theme=dark] .ps-sheet{background:var(--surface);color:var(--ink);box-shadow:0 -10px 34px rgba(0,0,0,.6)}
html[data-theme=dark] .ps-top h2{color:var(--ink)}
html[data-theme=dark] .ps-row{border-color:var(--line)}
html[data-theme=dark] .ps-sw i{background:var(--line-2)}
html[data-theme=dark] .ps-sw input:checked+i{background:var(--accent)}
html[data-theme=dark] .ps-go{box-shadow:0 -8px 14px var(--surface)}
html[data-theme=dark] .ps-go.ps-done{box-shadow:none;background:var(--surface)}
html[data-theme=dark] .ps-note a,html[data-theme=dark] .ps-go.ps-done{color:var(--accent-ink)}
html[data-theme=dark] .ps-go.ps-done{border-color:var(--new-edge)}
html[data-theme=dark] .ps-link{color:var(--ink-3)}
html body.ct .ps-sw i{border-radius:4px!important}
html body.ct .ps-sw i:after{border-radius:3px!important}
html body.ct .ps-go{border-radius:4px!important}
html body.ct .ps-sheet{border-radius:0!important}
.ps-go.ps-done{box-shadow:none;background:var(--card,var(--surface))}

/* design.css */
/* =====================================================================
   Coteau design system v1 (design pass, Oct 20 2026) — loaded LAST.
   One token set for every page. Light = default; dark = html[data-theme=dark].
   Brand (locked): chrome #121314, accent #3EC8C9, black/cyan dark theme, seafoam newest highlight.
   Headings + wordmark: General Sans 600 (self-hosted). Body + numbers: Inter, tabular figures.
   ===================================================================== */
html body.ct{
 --chrome:#121314;--nav:#0A1124;--chrome-ink:#F2F4F5;--chrome-mute:#8B9398;--chrome-line:#24272A;
 --accent:#3EC8C9;--accent-ink:#4B5257;--on-accent:#0B1A1B;--key:#1A9FA0;--white:#FFFFFF;--c-news:var(--accent-ink);--c-models:var(--accent-ink);--c-port:var(--accent-ink);--c-ins:var(--accent-ink);--c-earn:var(--accent-ink);--c-res:var(--accent-ink);--c-cat:var(--accent-ink);--c-stock:var(--accent-ink);--c-copy:var(--accent-ink);--c-watch:var(--accent-ink);
 --bg:#F3F4F5;--surface:#FFFFFF;--surface-2:#F7F8F9;--line:#E3E6E8;--line-2:#D3D8DB;
 --ink:#121314;--ink-2:#4B5257;--ink-3:#80878C;
 --up:#12804A;--up-bg:#E7F4EC;--down:#CC3A2F;--down-bg:#FBEAE8;--warn:#9A5B00;--warn-bg:#FBF1E1;
 --new:#DFEAF0;--new-edge:#A8C4D0;
 --r-xs:4px;--r-sm:8px;--r-md:12px;--r-pill:999px;
 --shadow-pop:0 12px 32px rgba(18,19,20,.18);
 --f-head:"General Sans","Inter",system-ui,-apple-system,sans-serif;--f-body:"Inter",system-ui,-apple-system,sans-serif;
 /* legacy names -> tokens (old stylesheets keep working) */
 --cy:var(--accent);--cy-tint:var(--new);--cy-line:var(--new-edge);--muted:var(--ink-2);--faint:var(--ink-3);--card:var(--surface);
 --ct-ink:var(--ink);--ct-accent:var(--accent);--ct-accent-d:var(--accent-ink);--ct-tile:var(--new);--ct-tile-edge:var(--new-edge);--ct-new:var(--new);--ct-new-edge:var(--new-edge);
 --ct-gray:var(--line-2);--ct-soft:var(--ink-3);--ct-card:var(--surface);--ct-page:var(--bg);--ct-header:var(--chrome);--ct-line:var(--line);--ct-edge:var(--accent-ink);--ct-on-accent:var(--on-accent);--ct-muted:var(--ink-3);
 --iz-mut:var(--ink-3);--soft:var(--surface-2);--chip:var(--surface-2);--navy:var(--ink);--royal:var(--accent-ink);--indigo:var(--accent-ink);--azure:var(--accent-ink);--sky:var(--accent);--pale:var(--new);
 --ix-a:var(--accent-ink);--ix-b:var(--accent-ink);--ix-t:var(--accent-ink);--ix-abg:var(--new);--ix-tbg:var(--new);--ix-w:var(--warn);--ix-wbg:var(--warn-bg);--sec:var(--accent);
 --up-bg2:var(--up-bg);--lg-bg:#fff;
 --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--r:12px;
}
html[data-theme=dark] body.ct{
 --accent-ink:#AEB5BA;--key:#3EC8C9;
 --bg:#0B0C0D;--surface:#151719;--surface-2:#1C1F21;--line:#26292C;--line-2:#33383C;
 --ink:#F2F4F5;--ink-2:#AEB5BA;--ink-3:#7A8388;
 --up:#3DD68C;--up-bg:rgba(61,214,140,.12);--down:#FF6B5E;--down-bg:rgba(255,107,94,.12);--warn:#F0B44C;--warn-bg:rgba(240,180,76,.10);
 --new:#1A2022;--new-edge:#3EC8C9;--shadow-pop:0 12px 32px rgba(0,0,0,.55);
}
html body.ct{background:var(--bg)!important;color:var(--ink);font-family:var(--f-body);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"cv11" 1}
html[data-theme=light],html[data-theme=light] body.ct{background:var(--bg)}

/* ---------- type scale ---------- */
html[data-theme] body.ct h1,html[data-theme] body.ct .h1,html[data-theme] body.ct .ihead h1{font:600 24px/30px var(--f-head)!important;letter-spacing:-.012em!important;color:var(--ink)!important;margin:6px 0 4px!important;text-transform:none!important}
html[data-theme] body.ct h2,html[data-theme] body.ct .h2{font:600 17px/24px var(--f-head)!important;letter-spacing:-.008em!important;color:var(--ink)!important;text-transform:none!important;border:0!important;padding:0!important;background:none!important}
html[data-theme] body.ct h2::before,html[data-theme] body.ct h2::after{display:none!important}
html[data-theme] body.ct h3{font-family:var(--f-head)!important;letter-spacing:-.005em}
html[data-theme] body.ct .ihead p,html[data-theme] body.ct .cx-purpose,html[data-theme] body.ct p.sub{font-size:14px!important;line-height:20px!important;color:var(--ink-2)!important;margin:0 0 16px!important}
html[data-theme] body.ct .small,html[data-theme] body.ct small{font-variant-numeric:tabular-nums}
html[data-theme] body.ct .price,html[data-theme] body.ct .mvcp,html[data-theme] body.ct .cr b,html[data-theme] body.ct .v,html[data-theme] body.ct [data-qp],html[data-theme] body.ct [data-qc]{font-family:var(--f-body)!important;font-variant-numeric:tabular-nums!important}
html[data-theme] body.ct .up{color:var(--up)!important} html[data-theme] body.ct .down{color:var(--down)!important}
html[data-theme] body.ct a{color:inherit} html[data-theme] body.ct main a:not([class]){color:var(--accent-ink)}

/* ---------- section header row ---------- */
html[data-theme] body.ct .sech{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:28px 0 12px}
html[data-theme] body.ct .sech h2{margin:0!important}
html[data-theme] body.ct .sech>a,html[data-theme] body.ct .mvtop a,html[data-theme] body.ct .sech .mvnav a{font:500 13px/18px var(--f-body)!important;color:var(--accent-ink)!important;text-decoration:none!important;border:0!important}
html[data-theme] body.ct .hcnt{font:500 13px/1 var(--f-body);color:var(--ink-3);margin-left:4px;vertical-align:1px}

/* ---------- header (navy #0A1124 since Oct 20 evening: the darkest blue stop of the hero/intro-card gradient) ---------- */
html[data-theme] body.ct header.top{background:var(--nav)!important;border:0!important;box-shadow:none!important}
html[data-theme] body.ct header.top .iconbtn{border:0!important;background:transparent!important;box-shadow:none!important;color:var(--chrome-ink)!important;width:40px;height:40px;border-radius:var(--r-sm)!important}
html[data-theme] body.ct header.top .iconbtn:hover{background:rgba(255,255,255,.06)!important}
html[data-theme] body.ct header.top .iconbtn svg{stroke-width:1.75}
html[data-theme] body.ct .ct-getapp-top{height:30px!important;line-height:30px!important;padding:0 12px!important;border-radius:var(--r-pill)!important;background:var(--accent)!important;color:var(--on-accent)!important;font:600 13px/30px var(--f-body)!important;border:0!important;box-shadow:none!important}
html.ct-standalone[data-theme] body.ct .ct-getapp-top,html[data-theme] body.ct .ct-getapp-top[hidden]{display:none!important}
/* lockup */
html[data-theme] body.ct .blk{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1}
html[data-theme] body.ct .bword{display:inline-flex;align-items:baseline;gap:.34em;font:600 21px/1 "General Sans","Inter",system-ui,sans-serif;letter-spacing:-.012em;color:var(--chrome-ink);white-space:nowrap}
html[data-theme] body.ct .bword .bmark{height:.98em;width:auto;align-self:baseline;transform:translateY(.02em)}
html[data-theme] body.ct .blk-md .bword{font-size:23px}
html[data-theme] body.ct .btag{font:500 9.5px/1 var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--chrome-mute);margin-top:9px}
html[data-theme] body.ct .ct-brand,html[data-theme] body.ct .ct-dbrand{text-decoration:none!important;display:inline-flex;align-items:center}
html[data-theme] body.ct .ct-brand .ct-word,html[data-theme] body.ct .ct-brand img.ct-mark{display:none!important}
html[data-theme] body.ct .ct-fbrand .bword{color:var(--ink);font-size:19px}
html[data-theme] body.ct .bmark.ct-mk-d{display:none} html[data-theme=dark] body.ct .bmark.ct-mk-d{display:inline-block} html[data-theme=dark] body.ct .bmark.ct-mk-l{display:none}
html[data-theme] body.ct header.top .bmark.ct-mk-d,html[data-theme] body.ct .drawer .bmark.ct-mk-d{display:none}

/* ---------- stale data: one small chip ---------- */
html[data-theme] body.ct .dhb.dhb-chip{display:inline-flex!important;align-items:center;gap:7px;margin:12px 0 0!important;padding:5px 10px!important;border-radius:var(--r-pill)!important;background:var(--warn-bg)!important;color:var(--warn)!important;border:0!important;font:500 12px/16px var(--f-body)!important;text-decoration:none!important;width:auto!important;margin-bottom:4px!important;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-theme] body.ct .dhb-dot{width:6px!important;height:6px!important;border-radius:50%!important;padding:0!important;background:currentColor;flex:none}

/* ---------- cards, lists, rows: 1px line, radius 12, no shadow ---------- */
html[data-theme] body.ct .card,html[data-theme] body.ct .list,html[data-theme] body.ct .topcard,html[data-theme] body.ct .iz .list,html[data-theme] body.ct .iz .icard,html[data-theme] body.ct .tvchart,html[data-theme] body.ct .whyin,html[data-theme] body.ct .gt,html[data-theme] body.ct .ms,html[data-theme] body.ct .pill.earn{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:var(--r-md)!important;box-shadow:none!important}
html[data-theme] body.ct .list{overflow:hidden}
html[data-theme] body.ct .list>.row,html[data-theme] body.ct .list>a.row,html[data-theme] body.ct .list>.news{border-top:1px solid var(--line)!important;border-left:0!important;border-right:0!important;border-bottom:0!important;box-shadow:none!important;border-radius:0!important;background:transparent}
html[data-theme] body.ct .list>.row:first-child,html[data-theme] body.ct .list>a.row:first-child,html[data-theme] body.ct .list>.news:first-child{border-top:0!important}
html[data-theme] body.ct .list[class*="acc-"]{border-top:1px solid var(--line)!important}
/* newest item: ONE highlight everywhere */
html[data-theme] body.ct .cnew,html[data-theme] body.ct .list>.row.cnew,html[data-theme] body.ct .topcard.lead,html[data-theme] body.ct .mvt.cnew,html[data-theme] body.ct .sml.cnew,html[data-theme] body.ct .drow.cnew,html[data-theme] body.ct .news.cnew,html[data-theme] body.ct .iz .list>.row.cnew,html[data-theme] body.ct .ctz .list>.row.cnew{background:var(--new)!important;box-shadow:inset 3px 0 0 var(--new-edge)!important}
html[data-theme] body.ct .mvt.cnew{border-color:var(--new-edge)!important;box-shadow:none!important}
html[data-theme=dark] body.ct .cnew,html[data-theme=dark] body.ct .topcard.lead,html[data-theme=dark] body.ct .list>.row.cnew{box-shadow:inset 3px 0 0 var(--accent)!important}
html[data-theme=dark] body.ct .mvt.cnew{box-shadow:none!important}

/* ---------- buttons ---------- */
html[data-theme] body.ct .btn,html[data-theme] body.ct .ibtn,html[data-theme] body.ct .cx-go,html[data-theme] body.ct .ga-btn{height:40px;padding:0 16px;border-radius:var(--r-sm)!important;background:var(--accent)!important;color:var(--on-accent)!important;font:600 14px/40px var(--f-body)!important;border:0!important;box-shadow:none!important}
html[data-theme] body.ct .ibtn.ghost,html[data-theme] body.ct .cmore{background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--line-2)!important;border-radius:var(--r-sm)!important}
html[data-theme] body.ct main .iconbtn.small{height:32px;padding:0 12px;border-radius:var(--r-sm)!important;background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--line-2)!important;font:600 13px/30px var(--f-body)!important;box-shadow:none!important}

/* ---------- chips: (1) filter pill (2) ticker chip (3) caps label ---------- */
html[data-theme] body.ct .fchip,html[data-theme] body.ct .cx-quicklinks a,html[data-theme] body.ct .hchip,html[data-theme] body.ct .chipbar a{height:32px;display:inline-flex!important;align-items:center;padding:0 14px!important;border-radius:var(--r-pill)!important;background:var(--surface)!important;border:1px solid var(--line)!important;color:var(--ink-2)!important;font:500 13px/1 var(--f-body)!important;box-shadow:none!important;white-space:nowrap;text-decoration:none!important;flex:none}
html[data-theme] body.ct .fchip.on,html[data-theme] body.ct .chipbar a.on{background:var(--ink)!important;border-color:var(--ink)!important;color:var(--bg)!important}
html[data-theme] body.ct .chipbar,html[data-theme] body.ct .cx-quicklinks{display:flex!important;gap:8px!important;overflow-x:auto;scrollbar-width:none;padding:0!important;margin:0 0 16px!important;-webkit-overflow-scrolling:touch}
html[data-theme] body.ct .chipbar::-webkit-scrollbar,html[data-theme] body.ct .cx-quicklinks::-webkit-scrollbar{display:none}
html[data-theme] body.ct .chipsep{display:none}
html[data-theme] body.ct .chip.tk,html[data-theme] body.ct .tkp{display:inline-flex!important;align-items:center;gap:6px;height:24px;padding:0 8px 0 4px!important;border-radius:6px!important;background:var(--surface-2)!important;border:1px solid var(--line)!important;font:600 12px/1 var(--f-body)!important;color:var(--ink)!important;box-shadow:none!important}
html[data-theme] body.ct .chip.tk{padding:0 8px!important}
html[data-theme] body.ct .cat,html[data-theme] body.ct .ctag,html[data-theme] body.ct .sx,html[data-theme] body.ct .chiprow .chip{background:none!important;border:0!important;padding:0!important;font:600 11px/14px var(--f-body)!important;letter-spacing:.05em!important;text-transform:uppercase!important;color:var(--accent-ink)!important;border-radius:0!important;opacity:1!important;margin-right:6px}
html[data-theme] body.ct .chiprow .chip,html[data-theme] body.ct .chiprow span.chip{color:var(--ink-3)!important;background:none!important;border:0!important;padding:0!important}
html[data-theme] body.ct .badge-new,html[data-theme] body.ct .icard .new,html[data-theme] body.ct .inew{display:inline-block;height:18px;padding:0 6px;border-radius:var(--r-xs)!important;background:var(--new)!important;color:var(--accent-ink)!important;border:1px solid var(--new-edge)!important;font:700 10px/16px var(--f-body)!important;letter-spacing:.05em;text-transform:uppercase}
html[data-theme] body.ct .lbl{font:600 11px/14px var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}

/* ---------- one tab switcher (segmented) ---------- */
html[data-theme] body.ct .segc,html[data-theme] body.ct .tabs,html[data-theme] body.ct .cx-seg{display:flex!important;gap:0!important;background:var(--surface-2)!important;border:1px solid var(--line)!important;border-radius:var(--r-sm)!important;padding:2px!important;margin:4px 0 8px!important;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line)!important}
html[data-theme] body.ct .segc a,html[data-theme] body.ct .tabs a,html[data-theme] body.ct .cx-seg a{flex:1 0 auto;text-align:center;padding:0 12px!important;height:30px;line-height:30px!important;border-radius:6px!important;font:500 13px/30px var(--f-body)!important;color:var(--ink-2)!important;text-decoration:none!important;border:0!important;background:transparent!important;box-shadow:none!important;white-space:nowrap}
html[data-theme] body.ct .segc a.on,html[data-theme] body.ct .tabs a.on,html[data-theme] body.ct .cx-seg a.on{background:var(--surface)!important;color:var(--ink)!important;font-weight:600!important;box-shadow:0 1px 2px rgba(0,0,0,.08)!important}
html[data-theme=dark] body.ct .segc a.on,html[data-theme=dark] body.ct .tabs a.on{background:var(--line-2)!important}
html[data-theme] body.ct .segc{position:sticky;top:56px;z-index:5}

/* ---------- drawer ---------- */
html[data-theme] body.ct .drawer{background:var(--surface)!important;box-shadow:var(--shadow-pop)!important;display:flex;flex-direction:column}
html[data-theme] body.ct .drawer .dhead{background:var(--chrome)!important;padding:18px 16px 16px 20px!important;align-items:flex-start!important;border:0!important}
html[data-theme] body.ct .drawer .dhead .iconbtn{border:0!important;background:transparent!important;color:var(--chrome-ink)!important;box-shadow:none!important}
html[data-theme] body.ct .cx-dr{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:0 0 12px!important}
html[data-theme] body.ct .cx-dl{font:600 11px/14px var(--f-body)!important;letter-spacing:.06em!important;text-transform:uppercase;color:var(--ink-3)!important;padding:16px 20px 6px!important;margin:0!important;border:0!important}
html[data-theme] body.ct .cx-row{display:flex!important;align-items:center;justify-content:flex-start!important;gap:14px;padding:9px 20px!important;text-align:left!important;border:0!important;background:none!important;text-decoration:none!important;color:var(--ink)!important}
html[data-theme] body.ct .cx-row::after{display:none!important}
html[data-theme] body.ct .cx-row>span{font:600 15px/20px var(--f-body)!important;display:flex!important;flex-direction:column;align-items:flex-start!important;flex:1;min-width:0;margin:0!important;padding:0!important;text-align:left!important}
html[data-theme] body.ct .cx-row small{font:400 12px/16px var(--f-body)!important;color:var(--ink-3)!important;margin:1px 0 0!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
html[data-theme] body.ct .cx-ic{width:20px;height:20px;flex:none;fill:none;stroke:var(--ink-3);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
html[data-theme] body.ct .cx-quick{margin-top:auto!important;padding:16px 20px 8px!important;display:flex!important;gap:10px;align-items:center;border:0!important}
html[data-theme] body.ct .cx-qapp{flex:1;display:inline-flex!important;align-items:center;justify-content:center;gap:6px;height:40px;border-radius:var(--r-sm)!important;background:var(--accent)!important;color:var(--on-accent)!important;font:600 14px/1 var(--f-body)!important;border:0!important;text-decoration:none!important}
html[data-theme] body.ct .cx-qtheme{display:flex;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:2px}
html[data-theme] body.ct .cx-qtheme button{border:0!important;background:transparent!important;color:var(--ink-2)!important;font:500 13px/30px var(--f-body)!important;padding:0 10px!important;border-radius:6px!important;height:32px}
html[data-theme=light] body.ct .cx-qtheme [data-ct-theme-set=light],html[data-theme=dark] body.ct .cx-qtheme [data-ct-theme-set=dark]{background:var(--surface)!important;color:var(--ink)!important;font-weight:600!important;box-shadow:0 1px 2px rgba(0,0,0,.1)!important}
html[data-theme=dark] body.ct .cx-qtheme [data-ct-theme-set=dark]{background:var(--line-2)!important}
html[data-theme] body.ct .cx-legal{display:flex;gap:14px;padding:4px 20px 18px;font:400 12px/16px var(--f-body)}
html[data-theme] body.ct .cx-legal a{color:var(--ink-3)!important;text-decoration:none!important}

/* ---------- bottom nav ---------- */
html[data-theme] body.ct nav.bottom{background:var(--chrome)!important;border-top:1px solid var(--chrome-line)!important;box-shadow:none!important}
html[data-theme] body.ct nav.bottom a{color:var(--chrome-mute)!important;font:500 11px/1 var(--f-body)!important}
html[data-theme] body.ct nav.bottom a.on{color:var(--accent)!important}
html[data-theme] body.ct nav.bottom svg{stroke-width:1.75!important}

/* ---------- news ---------- */
html[data-theme] body.ct .news,html[data-theme] body.ct .topcard{text-decoration:none!important}
html[data-theme] body.ct .tops{display:flex;flex-direction:column;gap:12px;margin:0 0 8px}
html[data-theme] body.ct .topcard{padding:16px!important;display:block}
html[data-theme] body.ct .topcard .th,html[data-theme] body.ct .news .h{font:600 16px/22px var(--f-head)!important;letter-spacing:-.004em!important;color:var(--ink)!important;margin:6px 0 8px!important}
html[data-theme] body.ct .topcard.lead .th{font-size:17px!important;line-height:23px!important}
html[data-theme] body.ct .topcard .ts{font-size:14px!important;line-height:20px!important;color:var(--ink-2)!important;margin-bottom:10px}
html[data-theme] body.ct .tmeta,html[data-theme] body.ct .news .m{font:400 12px/16px var(--f-body)!important;color:var(--ink-3)!important}
html[data-theme] body.ct .ttk{display:flex;gap:6px;flex-wrap:wrap}
html[data-theme] body.ct .list.acc-news{background:transparent!important;border:0!important;display:flex;flex-direction:column;gap:12px;overflow:visible}
html[data-theme] body.ct .list.acc-news>.news{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:var(--r-md)!important;padding:14px 16px!important}
html[data-theme] body.ct .list.acc-news>.news.cnew{background:var(--new)!important}
html[data-theme] body.ct .news .h{margin:0 0 6px!important}
html[data-theme] body.ct .news .lgo{flex:none}
html[data-theme] body.ct .cx-fine{margin:16px 0}

/* ---------- home dashboard (layout B) ---------- */
html[data-theme] body.ct .hm-earn .sech{margin-top:8px}
html[data-theme] body.ct.pg-home .hm-movers .sech,html[data-theme] body.ct.pg-home .mvtop{margin:8px 0 10px!important;display:flex;align-items:baseline;justify-content:space-between}
html[data-theme] body.ct .mstrip2{display:flex;gap:16px;overflow-x:auto;scrollbar-width:none;padding:9px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);white-space:nowrap}
html[data-theme] body.ct .mstrip2::-webkit-scrollbar{display:none}
html[data-theme] body.ct .m2{display:inline-flex;align-items:baseline;gap:6px;font:500 12px/16px var(--f-body);color:var(--ink);text-decoration:none!important}
html[data-theme] body.ct .m2 .k{color:var(--ink-3)} html[data-theme] body.ct .m2 b{font-weight:600}
html[data-theme] body.ct .dcard{padding:12px 12px 8px!important;min-width:0}
html[data-theme] body.ct .dcard .sech{margin:0 0 4px!important}
html[data-theme] body.ct .dcard .sech h2{font-size:15px!important;line-height:20px!important}
html[data-theme] body.ct .dcard .sech a{font-size:12px!important}
html[data-theme] body.ct .smcred{font:400 11px/14px var(--f-body)!important;color:var(--ink-3)!important;margin:6px 0 0!important}
html[data-theme] body.ct .smcred a{color:var(--ink-3)!important;text-decoration:none!important}
html[data-theme] body.ct .dlist{display:flex;flex-direction:column}
html[data-theme] body.ct .drow{display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:baseline;padding:6px 4px;border-top:1px solid var(--line);text-decoration:none!important;color:var(--ink);border-radius:4px}
html[data-theme] body.ct .drow:first-child{border-top:0}
html[data-theme] body.ct .drow b{font:600 13px/1 var(--f-body)} html[data-theme] body.ct .drow .dk{font:400 12px/1 var(--f-body);color:var(--ink-3)} html[data-theme] body.ct .drow .dv{font:600 12px/1 var(--f-body)}
html[data-theme] body.ct .hm-news{margin-top:4px}
html[data-theme] body.ct .hm-news .newsh{margin:24px 0 12px}
html[data-theme] body.ct .pill.earn{padding:10px 12px!important;min-width:112px;display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-2)!important;text-decoration:none!important}
html[data-theme] body.ct .pill.earn b{color:var(--ink)}
html[data-theme] body.ct .strip{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}

/* ---------- movers tiles (phone: compact, no chart; desktop: chart tiles) ---------- */
html[data-theme] body.ct .mvt{border-radius:var(--r-sm)!important;border:1px solid var(--line)!important;background:var(--surface)!important;box-shadow:none!important}
html[data-theme] body.ct .mvcp{font-weight:600!important;letter-spacing:-.01em}
html[data-theme] body.ct .mvasof{font:400 11px/14px var(--f-body)!important;color:var(--ink-3)!important;margin:6px 0 0!important}
html[data-theme] body.ct .mvar{border:1px solid var(--line)!important;background:var(--surface)!important;color:var(--ink-2)!important;border-radius:var(--r-sm)!important;box-shadow:none!important}

/* ---------- tools page ---------- */
html[data-theme] body.ct .tgl{display:flex;align-items:center;gap:8px;margin:20px 0 8px}
html[data-theme] body.ct .tlist{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
html[data-theme] body.ct .trow{display:flex;align-items:center;gap:12px;padding:12px 14px;border-top:1px solid var(--line);text-decoration:none!important;color:var(--ink)}
html[data-theme] body.ct .trow:first-child{border-top:0}
html[data-theme] body.ct .trow .ic{width:36px;height:36px;flex:none;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--accent-ink)}
html[data-theme] body.ct .trow .tt{flex:1;min-width:0;display:flex;flex-direction:column}
html[data-theme] body.ct .trow .tt b{font:600 15px/20px var(--f-body)} html[data-theme] body.ct .trow .tt span{font:400 12px/16px var(--f-body);color:var(--ink-3)}
html[data-theme] body.ct .trow .chev{color:var(--ink-3);flex:none}
html[data-theme] body.ct .inia{font-size:12px!important;color:var(--ink-3)!important;margin-top:16px!important}

/* ---------- ideas pages + catalysts ---------- */
html[data-theme] body.ct .iz .ibanner{background:var(--new)!important;border:1px solid var(--new-edge)!important;color:var(--ink)!important;border-radius:var(--r-md)!important}
html[data-theme] body.ct .ihow summary,html[data-theme] body.ct .cx-fine summary,html[data-theme] body.ct details.cx-how summary{font:500 13px/18px var(--f-body)!important;color:var(--ink-3)!important;cursor:pointer}
html[data-theme] body.ct .ctz .cdate{color:var(--accent-ink)!important;font-family:var(--f-body)!important}
html[data-theme] body.ct .ctz h3{font:600 11px/14px var(--f-body)!important;letter-spacing:.06em!important;color:var(--ink-3)!important}
html[data-theme] body.ct .sclink,html[data-theme] body.ct .tkchip{color:var(--accent-ink)!important}
html[data-theme] body.ct .tkchip{background:var(--new)!important;border:1px solid var(--new-edge)!important;border-radius:var(--r-xs)!important;font:600 11px/16px var(--f-body)!important;padding:1px 6px!important}
html[data-theme] body.ct .hero{background:none!important;color:var(--ink)!important;padding:0!important;border:0!important;box-shadow:none!important;margin:6px 0 12px!important}
html[data-theme] body.ct .hero p{color:var(--ink-2)!important}
html[data-theme] body.ct .hero .hchips{display:none}

/* ---------- stock page ---------- */
html[data-theme] body.ct .shero{padding:16px!important}
html[data-theme] body.ct .shero .price{font:600 30px/36px var(--f-body)!important;letter-spacing:-.02em;color:var(--ink)!important}
html[data-theme] body.ct .shero .chg{display:inline-block;padding:2px 6px;border-radius:var(--r-xs);font:600 13px/18px var(--f-body)!important;background:var(--surface-2)}
html[data-theme] body.ct .shero .chg.up{background:var(--up-bg)!important} html[data-theme] body.ct .shero .chg.down{background:var(--down-bg)!important}
html[data-theme] body.ct .chiprow{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0!important}
html[data-theme] body.ct .rtiles{gap:8px!important}
html[data-theme] body.ct .rt{background:var(--surface-2)!important;border:1px solid var(--line)!important;border-radius:var(--r-sm)!important;box-shadow:none!important}
html[data-theme] body.ct .rt .k{color:var(--ink-3)!important;font:600 11px/14px var(--f-body)!important;letter-spacing:.05em}
html[data-theme] body.ct .rt .v{font:600 15px/20px var(--f-body)!important}
html[data-theme] body.ct .rt.up .v{color:var(--up)!important} html[data-theme] body.ct .rt.down .v{color:var(--down)!important}
html[data-theme] body.ct .gna{font:500 13px/1 var(--f-body);color:var(--ink-3);padding:0 6px}
html[data-theme] body.ct .gt .s{color:var(--ink-3)!important}
@media (max-width:899px){html[data-theme] body.ct .tvsec{display:none!important}}

/* ---------- misc ---------- */
html[data-theme] body.ct .foot{color:var(--ink-3)!important;border-top:1px solid var(--line)!important}
html[data-theme] body.ct .foot b{color:var(--ink-2)!important}
html[data-theme] body.ct .foot .flinks a{color:var(--ink-3)!important}
html[data-theme] body.ct .flash{background:var(--new)!important;border:1px solid var(--new-edge)!important;color:var(--ink)!important;border-radius:var(--r-md)!important}
html[data-theme] body.ct table.t th{background:var(--surface-2)!important;color:var(--ink-3)!important}
html[data-theme] body.ct table.t td,html[data-theme] body.ct table.t th{border-color:var(--line)!important}
html[data-theme] body.ct input,html[data-theme] body.ct select,html[data-theme] body.ct textarea{border-radius:var(--r-sm)}
html,html[data-theme] body.ct{overflow-x:hidden}

/* ---------- desktop: 1200px grid, right rail ---------- */
@media (min-width:1100px){
 html[data-theme] body.ct main.wrap,html[data-theme] body.ct.pg-home header.top .wrap{max-width:1200px!important}
 html[data-theme] body.ct:not(.pg-home) header.top .wrap{max-width:868px!important;padding:0 24px!important}
 html[data-theme] body.ct main.wrap{padding-left:24px;padding-right:24px}
 html[data-theme] body.ct:not(.pg-home) main.wrap>*:not(.foot){max-width:820px;margin-left:auto;margin-right:auto}
 html[data-theme] body.ct .dhb.dhb-chip{margin-top:16px!important}
}

html[data-theme] body.ct header .dnav a{color:#AEB5BA!important}
html[data-theme] body.ct header .dnav a.on,html[data-theme] body.ct header .dnav a:hover{color:#F2F4F5!important}
html[data-theme] body.ct #drawer .dhead button.iconbtn{border:0!important;background:transparent!important;color:#F2F4F5!important;box-shadow:none!important}
html[data-theme] body.ct #drawer .dhead button.iconbtn:hover{background:rgba(255,255,255,.08)!important}
@media (min-width:1100px){html[data-theme] body.ct:not(.pg-home) main.wrap>.dhb{display:flex;width:fit-content;margin-left:max(0px,calc(50% - 410px))!important}}
html[data-theme] body.ct main span.chip{background:none!important;border:0!important;padding:0 2px!important;color:var(--ink-3)!important;font:600 11px/16px var(--f-body)!important;letter-spacing:.06em;text-transform:uppercase;box-shadow:none!important}
html[data-theme] body.ct main .shareic svg{width:16px!important;height:16px!important}
/* Safari "Add to Dock" popover: always readable in both themes */
html body.ct .ct-dockpop{background:#FFFFFF!important;color:#3A4045!important;border:1px solid #D5DADC!important;box-shadow:0 10px 28px rgba(0,0,0,.18)!important}
html body.ct .ct-dockpop b{color:#121314!important}
html body.ct .ct-dockpop span{color:#3A4045!important}
html body.ct .ct-dockpop kbd{background:#F1F3F4!important;color:#121314!important;border:1px solid #C9CFD2!important}
html[data-theme=dark] body.ct .ct-dockpop{background:#1A1C1E!important;color:#D5DADC!important;border-color:#33383C!important}
html[data-theme=dark] body.ct .ct-dockpop b{color:#F2F4F5!important}
html[data-theme=dark] body.ct .ct-dockpop span{color:#D5DADC!important}
html[data-theme=dark] body.ct .ct-dockpop kbd{background:#24272A!important;color:#F2F4F5!important;border-color:#3A3F43!important}

/* =====================================================================
   Polish pass (Oct 20 2026): simplified home, Explore, page heads, about steps.
   Spacing scale: 4 / 8 / 12 / 16 / 24 / 32. Radii: 8 (controls), 12 (cards), pill (chips).
   ===================================================================== */
html[data-theme] body.ct .pghead{margin:16px 0 16px}
html[data-theme] body.ct .pghead h1{margin:0 0 4px!important}
html[data-theme] body.ct .pgsub{margin:0;font:400 14px/20px var(--f-body);color:var(--ink-2);max-width:60ch}
html[data-theme] body.ct .pgfine,html[data-theme] body.ct .hm-fine{margin:24px 0 8px;font:400 12px/18px var(--f-body);color:var(--ink-3);max-width:72ch}
html[data-theme] body.ct .sech-sub{font:400 12px/18px var(--f-body);color:var(--ink-3);margin-right:auto}

/* hero */
html[data-theme] body.ct .hx{display:grid;gap:16px;margin:16px 0 8px}
html[data-theme] body.ct .hx-eye{margin:0 0 8px;font:600 11px/16px var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink)}
html[data-theme] body.ct h1.hx-h{font:600 28px/34px var(--f-head)!important;letter-spacing:-.02em!important;margin:0 0 12px!important;max-width:22ch;text-wrap:balance}
html[data-theme] body.ct .hx-sub{margin:0 0 16px;font:400 15px/22px var(--f-body);color:var(--ink-2);max-width:52ch}
html[data-theme] body.ct .hx-cta{display:flex;gap:8px;flex-wrap:wrap}
html[data-theme] body.ct .hx-cta .btn{display:inline-flex;align-items:center;height:44px;padding:0 20px;border-radius:var(--r-sm)!important;font:600 15px/1 var(--f-body)!important;text-decoration:none!important;box-shadow:none!important}
html[data-theme] body.ct .hx-pri{background:var(--accent)!important;color:var(--on-accent)!important;border:0!important}
html[data-theme] body.ct .hx-pri:hover{filter:brightness(1.05)}
html[data-theme] body.ct .hx-sec{background:transparent!important;color:var(--ink)!important;border:1px solid var(--line-2)!important}
html[data-theme] body.ct .hx-sec:hover{border-color:var(--ink-3)!important}
html[data-theme] body.ct .hx-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 16px 16px;min-width:0}
html[data-theme] body.ct .hx-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:0 -4px 12px;padding:0 4px}
html[data-theme] body.ct .hx-tabs::-webkit-scrollbar{display:none}
html[data-theme] body.ct .hx-tabs button{flex:none;height:30px;padding:0 12px;border-radius:var(--tl-r,4px);border:1px solid transparent;background:none;color:var(--ink-2);font:500 13px/1 var(--f-body);cursor:pointer}
html[data-theme] body.ct .hx-tabs button[aria-selected=true]{background:var(--surface-2);border-color:var(--line-2);color:var(--ink);font-weight:600}
html[data-theme] body.ct .hx-stats{display:flex;gap:24px;align-items:flex-end}
html[data-theme] body.ct .hx-stats>div{display:flex;flex-direction:column;gap:2px}
html[data-theme] body.ct .hx-k{font:500 12px/16px var(--f-body);color:var(--ink-3)}
html[data-theme] body.ct .hx-k::before{content:"";display:inline-block;width:10px;height:2px;border-radius:2px;background:var(--accent);vertical-align:3px;margin-right:6px}
html[data-theme] body.ct .hx-vs .hx-k::before{background:var(--ink-3)}
html[data-theme] body.ct .hx-n{font:600 30px/34px var(--f-head);letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
html[data-theme] body.ct .hx-n2{font-size:22px;line-height:34px;color:var(--ink-2)}
html[data-theme] body.ct .hx-u{font:400 12px/16px var(--f-body);color:var(--ink-3)}
html[data-theme] body.ct .hx-svg{display:block;width:100%;height:150px;margin:12px 0 4px;overflow:visible}
html[data-theme] body.ct .hx-svg polyline{fill:none;stroke-linejoin:round;stroke-linecap:round}
html[data-theme] body.ct .hx-mod{stroke:var(--accent);stroke-width:2.25}
html[data-theme] body.ct .hx-spy{stroke:var(--ink-3);stroke-width:1.5;stroke-dasharray:4 4;opacity:.8}
/* hero line draw-in removed (no entrance animations, Jason Oct 21 2026) */
@keyframes hxDraw{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){html[data-theme] body.ct .hx-in .hx-mod{animation:none;stroke-dasharray:none;stroke-dashoffset:0}}
html[data-theme] body.ct .hx-axis{display:flex;justify-content:space-between;gap:8px;font:400 12px/16px var(--f-body);color:var(--ink-3)}
html[data-theme] body.ct .hx-axis b{color:var(--ink);font-weight:600}
html[data-theme] body.ct .hx-lbl{margin:8px 0 0;font:400 12px/18px var(--f-body);color:var(--ink-2)}
html[data-theme] body.ct .hx-lbl b{font-weight:600}
html[data-theme] body.ct .hx-tag{display:inline-block;min-width:56px;margin-right:6px;padding:1px 6px;border-radius:var(--r-xs);background:var(--surface-2);border:1px solid var(--line-2);color:var(--ink-2);font:600 10px/16px var(--f-body);letter-spacing:.06em;text-transform:uppercase;text-align:center}
html[data-theme] body.ct .hx-tag.hx-live{background:var(--new);border-color:var(--new-edge);color:var(--accent-ink)}
html[data-theme] body.ct .hx-more{display:inline-block;margin-top:12px;font:500 13px/18px var(--f-body);color:var(--accent-ink)!important;text-decoration:none}
/* hero pane fade-in removed (no entrance animations) */
@keyframes hxFade{from{opacity:.4}to{opacity:1}}
@media (prefers-reduced-motion:reduce){html[data-theme] body.ct .hx-pane.hx-in{animation:none}}

/* how it works (home first visit + about) */
html[data-theme] body.ct .hiw{position:relative;margin:16px 0 0!important;padding:16px!important;border-radius:var(--r-md)!important;background:var(--surface)!important;border:1px solid var(--line)!important}
html[data-theme] body.ct .hiw h2{margin:0 0 12px!important}
html[data-theme] body.ct .hiw-x{position:absolute;top:8px;right:8px;width:36px;height:36px;display:grid;place-items:center;border:0;background:none;color:var(--ink-3);border-radius:var(--r-sm);cursor:pointer}
html[data-theme] body.ct .hiw-x:hover{background:var(--surface-2);color:var(--ink)}
html[data-theme] body.ct .hiw-steps{list-style:none;margin:0;padding:0;display:grid;gap:16px}
html[data-theme] body.ct .hiw-steps li{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:start}
html[data-theme] body.ct .hiw-n{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--new);border:1px solid var(--new-edge);color:var(--accent-ink);font:600 13px/1 var(--f-head)}
html[data-theme] body.ct .hiw-steps b{display:block;font:600 15px/20px var(--f-head);color:var(--ink)}
html[data-theme] body.ct .hiw-steps p{margin:2px 0 4px;font:400 14px/20px var(--f-body);color:var(--ink-2)}
html[data-theme] body.ct .hiw-steps a{font:500 13px/18px var(--f-body);color:var(--accent-ink)!important;text-decoration:none}

/* home sections */
html[data-theme] body.ct.pg-home .hm-movers{margin-top:8px}
html[data-theme] body.ct.pg-home .hm-movers .mvtop{margin:24px 0 12px!important;align-items:center}
html[data-theme] body.ct .hm-socl{padding:4px 12px!important;border-radius:var(--r-md)!important;border:1px solid var(--line)!important;background:var(--surface)!important}
html[data-theme] body.ct .hm-socl .sml{display:grid!important;grid-template-columns:16px minmax(0,1fr) auto 56px!important;gap:8px;align-items:center;padding:10px 0!important;border-top:1px solid var(--line)!important;background:none!important;text-decoration:none!important;border-left:0!important;margin:0!important}
html[data-theme] body.ct .hm-socl .sml:first-child{border-top:0!important}
html[data-theme] body.ct .hm-socl .sml.cnew{background:none!important}
html[data-theme] body.ct .hm-socl .smt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html[data-theme] body.ct .hm-socl .smt b{font:600 14px/20px var(--f-body);color:var(--ink)}
html[data-theme] body.ct .hm-socl .smt span{display:inline!important;font:400 13px/20px var(--f-body);color:var(--ink-3)}
html[data-theme] body.ct .hm-socl .smm{font:400 12px/1 var(--f-body);color:var(--ink-3);white-space:nowrap}
html[data-theme] body.ct .hm-socl .smm b{font-weight:500;color:var(--ink-2)}
html[data-theme] body.ct .hm-socl .smm i{display:none!important}
html[data-theme] body.ct .hm-socl .smm b::after{content:" mentions";font-weight:400;color:var(--ink-3)}
html[data-theme] body.ct .hm-socl .smc{display:block!important;text-align:right;font:600 13px/1 var(--f-body)}
html[data-theme] body.ct .hm-socl .smr{font:500 12px/1 var(--f-body);color:var(--ink-3)}
html[data-theme] body.ct .hm-cred{margin:8px 0 0;font:400 12px/16px var(--f-body);color:var(--ink-3)}
html[data-theme] body.ct .hm-cred a{color:var(--ink-3)!important}
html[data-theme] body.ct .hm-newsp .sech{align-items:baseline}
html[data-theme] body.ct .news.empty{padding:16px;border:1px dashed var(--line-2);border-radius:var(--r-md);text-align:center}

/* explore */
html[data-theme] body.ct .xgrid{display:grid;gap:24px}
html[data-theme] body.ct h2.xg-h{margin:0 0 8px!important;font:600 11px/16px var(--f-body)!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--ink-3)!important}
html[data-theme] body.ct .hint{display:inline-grid;place-items:center;width:15px;height:15px;margin-left:4px;border-radius:50%;border:1px solid var(--line-2);color:var(--ink-3);font:600 10px/1 var(--f-body);vertical-align:1px;cursor:help}

/* about */
html[data-theme] body.ct .hiw-static{margin:0 0 24px!important}
html[data-theme] body.ct h2.ab-h{margin:24px 0 12px!important}
html[data-theme] body.ct details.fold{margin:0 0 8px!important;padding:0!important;border:1px solid var(--line)!important;border-radius:var(--r-md)!important;background:var(--surface)!important;box-shadow:none!important}
html[data-theme] body.ct details.fold>summary{list-style:none;cursor:pointer;padding:14px 16px;font:600 15px/20px var(--f-head);color:var(--ink);display:flex;justify-content:space-between;align-items:center}
html[data-theme] body.ct details.fold>summary::-webkit-details-marker{display:none}
html[data-theme] body.ct details.fold>summary::after{content:"";width:8px;height:8px;border-right:1.75px solid var(--ink-3);border-bottom:1.75px solid var(--ink-3);transform:rotate(45deg);margin:-4px 4px 0 12px;transition:transform .2s}
html[data-theme] body.ct details.fold[open]>summary::after{transform:rotate(-135deg);margin-top:4px}
html[data-theme] body.ct details.fold>p{margin:0;padding:0 16px 16px;font:400 14px/21px var(--f-body);color:var(--ink-2)}

/* funds follow */
html[data-theme] body.ct .ffol.on{background:transparent!important;color:var(--accent-ink)!important;border:1px solid var(--new-edge)!important}

/* footer */
html[data-theme] body.ct .cx-foot p{margin:8px 0 12px;font:400 12px/18px var(--f-body);color:var(--ink-3);max-width:72ch}

/* bottom nav: 5 tabs */
html[data-theme] body.ct nav.bottom.cx a{flex:1 1 0;min-width:0;font-size:11px!important}

@media (min-width:900px){
 html[data-theme] body.ct .hx{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:40px;align-items:center;margin:32px 0 16px}
 html[data-theme] body.ct h1.hx-h{font-size:40px!important;line-height:46px!important}
 html[data-theme] body.ct .hx-sub{font-size:16px;line-height:24px}
 html[data-theme] body.ct .hx-svg{height:190px}
 html[data-theme] body.ct .hiw-steps{grid-template-columns:repeat(3,1fr);gap:24px}
 html[data-theme] body.ct .xgrid{grid-template-columns:1fr 1fr;gap:24px 32px}
}
@media (min-width:1100px){
 html[data-theme] body.ct.pg-home main.wrap{display:grid;grid-template-columns:minmax(0,1fr) 360px;column-gap:32px;align-items:start;grid-auto-flow:row dense}
 html[data-theme] body.ct.pg-home main.wrap>*{grid-column:1/-1;min-width:0}
 html[data-theme] body.ct.pg-home main.wrap>.hm-newsp{grid-column:1;grid-row:span 2}
 html[data-theme] body.ct.pg-home main.wrap>.hm-social{grid-column:2;position:sticky;top:80px}
 html[data-theme] body.ct.pg-home .hm-newsp .list.acc-news{display:grid;grid-template-columns:1fr 1fr;gap:12px}
 html[data-theme] body.ct.pg-home main.wrap>.dhb{justify-self:start}
}
html[data-theme] body.ct .hx-cta a.btn.hx-sec{background:transparent!important;color:var(--ink)!important;border:1px solid var(--line-2)!important}
html[data-theme] body.ct .hx-cta a.btn.hx-pri{background:var(--accent)!important;color:var(--on-accent)!important}
html[data-theme] body.ct .hx-tabs button{border-radius:var(--tl-r,4px)!important}   /* square like the other tab rows (tl-seg, Gainers/Losers); Jason Oct 21: "whatever matches" */
html[data-theme] body.ct .hiw-n{border-radius:50%!important}
html[data-theme] body.ct .hx-more,html[data-theme] body.ct .hiw-steps a,html[data-theme] body.ct .sech>a{text-decoration:none!important}
html[data-theme] body.ct .hx-more:hover,html[data-theme] body.ct .hiw-steps a:hover{text-decoration:underline!important}

/* =====================================================================
   Restrained color (approved Oct 20): cyan = primary action + active-tab dot + key numbers (home hero stats: #3EC8C9 in dark, deeper #1A9FA0 in light for 3.2:1 on white; Oct 20).
   Labels, links, inactive tabs, chips, captions = grays. Seafoam = newest item in a list (one). Green/red = gains/losses only.
   ===================================================================== */
html[data-theme] body.ct .cat,html[data-theme] body.ct .tmeta .cat,html[data-theme] body.ct [class*="s-"].cat,html[data-theme] body.ct .cx-eyebrow,html[data-theme] body.ct .hx-eye,html[data-theme] body.ct .isec,html[data-theme] body.ct .lbl{color:var(--ink-3)!important;background:none!important;border-color:var(--line-2)!important}
html[data-theme] body.ct .cat::before{display:none!important}
html[data-theme] body.ct main a:not([class]),html[data-theme] body.ct .sech>a,html[data-theme] body.ct .mvtop a,html[data-theme] body.ct .hx-more,html[data-theme] body.ct .hiw-steps a{color:var(--ink-2)!important}
html[data-theme] body.ct .hx-n{color:var(--key)!important}
html[data-theme] body.ct .hiw-n{background:var(--surface-2)!important;border-color:var(--line-2)!important;color:var(--ink)!important}
html[data-theme] body.ct .hx-tag.hx-live{background:var(--surface-2)!important;border-color:var(--line-2)!important;color:var(--ink)!important}
html[data-theme] body.ct .hx-tag.hx-live::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--up);margin-right:4px;vertical-align:1px}
/* active tab = white label + small cyan dot (bottom nav and header) */
html[data-theme] body.ct nav.bottom.cx a{position:relative;color:var(--chrome-mute)!important}
html[data-theme] body.ct nav.bottom.cx a.on{color:var(--chrome-ink)!important}
html[data-theme] body.ct nav.bottom.cx a.on::before{content:"";position:absolute;top:4px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--accent)}
html[data-theme] body.ct header .dnav a{position:relative;border:0!important;box-shadow:none!important;background:none!important}
html[data-theme] body.ct header .dnav a.on{color:var(--chrome-ink)!important}
html[data-theme] body.ct header .dnav a.on::after{content:"";position:absolute;left:50%;bottom:12px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--accent);display:block!important}
/* chips + segmented controls: neutral (selected = ink fill) */
html[data-theme] body.ct .fchip{color:var(--ink-2)!important;background:var(--surface)!important;border:1px solid var(--line-2)!important}
html[data-theme] body.ct .fchip.on{background:var(--ink)!important;color:var(--bg)!important;border-color:var(--ink)!important}
/* seafoam only on the newest item of a news-style list; movers / social / table lists stay neutral */
html[data-theme] body.ct .mvt.cnew,html[data-theme] body.ct .sml.cnew,html[data-theme] body.ct .drow.cnew{background:var(--surface)!important;border-color:var(--line)!important;box-shadow:none!important}
html[data-theme] body.ct .mvt.cnew::before,html[data-theme] body.ct .sml.cnew::before{display:none!important}

html[data-theme] body.ct .ntk{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:6px}
html[data-theme] body.ct .tkc{font:400 12px/16px var(--f-body);color:var(--ink-3);white-space:nowrap}
html[data-theme] body.ct .tkc b{font-weight:600;color:var(--ink-2)}
html[data-theme] body.ct .hm-cred a,html[data-theme] body.ct .cx-foot .flinks a,html[data-theme] body.ct .pgfine a{text-decoration:none!important;color:var(--ink-3)!important}
html[data-theme] body.ct .cx-foot .flinks a:hover,html[data-theme] body.ct .pgfine a:hover{color:var(--ink)!important}
html[data-theme] body.ct .hm-newsp .acc-news>.news:first-child{background:var(--new)!important;border-color:var(--new-edge)!important}
/* page-level folds + neutral secondary buttons */
html[data-theme] body.ct .ffol{background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--line-2)!important;box-shadow:none!important}
html[data-theme] body.ct .ffol.on{background:var(--surface-2)!important;color:var(--ink-2)!important}
html[data-theme] body.ct .ffol.on::before{content:"✓ ";}
html[data-theme] body.ct details.sfold{margin:24px 0 0!important}
html[data-theme] body.ct details.sfold .sfold-b{padding:0 16px 16px}
html[data-theme] body.ct details.sfold .sfold-b>h2:first-child{display:none!important}
html[data-theme] body.ct details.sfold .sfold-b .list,html[data-theme] body.ct details.sfold .sfold-b .card{border-left:0!important;border-right:0!important;border-radius:0!important;box-shadow:none!important}
html[data-theme] body.ct h3.fh{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:12px 0;margin:8px 0 0!important;border-top:1px solid var(--line);user-select:none}
html[data-theme] body.ct h3.fh::after{content:"";width:7px;height:7px;border-right:1.75px solid var(--ink-3);border-bottom:1.75px solid var(--ink-3);transform:rotate(45deg);margin:-4px 4px 0 12px;transition:transform .2s}
html[data-theme] body.ct h3.fh[aria-expanded=true]::after{transform:rotate(-135deg);margin-top:4px}
html[data-theme] body.ct .hchip.ok,html[data-theme] body.ct .hchip.warn{color:var(--ink-2)!important;background:var(--surface-2)!important;border-color:var(--line-2)!important}
html[data-theme] body.ct .mvseg{border-color:var(--line-2)!important;background:var(--surface)!important}
html[data-theme] body.ct .mvseg button{background:none!important;color:var(--ink-2)!important;border:0!important}
html[data-theme] body.ct .mvseg button[aria-pressed=true]{background:var(--surface-2)!important;color:var(--ink)!important;font-weight:600!important}
html[data-theme] body.ct a.btn.ghost,html[data-theme] body.ct button.btn.ghost{background:transparent!important;color:var(--ink)!important;border:1px solid var(--line-2)!important;box-shadow:none!important}
html[data-theme] body.ct .mtag.solid,html[data-theme] body.ct .chip.live{background:var(--surface-2)!important;border-color:var(--line-2)!important;color:var(--ink)!important}
html[data-theme] body.ct .ga-steps .n{background:var(--surface-2)!important;color:var(--ink)!important;border:1px solid var(--line-2)}
html[data-theme] body.ct .ct-seg button[aria-pressed=true],html[data-theme] body.ct .ct-seg button.on{background:var(--surface-2)!important;color:var(--ink)!important}
html[data-theme] body.ct .ct-pchip{background:var(--surface)!important;color:var(--ink-2)!important;border:1px solid var(--line-2)!important}
html[data-theme] body.ct .ct-pchip.on{background:var(--ink)!important;color:var(--bg)!important;border-color:var(--ink)!important}
/* header lockup only: X mark slightly smaller relative to the coteau wordmark (drawer/footer/splash/share card unchanged) */
html[data-theme] body.ct header.top .ct-brand .bword .bmark{height:.84em;transform:translateY(.02em)}

/* mark on the left of the wordmark (2026-10-20) */
html[data-theme] body.ct .bword{gap:.26em}

/* =====================================================================
   Compact home (Oct 20 2026, Jason: "best of both worlds"). Phones (<=600px) read like an app dashboard: a short navy
   intro card, the model card, then Top news and Top movers as cards. Desktop keeps the soft-bold website hero, a bit
   tighter, with news beside movers right under it. Same content and order as before; How it works sits below the news.
   ===================================================================== */
html[data-theme] body.ct .hx-sub-s{display:none}
/* modules (cards with a small header + See all) */
html[data-theme] body.ct.pg-home .hm-mod{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:var(--r-md)!important;padding:12px 14px!important;margin:12px 0 0!important;min-width:0}
html[data-theme] body.ct.pg-home .hm-mod>.sech,html[data-theme] body.ct.pg-home .hm-mod>.mvtop{margin:0 0 8px!important;padding-top:0!important;display:flex;align-items:center;gap:8px}
html[data-theme] body.ct.pg-home .hm-mod>.sech::before,html[data-theme] body.ct.pg-home .hm-mod>.mvtop::before{display:none!important}
html[data-theme] body.ct.pg-home .hm-mod>.sech h2{font-size:15px!important;line-height:20px!important;margin:0!important}
html[data-theme] body.ct.pg-home .hm-mod>.sech>a{margin-left:auto;font:500 13px/18px var(--f-body)}
html[data-theme] body.ct.pg-home .hm-mod .mvstat{font-size:11px;white-space:nowrap}
/* top news: compact rows inside the card */
html[data-theme] body.ct.pg-home .hm-newsp .list.acc-news{display:block!important;gap:0;margin:0}
html[data-theme] body.ct.pg-home .hm-newsp .list.acc-news>.news{border:0!important;border-top:1px solid var(--line)!important;border-radius:0!important;background:none!important;padding:10px 0!important;margin:0!important;box-shadow:none!important;gap:10px}
html[data-theme] body.ct.pg-home .hm-newsp .list.acc-news>.news:first-child{border-top:0!important;padding-top:4px!important}
html[data-theme] body.ct.pg-home .hm-newsp .list.acc-news>.news:nth-child(n+5){display:none!important}
html[data-theme] body.ct.pg-home .hm-newsp .news .h{font:600 14.5px/20px var(--f-head)!important;margin:0 0 3px!important}
html[data-theme] body.ct.pg-home .hm-newsp .news .m{font-size:12px!important;line-height:16px!important}
html[data-theme] body.ct.pg-home .hm-newsp .news .ntk{display:none!important}
html[data-theme] body.ct.pg-home .hm-newsp .news .lgo{width:28px!important;height:28px!important;flex:none}
/* top movers: gainers / losers switch + filter chips on one scrolling line, then 5 rows */
html[data-theme] body.ct.pg-home .hm-mvctl{display:flex;gap:8px;align-items:center;overflow-x:auto;scrollbar-width:none;margin:0 -14px 4px;padding:0 14px 2px}
html[data-theme] body.ct.pg-home .hm-mvctl::-webkit-scrollbar{display:none}
html[data-theme] body.ct.pg-home .hm-gl{display:inline-flex;flex:none;padding:2px;border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--line)}
html[data-theme] body.ct.pg-home .hm-gl button{height:26px;padding:0 12px;border:0;border-radius:var(--r-pill);background:none;color:var(--ink-2);font:500 12.5px/1 var(--f-body);cursor:pointer}
html[data-theme] body.ct.pg-home .hm-gl button.on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.10)}
html[data-theme] body.ct.pg-home .hm-mvctl .mvchips{display:flex!important;flex:none;gap:6px;margin:0!important;padding:0!important;overflow:visible!important}
html[data-theme] body.ct.pg-home .hm-mvctl .fchip{height:28px!important;padding:0 10px!important;font-size:12px!important;flex:none}
html[data-theme] body.ct.pg-home .mvg.mvlist5{display:block!important;width:auto!important;margin:0!important;overflow:visible!important}
html[data-theme] body.ct.pg-home .mvlist5 .mvt{display:block!important;aspect-ratio:auto!important;border:0!important;border-top:1px solid var(--line)!important;border-radius:0!important;background:none!important;box-shadow:none!important;min-width:0;width:auto!important;animation:none}
html[data-theme] body.ct.pg-home .mvlist5 .mvt[hidden]{display:none!important}
html[data-theme] body.ct.pg-home .mvlist5 .mvt:not([hidden])~.mvt:not([hidden]){border-top:1px solid var(--line)!important}
html[data-theme] body.ct.pg-home .mvlist5 .mvh,html[data-theme] body.ct.pg-home .mvlist5 .mvw{display:none!important}
html[data-theme] body.ct.pg-home .mvlist5 .mvc{display:grid!important;grid-template-columns:minmax(0,1fr) auto 64px;align-items:center;gap:10px;padding:9px 0!important;color:inherit;text-decoration:none!important;border:0!important;background:none!important}
html[data-theme] body.ct.pg-home .mvlist5 .mvct{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:400 12px/18px var(--f-body);color:var(--ink-3)!important}
html[data-theme] body.ct.pg-home .mvlist5 .mvct b{font:600 14px/18px var(--f-body);color:var(--ink)!important;margin-right:4px}
html[data-theme] body.ct.pg-home .mvlist5 .mvcp{font:500 13px/18px var(--f-body)!important;margin:0!important;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-2)}
html[data-theme] body.ct.pg-home .mvlist5 .mvcc{font:600 13px/18px var(--f-body)!important;text-align:right;font-variant-numeric:tabular-nums}
html[data-theme] body.ct.pg-home .mvlist5 .mvcc [data-qtag]{display:block;font:500 10px/12px var(--f-body);color:var(--ink-3)}
html[data-theme] body.ct.pg-home .mvlist5 .mvcc [data-qtag][hidden]{display:none}
html[data-theme] body.ct.pg-home .hm-mvnote{margin:6px 0 0;font:400 11px/16px var(--f-body);color:var(--ink-3)}
html[data-theme] body.ct.pg-home .hm-movers{margin-top:12px!important}
html[data-theme] body.ct.pg-home .hm-social{margin-top:20px}
html[data-theme] body.ct.pg-home .hm-side>.hm-mod:first-child{margin-top:12px!important}

/* phones: app dashboard */
@media (max-width:600px){
 html[data-theme] body.ct .hx-sub-l{display:none}
 html[data-theme] body.ct .hx-sub-s{display:inline}
 html[data-theme] body.ct.pg-home .hx{background:none!important;padding:0!important;margin:10px 0 0!important;gap:10px!important;color:inherit}
 html[data-theme] body.ct.pg-home .hx::after{display:none!important}
 html[data-theme] body.ct.pg-home .hx-copy{background:var(--grad-hero);border-radius:var(--r-md);padding:14px 14px 12px;color:#F2F4F5;position:relative;overflow:hidden}
 html[data-theme] body.ct.pg-home .hx-copy::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--grad-navfade,var(--grad-brand));opacity:.7}
 html[data-theme] body.ct.pg-home .hx-eye{margin:0 0 6px!important;font-size:10.5px!important;line-height:14px!important}
 html[data-theme] body.ct.pg-home h1.hx-h{font-size:24px!important;line-height:28px!important;margin:0 0 6px!important;max-width:none!important}
 html[data-theme] body.ct.pg-home .hx-sub{font-size:14px!important;line-height:20px!important;margin:0 0 10px!important}
 html[data-theme] body.ct.pg-home .hx-cta{flex-wrap:nowrap;gap:8px}
 html[data-theme] body.ct.pg-home .hx-cta .btn{height:34px!important;padding:0 14px!important;font-size:13.5px!important}
 html[data-theme] body.ct.pg-home .hx .hx-card{box-shadow:none!important;padding:10px 14px 10px!important}
 html[data-theme] body.ct.pg-home .hx-tabs{margin:0 -4px 6px!important}
 html[data-theme] body.ct.pg-home .hx-tabs button{height:28px!important;padding:0 11px!important;font-size:12.5px!important}
 html[data-theme] body.ct.pg-home .hx-stats{gap:20px}
 html[data-theme] body.ct.pg-home .hx-stats>div{display:grid!important;grid-template-columns:auto auto;align-items:baseline;column-gap:5px}
 html[data-theme] body.ct.pg-home .hx-stats .hx-k{grid-column:1/-1}
 html[data-theme] body.ct.pg-home .hx-n{font-size:26px!important;line-height:30px!important}
 html[data-theme] body.ct.pg-home .hx-n2{font-size:19px!important;line-height:30px!important}
 html[data-theme] body.ct.pg-home .hx-svg{height:140px!important;margin:8px 0 2px!important}
 html[data-theme] body.ct.pg-home .hx-lbl{font-size:11px!important;line-height:15px!important;margin-top:4px!important}
 html[data-theme] body.ct.pg-home .hx-tag{min-width:48px;font-size:9.5px!important;line-height:14px!important}
 html[data-theme] body.ct.pg-home .hx-more{margin-top:6px!important;font-size:12.5px!important}
}
/* desktop: website hero, a bit tighter; news beside movers right under it */
@media (min-width:900px){
 html.g2 body.ct.pg-home .hx{padding-top:32px!important;padding-bottom:32px!important;margin-bottom:8px!important}
 html[data-theme] body.ct.pg-home h1.hx-h{font-size:36px!important;line-height:42px!important}
 html[data-theme] body.ct.pg-home .hx-svg{height:170px!important}
}
@media (min-width:1024px){
 html[data-theme] body.ct.pg-home main.wrap>.hm-duo{grid-column:1/-1!important}
 html[data-theme] body.ct.pg-home .hm-duo{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;align-items:start}
 html[data-theme] body.ct.pg-home .hm-duo>.hm-mod,html[data-theme] body.ct.pg-home .hm-side>.hm-mod:first-child{margin-top:0!important}
 html[data-theme] body.ct.pg-home .hm-newsp .list.acc-news{display:block!important}
 html[data-theme] body.ct.pg-home .hm-newsp .list.acc-news>.news:nth-child(n+5){display:flex!important}
 html[data-theme] body.ct.pg-home .hm-newsp .list.acc-news>.news:nth-child(n+7){display:none!important}
 html[data-theme] body.ct.pg-home .hm-mod{padding:14px 16px!important}
 html[data-theme] body.ct.pg-home .hm-mvctl{margin:0 0 4px;padding:0 0 2px;flex-wrap:wrap;overflow:visible}
 html[data-theme] body.ct.pg-home .hm-mvctl .mvchips{flex-wrap:wrap}
 html[data-theme] body.ct.pg-home .hm-social{margin-top:16px}
}

/* =====================================================================
   Navy bars (Oct 20, Jason: "both navs should be blue, the darkest of the blue spectrum of the boxes").
   --nav #0A1124 = the darkest clearly-blue stop of the soft-bold hero / intro-card gradient (gradients.css g4:
   #121314 -> #121626 -> #0A1124 -> #1A2D58). Header, desktop nav, phone tab bar and the drawer header, both themes.
   On #0A1124: #F2F4F5 14.5:1, inactive #8B9398 5.1:1, cyan #3EC8C9 7.9:1. --chrome (#121314) stays for non-bar uses.
   ===================================================================== */
html body.ct header.top,html[data-theme] body.ct header.top{background:var(--nav)!important;background-image:none!important}
html body.ct nav.bottom,html[data-theme] body.ct nav.bottom,html body.ct nav.bottom.cx,html[data-theme] body.ct nav.bottom.cx{background:var(--nav)!important;background-image:none!important;border-top:1px solid rgba(62,200,201,.18)!important}
html body.ct aside.drawer .dhead,html[data-theme] body.ct aside.drawer .dhead{background:var(--nav)!important;background-image:none!important}
html[data-theme] body.ct nav.bottom.cx a .cx-n{color:var(--nav)!important}
/* Dark mode only (Oct 20 2026, 10:5x PM): the bars go one step darker, #091022. Light stays #0A1124. */
html[data-theme=dark] body.ct{--nav:#091022}

/* ---- stock logos in mover tiles + social buzz lines ---- */
.mvt .mvc .mvlg{display:none}
html[data-theme] body.ct .smlist .smt{display:flex;align-items:center;gap:0;min-width:0}
html[data-theme] body.ct .smlist .smt .smlg{flex:none;display:inline-flex;margin-right:9px}
html[data-theme] body.ct .smlist .smt b{flex:none;margin-right:6px}
html[data-theme] body.ct .smlist .smt .smnm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html[data-theme] body.ct .hm-socl .smt .smlg,html[data-theme] body.ct .hm-socl .smt .smlg .lgo{display:inline-flex!important;align-items:center;justify-content:center}
html[data-theme] body.ct .hm-socl .smt .smlg .lgo.mono{color:#fff;font-weight:600;line-height:1}
/* ---- C (between): compact home with richer modules ---- */
html[data-theme] body.ct.pg-home main.wrap>.hv-mv{grid-column:1/-1!important}
html[data-theme] body.ct.pg-home .hv-mv .mvg.hv-cards{display:grid!important;grid-auto-flow:column;grid-template-columns:none!important;grid-auto-columns:41%;gap:8px!important;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:4px -14px 0!important;padding:2px 14px 4px!important;scroll-padding:0 14px;width:auto!important;max-width:none!important}
html[data-theme] body.ct.pg-home .hv-cards::-webkit-scrollbar{display:none}
html[data-theme] body.ct.pg-home .hv-cards .mvt{display:block!important;aspect-ratio:auto!important;height:auto!important;min-width:0;scroll-snap-align:start;border:1px solid var(--line)!important;border-radius:var(--r-md)!important;background:var(--surface-2)!important;box-shadow:none!important;animation:none;overflow:hidden}
html[data-theme] body.ct.pg-home .hv-cards .mvt[hidden]{display:none!important}
html[data-theme] body.ct.pg-home .hv-cards .mvt.cnew{border-color:var(--new-edge)!important;background:var(--new)!important}
html[data-theme] body.ct.pg-home .hv-cards .mvh,html[data-theme] body.ct.pg-home .hv-cards .mvw{display:none!important}
html[data-theme] body.ct.pg-home .hv-cards .mvc{display:grid!important;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"lg ch" "tk tk" "px px";align-items:center;row-gap:8px;padding:12px!important;color:inherit;text-decoration:none!important;border:0!important;background:none!important}
html[data-theme] body.ct.pg-home .hv-cards .mvc .mvlg{grid-area:lg;display:inline-flex}
html[data-theme] body.ct.pg-home .hv-cards .mvc .mvlg .lgo{width:32px!important;height:32px!important}
html[data-theme] body.ct.pg-home .hv-cards .mvct{grid-area:tk;display:flex;flex-direction:column;gap:1px;min-width:0;white-space:nowrap;overflow:hidden;font:400 12px/16px var(--f-body);color:var(--ink-3)!important}
html[data-theme] body.ct.pg-home .hv-cards .mvct b{font:600 15px/20px var(--f-body);color:var(--ink)!important;letter-spacing:.01em}
html[data-theme] body.ct.pg-home .hv-cards .mvct>span{overflow:hidden;text-overflow:ellipsis}
html[data-theme] body.ct.pg-home .hv-cards .mvcp{grid-area:px;font:600 17px/22px var(--f-body)!important;margin:0!important;font-variant-numeric:tabular-nums;color:var(--ink)}
html[data-theme] body.ct.pg-home .hv-cards .mvcc{grid-area:ch;justify-self:end;display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:var(--r-pill);font:600 12.5px/16px var(--f-body)!important;font-variant-numeric:tabular-nums;background:color-mix(in srgb,currentColor 12%,transparent)}
html[data-theme] body.ct.pg-home .hv-cards .mvcc [data-qtag]{font:500 9.5px/12px var(--f-body);opacity:.75;border:0!important;padding:0!important}
html[data-theme] body.ct.pg-home .hv-cards .mvcc [data-qtag][hidden]{display:none}
/* social buzz inside its module card: rows, logos, mention change back */
html[data-theme] body.ct.pg-home .hv-soc .hm-socl{padding:0!important;border:0!important;background:none!important;border-radius:0!important}
html[data-theme] body.ct.pg-home .hv-soc .smm i{display:inline!important;font:600 11px/1 var(--f-body);font-style:normal;margin-left:6px;min-width:0}
html[data-theme] body.ct.pg-home .hv-soc .smm b::after{content:" mentions"}
html[data-theme] body.ct.pg-home .hv-soc .hm-cred{margin:8px 0 0;font:400 11px/16px var(--f-body);color:var(--ink-3)}
html[data-theme] body.ct.pg-home .hv-soc,html[data-theme] body.ct.pg-home .hv-duo>.hm-newsp{margin-top:12px!important}
@media (min-width:900px){
 html[data-theme] body.ct.pg-home .hv-mv .mvg.hv-cards{grid-auto-columns:calc((100% - 32px)/5);margin:4px 0 0!important;padding:2px 0 4px!important}
 html[data-theme] body.ct.pg-home .hv-mv{margin-top:16px!important}
 html[data-theme] body.ct.pg-home .hv-duo>.hm-mod{margin-top:16px!important}
}
html[data-theme] body.ct.pg-home .hv-cards .mvc{grid-template-columns:32px minmax(0,1fr)!important;column-gap:6px}
html[data-theme] body.ct.pg-home .hv-cards .mvcc{padding:3px 6px;border-radius:999px;font-size:12px!important;gap:3px}
html[data-theme] body.ct.pg-home .hv-duo .hm-newsp .list.acc-news>.news:nth-child(5){display:flex!important}
@media (max-width:600px){html[data-theme] body.ct.pg-home .hv-soc .smt .smnm{display:none!important}}
/* in-between home cards: "<$1" tag sits beside the ticker, name on its own line */
html[data-theme] body.ct.pg-home .hv-cards .mvct{display:block!important}
html[data-theme] body.ct.pg-home .hv-cards .mvct>span{display:block;margin-top:1px}
html[data-theme] body.ct.pg-home .hv-cards .mvct .mvpn{display:inline-block;vertical-align:2px;margin-left:5px;padding:1px 4px;font:600 9.5px/12px var(--f-body);font-style:normal}

/* ---------- Ribbon lockup (Oct 21 2026, Jason approved the all-white M2 ribbon site-wide; the X over "ea" is retired) ----------
   Markup: templates/_brand.html xword() = <span class="bwx"><svg class="brib">…</svg>coteau</span>. The ribbon is 1.12em tall, centred on
   the wordmark line, and sits .28em from the ink of the "c" (c left bearing .027em, ribbon viewBox right pad .004em -> margin .249em).
   Faces use --rb-t/f/s/o/b (top/front/side/fold/back), default white M2; light-page spots switch to the navy ink tones below. */
html body.ct .bword,html body.ct .bwx,.bwx{font-family:"Brand Wordmark","General Sans",system-ui,sans-serif!important;font-weight:600!important}
.bwx{display:inline-flex;align-items:center;letter-spacing:normal!important;font-kerning:normal;font-feature-settings:normal;font-variant-numeric:normal;white-space:nowrap;text-transform:none}
.bwx>svg.brib{display:block;flex:none;height:1.142857em;width:.952381em;margin:0 .18em 0 0;overflow:visible}
html[data-theme] body.ct .bword{align-items:center}
#boot .boot-mk svg.brib{display:block;height:104px;width:86.4px;margin:0}
/* logofix (Oct 21 2026): lowercase coteau = ribbon .28em from the ink of the "c" (approved spec). The sharp mark has no viewBox pad and the "c"
   left bearing is .027em -> margin .253em. Since the caps switch the .18em caps margin had been applied to the lowercase lockup too (ink gap .207em). */
html.wm-lower .bwx>svg.brib,html.wm-lower body.ct .bwx>svg.brib{margin-right:.253em}
/* DESK + BETA tag outside the header (Desk ack pop-up): same look as the Desk header tag (edit.css / pill.css), one lockup everywhere */
.bwx .dk-tag{display:inline-flex;align-items:center;margin-left:.45em;font:600 12px/1 "General Sans","Brand Wordmark",Inter,system-ui,sans-serif;letter-spacing:.14em;color:rgba(255,255,255,.85);text-transform:uppercase;white-space:nowrap}
html body .bwx .dk-tag .dk-beta.bpill{margin-left:.55em!important;vertical-align:2px}
html[data-theme=light] body.ct .ct-fbrand,html[data-theme=light] body.ct .me-lmark{--rb-t:#1A2D58;--rb-f:#2A3D68;--rb-s:#3E5079;--rb-o:#5D6C8D;--rb-b:#7A87A3;--rb-c:#FFFFFF;--rb-ca:.15}

/* ---------- polish pass (Oct 21 2026): one content column on desktop ----------
   Inner pages: every block (cards, lists, h2s, the footer) sits on the same 820px column as the header, instead of some blocks
   hugging the 1152px wrap's left edge (their own margin shorthands beat the centring rule above). */
@media (min-width:1100px){
 html[data-theme] body.ct:not(.pg-home) main.wrap>*:not(.dhb):not(.ga):not(.ct-landing):not(.hx){margin-left:auto!important;margin-right:auto!important}
 html[data-theme] body.ct:not(.pg-home) main.wrap>.foot{max-width:820px}
}
/* owner "Live" chip: keep its light label on the navy bar (a generic header-link rule was turning it ink-on-navy) */
html[data-theme] body.ct header.top a.ol-live{color:#E8F7F7!important}
html[data-theme] body.ct header.top a.ol-live.ol-off{color:#C9D2DD!important}
/* signed in as owner: Get App + search + bell + Live (+ Owner on desktop) overflowed 390px by ~12px and butted "Watchlist" into
   "Get App" at 1440; the owner already has the app, so drop that CTA from the owner's header */
html[data-owner] body.ct header.top .ct-getapp-top{display:none!important}
/* phones: the small ghost buttons (model hero: Copy this model / Live record / Share) fit on one row instead of orphaning "Share" */
@media (max-width:440px){html[data-theme] body.ct .btn.ghost.sm{padding:0 11px!important;font-size:13px!important;min-height:36px!important;height:auto}}
/* leftover charcoal (#121314 --chrome) surfaces -> the brand navy the header/bottom bar use (--nav: #0A1124 light, #091022 dark) */
html[data-theme] body.ct .ga-hero,html[data-theme] body.ct .ga-bic,html[data-theme=light] body.ct .ga-tabs button[aria-selected=true],
html[data-theme] body.ct .ct-tagstrip,html[data-theme] .ct-dockpop,html[data-theme] .ct-dockpop kbd,
html[data-theme] body.ct .iz .iseg a.on,html[data-theme] body.ct .iz .iseg a.on:visited,html[data-theme] body.ct .iz .mock:before{background-color:var(--nav,#0A1124)!important}
html[data-theme=light] body.ct .ga-tabs button[aria-selected=true]{color:#F2F4F5!important}
/* get-app hero: the wordmark next to the white ribbon is always light (dark mode had it near-invisible, --surface-2 on navy) */
html[data-theme] body.ct .ga-word,html[data-theme] body.ct .ga-word .bwx{color:#F2F4F5!important}
/* charts: lines and gridlines keep their phone weight when the SVG is scaled up on desktop (axis text: app.js chartText) */
html[data-theme] body.ct svg.chart polyline,html[data-theme] body.ct svg.chart line{vector-effect:non-scaling-stroke}
@media (min-width:900px){html[data-theme] body.ct svg.chart polyline{stroke-width:2.2px}}

/* ---------- Wordmark casing switch (Oct 21 2026): <html class="wm-caps"> = COTEAU, General Sans 500 (variable cut), STOCK spacing
   (Jason, Oct 21 3:38 PM: no custom tracking or per-letter kerning; letter-spacing normal, the font's own kerning on), ribbon .22em
   from the ink of the "C" (margin .18em). <html class="wm-lower"> = coteau 600, also stock spacing, gap .28em. Switch: config.BRAND["wordmark_case"]. */
html.wm-caps .bwx,html.wm-caps body.ct .bwx,html.wm-caps body.ct .bword .bwx{font-family:"Brand Wordmark Caps","General Sans",system-ui,sans-serif!important;font-weight:var(--wm-w,500)!important;letter-spacing:normal!important;font-kerning:normal}
html.wm-caps .bwx>svg.brib,html.wm-caps body.ct .bwx>svg.brib{margin-right:.18em}
/* nav: sharp mark pixel-snapped (20x24 = 5 columns of 4 px) and truly centred in the 24px brand box */
html body.ct header.top .bwx>svg.brib{height:24px;width:20px}
html body.ct header.top a.ct-brand{box-sizing:content-box;height:24px}
html.wm-caps #boot .boot-mk svg.brib{margin:0}
html.wm-caps #boot .boot-desk{font-family:"Brand Wordmark Caps","General Sans",system-ui,sans-serif;font-weight:500;font-size:13px;letter-spacing:.32em;padding-left:.32em;margin-top:-1px;color:#F2F4F5}

/* gradients.css */
/* =====================================================================
   "Folded c" blue gradients. Live level = "soft bold": <html class="g1 g2 g3 g4"> (set in base.html).
   g1 subtle / g2 medium / g3 bold are cumulative; g4 softens the bold hero fill, nav line and splash.
   Stops come from logos_v6 concept 1: navy #0E1640 -> #14205A -> azure #2B7FD3 -> cyan #3EC8C9.
   Cyan stays the bright end of every ramp; seafoam stays the newest-item color.
   ===================================================================== */
html body.ct{
 --g-navy-900:#0E1640;--g-navy-800:#14205A;--g-navy-600:#1F4E9A;--g-azure:#2B7FD3;--g-azure-300:#4A9FE3;--g-cyan:#3EC8C9;
 --g-pale-azure:#E1ECFA;--g-azure-night:#172235;
 --grad-brand:linear-gradient(90deg,#14205A 0%,#2B7FD3 55%,#3EC8C9 100%);           /* hairlines, dividers, tab bar */
 --grad-action:linear-gradient(135deg,#4A9FE3 0%,#3EC8C9 100%);                     /* primary buttons: dark text >= 6.2:1 */
 --grad-hero:radial-gradient(120% 140% at 100% 100%,rgba(62,200,201,.12) 0%,rgba(62,200,201,0) 55%),linear-gradient(135deg,#0E1640 0%,#14205A 45%,#1F4E9A 100%); /* white text >= 5.8:1, body #DCE4F2 >= 5.2:1 */
 --grad-edge:linear-gradient(90deg,#14205A 0%,#2B7FD3 70%,#3EC8C9 100%);
 --grad-new:linear-gradient(90deg,#DFEAF0 0%,#E1ECFA 100%);                          /* seafoam -> pale azure */
 --grad-new-edge:#A8C4D0;
}
html[data-theme=dark] body.ct{--grad-new:linear-gradient(90deg,#1A2022 0%,#172235 100%);--grad-new-edge:#3EC8C9}

/* ---------- SUBTLE ---------- */
html.g1 body.ct header.top{box-shadow:none!important;border-bottom:0!important}
html.g1 body.ct header.top::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--grad-brand);pointer-events:none}
html.g1 body.ct .hx-cta a.btn.hx-pri,html.g1 body.ct a.ct-getapp,html.g1 body.ct .ct-getapp-top,html.g1 body.ct a.btn.wide,html.g1 body.ct button.btn.wide,html.g1 body.ct .ga-b1{background:var(--grad-action)!important;color:#0B1A1B!important;border:0!important}
html.g1 body.ct .hx-card,html.g1 body.ct .mcard{position:relative;overflow:hidden}
html.g1 body.ct .hx-card::before,html.g1 body.ct .mcard::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad-edge)}

/* ---------- MEDIUM ---------- */
html.g2 body.ct .hx{position:relative;isolation:isolate;padding:24px 16px;margin:0 -16px 8px;background:var(--grad-hero);color:#F2F4F5}
html.g2 body.ct .hx::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--grad-brand);opacity:.7}
html.g2 body.ct .hx .hx-eye{color:#C9DCF6!important}
html.g2 body.ct .hx h1.hx-h{color:#FFFFFF!important}
html.g2 body.ct .hx .hx-sub{color:#DCE4F2!important}
html.g2 body.ct .hx .hx-cta a.btn.hx-sec{color:#F2F4F5!important;border-color:rgba(242,244,245,.35)!important}
html.g2 body.ct .hx .hx-card{box-shadow:0 18px 40px rgba(6,10,30,.35)}
html.g2 body.ct .hx-svg .hx-mod{stroke:url(#gStroke)!important}
html.g2 body.ct .hx-svg .hx-area{display:block}
html.g2 body.ct .hx-tag.hx-live{border-color:transparent!important;background:linear-gradient(var(--surface-2),var(--surface-2)) padding-box,var(--grad-edge) border-box!important;border:1px solid transparent!important}
/* active tab: short gradient bar instead of the dot */
html.g2 body.ct nav.bottom.cx a.on::before{width:18px!important;height:3px!important;margin-left:-9px!important;top:0!important;border-radius:0 0 3px 3px!important;background:var(--grad-action)!important}
html.g2 body.ct header .dnav a.on::after{width:20px!important;height:2px!important;margin-left:-10px!important;bottom:10px!important;border-radius:2px!important;background:var(--grad-action)!important}
/* newest item: seafoam blending into pale azure */
html.g2 body.ct .hm-newsp .acc-news>.news:first-child,html.g2 body.ct .cnew:not(.mvt):not(.sml):not(.drow),html.g2 body.ct .topcard.lead{background:var(--grad-new)!important;border-color:var(--grad-new-edge)!important}
/* model page growth chart: azure->cyan line + faint fill (gradients.js adds the defs) */
html.g2 body.ct svg polyline.g-port{stroke:url(#gStroke)!important;stroke-width:2.2!important}
html.g2 body.ct svg polygon.g-area{fill:url(#gFill)}

@media (min-width:900px){
 html.g2 body.ct .hx{margin:0 calc(50% - 50vw) 16px;padding:48px calc(50vw - 50% + 0px);border-radius:0}
}

/* ---------- BOLD ---------- */
html.g3 body.ct .g-mhead{position:relative;isolation:isolate;margin:0 -16px 16px;padding:20px 16px 18px;background:var(--grad-hero);color:#F2F4F5}
html.g3 body.ct .g-mhead h1{color:#FFFFFF!important}
html.g3 body.ct .g-mhead .sub,html.g3 body.ct .g-mhead p{color:#DCE4F2!important}
html.g3[data-theme] body.ct .g-mhead a.cx-back,html.g3 body.ct .g-mhead a.cx-back:visited{color:#C9DCF6!important}
html.g3 body.ct .g-mhead .btn.ghost{color:#F2F4F5!important;border-color:rgba(242,244,245,.35)!important;background:transparent!important}
html.g3 body.ct .g-mhead .mtag{background:rgba(255,255,255,.08)!important;color:#F2F4F5!important;border-color:rgba(255,255,255,.25)!important}
@media (min-width:900px){html.g3 body.ct .g-mhead{margin:0 0 16px!important;max-width:820px;box-sizing:border-box;padding:28px 28px 24px;border-radius:12px}}
html.g3 body.ct .sech,html.g3 body.ct .mvsec .mvtop{position:relative;padding-top:16px!important}
html.g3 body.ct .sech::before,html.g3 body.ct .mvsec .mvtop::before{content:"";position:absolute;left:0;top:0;width:48px;height:2px;border-radius:2px;background:var(--grad-brand)}
html.g3 body.ct .hx .sech::before{display:none}
html.g3 #boot{background:radial-gradient(90% 70% at 70% 80%,rgba(62,200,201,.18),rgba(62,200,201,0) 60%),linear-gradient(160deg,#0E1640 0%,#14205A 50%,#1F4E9A 100%)!important}
html.g3 body.ct .g-mhead,html.g3[data-theme] body.ct .g-mhead{--muted:#C9DCF6;--link:#C9DCF6;--ink-2:#C9DCF6}
html.g3 body.ct .g-mhead a.cx-back{--ink:#C9DCF6} /* beats the long :not() chain in ct-cleanup.css via its token */

/* ---------- BOLD-SOFT (g4): same layout as bold, lighter blue fill; nav line uses the same fade ---------- */
html.g4 body.ct{
 --grad-hero:radial-gradient(90% 120% at 100% 100%,rgba(62,200,201,.06) 0%,rgba(62,200,201,0) 55%),linear-gradient(115deg,#121314 0%,#121626 38%,#15203F 72%,#1A2D58 100%);
 --grad-navfade:linear-gradient(90deg,rgba(20,32,90,0) 0%,#14205A 30%,#2B7FD3 75%,#3EC8C9 100%);
}
html.g4 body.ct header.top::after{background:var(--grad-navfade)!important;height:1px!important;opacity:.9}
html.g4 body.ct .hx::after{background:var(--grad-navfade)!important;opacity:.6}
html.g4 #boot{background:radial-gradient(90% 70% at 70% 80%,rgba(62,200,201,.10),rgba(62,200,201,0) 60%),linear-gradient(160deg,#0A1124 0%,#101E43 55%,#15244B 100%)!important} /* splash starts on the navy bar colour; D1 darker navy (Oct 21 2026; was #172650 55% -> #1A2D58) */

/* accents.css */
/* =====================================================================
   Accent pass (Oct 20 2026). Two cumulative levels behind a class on <html> (base.html):
     acc1 = light touch: cyan labels + active states, gradient top edge on key cards, gradient dividers, cyan links
     acc2 = medium (acc1 + this): gradient-filled active chips/tabs, ramp chart lines + areas, soft cyan-tinted
            featured cards, seafoam back on live tags / step numbers / follow states, gradient bottom-nav indicator
   Switch with one line in base.html: class="... acc1" (light) or "... acc1 acc2" (medium, default).
   Text cyan: #3EC8C9 on dark, #1A9FA0 on light (3.2:1 on white, large/bold text and labels only).
   Gains green / losses red are data and never change here. Loaded after gradients.css.
   ===================================================================== */
html.acc1 body.ct{--acc:#1A9FA0;--acc-tint:rgba(26,159,160,.07);--acc-tint-2:rgba(43,127,211,.05);--acc-edge:rgba(26,159,160,.45)}
html.acc1[data-theme=dark] body.ct{--acc:#3EC8C9;--acc-tint:rgba(62,200,201,.08);--acc-tint-2:rgba(43,127,211,.07);--acc-edge:rgba(62,200,201,.45)}

/* ---------- ACC1: light touch ---------- */
/* section labels / eyebrows */
html.acc1[data-theme] body.ct .hx .hx-eye{color:#3EC8C9!important}
html.acc1[data-theme] body.ct h2.xg-h,html.acc1[data-theme] body.ct .eyebrow,html.acc1[data-theme] body.ct .cx-eyebrow{color:var(--acc)!important}
html.acc1[data-theme] body.ct .mcard .stat .k{color:var(--acc)!important}
/* active states */
html.acc1[data-theme] body.ct .hx-tabs button[aria-selected=true]{color:var(--acc)!important;border-color:var(--acc-edge)!important;background:var(--acc-tint)!important}
html.acc1[data-theme] body.ct .cx-seg a.on,html.acc1[data-theme] body.ct .segc a.on,html.acc1[data-theme] body.ct .tabs a.on{color:var(--acc)!important;box-shadow:inset 0 -2px 0 var(--acc),0 1px 2px rgba(0,0,0,.08)!important}
html.acc1[data-theme] body.ct .fchip.on{background:var(--ink)!important;color:var(--bg)!important;border-color:var(--ink)!important;box-shadow:inset 0 -2px 0 #3EC8C9!important}
html.acc1[data-theme] body.ct .mvseg button[aria-pressed=true]{color:var(--acc)!important}
html.acc1[data-theme] body.ct nav.bottom.cx a.on{color:#F2F4F5!important}
html.acc1[data-theme] body.ct nav.bottom.cx a.on svg{color:#3EC8C9!important}
/* gradient top edge on key cards (hero chart card already has one) */
html.acc1[data-theme] body.ct .mcard,
html.acc1[data-theme] body.ct .card:has(>.chartwrap),html.acc1[data-theme] body.ct .card:has(>.chart),
html.acc1[data-theme] body.ct .card:has(>.tc-h),html.acc1[data-theme] body.ct .shero.card{background:var(--grad-edge) top/100% 2px no-repeat,var(--surface)!important}
/* gradient dividers: section heads (g3 bar, longer), page heads, footer rule */
html.acc1[data-theme] body.ct .sech::before,html.acc1[data-theme] body.ct .mvsec .mvtop::before{width:72px!important;background:var(--grad-navfade,var(--grad-brand))!important}
html.acc1[data-theme] body.ct .pghead{position:relative;padding-bottom:14px}
html.acc1[data-theme] body.ct .pghead::after{content:"";position:absolute;left:0;bottom:0;width:72px;height:2px;border-radius:2px;background:var(--grad-brand)}
html.acc1[data-theme] body.ct .cx-foot{border-top:0!important;position:relative}
html.acc1[data-theme] body.ct .cx-foot::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--grad-navfade,var(--grad-brand));opacity:.8}
/* links: cyan "more" links, cyan hover everywhere in content */
html.acc1[data-theme] body.ct .hx-more,html.acc1[data-theme] body.ct .sech>a,html.acc1[data-theme] body.ct .mvtop a,html.acc1[data-theme] body.ct .hiw-steps a,html.acc1[data-theme] body.ct .more>a,html.acc1[data-theme] body.ct a.more{color:var(--acc)!important}
html.acc1[data-theme] body.ct main a:not(.btn):not(.fchip):hover{color:var(--acc)!important;text-decoration-color:var(--acc)!important}
html.acc1[data-theme] body.ct main a.row:hover .t,html.acc1[data-theme] body.ct main a.mcard:hover h3,html.acc1[data-theme] body.ct main .trow:hover .tt{color:var(--acc)!important}
/* rank ("#1 of 360") cyan in both themes; step numbers cyan */
html.acc1[data-theme] body.ct .wr,html.acc1[data-theme] body.ct .brank{color:var(--acc)!important}
html.acc1[data-theme] body.ct .hiw-n{color:var(--acc)!important;border-color:var(--acc-edge)!important}
/* explore icons pick up the accent */
html.acc1[data-theme] body.ct .trow .ic{color:var(--acc)!important}
/* focus + native controls */
html.acc1[data-theme] body.ct{accent-color:#3EC8C9}
html.acc1[data-theme] body.ct input:focus,html.acc1[data-theme] body.ct select:focus,html.acc1[data-theme] body.ct textarea:focus{border-color:var(--acc)!important;box-shadow:0 0 0 1px var(--acc)!important;outline:none}

/* ---------- ACC2: medium ---------- */
/* gradient-filled active chips / tabs (dark text on the action gradient >= 6.2:1) */
html.acc2[data-theme] body.ct .fchip.on,html.acc2[data-theme] body.ct .ct-pchip.on{background:var(--grad-action)!important;color:#0B1A1B!important;border-color:transparent!important;box-shadow:none!important}
html.acc2[data-theme] body.ct .hx-tabs button[aria-selected=true]{background:var(--grad-action)!important;color:#0B1A1B!important;border-color:transparent!important}
html.acc2[data-theme] body.ct .cx-seg a.on,html.acc2[data-theme] body.ct .segc a.on,html.acc2[data-theme] body.ct .tabs a.on,html.acc2[data-theme] body.ct .ct-seg button.on,html.acc2[data-theme] body.ct .ct-seg button[aria-pressed=true]{background:var(--grad-action)!important;color:#0B1A1B!important;box-shadow:none!important}
html.acc2[data-theme] body.ct .mvseg button[aria-pressed=true]{background:var(--acc-tint)!important;color:var(--acc)!important}
/* sector / category labels in cyan */
html.acc2[data-theme] body.ct .cat,html.acc2[data-theme] body.ct .tmeta .cat,html.acc2[data-theme] body.ct .shero .sx{color:var(--acc)!important}
/* ramp chart lines + areas: stock page chart and price charts that weren't caught by gradients.js */
html.acc2[data-theme] body.ct .hx-svg .hx-mod{stroke-width:2.5!important}
html.acc2[data-theme] body.ct .legend i[style*="3EC8C9"],html.acc2[data-theme] body.ct .legend i[style*="accent"]{background:var(--grad-action)!important}
html.acc2[data-theme] body.ct .bar i{background:linear-gradient(0deg,#2B7FD3,#3EC8C9)!important}
html.acc2[data-theme] body.ct .cmpbar i,html.acc2[data-theme] body.ct .rangebar .rg{background:var(--grad-action)!important}
/* soft cyan-tinted featured cards: first (featured) model card, model page key stats, hero chart card */
html.acc2[data-theme] body.ct .mcard:first-of-type{background:var(--grad-edge) top/100% 2px no-repeat,linear-gradient(135deg,var(--acc-tint) 0%,var(--acc-tint-2) 100%),var(--surface)!important;border-color:var(--acc-edge)!important}
html.acc2[data-theme] body.ct .ct-mstats .stat,html.acc2[data-theme] body.ct .mcard .stat{background:linear-gradient(135deg,var(--acc-tint),transparent 70%),var(--surface)!important}
/* seafoam back where it was: live tags, step numbers, follow-on, health chips */
html.acc2[data-theme] body.ct .chip.live,html.acc2[data-theme] body.ct .mtag.solid{background:var(--new)!important;border-color:var(--new-edge)!important;color:var(--acc)!important}
html.acc2[data-theme] body.ct .hiw-n{background:var(--new)!important;border-color:var(--new-edge)!important}
html.acc2[data-theme] body.ct .ffol.on,html.acc2[data-theme] body.ct .hchip.ok{background:var(--new)!important;border-color:var(--new-edge)!important;color:var(--acc)!important}
html.acc2[data-theme] body.ct .trow .ic{background:var(--new)!important;border-color:var(--new-edge)!important}
/* gradient bottom-nav indicator + cyan label; desktop header underline uses the nav fade */
html.acc2[data-theme] body.ct nav.bottom.cx a.on{color:#3EC8C9!important}
html.acc2[data-theme] body.ct nav.bottom.cx a.on::before{width:28px!important;height:3px!important;margin-left:-14px!important;top:0!important;border-radius:0 0 3px 3px!important;background:var(--grad-action)!important;box-shadow:0 2px 10px rgba(62,200,201,.45)}
html.acc2[data-theme] body.ct header .dnav a.on::after{width:28px!important;margin-left:-14px!important;background:var(--grad-action)!important;box-shadow:0 0 8px rgba(62,200,201,.45)}

/* compact home modules (design.css): gradient top edge (acc1); gradient-filled Gainers/Losers switch (acc2) */
html.acc1[data-theme] body.ct.pg-home .hm-mod{background:var(--grad-edge) top/100% 2px no-repeat,var(--surface)!important}
html.acc1[data-theme] body.ct.pg-home .hm-mod>.sech h2{color:var(--ink)!important}
html.acc1[data-theme] body.ct.pg-home .hm-gl button.on{color:var(--acc)!important}
html.acc2[data-theme] body.ct.pg-home .hm-gl button.on{background:var(--grad-action)!important;color:#0B1A1B!important;box-shadow:none!important}
/* running returns panel (templates/_running.html, Oct 21 2026): live tracked periods vs SPY; dashes when the record is shorter */
.rr{margin:12px 0}.rr .rr-h{display:flex;align-items:center;gap:8px;margin-bottom:2px}.rr .rr-sub{margin-bottom:8px}
.rr table.rr-t{table-layout:fixed}.rr table.rr-t th[scope=col]:first-child{width:28%}
.rr table.rr-t tbody th{text-align:left;font-weight:600;color:var(--ink);padding:7px 4px;border-bottom:1px solid var(--line);font-size:12.5px}
html[data-theme] body.ct #running-returns table.rr-t tbody th{background:transparent!important;color:var(--ink)!important}
.rr table.rr-t tr.rr-na td{color:var(--muted)}.rr table.rr-t tbody tr:last-child th,.rr table.rr-t tbody tr:last-child td{border-bottom:0;font-weight:700}
.rr .rr-foot{margin:8px 0 0;line-height:1.45}
@media (max-width:420px){.rr table.rr-t{font-size:12px}.rr table.rr-t thead th{font-size:11px;padding:6px 2px}.rr table.rr-t td{padding:7px 2px}}

/* sweep.css */
/* =====================================================================
   Quality sweep (Oct 21 2026): legibility + layout fixes, loaded last (base.html, desk too).
   Only overrides; no new components. Targets WCAG AA (4.5:1 body text, 3:1 large) and >= 11px
   labels / >= 12.5px secondary text on phones, 32px+ tap targets.
   ===================================================================== */

/* ---- contrast: muted greys and the light-mode cyan text were under AA ---- */
html body.ct,html[data-theme] body.ct{--ink-3:#61686D}                        /* was #80878C: 3.3:1 on the page -> 5.1:1 */
html[data-theme=dark] body.ct{--ink-3:#8E979C}                                  /* was #7A8388: 4.3:1 on cards -> 6:1 */
html.acc1 body.ct,html.acc1[data-theme=light] body.ct{--acc:#0E7475}            /* cyan text labels: 3.2:1 -> 5.6:1 (fills/edges unchanged) */
html.acc1[data-theme=dark] body.ct{--acc:#3EC8C9}
html[data-theme=dark] body.ct label{color:var(--ink-2)}                         /* form labels were #33383C on #151719 (1.5:1) */
html[data-theme] body.ct .hx .hx-eye{color:var(--acc)!important}
html[data-theme=dark] body.ct .hx .hx-eye{color:#3EC8C9!important}
html[data-theme] body.ct th{color:var(--ink-2)!important}                       /* table headers 3.4:1 -> 7:1 */
html[data-theme] body.ct .so-flag.old{color:var(--warn)!important}
html[data-theme] body.ct .chip.warn{color:var(--warn)!important}

/* ---- tiny type: tags, chips, axis labels, footer ---- */
html[data-theme] body.ct .mtag,html[data-theme] body.ct .chip.live,html[data-theme] body.ct .chip.bt,html[data-theme] body.ct .chip.warn,
html[data-theme] body.ct .hx-tag,html[data-theme] body.ct .ct-psrc{font-size:11px!important;padding:4px 6px!important;letter-spacing:.03em!important}
html[data-theme] body.ct .mtag.solid,html[data-theme] body.ct .chip.live{color:var(--ink)!important}
html[data-theme] body.ct .cg-tk .chip.live{text-decoration:none!important;font:600 12px/1 var(--f-body)!important;padding:8px 10px!important;text-transform:none!important;letter-spacing:0!important;display:inline-flex;min-height:32px;align-items:center}
html[data-theme] body.ct svg .axis,html[data-theme] body.ct text.axis{font-size:10.5px}
html[data-theme] body.ct .cx-foot p{font-size:13px!important;line-height:1.5!important;color:var(--ink-2)!important}
html[data-theme] body.ct .cx-foot .flinks{gap:0 18px}
html[data-theme] body.ct .cx-foot .flinks a{color:var(--ink-2)!important;min-height:36px;display:inline-flex;align-items:center;font-size:13px}
html[data-theme] body.ct .hx-more,html[data-theme] body.ct .sech>a{display:inline-flex;align-items:center;min-height:32px}
html[data-theme] body.ct .cx-dl{font-size:12px!important}
html[data-theme] body.ct .hm-fine,html[data-theme] body.ct .pgfine,html[data-theme] body.ct .inia{font-size:13px!important;line-height:1.5!important}
html[data-theme] body.ct .tiles-label,html[data-theme] body.ct .ct-pbar-l{font-size:13px!important}

/* ---- phone layout: section tabs and short filter rows wrap instead of running off the right edge ---- */
@media (max-width:560px){
 html[data-theme] body.ct .cx-seg{flex-wrap:wrap!important;overflow-x:visible!important;row-gap:2px!important}
 html[data-theme] body.ct .cx-seg a{flex:1 0 auto!important;padding:0 10px!important}
 html[data-theme] body.ct .chipbar:not(:has(>:nth-child(7))){flex-wrap:wrap!important;overflow-x:visible!important;row-gap:8px!important}
 html[data-theme] body.ct .chipbar:not(:has(>:nth-child(7))) a{flex:0 0 auto}
}

/* ---- screener rows: metrics on a full-width line under the name (scanner.css's global .scm column made it one per line) ---- */
html[data-theme] body.ct .scl>.row.scrow{flex-wrap:wrap!important;align-items:flex-start}
html[data-theme] body.ct .scl>.row.scrow>.l{flex:1 1 0;min-width:0}
html[data-theme] body.ct .scl .scrow>.scm{flex:0 0 100%;display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;gap:4px 14px!important;overflow:visible!important;font-size:13px;margin:6px 0 0 44px!important;min-width:0;max-width:calc(100% - 44px)}
html[data-theme] body.ct .scl .scrow>.scm>.sx{flex-basis:100%}
html[data-theme] body.ct .scl .scrow>.scm>span{white-space:nowrap}
html[data-theme] body.ct .scl .scm i{color:var(--ink-2)}

/* ---- long lists: progressive "show more" (congress, insiders) ---- */
.sw-more{display:block;width:100%;margin:10px 0 0;min-height:44px;border:1px solid var(--line-2);border-radius:var(--r-sm,8px);background:var(--surface);color:var(--ink);font:600 14px/1 var(--f-body,Inter,sans-serif);cursor:pointer}

/* ---- running returns: compact empty state ---- */
.rr .rr-wait{margin:8px 0 4px;padding:12px;border:1px dashed var(--line-2);border-radius:var(--r-sm,8px);font-size:14px;line-height:1.45;color:var(--ink-2)}
.rr .rr-wait b{color:var(--ink)}
.rr .rr-later{margin:6px 0 0;font-size:13px;color:var(--ink-2)}

/* ---- stock page: grades empty state ---- */
.g-none{margin:0 0 8px;padding:12px;border:1px dashed var(--line-2);border-radius:var(--r-sm,8px);font-size:14px;line-height:1.45;color:var(--ink-2)}

/* ---- grade badges and scanner tags: white text on light-grey / cyan fills was under 3:1 ---- */
html[data-theme=dark] body.ct .grade{color:#0B0C0D}
html[data-theme] body.ct .grade.gD{color:#0B1A1B}
html[data-theme=dark] body.ct .scrs .sq{color:#B9A4F5}
html[data-theme] body.ct .scrs span.sq,html[data-theme] body.ct .sqt{font-size:11px}

/* ---- 13D/13G stake rows: the meta line was clipped mid-link on phones ---- */
html[data-theme] body.ct .stk13 .row div.n{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
/* ---- chart axis labels and the home hero tags ---- */
html[data-theme] body.ct .chart text.axis,html[data-theme] body.ct svg.chart text{font-size:10.5px!important}
html[data-theme] body.ct .hx .hx-tag{font-size:11px!important}
html[data-theme] body.ct .hx .hx-eye{font-size:11.5px!important}
html[data-theme] body.ct .hx .hx-lbl{font-size:12.5px!important}
html[data-theme] body.ct .ct-pstrip .mtag{font-size:10.5px!important;letter-spacing:.01em!important;padding:3px 4px!important;margin-left:0!important}
/* track-record cards are links: no underline on every line */
html[data-theme] body.ct a.card.tcard,html[data-theme] body.ct a.card.tcard *{text-decoration:none!important}
/* scanner method collapsed by default */
.sw-how>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between}
.sw-how>summary::-webkit-details-marker{display:none}
.sw-how>summary::after{content:"Show ▾";font-size:13px;color:var(--acc)}
.sw-how[open]>summary::after{content:"Hide ▴"}

/* beta.css */
/* Beta packaging + scannability layer (Oct 21 2026). Last in the CSS bundle. */
.ct-beta{display:inline-flex;align-items:center;margin-left:7px;padding:2px 6px 2px 7px;border:1px solid rgba(242,244,245,.32);border-radius:999px;font:600 9.5px/1 Inter,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:rgba(242,244,245,.78);vertical-align:middle;white-space:nowrap}
.ct-brand{display:inline-flex;align-items:center}
.bt-sheet{position:fixed;inset:0;z-index:9000;display:flex;align-items:flex-end;justify-content:center;background:rgba(6,10,22,.55);padding:0}
.bt-sheet[hidden]{display:none}
.bt-card{width:100%;max-width:520px;background:var(--card,#fff);color:var(--ink,#111);border-radius:20px 20px 0 0;padding:22px 20px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -8px 40px rgba(0,0,0,.25)}
@media (min-width:700px){.bt-sheet{align-items:center}.bt-card{border-radius:18px}}
.bt-card h2{margin:4px 0 10px;font-size:21px;line-height:1.25}
.bt-tag{display:inline-block;padding:3px 8px;border-radius:999px;background:var(--chip,#E8EEF3);font:600 11px/1 Inter,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2,#3A4552)}
.bt-list{margin:0 0 18px;padding:0;list-style:none}
.bt-list li{margin:0 0 10px;font-size:15.5px;line-height:1.45;color:var(--ink-2,#2C3540)}
.bt-sub{margin:0 0 12px;font-size:15px;line-height:1.45;color:var(--ink-2,#3A4552)}
.bt-card textarea{width:100%;box-sizing:border-box;min-height:120px;padding:12px;border:1px solid var(--line,#CBD3DC);border-radius:12px;font:16px/1.4 Inter,system-ui,sans-serif;background:var(--bg,#fff);color:inherit;resize:vertical}
.bt-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;flex-wrap:wrap}
.bt-btns{display:flex;gap:8px;margin-left:auto}
.bt-msg{font-size:14px;color:var(--ink-2,#3A4552)}
.bt-ver{display:block;margin-top:10px;font-size:13px;color:var(--ink-3,#5B6673)}
/* tap-to-explain */
.ix{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:4px;padding:0;border:1px solid currentColor;border-radius:50%;background:none;color:var(--ink-3,#5B6673);font:600 11px/1 Georgia,serif;font-style:italic;vertical-align:1px;cursor:pointer;opacity:.85}
.ix::before{content:"";position:absolute;width:40px;height:40px}
.ix{position:relative}
.bt-pop{position:absolute;z-index:9100;max-width:280px;padding:11px 13px;border-radius:12px;background:#0F1A36;color:#F2F4F5;font:14px/1.45 Inter,system-ui,sans-serif;box-shadow:0 8px 28px rgba(0,0,0,.3)}
.bt-pop b{display:block;margin-bottom:3px;font-weight:600}
/* one-line plain-English subtitle under a screen title + one-line data takeaway */
.ct-sub{margin:4px 0 12px;max-width:62ch;font-size:15px;line-height:1.45;color:var(--ink-2,#3A4552)}
.hero .ct-sub,.ct-dark .ct-sub{color:rgba(242,244,245,.82)}
.ct-take{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;margin:0 0 14px;font-size:15px;line-height:1.4;color:var(--ink,#111)}
.ct-take b{font-variant-numeric:tabular-nums}
.ct-up{color:var(--up,#0E7A3E)}.ct-dn{color:var(--dn,#B42318)}
html[data-theme=dark] .ct-up{color:#3DD68C}html[data-theme=dark] .ct-dn{color:#FF7A6E}
/* summary card (home + Desk) */
.td-card{margin:0 0 16px;padding:16px 16px 12px;border-radius:16px;background:var(--card,#fff);border:1px solid var(--line,#E1E6EB)}
.td-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:0 0 10px}
.td-h h2{margin:0;font-size:17px}
.td-asof{font-size:13px;color:var(--ink-3,#5B6673);text-align:right}
.td-idx{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:0 0 10px}
.td-i{padding:10px 12px;border-radius:12px;background:var(--bg2,#F3F5F7)}
.td-i span{display:block;font-size:13px;color:var(--ink-3,#5B6673)}
.td-i b{display:block;font-size:22px;line-height:1.2;font-variant-numeric:tabular-nums}
.td-list{margin:0;padding:0;list-style:none}
.td-list li{border-top:1px solid var(--line,#E7EBEF)}
.td-list a{display:flex;justify-content:space-between;gap:10px;padding:11px 0;color:inherit;text-decoration:none;font-size:15px;line-height:1.4}
.td-list a::after{content:"›";color:var(--ink-3,#5B6673);font-size:18px;line-height:1}
html[data-theme=dark] .td-card,html[data-theme=dark] .bt-card{background:#15171A;border-color:#2A2E33;color:#ECEEF0}
html[data-theme=dark] .td-i{background:#1E2125}
html[data-theme=dark] .bt-list li,html[data-theme=dark] .bt-sub,html[data-theme=dark] .ct-sub{color:#C9CED4}
html[data-theme=dark] .td-asof,html[data-theme=dark] .td-i span,html[data-theme=dark] .bt-ver{color:#A3AAB2}
/* monogram for a missing logo */
.ct-mono{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#E6ECF2;color:#2C3A4B;font:600 11px/1 Inter,system-ui,sans-serif;letter-spacing:.02em}
html[data-theme=dark] .ct-mono{background:#2A3038;color:#D8DEE5}

/* no-advice lines: quiet, legible (13px, AA gray), never boxed */
.ct-nfa{margin:6px 0 12px;font-size:13px;line-height:1.4;color:var(--ink-3,#5B6673)}
.ct-nfa a{color:inherit;text-decoration:none;border-bottom:1px solid transparent}
.ct-nfa a:hover{border-bottom-color:currentColor}
.cx-foot .ct-nfa-full{font-size:13px;line-height:1.45;color:var(--ink-2,#3A4552);margin:8px 0 6px}
html[data-theme=dark] .ct-nfa{color:#A3AAB2}html[data-theme=dark] .cx-foot .ct-nfa-full{color:#C9CED4}
.bt-list li.bt-fine{font-size:13px;line-height:1.45;color:var(--ink-3,#5B6673)}html[data-theme=dark] .bt-list li.bt-fine{color:#A3AAB2}
.bt-disc{max-height:86vh;overflow:auto}.bt-disc p{margin:0 0 10px;font-size:14px;line-height:1.5;color:var(--ink-2,#3A4552)}
.bt-disc .bt-src{color:var(--ink,#111)}.bt-disc .bt-row a{font-size:14px}
html[data-theme=dark] .bt-disc p{color:#C9CED4}html[data-theme=dark] .bt-disc .bt-src{color:#ECEEF0}

/* ---- Modern finish (Oct 21 2026 beta): shared tokens so public, Desk, owner editor and Access pages match. ----
   One place: --ct-r (card radius), --ct-r-s (controls), --ct-line (hairline), --ct-fill (input fill), --ct-focus (cyan ring),
   --ct-shadow (soft card shadow). The owner editor (constructor branch) should use these same tokens and .ct-mono. */
:root{--ct-r:16px;--ct-r-s:10px;--ct-line:rgba(15,26,54,.10);--ct-line-2:rgba(15,26,54,.16);--ct-fill:#F1F4F7;--ct-fill-h:#EAEEF2;
 --ct-focus:0 0 0 3px rgba(62,200,201,.38);--ct-shadow:0 1px 2px rgba(15,26,54,.04),0 4px 14px rgba(15,26,54,.05);--ct-accent:#1F8F95}
html[data-theme=dark]{--ct-line:rgba(255,255,255,.09);--ct-line-2:rgba(255,255,255,.15);--ct-fill:#1C1F23;--ct-fill-h:#23272C;--ct-shadow:none;--ct-accent:#3EC8C9}
/* inputs: filled, hairline, cyan focus ring; no thick dark outlines */
body.ct input[type=text],body.ct input[type=search],body.ct input[type=email],body.ct input[type=number],body.ct input[type=password],body.ct input[type=date],body.ct input:not([type]),body.ct textarea,body.ct select{
 background-color:var(--ct-fill);border:1px solid var(--ct-line);border-radius:var(--ct-r-s);color:var(--ink);box-shadow:none;outline:none;font:inherit;font-size:16px;min-height:42px;padding:0 12px;box-sizing:border-box;transition:border-color .15s,box-shadow .15s,background-color .15s}
body.ct textarea{padding:10px 12px;min-height:96px}
body.ct input:hover,body.ct textarea:hover,body.ct select:hover{background-color:var(--ct-fill-h)}
body.ct input:focus,body.ct textarea:focus,body.ct select:focus,body.ct input:focus-visible,body.ct select:focus-visible{border-color:var(--ct-accent);box-shadow:var(--ct-focus);background-color:var(--card,#fff)}
html[data-theme=dark] body.ct input:focus,html[data-theme=dark] body.ct textarea:focus,html[data-theme=dark] body.ct select:focus{background-color:#15171A}
/* custom select (no gray native dropdown) */
body.ct select{-webkit-appearance:none;appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%235B6673' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:12px 8px}
/* checkboxes / radios: brand accent, not OS gray */
body.ct input[type=checkbox],body.ct input[type=radio]{accent-color:var(--ct-accent)}
/* header search keeps its own compact look */
body.ct header.top .search input{min-height:36px;font-size:15px}
/* cards: hairline + very soft shadow, 16px radius; nested boxes lose their frame */
body.ct .card,body.ct .so-card,body.ct .td-card{border:1px solid var(--ct-line);border-radius:var(--ct-r);box-shadow:var(--ct-shadow)}
body.ct .card .card,body.ct .card .stat,body.ct .so-card .card{border:0;box-shadow:none;background:transparent}
body.ct .stat{border:1px solid var(--ct-line);border-radius:12px;box-shadow:none}
/* buttons: one style family */
body.ct .btn{border-radius:var(--ct-r-s);font-weight:600;letter-spacing:0;box-shadow:none}
body.ct .btn.ghost,body.ct .btn.sm.ghost{background:transparent;border:1px solid var(--ct-line-2);color:var(--ink)}
body.ct .btn.ghost:hover{background:var(--ct-fill)}
body.ct .btn:focus-visible,body.ct a:focus-visible,body.ct button:focus-visible{outline:none;box-shadow:var(--ct-focus)}
body.ct .iconbtn{background:transparent;border:0;border-radius:10px}
/* headings 600, section labels small caps gray */
body.ct main h1{font-weight:600;letter-spacing:-.01em}
body.ct main h2{font-weight:600}
body.ct .ct-lbl{margin:22px 0 8px;font:600 12.5px/1.2 Inter,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3,#5B6673)}
/* numbers: tabular, aligned */
body.ct .v,body.ct .price,body.ct .chg,body.ct td,body.ct .r,body.ct .hx-n,body.ct .td-i b,body.ct .rt .v{font-variant-numeric:tabular-nums}
body.ct table td:not(:first-child),body.ct table th:not(:first-child){text-align:right}
/* tables: thinner rules */
body.ct table{border-collapse:collapse}body.ct table td,body.ct table th{border-bottom:1px solid var(--ct-line)}
/* neutral monogram for tickers without a logo (shared with the owner editor) */
body.ct .lgo.ct-mono,.ct-mono{background:#E6ECF2!important;color:#2C3A4B!important;border:0;border-radius:8px;font-weight:600;letter-spacing:.02em}
html[data-theme=dark] body.ct .lgo.ct-mono,html[data-theme=dark] .ct-mono{background:#2A3038!important;color:#D8DEE5!important}
/* details folds: calm */
body.ct details>summary{cursor:pointer}
/* disclaimer page */
.ct-legal h2{margin:26px 0 8px;font-size:17px;font-weight:600;scroll-margin-top:80px}
.ct-legal p{max-width:68ch;font-size:15px;line-height:1.6;color:var(--ink-2,#3A4552)}
.ct-jump ol{margin:0 0 8px;padding-left:20px;columns:2 220px;column-gap:24px;font-size:14px;line-height:1.9}
.ct-jump a{color:var(--ink-2,#3A4552);text-decoration:none}.ct-jump a:hover{text-decoration:underline}
html[data-theme=dark] .ct-legal p,html[data-theme=dark] .ct-jump a{color:#C9CED4}
/* hypothetical look-back strip sits below live figures, visibly secondary */
body.ct .ct-pstrip-lb .ct-pcell{background:transparent;border:1px dashed var(--ct-line-2)}
body.ct .ct-pstrip-lb .v{opacity:.85}
body.ct .ct-dates{margin:4px 0 10px}
/* quiet contact line, bottom of the nav menu and More */
body.ct .cx-contact{margin:10px 0 4px;padding:0 4px;font-size:13px;line-height:1.4;color:var(--ink-3,#5B6673)}
body.ct .cx-contact a{color:inherit;text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--ct-line-2)}
body.ct input[type=checkbox]:not(.sw),body.ct input[type=radio]{width:20px;height:20px;min-height:0;padding:0;margin:0;flex:none}
/* BETA chip: soft filled pill, no outline (modern finish); wins over later bundle files */
html[data-theme] body header .ct-beta{border:0!important;border-radius:999px!important;background:rgba(242,244,245,.12)!important;color:rgba(242,244,245,.8)!important;padding:3px 7px 3px 8px!important}
@media(max-width:430px){html.desk body header .ct-beta{display:none!important}}   /* Desk phones: DESK tag + LIVE pill need the room; BETA stays on the splash + tile */
/* new-since-last-visit: tab dot + row label (subtle) */
nav.bottom a{position:relative}
nav.bottom a .ct-dot{position:absolute;top:6px;left:calc(50% + 9px);width:7px;height:7px;border-radius:50%;background:#3EC8C9;box-shadow:0 0 0 2px var(--chrome,#0A1124)}
.ct-newlbl{display:inline-block;margin-right:6px;padding:1px 6px;border-radius:999px;background:rgba(62,200,201,.14);color:#0E6F73;font:600 11px/1.5 Inter,system-ui,sans-serif;letter-spacing:.02em;vertical-align:1px}
html[data-theme=dark] .ct-newlbl{background:rgba(62,200,201,.18);color:#7FE0E1}
/* Light/Dark (and every .ct-seg): soft filled segmented control, no outline or divider; active = raised white thumb */
html[data-theme][lang] body.ct .ct-seg{display:inline-flex;gap:2px;padding:3px;border:0!important;border-radius:11px!important;background:var(--ct-fill)!important;box-shadow:none!important;overflow:visible}
html[data-theme][lang] body.ct .ct-seg button{border:0!important;border-radius:8px!important;height:32px;min-width:64px;padding:0 14px;background:transparent!important;color:var(--ink-3,#5B6673)!important;font-weight:500;box-shadow:none!important}
html[data-theme][lang] body.ct .ct-seg button+button{border-left:0!important}
html.acc2[data-theme][lang] body.ct .ct-seg button[aria-pressed=true],html.acc2[data-theme][lang] body.ct .ct-seg button.on,html[data-theme][lang] body.ct .ct-seg button[aria-pressed=true]{background:#fff!important;color:var(--ink,#121314)!important;font-weight:600;box-shadow:0 1px 2px rgba(15,26,54,.10),0 1px 6px rgba(15,26,54,.06)!important}
html[data-theme=dark][lang] body.ct .ct-seg{background:#1C1F23!important}
html.acc2[data-theme=dark][lang] body.ct .ct-seg button[aria-pressed=true],html[data-theme=dark][lang] body.ct .ct-seg button[aria-pressed=true]{background:#2E333A!important;color:#F2F4F5!important;box-shadow:none!important}
html[data-theme][lang] body.ct .ct-seg button:focus-visible{outline:none!important;box-shadow:var(--ct-focus)!important}
/* drawer, dark theme only (the drawer body is white in light mode, so the light theme uses the default control above; navalign Oct 21 2026) */
html[data-theme=dark][lang] body.ct .drawer .ct-seg{background:rgba(255,255,255,.08)!important}
html[data-theme=dark][lang] body.ct .drawer .ct-seg button{color:rgba(242,244,245,.7)!important}
html[data-theme=dark][lang] body.ct .drawer .ct-seg button[aria-pressed=true],html.acc2[data-theme=dark][lang] body.ct .drawer .ct-seg button[aria-pressed=true]{background:rgba(255,255,255,.18)!important;color:#fff!important;box-shadow:none!important}
/* ---- Desktop fit (Oct 21 2026 check at 768/1024/1280/1440/1920) ---- */
@media(min-width:768px){html[data-theme] body.ct .chipbar,html[data-theme] body.ct main .strip{flex-wrap:wrap!important;overflow:visible!important;row-gap:8px;-webkit-mask-image:none!important;mask-image:none!important}}
@media(min-width:900px){
  /* header: 1024 squeezed nav into Get App/search (760px row); give the row the page width and tighten the nav */
  html[data-theme] body.ct header.top .wrap.toprow{max-width:1100px!important;padding:0 24px!important}
  html[data-theme] body.ct header.top .tb{margin-left:auto;flex:none}
  html[data-theme] body.ct header.top .dnav{flex:0 1 auto!important;min-width:0}
  /* horizontal chip scrollers wrap on desktop (no hidden off-card chips) */
  html[data-theme] body.ct .chipbar,html[data-theme] body.ct main .strip{flex-wrap:wrap!important;overflow:visible!important;row-gap:8px;-webkit-mask-image:none!important;mask-image:none!important}
  /* reading width for prose on wide screens */
  html[data-theme] body.ct main p:not(.ct-take):not(.ct-nfa),html[data-theme] body.ct main li{max-width:740px!important}
  html[data-theme] body.ct .card svg.chart{overflow:visible}
}
@media(min-width:900px) and (max-width:1179px){
  html[data-theme] body.ct header.top .dnav{gap:18px!important;margin-left:20px!important}
  html[data-theme] body.ct header.top .ct-getapp-top{display:none!important}   /* still in the menu + footer */
}
@media(min-width:1180px){html[data-theme] body.ct header.top .wrap.toprow{max-width:1200px!important}}
/* ---- Home-entry welcome splash (desktop + phone): full-bleed navy in both themes (Oct 21 2026, Jason) ---- */
html.ct-wel-on,html.ct-wel-on body{overflow:hidden}
html[data-theme] body.ct .ct-wel{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:40px 32px;overflow:auto;
 background:radial-gradient(900px 520px at 50% 0%,rgba(62,200,201,.10),transparent 65%),linear-gradient(160deg,#1A2D58 0%,#15203F 55%,#0F1730 100%);color:#F2F4F5}
.ct-wel[hidden]{display:none!important}
html[data-theme] body.ct .ct-wel .ct-wel-card{position:relative;width:100%;max-width:600px;padding:8px 8px 0;background:transparent;border:0;box-shadow:none;border-radius:0;text-align:center;box-sizing:border-box}
.ct-wel-brand{display:flex;flex-direction:column;align-items:center;gap:16px;margin:0 0 30px}
.ct-wel-mark svg.brib{display:block;width:60px;height:auto}
html[data-theme] body.ct .ct-wel .ct-wel-wm .bwx{font-size:32px;color:#FFFFFF!important}
html[data-theme] body.ct .ct-wel .ct-wel-h{margin:0 0 14px!important;padding:0!important;border:0!important;text-align:center!important;color:#FFFFFF!important;font:600 28px/1.25 "General Sans",Inter,system-ui,sans-serif!important;letter-spacing:-.01em}
html[data-theme] body.ct .ct-wel .ct-wel-h::before,html[data-theme] body.ct .ct-wel .ct-wel-h::after{display:none!important}
html[data-theme] body.ct .ct-wel .ct-wel-p{margin:0 auto 30px;max-width:520px;text-align:center;font:400 16.5px/1.6 Inter,system-ui,sans-serif;color:#C9D3E3}
.ct-wel-short{display:none}
.ct-wel-act{display:flex;flex-direction:column;align-items:center;gap:6px;margin:0 0 30px}
html[data-theme] body.ct .ct-wel .ct-wel-go{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:240px;padding:0 28px;border:0!important;border-radius:12px!important;
 background:linear-gradient(120deg,#3E8FD8,#3EC8C9)!important;color:#06212A!important;font:600 16px/1 Inter,system-ui,sans-serif;text-decoration:none;box-shadow:0 6px 20px rgba(62,200,201,.22)!important}
html[data-theme] body.ct .ct-wel .ct-wel-go:hover{filter:brightness(1.05)}
html[data-theme] body.ct .ct-wel .ct-wel-cont{display:inline-block;padding:12px 18px;background:none!important;border:0!important;box-shadow:none!important;border-radius:8px!important;
 color:#D6DEEA!important;font:500 15px/1.2 Inter,system-ui,sans-serif;text-decoration:none;cursor:pointer}
html[data-theme] body.ct .ct-wel .ct-wel-cont:hover{color:#FFFFFF!important;text-decoration:underline;text-underline-offset:3px}
html[data-theme] body.ct .ct-wel .ct-wel-go:focus-visible,html[data-theme] body.ct .ct-wel .ct-wel-cont:focus-visible{outline:none!important;box-shadow:0 0 0 3px rgba(62,200,201,.55)!important}
html[data-theme] body.ct .ct-wel .ct-wel-qr{display:flex;align-items:center;gap:18px;justify-content:center;margin:0 auto 26px;padding:14px 18px 14px 14px;max-width:420px;border-radius:16px!important;
 background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);text-align:left}
.ct-wel-qr img{flex:none;width:116px;height:116px;border-radius:12px;background:#fff;padding:6px;box-sizing:border-box}
.ct-wel-qr div{display:flex;flex-direction:column;gap:4px;font:400 14px/1.45 Inter,system-ui,sans-serif;color:#C9D3E3}
.ct-wel-qr b{font-weight:600;color:#FFFFFF;font-size:15px}
.ct-wel-url{color:#AEBBD0;font-size:13px}
html[data-theme] body.ct .ct-wel .ct-wel-nfa{margin:0;font-size:13px;line-height:1.5;color:#A9B6CB}
html[data-theme] body.ct .ct-wel .ct-wel-nfa a{color:#E3E9F2;text-decoration:underline;text-underline-offset:2px;text-decoration-color:rgba(227,233,242,.5)}
/* phone: lighter, no QR */
html[data-theme] body.ct .ct-wel[data-mode=p]{padding:28px 22px}
.ct-wel[data-mode=p] .ct-wel-qr,.ct-wel[data-mode=p] .ct-wel-long{display:none!important}
html[data-theme] body.ct .ct-wel[data-mode=p] .ct-wel-short{display:block;font-size:16px;margin-bottom:28px}
html[data-theme] body.ct .ct-wel[data-mode=p] .ct-wel-h{font-size:23px!important}
html[data-theme] body.ct .ct-wel[data-mode=p] .ct-wel-wm .bwx{font-size:28px}
.ct-wel[data-mode=p] .ct-wel-mark svg.brib{width:54px}
.ct-wel[data-mode=p] .ct-wel-act{align-items:stretch;margin-bottom:24px}
html[data-theme] body.ct .ct-wel[data-mode=p] .ct-wel-go{width:100%;min-width:0}
html[data-theme] body.ct .ct-wel[data-mode=p] .ct-wel-cont{align-self:center}
@media(max-height:760px){html[data-theme] body.ct .ct-wel{padding:20px}.ct-wel-brand{margin-bottom:20px}html[data-theme] body.ct .ct-wel .ct-wel-p,.ct-wel-act{margin-bottom:20px}html[data-theme] body.ct .ct-wel .ct-wel-qr{margin-bottom:18px}}
@media(max-width:430px){html body header .ct-beta{display:none!important}}   /* phones: header row needs the room (bell clipped at 390); BETA stays on the splash, the app tile and the footer version line */
/* splash links: beat the site link colours/underlines */
html[data-theme][lang] body.ct .ct-wel a.ct-wel-cont,html[data-theme][lang] body.ct .ct-wel a.ct-wel-cont:visited{color:#D6DEEA!important;text-decoration:none!important;border:0!important;background:none!important;box-shadow:none!important}
html[data-theme][lang] body.ct .ct-wel a.ct-wel-cont:hover{color:#FFFFFF!important;text-decoration:underline!important;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.6)!important}
html[data-theme][lang] body.ct .ct-wel .ct-wel-nfa a,html[data-theme][lang] body.ct .ct-wel .ct-wel-nfa a:visited{color:#E3E9F2!important;text-decoration:underline!important;text-underline-offset:2px;text-decoration-color:rgba(227,233,242,.5)!important;border:0!important;background:none!important}
html[data-theme][lang] body.ct .ct-wel a.ct-wel-go{color:#06212A!important;text-decoration:none!important}
html[data-theme][lang] body.ct .ct-wel .ct-wel-card:focus{outline:none}
/* splash links + focus, by id: the splash sits inside <main>, where "html body.ct main a:not(...)x8 {color:var(--ink)!important}" outranks class selectors (Oct 21 2026 review) */
#ct-wel a.ct-wel-cont,#ct-wel a.ct-wel-cont:visited{color:rgba(255,255,255,.82)!important;-webkit-text-fill-color:currentColor;text-decoration:none!important;background:none!important;border:0!important;box-shadow:none!important}
#ct-wel a.ct-wel-cont:hover{color:#FFFFFF!important;text-decoration:underline!important;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.7)!important}
#ct-wel .ct-wel-nfa a,#ct-wel .ct-wel-nfa a:visited{color:#E8EDF5!important;-webkit-text-fill-color:currentColor;text-decoration:underline!important;text-underline-offset:2px;text-decoration-color:rgba(232,237,245,.55)!important}
#ct-wel .ct-wel-nfa a:hover{color:#FFFFFF!important;text-decoration-color:#FFFFFF!important}
#ct-wel a.ct-wel-go,#ct-wel a.ct-wel-go:visited{color:#06212A!important;-webkit-text-fill-color:currentColor;text-decoration:none!important}
#ct-wel .ct-wel-card,#ct-wel .ct-wel-card:focus{outline:none!important;border-radius:16px!important}
#ct-wel .ct-wel-card:focus-visible{outline:2px solid rgba(62,200,201,.6)!important;outline-offset:6px}
#ct-wel a.ct-wel-cont:focus{outline:none!important}
#ct-wel a.ct-wel-cont:focus-visible,#ct-wel .ct-wel-nfa a:focus-visible{outline:2px solid rgba(62,200,201,.7)!important;outline-offset:3px;border-radius:6px}
#ct-wel a.ct-wel-go:focus-visible{outline:none!important;box-shadow:0 0 0 3px rgba(62,200,201,.55)!important}
#ct-wel .ct-wel-card:focus,#ct-wel .ct-wel-card:focus-visible{outline:none!important}   /* the panel only takes programmatic focus (Chrome counts that as focus-visible); links keep their own rings */
/* Desktop action row (Oct 21 2026, Jason: "put the QR on the same line"): Get the app + Continue on the left, thin divider, QR card on the right. Stacks under 760px; phone mode unchanged. */
.ct-wel-row{display:block}
#ct-wel[data-mode=d] .ct-wel-card{max-width:720px!important}
#ct-wel .ct-wel-h{display:block!important;margin-left:auto!important;margin-right:auto!important}
#ct-wel[data-mode=d] .ct-wel-long{max-width:540px!important;margin-left:auto!important;margin-right:auto!important}
#ct-wel[data-mode=d] .ct-wel-row{display:flex;flex-direction:row;justify-content:center;align-items:center;gap:0;margin:0 auto 34px}
#ct-wel[data-mode=d] .ct-wel-row .ct-wel-act{margin:0;padding-right:36px;align-items:center;gap:4px}
#ct-wel[data-mode=d] .ct-wel-row .ct-wel-qr{margin:0;padding:12px 16px 12px 12px;max-width:340px;gap:16px;border-left:0;position:relative}
#ct-wel[data-mode=d] .ct-wel-row .ct-wel-act{border-right:1px solid rgba(255,255,255,.14);margin-right:36px;align-self:stretch;justify-content:center;display:flex;flex-direction:column}
#ct-wel[data-mode=d] .ct-wel-qr img{width:100px;height:100px}
#ct-wel[data-mode=d] .ct-wel-qr div{font-size:13.5px}
/* Jason 3:25 PM: QR card on the LEFT, Get the app + Continue on the RIGHT, divider between (desktop row only). */
#ct-wel[data-mode=d] .ct-wel-row .ct-wel-qr{order:1}
#ct-wel[data-mode=d] .ct-wel-row .ct-wel-act{order:2;border-right:0!important;border-left:1px solid rgba(255,255,255,.14);margin:0 0 0 36px!important;padding:0 0 0 36px!important}
#ct-wel[data-mode=d] .ct-wel-row .ct-wel-cont{padding:10px 18px 4px}
/* Desktop centred brand (Oct 21 2026, Jason "for both"): mark stacked over COTEAU at the true centre of the viewport, larger; below it a short
   line (wv=a), nothing (wv=b) or Models · News · Tools (wv=c), then the one action row; disclaimer pinned at the bottom. Headline + long intro dropped on desktop. */
.ct-wel-tag{display:none}
html[data-theme] body.ct #ct-wel[data-mode=d]{padding:0}
html[data-theme] body.ct #ct-wel[data-mode=d] .ct-wel-card{max-width:none!important;width:100%;min-height:100vh;padding:0 32px;display:grid;grid-template-rows:1fr auto 1fr;justify-items:center}
#ct-wel[data-mode=d] .ct-wel-card::before{content:"";grid-row:1}
#ct-wel[data-mode=d] .ct-wel-brand{grid-row:2;margin:0;gap:22px}
#ct-wel[data-mode=d] .ct-wel-mark svg.brib{width:96px}
html[data-theme] body.ct #ct-wel[data-mode=d] .ct-wel-wm .bwx{font-size:50px}
#ct-wel[data-mode=d] .ct-wel-low{grid-row:3;align-self:start;padding:30px 0 64px;display:flex;flex-direction:column;align-items:center}
#ct-wel[data-mode=d] .ct-wel-h,#ct-wel[data-mode=d] .ct-wel-long{display:none!important}
html[data-theme] body.ct #ct-wel[data-mode=d][data-wv=a] .ct-wel-tag-a,html[data-theme] body.ct #ct-wel[data-mode=d][data-wv=c] .ct-wel-tag-c{display:block;margin:0 0 34px;text-align:center;font:400 17px/1.4 Inter,system-ui,sans-serif;color:#C9D3E3;letter-spacing:.005em}
html[data-theme] body.ct #ct-wel[data-mode=d][data-wv=c] .ct-wel-tag-c{font:500 13.5px/1.4 Inter,system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#AEBBD0}
#ct-wel .ct-wel-tag-c i{font-style:normal;padding:0 .7em;color:rgba(174,187,208,.6)}
#ct-wel[data-mode=d][data-wv=b] .ct-wel-low{padding-top:44px}
#ct-wel[data-mode=d] .ct-wel-row{margin:0 auto}
html[data-theme] body.ct #ct-wel[data-mode=d] .ct-wel-nfa{position:absolute;left:0;right:0;bottom:26px;text-align:center;margin:0}
@media(max-height:700px){html[data-theme] body.ct #ct-wel[data-mode=d] .ct-wel-card{grid-template-rows:auto auto auto;align-content:center;padding:28px 32px}
 #ct-wel[data-mode=d] .ct-wel-mark svg.brib{width:72px}html[data-theme] body.ct #ct-wel[data-mode=d] .ct-wel-wm .bwx{font-size:40px}
 #ct-wel[data-mode=d] .ct-wel-low{padding-bottom:20px}html[data-theme] body.ct #ct-wel[data-mode=d] .ct-wel-nfa{position:static;grid-row:4}}
/* Phone centred brand (Oct 21 2026, Jason "for both"): same wv=a|b|c as desktop. Mark over COTEAU at the true centre; line under it;
   full-width Get the app + Continue pinned near the bottom; one short disclaimer line at the very bottom. No headline or paragraph. */
html[data-theme] body.ct #ct-wel[data-mode=p]{padding:0;align-items:stretch}
html[data-theme] body.ct #ct-wel[data-mode=p] .ct-wel-card{max-width:520px!important;min-height:100vh;min-height:100dvh;padding:0 22px;margin:0 auto;display:grid;grid-template-rows:1fr auto 1fr;justify-items:stretch}
#ct-wel[data-mode=p] .ct-wel-card::before{content:"";grid-row:1}
#ct-wel[data-mode=p] .ct-wel-brand{grid-row:2;margin:0;gap:17px}
#ct-wel[data-mode=p] .ct-wel-mark svg.brib{width:86.4px;height:104px}   /* phone welcome = app launch splash (Desk + public): mark 86.4x104, gap 17, coteau 52px/1 (Jason Oct 21 2026) */
html[data-theme] body.ct #ct-wel[data-mode=p] .ct-wel-wm .bwx{font-size:52px;line-height:1}
#ct-wel[data-mode=p] .ct-wel-low{grid-row:3;display:flex;flex-direction:column;justify-content:space-between;padding:24px 0 calc(94px + env(safe-area-inset-bottom))}
#ct-wel[data-mode=p] .ct-wel-h,#ct-wel[data-mode=p] .ct-wel-long,#ct-wel[data-mode=p] .ct-wel-short,#ct-wel[data-mode=p] .ct-wel-nfa-long{display:none!important}
html[data-theme] body.ct #ct-wel[data-mode=p][data-wv=a] .ct-wel-tag-a,html[data-theme] body.ct #ct-wel[data-mode=p][data-wv=c] .ct-wel-tag-c{display:block;margin:0;text-align:center;font:400 15.5px/1.4 Inter,system-ui,sans-serif;color:#C9D3E3}
html[data-theme] body.ct #ct-wel[data-mode=p][data-wv=c] .ct-wel-tag-c{font:500 12.5px/1.4 Inter,system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#AEBBD0}
#ct-wel[data-mode=p] .ct-wel-row{margin-top:auto}
.ct-wel-pbr{display:none}#ct-wel[data-mode=p] .ct-wel-pbr{display:inline}   /* phones: break after the comma, never mid-phrase */
#ct-wel[data-mode=p] .ct-wel-act{margin:0;gap:4px}
html[data-theme] body.ct #ct-wel[data-mode=p] .ct-wel-cont{padding:12px 18px 6px}
html[data-theme] body.ct #ct-wel[data-mode=p] .ct-wel-nfa{position:absolute;left:0;right:0;bottom:calc(16px + env(safe-area-inset-bottom));text-align:center;margin:0;font-size:11.5px;white-space:nowrap}
@media(max-height:600px){html[data-theme] body.ct #ct-wel[data-mode=p] .ct-wel-card{grid-template-rows:auto auto auto;align-content:center;padding:24px 22px}#ct-wel[data-mode=p] .ct-wel-low{padding-bottom:20px}#ct-wel[data-mode=p] .ct-wel-row{margin-top:28px}html[data-theme] body.ct #ct-wel[data-mode=p] .ct-wel-nfa{position:static;grid-row:4}}
@media(max-width:760px){#ct-wel[data-mode=d] .ct-wel-row{flex-direction:column;margin-bottom:0}
 #ct-wel[data-mode=d] .ct-wel-row .ct-wel-act{order:0;padding:0!important;margin:0 0 30px!important;border:0!important;align-self:center}
 #ct-wel[data-mode=d] .ct-wel-row .ct-wel-qr{margin:0 auto 26px;max-width:420px}}
/* /get-app, simplified (Oct 21 2026): just the install steps. No status pill, no bottom tab bar, no header Get App, short footer. */
html[lang][data-theme] body.ct.pg-ga a.dhb.dhb-chip,html[lang][data-theme] body.ct.pg-ga nav.bottom,html[lang][data-theme] body.ct.pg-ga .ct-getapp-top{display:none!important}
html body.ct.pg-ga{padding-bottom:0!important}
html body.ct.pg-ga .ga-hero{padding:36px 24px 28px}
html body.ct.pg-ga .ga-what{padding-top:8px}
html body.ct.pg-ga .ga-what summary{cursor:pointer}
html body.ct.pg-ga .cx-foot .ct-fbrand,html body.ct.pg-ga .cx-foot>p:not(.ct-nfa-full),html body.ct.pg-ga .cx-foot .bt-ver,
html body.ct.pg-ga .cx-foot .flinks a[href="/about"],html body.ct.pg-ga .cx-foot .flinks a[href="/status"],html body.ct.pg-ga .cx-foot .flinks a[data-feedback]{display:none!important}
html body.ct.pg-ga .cx-foot{padding-top:18px;padding-bottom:calc(22px + env(safe-area-inset-bottom))}
/* Home label on phones: two even lines ("Systematic strategies" / "and equity research"), never an orphan word. */
@media(max-width:480px){html body.ct .hx-eye .hx-eye-2{display:block}}

/* Splash BETA (Oct 21 2026, Jason: "remember it's supposed to say beta"): the launch screen's boot-beta tag, tied under COTEAU (same gap-to-size ratio as #boot: .bwx keeps its taller line box, so margin ~0) on the
   desktop row and phone centred splash. Spaced caps, ~55% white, Inter; COTEAU itself keeps stock spacing (no tracking on .bwx). */
#ct-wel .ct-wel-wm{display:flex;flex-direction:column;align-items:center}
html[data-theme] body.ct #ct-wel .ct-wel-beta{display:block;margin:0;padding-left:.32em;font:500 10.5px/1 "Inter",system-ui,-apple-system,sans-serif!important;letter-spacing:.32em;text-transform:uppercase;color:rgba(242,244,245,.55);-webkit-text-fill-color:currentColor}
html[data-theme] body.ct #ct-wel[data-mode=p] .ct-wel-beta{margin-top:-1px;font-size:10px!important}

/* legibility.css */
/* =====================================================================
   Legibility pass (Oct 21 2026), loaded last. Same brand, palette identity and copy:
   1. Tokens: secondary grey, label teal and up/down text shades reach WCAG AA (4.5:1) on page and card
      backgrounds in light and dark.
   2. Phone (<=640px): no running text under 13px (uppercase tags 12.5px), roomier line-height, tables at
      13-14px, chart axes at ~12px, tap targets >= 40px (hit area grown with padding + negative margin
      where the visual size should stay), segmented tabs wrap instead of running off-screen.
   ===================================================================== */
html[lang][data-theme] body.ct{--ink-3:#5F666B;--up:#0B7340;--down:#B8302A;--faint:var(--ink-3)}
html[lang][data-theme=dark] body.ct{--ink-3:#8F989D;--up:#3DD68C;--down:#FF6B5E}
html.acc1[lang]:not([data-theme=dark]) body.ct{--acc:#0D7071}
/* get-app hero sits on the dark chrome in both themes: keep its greys light */
html[lang][data-theme] body.ct .ga-hero .ga-lede,html[lang][data-theme] body.ct .ga-hero a.ga-b2:not(#_){color:var(--chrome-mute)!important}
/* dark: legacy rules painted text with the border colour (1.5:1) */
html[lang][data-theme=dark] body.ct label,html[lang][data-theme=dark] body.ct .ct-seg button,html[lang][data-theme=dark] body.ct .dnav a,
html[lang][data-theme=dark] body.ct .fchip,html[lang][data-theme=dark] body.ct .cat{color:var(--ink-2)!important}
html[lang][data-theme=dark] body.ct .ct-seg button.on,html[lang][data-theme=dark] body.ct .ct-seg button[aria-pressed=true],html[lang][data-theme=dark] body.ct .fchip.on{color:var(--ink)!important}
/* footer copy used the faint grey */
html[lang][data-theme] body.ct .cx-foot p,html[lang][data-theme] body.ct .pgfine,html[lang][data-theme] body.ct details.small.muted>summary{color:var(--ink-2)!important}
/* chart axis labels (all sizes; the SVG scales, so phone gets the bump below) */
html[lang][data-theme] body.ct svg.chart .axis{fill:var(--ink-2)!important}
/* long names wrap instead of being cut off */
html[lang][data-theme] body.ct span.l>div.n,html[lang][data-theme] body.ct span.lt>span.n{white-space:normal!important;text-overflow:clip!important;overflow:visible!important}

/* desktop floors (phone rules below go further) */
html[lang][data-theme] body.ct .stat .k,html[lang][data-theme] body.ct .rt .k,html[lang][data-theme] body.ct div.s,html[lang][data-theme] body.ct .bar span,
html[lang][data-theme] body.ct .q-lab,html[lang][data-theme] body.ct .rd-for,html[lang][data-theme] body.ct .ct-pcell .k,html[lang][data-theme] body.ct .hx-eye{font-size:12.5px!important}
html[lang][data-theme] body.ct .mtag,html[lang][data-theme] body.ct .hx-tag{font-size:11.5px!important}
html[lang][data-theme] body.ct .chip,html[lang][data-theme] body.ct .eyebrow,html[lang][data-theme] body.ct .sx{font-size:12px!important}

@media (max-width:640px){
 html[lang][data-theme] body.ct main{line-height:1.5}
 /* --- small text floors --- */
 html[lang][data-theme] body.ct .small,html[lang][data-theme] body.ct small,html[lang][data-theme] body.ct .muted.small,html[lang][data-theme] body.ct p.small,
 html[lang][data-theme] body.ct .small p,html[lang][data-theme] body.ct .small a,html[lang][data-theme] body.ct .small b,
 html[lang][data-theme] body.ct .card.flat.small,html[lang][data-theme] body.ct .scd p,html[lang][data-theme] body.ct details.gt .more,
 html[lang][data-theme] body.ct .small>.ct-pv:not(.mtag),html[lang][data-theme] body.ct .ct-rsrc,html[lang][data-theme] body.ct .cklist span{font-size:13.5px!important;line-height:1.5!important}
 html[lang][data-theme] body.ct span.l>div.n,html[lang][data-theme] body.ct span.lt>span.n,html[lang][data-theme] body.ct span.l>span.n{font-size:13.5px!important;line-height:1.4!important}
 html[lang][data-theme] body.ct .stat .k,html[lang][data-theme] body.ct .q .k,html[lang][data-theme] body.ct .rt .k,html[lang][data-theme] body.ct div.s,
 html[lang][data-theme] body.ct .sech-sub,html[lang][data-theme] body.ct .legend .lg,html[lang][data-theme] body.ct .dcfform label,
 html[lang][data-theme] body.ct .sdesc-m,html[lang][data-theme] body.ct .whyin .wh,html[lang][data-theme] body.ct .rd-for,html[lang][data-theme] body.ct .ct-pbar-l,
 html[lang][data-theme] body.ct .tt span,html[lang][data-theme] body.ct .hint,html[lang][data-theme] body.ct .pgfine,html[lang][data-theme] body.ct .q-lab,
 html[lang][data-theme] body.ct .ol-pill span,html[lang][data-theme] body.ct .ol-f span,html[lang][data-theme] body.ct .cx-dl,html[lang][data-theme] body.ct .bar span{font-size:13px!important;line-height:1.45!important}
 html[lang][data-theme] body.ct table th{font-size:13px!important;line-height:1.35!important}
 html[lang][data-theme] body.ct table td{font-size:14px!important;line-height:1.4!important}
 /* uppercase badges, tags and eyebrows: 12.5px, still compact */
 html[lang][data-theme] body.ct .mtag,html[lang][data-theme] body.ct .chip,html[lang][data-theme] body.ct .eyebrow,html[lang][data-theme] body.ct h2.xg-h,
 html[lang][data-theme] body.ct .sx,html[lang][data-theme] body.ct .ol-live span,html[lang][data-theme] body.ct .so-flag{font-size:12.5px!important;line-height:1.3!important}
 html[lang][data-theme] body.ct .mtag{padding:3px 6px!important}
 html[lang][data-theme] body.ct .so-score span{font-size:12.5px!important}
 html[lang][data-theme] body.ct .hx-eye,html[lang][data-theme] body.ct .hx-tag{font-size:12.5px!important}
 html[lang][data-theme] body.ct .hx-k,html[lang][data-theme] body.ct .hx-u,html[lang][data-theme] body.ct .hx-lbl,html[lang][data-theme] body.ct .hm-fine,html[lang][data-theme] body.ct .tiles-label{font-size:13px!important;line-height:1.45!important}
 html[lang][data-theme] body.ct .ct-pcell .k{font-size:13px!important}
 html[lang][data-theme] body.ct .ct-pstrip{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 html[lang][data-theme] body.ct .ct-pcell .v{font-size:15px!important}
 /* footer + bottom bar */
 html[lang][data-theme] body.ct .cx-foot p{font-size:13px!important;line-height:1.55!important}
 html[lang][data-theme] body.ct .flinks a{font-size:13.5px!important;min-height:40px;display:inline-flex!important;align-items:center}
 html[lang][data-theme] body.ct .cx-legal a{font-size:13px!important;display:inline-block;padding:12px 2px;margin:-12px 0}
 html[lang][data-theme] body.ct nav.bottom a{font-size:12.5px!important}
 html[lang][data-theme] body.ct a.dhb-chip{font-size:13px!important;min-height:40px;display:inline-flex!important;align-items:center}
 /* chart axes: viewBox is 360 wide, so this renders ~12px on a phone */
 html[lang][data-theme] body.ct svg.chart .axis{font-size:12.5px!important}
 html[lang][data-theme] body.ct .hx-axis span{font-size:12.5px!important}
 /* --- tap targets --- */
 html[lang][data-theme] body.ct .ct-seg button{min-height:40px!important}
 html[lang][data-theme] body.ct a.brand.ct-brand{padding:7px 0!important;margin:-7px 0!important}
 html[lang][data-theme] body.ct a.ct-getapp-top,html[lang][data-theme] body.ct a.ol-live{position:relative}
 html[lang][data-theme] body.ct a.ct-getapp-top::after,html[lang][data-theme] body.ct a.ol-live::after,html[lang][data-theme] body.ct button.itip::after,
 html[lang][data-theme] body.ct a.cx-back::after,html[lang][data-theme] body.ct .sech>a::after{content:"";position:absolute;inset:-8px -4px}
 html[lang][data-theme] body.ct button.itip,html[lang][data-theme] body.ct a.cx-back,html[lang][data-theme] body.ct .sech>a{position:relative}
 html[lang][data-theme] body.ct a.cx-back{display:inline-block;font-size:14px!important;padding:6px 0}
 html[lang][data-theme] body.ct .sech>a{font-size:14px!important}
 html[lang][data-theme] body.ct details>summary{min-height:40px;box-sizing:border-box}
 html[lang][data-theme] body.ct details.small>summary,html[lang][data-theme] body.ct details:not([class])>summary{padding-block:10px!important}
 html[lang][data-theme] body.ct .ct-pchip{min-height:40px!important;min-width:44px;font-size:13.5px!important}
 html[lang][data-theme] body.ct .iconbtn.small{min-height:40px!important;min-width:40px}
 html[lang][data-theme] body.ct .so-row .r-src a{display:inline-block;padding:9px 0;margin:-6px 0}
 html[lang][data-theme] body.ct .hx-tabs button{min-height:40px}
 html[lang][data-theme] body.ct .so-tk a{min-height:38px}
 html[lang][data-theme] body.ct .hiw-steps li div>a{display:inline-block;padding:11px 0;margin:-6px 0 -11px;font-size:14px!important}
 /* segmented tabs: wrap to a second row instead of scrolling links off-screen; 38px + 2px gap = 40px rows */
 html[lang][data-theme] body.ct .cx-seg,html[lang][data-theme] body.ct .segc,html[lang][data-theme] body.ct .tabs{flex-wrap:wrap!important;overflow:visible!important;row-gap:2px!important}
 html[lang][data-theme] body.ct .cx-seg a,html[lang][data-theme] body.ct .segc a,html[lang][data-theme] body.ct .tabs a{flex:1 0 auto!important;height:38px!important;line-height:38px!important;font-size:14px!important;padding:0 10px!important}
 /* switches: grow the label, not the visual switch */
 html[lang][data-theme] body.ct label.srow{min-height:44px;align-items:center}
}

/* ---- Nav + menu alignment (navalign, Oct 21 2026: Jason "the symmetry of the logo vs. the menu drop down is weird"). Measured ink at 1440/1024/390/360, caps + lowercase. ---- */
/* header BETA pill: owned by pill.css (lowercase branch: centred on the x-height of coteau); navalign leaves it alone */
/* phones <=374px: mirror the row (was 8px left / 12px right, so the menu icon ink sat 20px in vs the bell's 23.5px). Lowercase: 12/12 (24 vs 23.5);
   COTEAU caps is 18px wider and the row has no slack at 360, so 10px there (22 vs 23.5) keeps the bell inside its padding */
@media(max-width:374px){html[lang][data-theme] body.ct header.top .wrap.toprow{padding-left:12px!important;padding-right:12px!important}
 html.wm-caps[lang][data-theme] body.ct header.top .wrap.toprow{padding-left:10px!important}}
/* ---- Option C (Jason approved Oct 21 2026, 5 PM): opening the menu must not move or resize the logo; the X mirrors the menu icon. No animation. ----
   Menu icon (CSS mask below): 24px box, 18x15 ink (the wordmark's height), 1.75 stroke like search/bell. Close X: same 24px box and stroke, 15x15 ink.
   Drawer logo: the header lockup size (sm, was md = 9.5% bigger), on the header's logo row (17px phone / 20px desktop row top + safe area);
   on phones (<=430px) also at the header's x (64px; 60px for caps at <=374px, see the header padding above). Tagline stays under it.
   Drawer column: 24px (caps <=374px: 22px) for icons, labels, foot; row text on phones starts under the logo (64px). */
/* menu icon drawn here (not in base.html, so this merges cleanly with the lowercase branch's header line): the template's 22px svg is hidden */
html[lang][data-theme] body.ct header.top .menubtn svg{display:none!important}
html[lang][data-theme] body.ct header.top .menubtn::before{content:"";display:block;flex:none;width:24px;height:24px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round'%3E%3Cpath d='M4 5.5h16M4 12h16M4 18.5h16'/%3E%3C/svg%3E") center/24px 24px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round'%3E%3Cpath d='M4 5.5h16M4 12h16M4 18.5h16'/%3E%3C/svg%3E") center/24px 24px no-repeat}
html[lang][data-theme] body.ct #drawer .dhead{padding:calc(17px + env(safe-area-inset-top,0px)) 12px 14px 24px!important;align-items:flex-start!important}   /* X ink 24px from the right = ribbon's 24px on the left */
@media(min-width:900px){html[lang][data-theme] body.ct #drawer .dhead{padding-top:calc(20px + env(safe-area-inset-top,0px))!important}}
html[lang][data-theme] body.ct #drawer .dhead button.dclose{flex:none;align-self:flex-start;width:40px!important;min-width:40px!important;height:44px!important;padding:0!important;margin:-10px 0 0!important;display:inline-flex;align-items:center;justify-content:center}
html[lang][data-theme] body.ct #drawer .dhead button.dclose svg{width:24px!important;height:24px!important;flex:none}
html[lang][data-theme] body.ct .cx-row{padding-left:24px!important;padding-right:24px!important}
html[lang][data-theme] body.ct .cx-dl{padding-left:24px!important;padding-right:24px!important}
html[lang][data-theme] body.ct .cx-dr .cx-quick{margin-left:0!important;margin-right:0!important;padding:16px 24px 8px!important}
html[lang][data-theme] body.ct .cx-legal{flex-wrap:wrap;row-gap:2px;padding-left:22px!important;padding-right:22px!important}
html[lang][data-theme] body.ct .cx-legal a{white-space:nowrap}
html[lang][data-theme] body.ct .cx-contact{padding:0 24px!important}
@media(max-width:430px){
 html[lang][data-theme] body.ct #drawer .dhead{padding-left:64px!important;padding-right:11px!important}   /* X ink 23px from the right = menu icon ink 23px from the left */
 html[lang][data-theme] body.ct .cx-row{gap:20px!important}
}
@media(max-width:374px){
 html.wm-caps[lang][data-theme] body.ct #drawer .dhead{padding-left:60px!important;padding-right:8px!important}   /* caps header: 10px pad + 38px button: ribbon 60, menu ink 20 */
 html.wm-caps[lang][data-theme] body.ct .cx-row,html.wm-caps[lang][data-theme] body.ct .cx-dl{padding-left:22px!important}
 html.wm-caps[lang][data-theme] body.ct .cx-dr .cx-quick{padding-left:22px!important;padding-right:22px!important}
 html.wm-caps[lang][data-theme] body.ct .cx-legal{padding-left:20px!important}
 html.wm-caps[lang][data-theme] body.ct .cx-contact{padding:0 22px!important}
}

/* planning.css */
/* Coteau Planning tools (/tools/planning/*). Everything scoped under .pl so nothing else on the site changes. */
.pl{--pl-navy:#15203F;--pl-navy2:#1A2D58;--pl-soft:#B9C6DA;--pl-cy:#3EC8C9;--pl-red:var(--down,#B8302A);--pl-amber:#C98A1B;--pl-green:var(--up,#0B7340);--pl-r:14px;max-width:1240px;margin:0 auto;padding-bottom:28px;min-width:0}
html[data-theme=dark] .pl{--pl-red:var(--down,#FF6B5E);--pl-amber:#E3A73A;--pl-green:var(--up,#3DD68C)}
.pl *{box-sizing:border-box}
html body main.wrap>.pl{max-width:1200px!important;width:100%}
html[data-theme] body.ct .pl-hero a.pl-crumb:not(#plx):not(#ply),html[data-theme] body.ct .pl-hero .pl-crumb:not(#plx):not(#ply){color:#B9C6DA!important;text-decoration:none!important;border:0!important}
html[data-theme] body.ct .pl-card>h2,html[data-theme] body.ct .pl-card>h3,html[data-theme] body.ct .pl-h h2{margin:0 0 10px!important;font:600 17px/22px var(--f-head)!important}   /* = Compare / ETF card titles */
html[data-theme] body.ct .pl .pl-inp input,html[data-theme] body.ct .pl select,html[data-theme] body.ct .pl-it input{padding:0 12px!important;border:1px solid transparent!important;border-radius:10px!important;box-shadow:none!important}
html[data-theme] body.ct .pl .pl-inp.has-pre input{padding-left:24px!important}html[data-theme] body.ct .pl .pl-inp.has-suf input{padding-right:30px!important}
html[data-theme] body.ct .pl select{padding-right:32px!important}
html[data-theme] body.ct .pl-it .pl-amt input{padding-left:20px!important}html[data-theme] body.ct .pl-it input,html[data-theme] body.ct .pl-it select{border-radius:8px!important;padding:0 9px!important}html[data-theme] body.ct .pl-it select{padding-right:26px!important}
html[data-theme] body.ct .pl .pl-inp input:focus,html[data-theme] body.ct .pl select:focus,html[data-theme] body.ct .pl-it input:focus{border-color:var(--pl-cy)!important;box-shadow:0 0 0 3px rgba(62,200,201,.18)!important}
.pl-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--pl-navy2) 0%,var(--pl-navy) 100%);color:#fff;border-radius:0;padding:18px 20px 18px;margin:8px 0 14px;box-shadow:0 10px 28px rgba(10,17,36,.20)}
html[data-theme=dark] .pl-hero{box-shadow:0 10px 28px rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.06)}
.pl-hero::after{content:"";position:absolute;left:20px;right:20px;top:0;height:2px;background:linear-gradient(90deg,var(--pl-cy),rgba(62,200,201,0));opacity:.9}
.pl-hero-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.pl-hero .pl-crumb{font:600 11px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--pl-soft)!important;text-decoration:none}
.pl-tag{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;background:rgba(62,200,201,.16);color:#8FE6E7;font:600 10.5px/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase}
html[data-theme] body.ct .pl-hero h1{color:#fff!important;margin:2px 0 4px!important;font:600 20px/30px var(--f-head,"General Sans",Inter,system-ui,sans-serif)!important;letter-spacing:-.01em!important}   /* = Compare stocks / ETF header title */
html[data-theme] body.ct .pl-hero p.pl-line{color:var(--pl-soft)!important;margin:0!important;font-size:14px;line-height:20px}
.pl-hero-res{margin-top:12px;display:none}
.pl-hero-res.on{display:block}
.pl-hl{font:500 12.5px/16px var(--f-body);color:var(--pl-soft)}
.pl-big{font:600 34px/40px var(--f-head);letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums;word-break:break-word}
.pl-big small{font-size:15px;font-weight:500;color:var(--pl-soft);margin-left:6px;letter-spacing:0}
.pl-hsub{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px;font:500 13px/18px var(--f-body);color:#DCE4F0}
.pl-hsub b{color:#fff;font-weight:600}
.pl-fund{margin-top:10px;height:8px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden;max-width:520px}
.pl-fund i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2FB3B4,#7FE0E1);transition:width .35s cubic-bezier(.4,0,.2,1)}
.pl-fund.short i{background:linear-gradient(90deg,#E07B4F,#F2B56B)}
.pl-hnote{margin-top:8px;font:500 11.5px/15px var(--f-body);color:var(--pl-soft)}
/* toolbar */
.pl-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}
.pl-bar .pl-sp{flex:1}
.pl-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px;border-radius:10px;border:0;background:var(--surface-2);color:var(--ink);font:600 13px/1 var(--f-body);cursor:pointer;text-decoration:none!important;white-space:nowrap}
.pl-btn:hover{background:var(--line)}
/* .pl-btn.pri: look = tools.css .tl-btn.pri (the cyan fade); markup carries both classes */
.pl-btn.sm{height:30px;padding:0 10px;font-size:12.5px;border-radius:8px}
.pl-btn.ghost{background:transparent;color:var(--ink-2)}
.pl-btn:focus-visible,.pl-seg button:focus-visible,.pl input:focus-visible,.pl select:focus-visible{outline:2px solid var(--pl-cy);outline-offset:2px}
/* layout */
.pl-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;min-width:0}
@media (min-width:1024px){.pl-grid{grid-template-columns:minmax(330px,390px) minmax(0,1fr);gap:20px;align-items:start}}
.pl-in,.pl-out{min-width:0;display:flex;flex-direction:column;gap:14px}
.pl-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--pl-r);padding:16px;min-width:0}
html[data-theme=light] .pl-card{box-shadow:0 1px 2px rgba(18,19,20,.04)}
.pl-card>h2,.pl-card>h3{margin:0 0 10px!important;font:600 15.5px/20px var(--f-head)!important;color:var(--ink)!important}
.pl-card .pl-sub{margin:-6px 0 10px;font:400 12.5px/17px var(--f-body);color:var(--ink-3)}
.pl-h{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.pl-h h2,.pl-h h3{margin:0!important;font:600 15.5px/20px var(--f-head)!important}
/* fields */
.pl-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.pl-f{display:flex;flex-direction:column;gap:5px;min-width:0}
.pl-f.full{grid-column:1/-1}
.pl-f>label,.pl-f>.pl-lab{font:500 12.5px/16px var(--f-body);color:var(--ink-2);display:flex;align-items:center;gap:6px;justify-content:space-between}
.pl-f .pl-help{font:400 11.5px/15px var(--f-body);color:var(--ink-3)}
.pl-inp{position:relative;display:flex;align-items:center}
.pl-inp input,.pl select,.pl-li input[type=text],.pl-li input[type=number]{width:100%;height:42px;border-radius:10px;border:1px solid transparent;background:var(--surface-2);color:var(--ink);font:500 15px/1 var(--f-body);padding:0 12px;font-variant-numeric:tabular-nums;-webkit-appearance:none;appearance:none;min-width:0}
html[data-theme=light] .pl-inp input,html[data-theme=light] .pl select,html[data-theme=light] .pl-li input{background:#F1F3F5}
.pl-inp input:focus,.pl select:focus,.pl-li input:focus{border-color:var(--pl-cy);background:var(--surface);outline:none;box-shadow:0 0 0 3px rgba(62,200,201,.18)}
.pl-inp .pre,.pl-inp .suf{position:absolute;top:0;bottom:0;display:flex;align-items:center;color:var(--ink-3);font:500 14px/1 var(--f-body);pointer-events:none}
.pl-inp .pre{left:12px}.pl-inp .suf{right:12px}
.pl-inp.has-pre input{padding-left:24px}.pl-inp.has-suf input{padding-right:34px}
.pl select{padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2380878C' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer;text-overflow:ellipsis}
.pl-seg{min-width:0}   /* look = tools.css .tl-seg */
.pl-range{display:flex;align-items:center;gap:10px}
.pl-range input[type=range]{flex:1;min-width:0;-webkit-appearance:none;appearance:none;height:22px;background:transparent}
.pl-range input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(90deg,var(--pl-cy) var(--p,50%),var(--line-2) var(--p,50%))}
.pl-range input[type=range]::-moz-range-track{height:6px;border-radius:999px;background:var(--line-2)}
.pl-range input[type=range]::-moz-range-progress{height:6px;border-radius:999px;background:var(--pl-cy)}
.pl-range input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-7px;border-radius:50%;background:#fff;border:0;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.pl-range input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;border:0;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.pl-range .pl-inp{width:96px;flex:none}
.pl-sw{position:relative;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font:500 13px/18px var(--f-body);color:var(--ink-2);min-height:28px}
.pl-sw input{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;margin:0!important;pointer-events:none}
.pl-sw i{flex:none;width:36px!important;height:22px!important;border-radius:999px!important;background:var(--line-2)!important;position:relative;transition:background .2s;display:inline-block!important;border:0!important;padding:0!important;margin:0!important}
.pl-sw i::after{content:""!important;position:absolute!important;top:3px!important;left:3px!important;width:16px!important;height:16px!important;border-radius:50%!important;background:#fff!important;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .2s;border:0!important}
.pl-sw input:checked+i{background:var(--pl-cy)!important}
.pl-sw input:checked+i::after{transform:translateX(14px)}
.pl-sw input:focus-visible+i{outline:2px solid var(--pl-cy);outline-offset:2px}
/* line items */
.pl-li{display:flex;flex-direction:column;gap:8px}
.pl-it{background:var(--surface-2);border-radius:12px;padding:10px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 28px;gap:8px;align-items:center;transition:opacity .2s}
.pl-it>input[type=text]:first-child{grid-column:1/3}.pl-it>.pl-x{grid-column:3;grid-row:1}.pl-it>.pl-amt{grid-column:1}.pl-it>.pl-freq{grid-column:2/4}
html[data-theme=light] .pl-it{background:#F5F6F8}
.pl-it.off{opacity:.55}
.pl-it input[type=text],.pl-it input[type=number],.pl-it select{height:36px;font-size:14px;background:var(--surface)!important;border-radius:8px;padding:0 9px}
.pl-it select{padding-right:26px;background-position:right 8px center}
.pl-it .pl-row2{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}
.pl-it .pl-row2 select{width:auto;max-width:100%}
.pl-it .pl-ages{display:flex;gap:6px;align-items:center;font:500 12px/1 var(--f-body);color:var(--ink-3)}
.pl-it .pl-ages input{width:64px}
.pl-x{width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:var(--ink-3);cursor:pointer;font-size:18px;line-height:1}
.pl-x:hover{background:var(--line);color:var(--ink)}
.pl-it .pl-amt{position:relative}.pl-it .pl-amt::before{content:"$";position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--ink-3);font-size:13px}
.pl-it .pl-amt input{padding-left:19px}
.pl-add{display:flex;gap:6px;flex-wrap:wrap}
.pl-tot{display:flex;justify-content:space-between;font:500 12.5px/1 var(--f-body);color:var(--ink-3);padding:2px 2px 0}
/* stats */
.pl-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.pl-st{background:var(--surface-2);border-radius:12px;padding:12px}
html[data-theme=light] .pl-st{background:#F5F6F8}
.pl-st .k{font:500 11.5px/15px var(--f-body);color:var(--ink-3);text-transform:none}
.pl-st .v{font:600 19px/24px var(--f-head);color:var(--ink);font-variant-numeric:tabular-nums;margin-top:3px;word-break:break-word}
.pl-st .v.neg{color:var(--pl-red)}.pl-st .v.pos{color:var(--pl-green)}
.pl-st .s{font:400 11.5px/15px var(--f-body);color:var(--ink-3);margin-top:2px}
/* charts */
.pl-chart{position:relative;width:100%;min-width:0}
.pl-chart canvas{display:block;width:100%;touch-action:pan-y}
.pl-tip{position:absolute;pointer-events:none;z-index:3;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font:500 12px/16px var(--f-body);box-shadow:0 6px 18px rgba(0,0,0,.14);max-width:240px;opacity:0;transition:opacity .12s;white-space:nowrap}
.pl-tip.on{opacity:1}
.pl-tip b{font-weight:600}.pl-tip .r{color:var(--pl-red)}
.pl-cap{font:400 12px/16px var(--f-body);color:var(--ink-3);margin:8px 0 0}
.pl-leg{display:flex;flex-wrap:wrap;gap:6px 14px;margin:8px 0 0;font:500 12px/16px var(--f-body);color:var(--ink-2)}
.pl-leg span{display:inline-flex;align-items:center;gap:6px}
.pl-leg i{display:inline-block;width:14px;height:3px;border-radius:2px}
.pl-leg i.band{width:14px;height:10px;background:rgba(26,120,160,.16)!important;border-radius:3px}html[data-theme=dark] .pl-leg i.band{background:rgba(62,200,201,.2)!important}
.pl-leg i.dash{background:repeating-linear-gradient(90deg,currentColor 0 4px,transparent 4px 7px)!important;height:2px}
.pl-read{display:flex;flex-wrap:wrap;gap:6px 18px;margin:10px 0 0;font:500 13px/18px var(--f-body);color:var(--ink-2)}
.pl-read b{color:var(--ink);font-weight:600}
.pl-read .bad{color:var(--pl-red)}.pl-read .good{color:var(--pl-green)}
.pl-pins{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.pl-pin{height:26px;padding:0 10px;border-radius:999px;border:0;background:var(--surface-2);color:var(--ink-2);font:600 12px/1 var(--f-body);cursor:pointer}
.pl-pin.on{background:var(--pl-navy2);color:#fff}
/* donut */
.pl-donut{display:grid;grid-template-columns:136px minmax(0,1fr);gap:14px;align-items:center}
.pl-donut canvas{width:136px;height:136px}
.pl-dleg{display:flex;flex-direction:column;gap:4px;min-width:0}
.pl-dleg button{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;gap:8px;align-items:center;border:0;background:transparent;padding:4px 6px;border-radius:8px;text-align:left;cursor:pointer;color:var(--ink);font:500 12.5px/16px var(--f-body)}
.pl-dleg button:hover,.pl-dleg button.on{background:var(--surface-2)}
.pl-dleg i{width:10px;height:10px;border-radius:3px}
.pl-dleg .n{overflow-wrap:anywhere;line-height:15px}
.pl-dleg .p{color:var(--ink-3);font-variant-numeric:tabular-nums}
.pl-dleg .d{color:var(--ink-2);font-variant-numeric:tabular-nums;min-width:48px;text-align:right}
.pl-dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.pl-dgrid h4{margin:0 0 8px;font:600 13px/18px var(--f-body);color:var(--ink-2)}
/* observations, levers, tables */
.pl-obs{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.pl-obs li{position:relative;padding-left:16px;font:400 14px/20px var(--f-body);color:var(--ink)}
.pl-obs li::before{content:"";position:absolute;left:2px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--pl-cy)}
.pl-lev{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.pl-lev .pl-st .v{font-size:17px}
.pl-tblw{overflow-x:auto;border-radius:10px;max-height:420px;overflow-y:auto}
.pl-tbl{width:100%;border-collapse:collapse;font:500 12.5px/16px var(--f-body);font-variant-numeric:tabular-nums}
.pl-tbl th{position:sticky;top:0;background:var(--surface);text-align:right;color:var(--ink-3);font-weight:600;padding:8px;border-bottom:1px solid var(--line);white-space:nowrap}
.pl-tbl td{text-align:right;padding:7px 8px;border-bottom:1px solid var(--line);color:var(--ink);white-space:nowrap}
.pl-tbl th:first-child,.pl-tbl td:first-child{text-align:left}
.pl-tbl td.neg{color:var(--pl-red)}
.pl details>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;min-height:40px;font:600 14px/20px var(--f-body);color:var(--ink)}
.pl details>summary::-webkit-details-marker{display:none}
.pl details>summary::after{content:"";width:8px;height:8px;border-right:1.6px solid var(--ink-3);border-bottom:1.6px solid var(--ink-3);transform:rotate(45deg);margin-left:auto;transition:transform .2s}
.pl details[open]>summary::after{transform:rotate(-135deg)}
.pl-disc{font:400 12px/17px var(--f-body);color:var(--ink-3);margin:2px 0 0}
.pl-disc a{color:var(--ink-2)}
.pl-assume ul{margin:4px 0 8px;padding-left:18px;display:flex;flex-direction:column;gap:5px}
.pl-assume li,.pl-assume p{font:400 12.5px/18px var(--f-body);color:var(--ink-2)}
.pl-foot{font:400 12px/17px var(--f-body);color:var(--ink-3);text-align:center;margin:18px auto 0;max-width:760px}
.pl-note{font:400 12.5px/18px var(--f-body);color:var(--ink-2);background:var(--surface-2);border-radius:10px;padding:10px 12px;margin:0}
.pl-note.warn{background:rgba(201,138,27,.10);color:var(--ink)}
.pl-empty{font:400 14px/20px var(--f-body);color:var(--ink-3);text-align:center;padding:22px 8px}
.pl-cmp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pl-cmp .pl-st .k b{color:var(--ink)}
/* analyzer */
.pl-ac{position:relative}
.pl-ac .pl-sugg{position:absolute;left:0;right:0;top:46px;z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-pop);overflow:hidden;display:none}
.pl-ac .pl-sugg button{display:flex;gap:10px;width:100%;border:0;background:transparent;padding:10px 12px;text-align:left;cursor:pointer;color:var(--ink);font:500 13.5px/18px var(--f-body)}
.pl-ac .pl-sugg button:hover,.pl-ac .pl-sugg button.on{background:var(--surface-2)}
.pl-ac .pl-sugg span{color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-hold{display:grid;grid-template-columns:minmax(0,1fr) 96px 28px;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.pl-hold:last-child{border-bottom:0}
.pl-hold .t{font:600 14px/18px var(--f-body);color:var(--ink)}.pl-hold .t span{display:block;font:400 11.5px/15px var(--f-body);color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-hold input{height:36px!important;font-size:14px!important}
.pl-rem{font:600 12.5px/1 var(--f-body);color:var(--ink-2);display:flex;justify-content:space-between;margin-top:8px}
.pl-rem .bad{color:var(--pl-amber)}
.pl-heat{display:grid;gap:2px;font:500 10.5px/1 var(--f-body);min-width:0}
.pl-heat div{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:3px;color:var(--ink);min-width:0;overflow:hidden}
.pl-hmw{overflow-x:auto;max-width:720px}
.pl-hmw .pl-heat div{aspect-ratio:auto;height:30px}
.pl-tbl td.l,.pl-tbl th.l{text-align:left}
.pl-heat .hd{background:transparent!important;color:var(--ink-3);font-weight:600;aspect-ratio:auto;padding:2px}
.pl-hmw{overflow-x:auto}
.pl-bars{display:flex;flex-direction:column;gap:7px}
.pl-bar2{display:grid;grid-template-columns:minmax(90px,150px) minmax(0,1fr) 92px;gap:8px;align-items:center;font:500 12.5px/16px var(--f-body);color:var(--ink-2)}
.pl-bar2 .tr{position:relative;height:14px;border-radius:7px;background:var(--surface-2);overflow:hidden}
.pl-bar2 .tr i{position:absolute;top:0;bottom:0;left:0;border-radius:7px;background:var(--pl-navy2);transition:width .3s}
html[data-theme=dark] .pl-bar2 .tr i{background:#5A7BC4}
.pl-bar2 .tr i.b{background:var(--pl-cy);opacity:.55;height:5px;top:auto;bottom:0}
.pl-bar2 .v{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}
.pl-bar2 .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* planning index */
.pl-idx{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.pl-tc{display:flex;gap:12px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;text-decoration:none!important;color:var(--ink)!important;transition:border-color .15s,transform .15s}
.pl-tc:hover{border-color:var(--pl-cy);transform:translateY(-1px)}
.pl-tc .ic{flex:none;width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--pl-navy2),var(--pl-navy));color:#8FE6E7;display:flex;align-items:center;justify-content:center}
.pl-tc b{display:block;font:600 14.5px/19px var(--f-body)}.pl-tc span{display:block;font:400 12.5px/17px var(--f-body);color:var(--ink-3);margin-top:2px}
.pl-gh{font:600 11px/14px var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:18px 0 8px}
/* first-use notice */
.pl-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(6,10,22,.55);backdrop-filter:blur(3px)}
.pl-modal.on{display:flex}
.pl-mbox{width:100%;max-width:520px;max-height:calc(100vh - 32px);overflow:auto;background:var(--surface);color:var(--ink);border-radius:18px;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.pl-mbox .hd{background:linear-gradient(135deg,#1A2D58,#15203F);color:#fff;padding:16px 18px;border-radius:18px 18px 0 0}
.pl-mbox .hd b{display:block;font:600 17px/22px var(--f-head)}.pl-mbox .hd span{font:500 12px/16px var(--f-body);color:#B9C6DA}
.pl-mbox .bd{padding:14px 18px 18px}
.pl-mbox ul{margin:0 0 12px;padding-left:18px;display:flex;flex-direction:column;gap:6px;font:400 13.5px/19px var(--f-body);color:var(--ink)}
.pl-mbox .ck{display:flex;gap:10px;align-items:flex-start;font:500 13.5px/19px var(--f-body);margin:6px 0 14px;cursor:pointer}
.pl-mbox .ck input{width:20px;height:20px;margin:0;flex:none;accent-color:#1A2D58}
.pl-toast{position:fixed;left:50%;bottom:86px;transform:translateX(-50%) translateY(20px);opacity:0;z-index:1001;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:12px;font:500 13px/18px var(--f-body);transition:all .25s;pointer-events:none;max-width:calc(100vw - 32px)}
.pl-toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.pl-sankey svg{display:block;width:100%;height:auto;overflow:visible}
.pl-sankey text{font:500 11.5px var(--f-body);fill:var(--ink-2)}
.pl-gauge{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr);gap:16px;align-items:center}
@media (max-width:640px){.pl-gauge{grid-template-columns:minmax(0,1fr)}}
.pl-meter{height:12px;border-radius:999px;background:var(--surface-2);overflow:hidden;position:relative}
.pl-meter i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--pl-navy2),var(--pl-cy));border-radius:999px;transition:width .3s}
.pl-icons{display:flex;flex-wrap:wrap;gap:3px;margin-top:8px}
.pl-icons i{width:12px;height:12px;border-radius:3px;background:var(--pl-cy);transition:background .2s}
.pl-icons i.off{background:var(--line-2)}
@media (max-width:520px){
 .pl-hero{padding:16px 16px;border-radius:0}
 .pl-big{font-size:28px;line-height:34px}
 .pl-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
 .pl-card{padding:14px;border-radius:14px}
 .pl-donut{grid-template-columns:120px minmax(0,1fr);gap:10px}.pl-donut canvas{width:120px;height:120px}
 .pl-dleg .d{min-width:0}
 .pl-cmp{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .pl-bar2{grid-template-columns:minmax(70px,100px) minmax(0,1fr) 76px}
 .pl-dgrid{grid-template-columns:minmax(0,1fr)}
}
@media print{
 html body.ct nav.bottom,html body.ct nav.bottom.cx,html body.ct header.top,html body.ct header,html body.ct footer,html body.ct .foot,html body.ct .topbar,html body.ct .drawer,html body.ct .cx-foot,html body.ct .stale,html body.ct [class*="stale"],.pl-bar,.pl-x,.pl-modal,.pl-toast,.pl-jump,.pl-pins,.pl .pl-btn,.pl-in{display:none!important}
 #plPrintIn{display:block!important;margin:0 0 12px}
 #plPrintIn table{width:100%;border-collapse:collapse;font:400 9pt/1.35 var(--f-body)}#plPrintIn td{border-bottom:1px solid #ddd;padding:3px 6px;vertical-align:top}#plPrintIn td:first-child{color:#555;width:45%}
 @page{margin:14mm 12mm 18mm}
 html,body.ct{background:#fff!important}
 .pl-grid{grid-template-columns:minmax(0,1fr)!important}.pl-in{position:static!important;max-height:none!important}
 .pl-card{break-inside:avoid;box-shadow:none!important}
 .pl-hero{-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .pl details{display:block}.pl details>*{display:block!important}
 .pl-print-foot{display:block!important;position:fixed;bottom:0;left:0;right:0;font:400 9pt/1.3 var(--f-body);color:#555;text-align:center}
}
@media print{.pl[data-tool="investing-101"] :is(.ix-why,.ix-infl,.ix-gl,.ix-more,#plAssume){display:none!important}}
.pl-print-foot{display:none}
#plPrintIn{display:none}

.pl-jump{display:none}@media (max-width:1023px){.pl-jump{display:inline-flex}}
/* the site squares every corner (coteau.css: html body.ct *{border-radius:0!important}); Planning restores its own radii */
html body.ct .pl .pl-hero{border-radius:0!important}
html body.ct .pl .pl-tag,html body.ct .pl .pl-fund,html body.ct .pl .pl-fund i,html body.ct .pl .pl-pin,html body.ct .pl .pl-sw i,html body.ct .pl .pl-meter,html body.ct .pl .pl-meter i{border-radius:999px!important}
html body.ct .pl .pl-sw i::after{border-radius:50%!important}
html body.ct .pl .pl-card,html body.ct .pl .pl-tc{border-radius:14px!important}
html body.ct .pl .pl-btn:not(.tl-btn),html body.ct .pl .pl-inp input,html body.ct .pl select,html body.ct .pl .pl-seg,html body.ct .pl .pl-tip,html body.ct .pl .pl-tblw,html body.ct .pl .pl-note,html body.ct .pl .pl-tc .ic{border-radius:10px!important}
html body.ct .pl .pl-btn.sm:not(.tl-btn),html body.ct .pl .pl-seg button,html body.ct .pl .pl-x,html body.ct .pl .pl-dleg button,html body.ct .pl .pl-it input,html body.ct .pl .pl-it select{border-radius:8px!important}
html body.ct .pl .pl-it,html body.ct .pl .pl-st,html body.ct .pl .pl-sugg{border-radius:12px!important}
html body.ct .pl .pl-dleg i,html body.ct .pl .pl-heat div,html body.ct .pl .pl-icons i{border-radius:3px!important}
html body.ct .pl .pl-bar2 .tr,html body.ct .pl .pl-bar2 .tr i{border-radius:7px!important}
html body.ct .pl .pl-leg i{border-radius:2px!important}
html body.ct .pl-modal .pl-mbox{border-radius:18px!important}html body.ct .pl-modal .pl-mbox .hd{border-radius:18px 18px 0 0!important}
html body.ct .pl-modal .pl-btn:not(.tl-btn){border-radius:10px!important}
html body.ct .pl-toast{border-radius:12px!important}
html body.ct .pl .pl-hero::after{border-radius:2px!important}
/* emergency months meter */
.pl .pl-mbar{position:relative;height:16px;background:var(--surface-2);margin:26px 0 12px}
.pl .pl-mbar>i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--pl-navy2,#1A2D58),var(--pl-cy,#1A9FA0));transition:width .35s}
.pl .pl-mbar>b{position:absolute;top:-6px;bottom:-6px;width:2px;background:var(--ink-3)}
.pl .pl-mbar>b span{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font:600 10.5px/14px var(--f-body);color:var(--ink-2);white-space:nowrap;padding-bottom:2px}
html body.ct .pl .pl-mbar,html body.ct .pl .pl-mbar>i{border-radius:999px!important}
html body main.wrap>.pl-modal,html body .pl-modal{max-width:none!important;width:auto!important;margin:0!important;left:0;right:0;top:0;bottom:0}
html body.ct .pl-modal .pl-btn:disabled{opacity:.45!important;cursor:not-allowed!important}
/* ---------- phones: line items collapse to one-line rows (name, amount, Edit) ---------- */
.pl-isum{display:none}
@media (max-width:640px){
 .pl-it.cl{padding:0;gap:0;display:block}
 .pl-it.cl>*:not(.pl-isum){display:none!important}
 .pl-it.cl.open{padding:0 10px 10px;display:grid;gap:8px}
 .pl-it.cl.open>*:not(.pl-isum){display:revert!important}
 .pl-it.cl.open>.pl-row2{display:flex!important}
 .pl-it.cl.open>.pl-isum{grid-row:1}.pl-it.cl.open>input[type=text]:first-child,.pl-it.cl.open>.pl-x{grid-row:2}
 .pl-isum{display:grid;grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;width:100%;min-height:48px;padding:0 12px;border:0;background:transparent;text-align:left;cursor:pointer;color:var(--ink);font:500 14px/18px var(--f-body)}
 .pl-it.cl.open>.pl-isum{padding:0 2px;border-bottom:1px solid var(--line)}
 .pl-isum .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pl-isum em{font-style:normal;color:var(--ink-3)}
 .pl-isum .a{font-variant-numeric:tabular-nums;color:var(--ink-2)}
 .pl-isum .e{font:600 13px/1 var(--f-body);color:#1A7EA0;padding:8px 0 8px 4px}
 html[data-theme=dark] .pl-isum .e{color:#3EC8C9}
 .pl-it.cl.off .pl-isum .a{text-decoration:line-through}
}
/* ---------- phones/tablets: tools can interleave inputs and results (style="--o:n" on a card) ---------- */
@media (max-width:1023px){
 .pl-grid.ord{display:flex;flex-direction:column;gap:14px}
 .pl-grid.ord>.pl-in,.pl-grid.ord>.pl-out{display:contents}
 .pl-grid.ord .pl-card{order:var(--o,20)}
}
/* ---------- phone pass: nothing scrunched (charts >=260px tall, legends under charts, one-column stat cards, 44px taps) ---------- */
.pl-swipe{display:none}
@media (max-width:640px){
 .pl-grid,.pl-in,.pl-out,.pl-grid.ord{gap:18px}
 .pl-card{padding:18px 16px}
 html[data-theme] body.ct .pl-card>h2,html[data-theme] body.ct .pl-card>h3{font-size:17px!important;line-height:22px!important;margin-bottom:12px!important}
 .pl-card .pl-sub{font-size:13px;line-height:18px}
 .pl-cap,.pl-disc{font-size:12.5px;line-height:18px}
 /* toolbar */
 .pl-bar{gap:8px}
 .pl-bar>.pl-seg{flex:1 1 100%}
 .pl-bar>select{flex:1 1 100%;max-width:none!important;height:44px!important}
 .pl-bar .pl-sp{display:none}
 .pl-btn,.pl-btn.sm{min-height:44px;height:auto;padding:0 14px;font-size:13.5px}
 .pl-pin{height:40px;padding:0 14px;font-size:13px}
 .pl-x{width:44px;height:44px}
 .pl-sw{min-height:44px;font-size:14px}
 .pl-it input[type=text],.pl-it input[type=number],.pl-it select{height:44px;font-size:15px}
 .pl-inp input,.pl select,.pl-li input[type=text],.pl-li input[type=number]{height:46px;font-size:16px}
 .pl-f>label,.pl-f>.pl-lab{font-size:13.5px;line-height:18px}
 .pl-f .pl-help{font-size:12.5px;line-height:17px}
 .pl-fields{gap:14px 12px}
 .pl-dleg button{min-height:40px;font-size:13.5px}
 /* stat cards and levers: one column, label/value never squeezed */
 .pl-stats,.pl-lev,.pl-cmp{grid-template-columns:minmax(0,1fr)!important;gap:10px}
 .pl-st{padding:14px}
 .pl-st .k{font-size:12.5px;line-height:17px}.pl-st .s{font-size:12.5px;line-height:17px}
 .pl-st .v{font-size:21px;line-height:26px}
 /* donuts: chart on top, legend underneath */
 .pl-donut{grid-template-columns:minmax(0,1fr)!important;justify-items:center;gap:12px}
 .pl-donut canvas{width:168px!important;height:168px!important}
 .pl-dleg{width:100%}
 .pl-dgrid{grid-template-columns:minmax(0,1fr)!important;gap:22px}
 /* gauge + histogram stack */
 .pl-gauge{grid-template-columns:minmax(0,1fr)!important;gap:18px}
 /* horizontal bars: label and value on one line, the bar full width under them */
 .pl-bar2{grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"n v" "tr tr";gap:4px 10px;font-size:13.5px;line-height:18px}
 .pl-bar2 .n{grid-area:n}.pl-bar2 .v{grid-area:v;white-space:nowrap}.pl-bar2 .tr{grid-area:tr;height:12px}
 .pl-bars{gap:12px}
 /* legends and readouts */
 .pl-leg{gap:8px 16px;font-size:13px;line-height:18px;margin-top:12px}
 .pl-read{font-size:14px;line-height:20px;gap:6px 14px}
 /* wide tables and heatmaps scroll sideways inside their card */
 .pl-tbl{font-size:13.5px;line-height:18px}
 .pl-tbl th,.pl-tbl td{padding:10px}
 .pl-tblw,.pl-hmw{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;max-width:100%}
 .pl-tblw.ovf:not(.scrolled),.pl-hmw.ovf:not(.scrolled){-webkit-mask-image:linear-gradient(90deg,#000 85%,rgba(0,0,0,.35));mask-image:linear-gradient(90deg,#000 85%,rgba(0,0,0,.35))}
 .pl-swipe{display:block;margin:6px 0 0;font:600 12px/16px var(--f-body);color:var(--ink-3);text-align:right}
 .pl-heat{font-size:12.5px}
 .pl-hmw .pl-heat{min-width:460px!important}
 .pl-hmw .pl-heat div{height:38px}
 /* sankey labels */
 .pl-sankey text{font-size:12px}
 /* planning index */
 .pl-idx{grid-template-columns:minmax(0,1fr);gap:10px}
 .pl-tc{padding:16px;min-height:72px}
 .pl-tc b{font-size:15.5px;line-height:20px}.pl-tc span{font-size:13.5px;line-height:19px}
 .pl-gh{margin:24px 0 10px;font-size:12px}
 .pl-hero{margin-bottom:16px}
 .pl-hsub{font-size:13.5px;line-height:19px}
 .pl-hnote{font-size:12.5px;line-height:17px}
}
@media (max-width:640px){.pl .pl-mbar>b span{font-size:12px;line-height:16px}}
.pl-f>label.pl-sw{justify-content:flex-start}
/* chart caption (replaces the in-plot watermark) */
.pl .pl-wm{font:600 10px/1.2 Inter,system-ui,sans-serif;letter-spacing:.07em;text-transform:uppercase;color:var(--ink3,#6B7580);opacity:.75;text-align:right;margin:4px 2px 0}
/* answer first */
.pl .pl-ans{font:700 17px/1.4 var(--f-body);color:var(--ink);margin:2px 0 12px}
.pl .pl-ans b{font-weight:800}.pl .pl-ans b.bad{color:var(--red,#C0392B)}
.pl .pl-ans span{display:block;font-weight:600;font-size:14.5px;color:var(--ink-2,#4B5257);margin-top:2px}
.pl .pl-ans span b{font-weight:800;color:var(--ink)}
.pl details.pl-more{border-top:1px solid var(--line);margin-top:12px;padding-top:2px}
.pl details.pl-more>summary{min-height:44px;font-size:14px;color:var(--ink-2,#4B5257)}
.pl details.pl-more[open]>summary{margin-bottom:6px}
.pl details.pl-more .pl-btn{margin:8px 0}
.pl details.pl-how .pl-cap,.pl details.pl-how .pl-disc{font-weight:400;color:var(--ink-3)}
.pl .pl-disc-s{margin-top:10px}
.pl .pl-read b{font-weight:800;color:var(--ink)}
.pl .pl-hsub b{font-weight:800}
/* no entrance or chart-drawing animation anywhere in Planning: everything renders in its final state at once */
.pl .pl-fund i,.pl .pl-bar2 .tr i,.pl .pl-meter i,.pl .pl-mbar>i,.pl .pl-icons i,.pl .pl-it,.pl-toast{transition:none!important}
.pl .pl-sw i,.pl .pl-sw i::after,.pl details>summary::after{transition-duration:.08s!important}
.pl *,.pl *::before,.pl *::after{animation:none!important}
.pl .pl-asmc{padding-top:6px;padding-bottom:6px}
.pl .pl-asmc details.pl-more{border-top:0;margin-top:0}
.pl .pl-asmc details.pl-more>summary{font-size:15px;color:var(--ink)}
.pl .pl-fields>details.pl-advf{grid-column:1/-1;margin-top:4px}
/* ---------- analyzer views + Compare mixes ---------- */
.pl-views{margin:0 0 14px;max-width:100%}   /* look = tools.css .tl-seg */
.pl .pl-h3{font:700 15px/20px var(--f-body);color:var(--ink);margin:20px 0 8px}
.pl .pl-mxtag{font:600 13.5px/19px var(--f-body);color:var(--ink-2,#4B5257);background:var(--surface-2);border-radius:10px;padding:9px 12px;margin:0 0 8px}
.pl .pl-mxwin{font:400 13.5px/19px var(--f-body);color:var(--ink-3);margin:0}
.pl .pl-mxwin b{color:var(--ink);font-weight:700}
.pl .pl-mxleg{gap:6px 6px}
.pl .pl-mxchip{text-align:left;display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 11px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font:600 12.5px/16px var(--f-body);color:var(--ink-3);cursor:pointer}
.pl .pl-mxchip.on{color:var(--ink);border-color:var(--line-2,#C9CFD5)}
.pl .pl-mxchip i{width:16px;height:3px;border-radius:2px;flex:none;opacity:.35}
.pl .pl-mxchip.on i{opacity:1}
.pl .pl-mxchip i.dash{background:repeating-linear-gradient(90deg,currentColor 0 5px,transparent 5px 8px)!important;color:var(--pl-amber,#C98A1B)}
.pl .pl-mxkey{margin:0 0 10px;line-height:18px}
.pl .pl-mxkey b{color:var(--ink-2,#4B5257)}
.pl .pl-mxl{display:grid;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:10px}
.pl .pl-mxc{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface)}
.pl .pl-mxc.mine{border-style:dashed}
.pl .pl-mxc .hd{display:flex;gap:8px;align-items:flex-start;font:700 14px/19px var(--f-body);color:var(--ink);margin-bottom:8px;min-height:38px}
.pl .pl-mxc .hd i{width:12px;height:12px;border-radius:3px;flex:none;margin-top:3px}
.pl .pl-mxc dl{display:grid;grid-template-columns:1fr auto;gap:5px 10px;margin:0;font:500 13.5px/18px var(--f-body)}
.pl .pl-mxc dt{color:var(--ink-3);margin:0}.pl .pl-mxc dt small{display:block;font-size:11.5px;line-height:14px}
.pl .pl-mxc dd{margin:0;text-align:right;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.pl .pl-mxc dd .na{font-weight:500;color:var(--ink-3);font-size:12px}
.pl .pl-mxov{margin-top:12px}
.pl .pl-mxin .pl-hold{grid-template-columns:28px minmax(0,1fr) 36px}
.pl .pl-mxin .pl-hold .t{font-weight:700;color:var(--ink-3)}
.pl .pl-mxw{margin-top:14px}.pl .pl-mxw>label{display:block;font:600 13px/18px var(--f-body);color:var(--ink-2,#4B5257);margin-bottom:6px}
.pl .pl-mxwv{font:700 14px/20px var(--f-body);color:var(--ink);margin-top:6px}
.pl .pl-mxw3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.pl .pl-mxt{font:700 12.5px/16px var(--f-body);color:var(--ink-3);margin-bottom:4px}
.pl .pl-mxsw{display:none!important}
@media (max-width:640px){
 .pl-views{display:flex!important;width:100%}
 .pl .pl-mxl{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;gap:10px;padding-bottom:4px;margin:0 -16px;padding-left:16px;padding-right:16px;scroll-padding-left:16px}
 .pl .pl-mxc{flex:0 0 78%;scroll-snap-align:start}
 .pl .pl-mxsw.on{display:block!important}
 .pl .pl-mxchip{min-height:40px}
}
.pl .pl-load{display:block;font-weight:600;color:var(--ink-2,#4B5257);background:var(--surface-2);border-radius:10px;padding:10px 12px}

/* ── Investing 101 (Oct 22 2026): explainer, two paths, glossary. Built from the shared Planning pieces (pl-card, pl-st, pl-cmp,
   pl-note, details) with a few layout rules; type roles match the other tools. No animation. */
.ix-why,.ix-infl,.ix-gl{margin-top:14px}
.pl-hero+.ix-why{margin-top:0}
.ix-lead{margin:0 0 12px;font:400 15px/22px var(--f-body);color:var(--ink-2)}
html[data-theme] body.ct .pl .ix-col>h2:not(#_){margin:0 0 10px!important;font:600 17px/22px var(--f-head)!important;color:var(--ink)}
html[data-theme] body.ct .pl .ix-col+.ix-col>h2.ix-h2:not(#_){margin-top:20px!important}
@media (min-width:768px){.ix-paths .pl-fields{grid-template-columns:minmax(0,1fr)}}
.ix-steps,.ix-ex{margin-bottom:12px}
.ix-big{margin:0 0 12px;font:500 16px/24px var(--f-body);color:var(--ink)}
.ix-big b{font:600 inherit;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.ix-big b.ix-neg,.ix-neg,.pl .pl-st .v.ix-neg{color:var(--t-dn,#B8302A)}
.ix-asm,.ix-infl .pl-note{margin-top:12px!important}
.ix-paths{gap:12px}
.ix-path{min-width:0}
.ix-ph{display:flex;align-items:center;gap:8px;margin:0 0 8px;font:400 13px/18px var(--f-body);color:var(--ink-3)}
.ix-ph b{font:600 15px/20px var(--f-head);color:var(--ink)}
.ix-ph i{width:14px;height:3px;border-radius:2px;background:#1A2D58;flex:0 0 auto}
.ix-b .ix-ph i{background:repeating-linear-gradient(90deg,#1A9FA0 0 4px,transparent 4px 7px)}
html[data-theme=dark] .ix-ph i{background:#C3D2F2}html[data-theme=dark] .ix-b .ix-ph i{background:repeating-linear-gradient(90deg,#3EC8C9 0 4px,transparent 4px 7px)}
.ix-cu .ix-big{margin-bottom:4px}
.ix-cu .pl-read{margin:0 0 12px}
.ix-set{width:100%;margin:0 0 12px}
.ix-gl .ix-cat{border-top:1px solid var(--line);padding:2px 0}
.ix-gl .ix-cat:last-child{border-bottom:1px solid var(--line)}
.pl .ix-gl details.ix-cat>summary{font:600 15px/20px var(--f-head);color:var(--ink);min-height:48px}
.ix-n{font:500 12px/16px var(--f-body);color:var(--ink-3);background:var(--surface-2);border-radius:6px;padding:2px 7px}
.ix-terms{display:flex;flex-direction:column;gap:0;padding:0 0 10px}
.ix-t{border-top:1px solid var(--line)}
.ix-t:first-child{border-top:0}
.ix-t>summary{min-height:44px;font:600 14px/20px var(--f-body)!important;color:var(--ink)}
.ix-t p{margin:0 0 6px;font:400 14px/21px var(--f-body);color:var(--ink-2)}
.ix-t p.ix-eg{margin-bottom:12px;color:var(--ink-3);font-size:13px;line-height:19px}
@media (min-width:1024px){.ix-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}html[data-theme] body.ct .pl .ix-col+.ix-col>h2.ix-h2:not(#_){margin-top:0!important}.ix-col>:last-child{margin-bottom:0}}
/* the worked-example tiles stay 2-across on phones (short figures, no squeeze) */
@media (max-width:767px){html body.ct .pl :is(.ix-steps,.ix-ex,.ix-infl .pl-stats,.ix-wait,.ix-two):not(#_){grid-template-columns:repeat(2,minmax(0,1fr))!important}html body.ct .pl :is(.ix-steps,.ix-ex,.ix-infl .pl-stats,.ix-wait,.ix-two) .pl-st .v:not(#_){font-size:19px;line-height:24px}}
.ix-out-leg+.pl-disc,.pl-leg+.pl-disc{margin-top:12px}
@media (max-width:767px){.ix-lead{font-size:15px;line-height:22px}.ix-big{font-size:16px}}
.ix-more{display:flex;flex-direction:column;gap:10px}.ix-share{margin-top:10px}
.ix-more .pl-btn{width:100%;text-decoration:none}
.ix-tog{width:100%;margin-top:12px}
.ix-one .pl-fields{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.pl .ix-asmc details.pl-asm>summary{min-height:56px;align-items:center}
.ix-sum{display:flex;flex-direction:column;gap:2px;min-width:0}
.ix-sum b{font:600 15px/20px var(--f-head);color:var(--ink)}
.ix-sumt{font:400 13px/18px var(--f-body);color:var(--t-mute,#5F666B)}
/* the Growth page's 'New to investing?' link: the standard section 'See all' link, without the heading accent */
html[data-theme] body.ct .pl-newlink:not(#_):not(#__){margin:0 0 12px!important;padding-top:0!important}html[data-theme] body.ct .pl-newlink::before,html[data-theme] body.ct .pl-newlink::after{display:none!important}
html[data-theme] body.ct .ix-more .pl-btn:not(#_):not(#tl-x){white-space:normal;height:auto!important;min-height:44px!important;padding:10px 14px!important;text-align:center}

/* rationale.css */
/* Author's per-holding notes (rationale.py, templates/_rationale.html): bottom 'Why these holdings' section on hand-built
   portfolio pages, the small 'Note' jump link in holdings rows, and the stock-page card. Quiet: hairline, muted labels. */
html[data-theme] body.ct .rn-jump{display:inline-block;margin-left:6px;padding:1px 6px;font:500 11px/1.5 var(--f-body);letter-spacing:.02em;color:var(--key)!important;background:transparent;border:1px solid var(--line-2);border-radius:var(--r-pill)!important;cursor:pointer;vertical-align:1px;text-decoration:none}
html[data-theme] body.ct .rn-jump:hover,html[data-theme] body.ct .rn-jump:focus-visible{border-color:var(--accent);outline:none}
html[data-theme] body.ct .rn-sec{margin:28px 0 8px;scroll-margin-top:72px}
html[data-theme] body.ct .rn-eb{font:600 11px/1.3 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:0 0 4px}
html[data-theme] body.ct .rn-sec h2{margin:0 0 12px}
html[data-theme] body.ct .rn-list{display:flex;flex-direction:column;gap:10px}
html[data-theme] body.ct .rn-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)!important;padding:14px 16px;scroll-margin-top:80px;transition:border-color .4s,box-shadow .4s}
html[data-theme] body.ct .rn-item.rn-hit{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
html[data-theme] body.ct .rn-hd{display:flex;align-items:center;gap:10px;text-decoration:none!important;color:var(--ink)!important;margin:0 0 8px}
html[data-theme] body.ct .rn-id{display:flex;flex-direction:column;min-width:0;flex:1}
html[data-theme] body.ct .rn-id b{font:600 15px/1.2 var(--f-body)}
html[data-theme] body.ct .rn-id span{font:400 13px/1.3 var(--f-body);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-theme] body.ct .rn-w{font:600 15px/1 var(--f-body);font-variant-numeric:tabular-nums;color:var(--ink)}
html[data-theme] body.ct .rn-tx{margin:0 0 8px;font:400 15.5px/1.5 var(--f-body);color:var(--ink);overflow-wrap:anywhere}
html[data-theme] body.ct .rn-up{font:400 12.5px/1.4 var(--f-body);color:var(--ink-3)}
html[data-theme] body.ct .rn-up a{color:var(--key)!important}
html[data-theme] body.ct .rn-disc{margin:12px 0 0;font:400 12.5px/1.4 var(--f-body);color:var(--ink-3)}
html[data-theme] body.ct .rn-card{margin:12px 0 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)!important;padding:14px 16px}
html[data-theme] body.ct .rn-ct{display:block;font:600 16px/1.3 var(--f-body);color:var(--ink)!important;text-decoration:none!important}
html[data-theme] body.ct .rn-cw{font:400 13px/1.4 var(--f-body);color:var(--ink-2);margin:2px 0 10px;font-variant-numeric:tabular-nums}
html[data-theme] body.ct .rn-card .rn-disc{margin-top:8px}

/* quicksub.css */
/* 'Get the market emails' card + footer form (templates/_quicksub.html). Navy header band like the email header,
   white body, filled inputs, cyan focus ring. Light + dark. */
.qs-wrap{margin:28px auto}
html body.ct .qs-card{border-radius:16px!important;overflow:hidden;background:var(--surface,#fff);border:1px solid var(--line,#E3E6E8);box-shadow:0 1px 2px rgba(10,17,36,.04),0 6px 20px rgba(10,17,36,.05);margin:0;scroll-margin-top:80px}
.qs-hd{background:#0A1124;color:#F2F4F5;padding:20px 24px 18px;position:relative}
.qs-hd::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,#4AA3DF,#3EC8C9)}
html body.ct .qs-hd .qs-eye{margin:0 0 6px;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#3EC8C9}
html body.ct .qs-card .qs-hd .qs-h,html[data-theme] body.ct .qs-card .qs-hd h1.qs-h,html[data-theme] body.ct .qs-card .qs-hd h2.qs-h{color:#fff!important;margin:0;font-size:24px;line-height:1.2;font-weight:600;color:#fff;letter-spacing:-.01em}
html body.ct .qs-hd .qs-sub{margin:6px 0 0;font-size:15px;line-height:1.45;color:rgba(242,244,245,.78);max-width:62ch}
.qs-bd{padding:20px 24px 18px}
.qs-form{margin:0}
.qs-hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
html body.ct .qs-lab{display:block;font-size:13px;font-weight:600;color:var(--ink-2,#4B5257);margin:0 0 6px;padding:0}
.qs-line{display:flex;gap:10px;align-items:stretch}
html body.ct .qs-em{flex:1 1 auto;min-width:0;height:48px;padding:0 14px;font-size:16px!important;background:#F4F6F9!important;border:1px solid transparent!important;border-radius:12px!important;color:var(--ink,#121314);box-shadow:none!important;outline:0;margin:0}
html body.ct .qs-em:focus{border-color:#3EC8C9!important;box-shadow:0 0 0 3px rgba(62,200,201,.28)!important;background:#fff!important}
html body.ct .qs-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 22px;border:0;border-radius:12px!important;background:#0A1124;color:#fff;font:600 15px/1 var(--f-body,Inter,sans-serif);cursor:pointer;text-decoration:none;white-space:nowrap;min-width:120px}
html body.ct .qs-btn:hover{background:#16213f}html body.ct .qs-btn:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(62,200,201,.45)}
html body.ct .qs-btn[disabled]{opacity:.7;cursor:progress}
html body.ct .qs-card [hidden],html body.ct .qs-foot [hidden]{display:none!important}
html body.ct .qs-eds{border:0!important;margin:16px 0 0;padding:0;min-width:0;background:none!important}
html body.ct .qs-eds legend{padding:0;margin:0 0 6px}
.qs-edg{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.qs-go{display:flex;align-items:center;gap:16px;margin-top:16px}html body.ct .qs-go .qs-fine{margin:0}
html body.ct .qs-row .qs-em{width:100%}
html body.ct .qs-ed{border-radius:12px!important;position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line,#E3E6E8);border-radius:12px;cursor:pointer;background:var(--surface,#fff);min-height:56px}
html body.ct .qs-ed input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.qs-box{border-radius:6px!important;flex:0 0 22px;width:22px;height:22px;border-radius:6px;border:1.5px solid #AEB5BA;background:#fff;display:inline-flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}
.qs-box::after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px);opacity:0}
.qs-ed input:checked+.qs-box{background:#0A1124;border-color:#0A1124}.qs-ed input:checked+.qs-box::after{opacity:1}
html body.ct .qs-ed:has(input:checked){border-color:#0A1124!important;background:#F7F9FB}
.qs-ed input:focus-visible+.qs-box{box-shadow:0 0 0 3px rgba(62,200,201,.45)}
.qs-edt{display:flex;flex-direction:column;line-height:1.25;min-width:0}.qs-edt b{font-size:15px;font-weight:600;color:var(--ink,#121314)}.qs-edt span{font-size:13px;color:var(--ink-2,#4B5257);margin-top:2px}
html body.ct .qs-fine{margin:12px 0 0;font-size:12.5px;line-height:1.45;color:var(--ink-3,#6B747B)}
html body.ct .qs-err{margin:10px 0 0;font-size:14px;color:#B42318;font-weight:500}
.qs-in{text-align:left;outline:0}
.qs-check{display:grid;grid-template-columns:auto 1fr;column-gap:14px}.qs-check>*:not(.qs-ic){grid-column:2}
.qs-ic{grid-row:span 4;width:44px;height:44px;border-radius:50%;background:rgba(62,200,201,.14);color:#0E7C7D;display:inline-flex;align-items:center;justify-content:center}.qs-ic svg{width:24px;height:24px}
html body.ct .qs-done-t{margin:0;font-size:19px;font-weight:600;color:var(--ink,#121314);line-height:1.3}
html body.ct .qs-done-s{margin:4px 0 0;font-size:15px;color:var(--ink-2,#4B5257);line-height:1.45}
.qs-in .qs-btn{margin-top:14px}
html body.ct .qs-link{background:none;border:0;padding:0;font:inherit;color:var(--accent-ink,#0E7C7D);text-decoration:underline;cursor:pointer;min-height:0}
html body.ct .qs-dev{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:#FFF7E6;color:#5C4400;font-size:13px}
.qs-dev>span:first-child{font-weight:700;margin-right:4px}
/* footer form */
.qs-foot{margin:4px 0 18px;padding:16px 0 18px;border-bottom:1px solid var(--line,#E3E6E8);max-width:560px}
html body.ct .qs-foot-l{display:block;font-size:14px;color:var(--ink-2,#4B5257);margin:0 0 8px}.qs-foot-l b{color:var(--ink,#121314);font-weight:600;margin-right:6px}
html body.ct .qs-foot .qs-em,html body.ct .qs-foot .qs-btn{height:44px}
.qs-foot-ok b{color:var(--ink,#121314)}
/* page states (/email/*) */
.qs-page{max-width:560px;margin:28px auto}
.qs-page .qs-bd p{margin:0 0 10px}
.qs-list{list-style:none;margin:12px 0 4px;padding:0;border-top:1px solid var(--line,#E3E6E8)}
.qs-list li{padding:10px 0;border-bottom:1px solid var(--line,#E3E6E8);font-size:15px}.qs-list li span{color:var(--ink-2,#4B5257)}
.qs-acts{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}
html body.ct .qs-btn.qs-ghost{background:transparent;color:var(--ink,#121314);border:1px solid var(--line-2,#CDD2D6)}
@media(max-width:600px){
 .qs-hd{padding:18px 18px 16px}html body.ct .qs-hd .qs-h{font-size:22px}.qs-bd{padding:18px 18px 16px}
 .qs-go{flex-direction:column;align-items:stretch;gap:10px}html body.ct .qs-go .qs-btn,html body.ct .qs-in .qs-btn{width:100%}html body.ct .qs-go .qs-fine{text-align:center}
 .qs-edg{gap:8px}html body.ct .qs-ed{padding:10px 12px;gap:10px}
 .qs-wrap{margin:22px auto}
 .qs-foot .qs-line{flex-direction:row}html body.ct .qs-foot .qs-btn{width:auto;min-width:0;padding:0 16px}
}
@media(max-width:360px){.qs-edg{grid-template-columns:1fr}}
html[data-theme=dark] body.ct .qs-card{background:var(--surface);border-color:var(--line)}
html[data-theme=dark] body.ct .qs-em{background:var(--surface-2,#1A2236)!important;color:var(--ink)}
html[data-theme=dark] body.ct .qs-em:focus{background:var(--surface-2,#1A2236)!important}
html[data-theme=dark] body.ct .qs-btn{background:#3EC8C9;color:#0B1A1B}
html[data-theme=dark] .qs-ed{background:transparent;border-color:var(--line)}
html[data-theme=dark] .qs-box{background:transparent;border-color:var(--ink-3)}
html[data-theme=dark] .qs-ed input:checked+.qs-box{background:#3EC8C9;border-color:#3EC8C9}html[data-theme=dark] .qs-ed input:checked+.qs-box::after{border-color:#0B1A1B}
html[data-theme=dark] .qs-ed:has(input:checked){border-color:#3EC8C9;box-shadow:inset 0 0 0 1px #3EC8C9}
html[data-theme=dark] body.ct .qs-dev{background:rgba(255,200,80,.12);color:#F5D48A}
/* fixes after screenshots: site link styles (color, underline gradient) were hiding text on a.qs-btn; heading size */
html[data-theme] body.ct a.qs-btn,html[data-theme] body.ct a.qs-btn:hover{color:#fff!important;text-decoration:none!important;background-image:none!important;border-bottom:0!important}
html[data-theme] body.ct a.qs-btn.qs-ghost{color:var(--ink,#121314)!important;background:transparent!important}
html[data-theme] body.ct .qs-card .qs-hd .qs-h{font-size:24px!important;line-height:1.2!important;font-weight:600!important;letter-spacing:-.01em}
@media(max-width:600px){html[data-theme] body.ct .qs-card .qs-hd .qs-h{font-size:22px!important}}
html body.ct .qs-list li{margin:0!important;padding:10px 0!important}
html body.ct .qs-foot .qs-em{background:#fff!important;border:1px solid var(--line-2,#CDD2D6)!important}
html body.ct .qs-foot-l b{display:inline}
html[data-theme][class] body.ct.ct main .qs-card a.qs-btn.qs-btn,html[data-theme][class] body.ct.ct main .qs-card a.qs-btn.qs-btn:hover{color:#fff!important;-webkit-text-fill-color:#fff}
html[data-theme][class] body.ct.ct main .qs-card a.qs-btn.qs-ghost.qs-ghost,html[data-theme][class] body.ct.ct main .qs-card a.qs-btn.qs-ghost.qs-ghost:hover{color:var(--ink,#121314)!important;-webkit-text-fill-color:currentColor}
html[data-theme=dark][class] body.ct.ct main .qs-card a.qs-btn.qs-btn:not(.qs-ghost){color:#0B1A1B!important;-webkit-text-fill-color:#0B1A1B}
html body.ct .qs-foot .qs-foot-l{font-size:14px!important;line-height:1.45;font-weight:400!important}html body.ct .qs-foot .qs-foot-l b{display:block;font-size:15px!important;margin:0 0 2px}
@media(max-width:600px){html body.ct .qs-acts{flex-direction:column;align-items:stretch}html body.ct .qs-acts .qs-btn{width:100%}html body.ct .qs-acts .qs-link{align-self:center;margin-top:2px}}
/* rel2 review (390px): keep "Morning Brief" / "Market Close" on one line in the two-up picker */
@media(max-width:430px){html body.ct .qs-ed{padding:10px 10px;gap:8px}.qs-edt b{font-size:14px;white-space:nowrap}.qs-edt span{font-size:12.5px}}
/* QA Oct 21 2026: the light "checked" rule (html body.ct .qs-ed:has(...)) out-ranked the dark one, so in dark mode a ticked
   edition got a near-white fill under near-white text. Same specificity + theme attribute wins. */
html[data-theme=dark] body.ct .qs-ed:has(input:checked){background:transparent;border-color:#3EC8C9!important}

/* pill.css */
/* ---------- BETA pill: ONE component everywhere (Oct 21 2026, Jason: "BETA a small pill everywhere" + "make beta small enough").
   Public nav, Desk header (DESK + pill), launch splash (public: pill; Desk: DESK small caps + pill, one line), welcome splash,
   beta welcome sheet (light variant .bpill-l). Small: ~9-10px caps, 1px seafoam outline, very soft fill, rounded-full.
   !important + just before edit.css in the CSS bundle so it wins over the older .ct-beta / .dk-beta / .ct-wel-beta / .boot-beta rules. */
html body .bpill,html[data-theme] body.ct .bpill,html[data-theme] body header .ct-beta.bpill,html.desk body.ct header.top a.ct-brand .dk-tag .dk-beta.bpill{
  display:inline-flex!important;align-items:center;justify-content:center;box-sizing:border-box;margin:0;
  padding:2px 5px 2px 6.5px!important;border:1px solid rgba(143,196,199,.5)!important;border-radius:999px!important;background:rgba(143,196,199,.08)!important;
  font:600 9px/1 "Inter",system-ui,-apple-system,sans-serif!important;letter-spacing:.14em!important;text-transform:uppercase!important;
  color:#BFE0E2!important;-webkit-text-fill-color:currentColor;white-space:nowrap;vertical-align:middle;text-decoration:none!important;box-shadow:none!important}
/* light surfaces (beta welcome sheet card) */
html body .bpill.bpill-l,html[data-theme] body.ct .bpill.bpill-l{border-color:rgba(47,110,116,.32)!important;background:rgba(143,196,199,.14)!important;color:#2F6E74!important}
html body .bt-tag:has(.bpill){padding:0!important;background:none!important;border-radius:0!important}
/* nav (public): beside the wordmark, centred on the row */
html[data-theme] body header .ct-beta.bpill{margin-left:8px!important;vertical-align:top!important;margin-top:5px!important}   /* centred on the x-height of coteau (24px brand box) */
/* Desk header: DESK, then the pill */
html.desk body.ct header.top a.ct-brand .dk-tag .dk-beta.bpill{margin-left:.55em!important;vertical-align:2px}
html.desk body.ct header.top a.ct-brand .dk-tag{display:inline-flex!important;align-items:center;font-weight:600!important;color:rgba(255,255,255,.85)!important}   /* DESK reads clearly above the pill */
/* splashes: centred under coteau */
#boot .boot-beta{display:flex;align-items:center;justify-content:center;gap:9px;padding-left:0!important;margin-top:-2px!important;letter-spacing:normal!important}
#boot .boot-beta .bpill,#ct-wel .ct-wel-beta .bpill{font-size:10px!important;padding:2.5px 6px 2.5px 7.5px!important}
/* Desk launch splash: DESK dominant (Jason: "don't let DESK get swallowed"), ~2x the pill's text; pill unchanged, 8px to its right.
   .boot-desk keeps it out of ct-cleanup's Inter override, so it stays General Sans 600. */
html #boot .boot-dbeta{gap:8px;margin-top:0!important}
html #boot .boot-desk.boot-dk{display:inline-block;margin:0 -.18em 0 0;padding:0 0 0 .18em;font:600 15.5px/1 "Brand Wordmark","General Sans",system-ui,sans-serif!important;letter-spacing:.18em!important;text-transform:uppercase;color:#F2F4F5!important}
@media(min-width:900px){html #boot .boot-desk.boot-dk{font-size:17.5px!important}}
html[data-theme] body.ct #ct-wel .ct-wel-beta{display:flex!important;justify-content:center;padding-left:0!important;letter-spacing:normal!important;margin-top:4px!important}
html[data-theme] body.ct #ct-wel[data-mode=p] .ct-wel-beta{margin-top:15px!important}   /* phone: same word-to-pill gap as the launch splash */
/* phones: smallest size (8.5px). Desk header keeps DESK + pill. Public phone nav keeps the pill hidden (beta.css, <=430px): at 390 it touches Get App
   and at 360 it pushes the bell off the edge, so BETA lives on the splashes there. */
@media(max-width:430px){
  html[data-theme] body header .ct-beta.bpill{display:none!important}
  html[data-theme] body header .ct-beta.bpill,html.desk body.ct header.top a.ct-brand .dk-tag .dk-beta.bpill{font-size:8.5px!important;padding:1.5px 4.5px 1.5px 5.5px!important}
  html.desk body.ct header.top a.ct-brand .dk-tag .dk-beta.bpill{margin-left:.45em!important}
}
@media(max-width:350px){html.desk body.ct header.top a.ct-brand .dk-tag .dk-beta.bpill{display:none!important}}   /* tiny phones: DESK only (as before) */
/* phone welcome (Jason, Oct 21 2026): no tagline on phones (desktop keeps it). Logo stays exactly where/as big as the launch splash
   (centred row of the 1fr auto 1fr grid); Get the app + Continue sit in the lower third, disclaimer pinned at the bottom. */
html[data-theme] body.ct #ct-wel[data-mode=p] .ct-wel-tag{display:none!important}
/* Welcome page background = the launch splash, exactly (Jason, Oct 21 2026: "why isn't the fade the same"): same gradient + glow as
   html.g4 #boot (gradients.css), on phone and desktop, so splash -> welcome shows no background change. */
html[data-theme] body.ct #ct-wel.ct-wel{background:radial-gradient(90% 70% at 70% 80%,rgba(62,200,201,.10),rgba(62,200,201,0) 60%),linear-gradient(160deg,#0A1124 0%,#101E43 55%,#15244B 100%)!important}

/* getapp.css */
/* Get the app colour = THE site primary, the cyan fade (Jason, Oct 21 2026, 5:32 PM: "go to the rounded button with the cyan fade").
   Defined once in tools.css (--tl-pri-*; tools.css is last in the bundle and also sets hover / focus / disabled). Sizes, arrow and
   optical nudges stay here. */
:root{--gapp-bg:var(--tl-pri-bg);--gapp-ink:var(--tl-pri-ink);--gapp-line:transparent;--gapp-hover:var(--tl-pri-bg-hover)}
/* ---------- "Get the app": ONE button style everywhere (Jason, Oct 21 2026). Class .gapp on: header Get App (.gapp-sm), menu drawer
   (.gapp-md), welcome page (base size), /get-app Install button, Desk entry Install button. 4px corners (was square 2px), thin download arrow
   (1.75 stroke, same as the search/bell icons) before the label, the cyan fade from the --gapp vars above, no glow/shadow, semibold label.
   Sizes: sm 32px (nav), md 40px (drawer), base 44px auto width 212-240px. Visibility rules (standalone, Desk, owner, phones) untouched. */
html[lang][data-theme] body.ct .gapp,html[lang][data-theme] body.ct #ct-wel a.gapp,html[lang][data-theme] body.ct header.top .tb a.gapp,html[lang][data-theme] body.ct a.gapp:visited{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;box-sizing:border-box;
  height:44px!important;min-height:0!important;line-height:1!important;min-width:212px!important;max-width:240px;width:auto!important;padding:0 22px!important;
  background:var(--gapp-bg)!important;background-origin:border-box!important;border:1px solid var(--gapp-line)!important;border-radius:var(--tl-pri-r,4px)!important;box-shadow:none!important;filter:none!important;
  color:var(--gapp-ink)!important;-webkit-text-fill-color:currentColor;font:600 15px/1 "Inter",system-ui,-apple-system,sans-serif!important;letter-spacing:0!important;text-decoration:none!important;white-space:nowrap;cursor:pointer}
html[lang][data-theme] body.ct .gapp[hidden]{display:none!important}
html[lang][data-theme] body.ct .gapp .gapp-ic{flex:none;width:14px;height:14px;margin:0;display:block}
html[lang][data-theme] body.ct .gapp:hover{background:var(--gapp-hover)!important;filter:none!important}
html[lang][data-theme] body.ct .gapp:focus-visible{outline:2px solid var(--tl-pri-ring,#4A9FE3)!important;outline-offset:2px!important;box-shadow:none!important}
html[lang][data-theme] body.ct .gapp::before,html[lang][data-theme] body.ct .gapp::after{background:none!important;box-shadow:none!important;border:0!important}
/* nav: compact */
html[lang][data-theme] body.ct header.top a.gapp.gapp-sm{height:32px!important;min-width:0!important;max-width:none;padding:0 11px 0 10px!important;gap:6px;font-size:13px!important;margin-right:2px}
html[lang][data-theme] body.ct header.top a.gapp.gapp-sm .gapp-ic{width:13px;height:13px}
@media(max-width:400px){html[lang][data-theme] body.ct header.top a.gapp.gapp-sm{padding:0 9px 0 8px!important;gap:5px;font-size:12.5px!important}html[lang][data-theme] body.ct header.top a.gapp.gapp-sm .gapp-ic{width:12px;height:12px}}
/* drawer: medium, keeps its row next to Light/Dark */
html[lang][data-theme] body.ct a.gapp.gapp-md{height:40px!important;min-width:0!important;max-width:none;padding:0 14px!important;font-size:14px!important;flex:1}
/* /get-app and Desk entry Install buttons: base size, centred */
html[lang][data-theme] body.ct .ga-btn.gapp,html[lang][data-theme] body.ct .me-lbtn.gapp{margin:14px auto 0!important}
html[lang][data-theme] body.ct .ga-btn.gapp:not([hidden]),html[lang][data-theme] body.ct .me-lbtn.gapp:not([hidden]){display:flex}
html[lang][data-theme] body.ct #ct-wel .ct-wel-act a.gapp{align-self:center!important}
/* Desk entry (owner pages, body.ox): beat edit.css's .btn styling so it is the same button */
html[lang][data-theme] body.ox.ox.ct button.btn.me-lbtn.gapp{height:44px!important;min-height:0!important;min-width:212px!important;width:auto!important;padding:0 22px!important;gap:7px!important;
  background:var(--gapp-bg)!important;background-origin:border-box!important;border:1px solid var(--gapp-line)!important;border-radius:var(--tl-pri-r,4px)!important;box-shadow:none!important;filter:none!important;color:var(--gapp-ink)!important;font:600 15px/1 "Inter",system-ui,-apple-system,sans-serif!important}
html[lang][data-theme] body.ox.ox.ct button.btn.me-lbtn.gapp:hover{background:var(--gapp-hover)!important}
/* Optical centring (measured at 3x, Oct 21 2026): the arrow's viewBox has ~0.21em of empty space on its left, the label's last glyph
   ~1px of side bearing on its right, so the ink sat 1-2px right of centre. The arrow is pulled left by the measured difference. */
html[lang][data-theme] body.ct .gapp .gapp-ic,html[lang][data-theme] body.ox.ox.ct .gapp .gapp-ic{margin-left:-1.75px!important}
html[lang][data-theme] body.ct header.top a.gapp.gapp-sm .gapp-ic{margin-left:-1px!important}
@media(max-width:400px){html[lang][data-theme] body.ct header.top a.gapp.gapp-sm .gapp-ic{margin-left:-.33px!important}}
/* Phone tap target (QA Oct 21 2026): the nav button keeps its 32px look; an invisible hit area makes it 44px tall. */
html[lang][data-theme] body.ct header.top a.gapp.gapp-sm{position:relative}
html[lang][data-theme] body.ct header.top a.gapp.gapp-sm::after{content:"";position:absolute;left:0;right:0;top:-6px;bottom:-6px}

/* tools.css */
/* =====================================================================
   tools.css: ONE shared look for the tool pages (Planning, Compare stocks, ETF lookup / themes / fund compare, and any
   new tool). Oct 21 2026, style audit (/workspace/style_audit/report.md). Jason: "make sure everything matches font wise
   across them and colors too".
   * Values come from the established site (design.css tokens + legibility.css overrides, as they render on home, model
     and stock pages) and, for the navy header, from the shared .nhero box (static/navy-hero.css, = Compare stocks layout B).
   * Opt-in only: every rule is on a .tl-* class, so nothing changes until a template uses the class. A branch adopts it
     by adding the class next to its own (e.g. class="pl-hero tl-hero") and deleting its one-off rule.
   * In the CSS bundle after legibility.css / before pill.css, so it beats the old one-off rules of the same weight.
   * No animation, no transitions, no entrance fades (Jason, Oct 21).
   ===================================================================== */

/* ---------- 0. THE primary button: the cyan fade (Jason, Oct 21 2026, 5:32 PM: "the rounded button with the cyan fade. It's that fade",
   on every primary / search / enter / Get the app button and every selected segment). Exact copy of the stock page's selected tab
   (.tabs a.on): --grad-action 135deg #4A9FE3 0% -> #3EC8C9 100%, 4px corners, no shadow. Ink #0B1A1B (the reference crop; the stock tab
   itself rendered #121314 light / #F2F4F5 dark, the dark one was low contrast, so both now use #0B1A1B). ---------- */
:root{--tl-pri-bg:linear-gradient(135deg,#4A9FE3 0%,#3EC8C9 100%);--tl-pri-bg-hover:linear-gradient(135deg,#5DAAEA 0%,#52D0D1 100%);
  --tl-pri-bg-active:linear-gradient(135deg,#3F93D6 0%,#34B9BA 100%);--tl-pri-ink:#0B1A1B;--tl-pri-r:4px;--tl-pri-ring:#4A9FE3}

/* ---------- 1. Tokens (light) ---------- */
html[data-theme] body.ct{
  /* type */
  --tl-f-head:var(--f-head,"General Sans","Inter",system-ui,-apple-system,sans-serif);
  --tl-f-body:var(--f-body,"Inter",system-ui,-apple-system,sans-serif);
  /* ink: = site tokens after legibility.css (#121314 / #4B5257 / #5F666B) */
  --tl-ink:var(--ink,#121314);--tl-ink-2:var(--ink-2,#4B5257);--tl-ink-3:var(--ink-3,#5F666B);
  --tl-surface:var(--surface,#FFFFFF);--tl-surface-2:var(--surface-2,#F7F8F9);
  --tl-line:var(--line,#E3E6E8);--tl-line-2:var(--line-2,#D3D8DB);
  --tl-up:var(--up,#0B7340);--tl-down:var(--down,#B8302A);
  --tl-acc:#3EC8C9;--tl-acc-text:#0D7071;          /* fill cyan / cyan used as text on light (AA) */
  --tl-grad-action:var(--tl-pri-bg);--tl-on-action:var(--tl-pri-ink);
  /* shape: site cards/buttons/tiles are 4px (coteau.css squares everything, design.css gives cards 4px) */
  --tl-r:4px;--tl-r-hero:0;--tl-r-track:8px;--tl-r-chip:999px;
  --tl-gap:14px;                                    /* space between cards */
  /* navy header (= .nhero) */
  --tl-hero-a:#1A2D58;--tl-hero-b:#15203F;--tl-hero-ink:#FFFFFF;--tl-hero-soft:#B9C6DA;--tl-hero-line:rgba(255,255,255,.10);
  --tl-hero-shadow:0 10px 28px rgba(10,17,36,.20);
  /* charts: multi-series palette (no red/green; those mean gain/loss), benchmark, grid, axis */
  --tl-s1:#1A2D58;--tl-s2:#2A9D9E;--tl-s3:#C98A1B;--tl-s4:#8C5BB0;--tl-s5:#5A7BC4;--tl-s6:#8FC4C7;
  --tl-bench:#80878C;--tl-grid:var(--line,#E3E6E8);--tl-axis:var(--ink-3,#5F666B);
  --tl-band:rgba(26,45,88,.10);                     /* range / percentile band */
}
/* ---------- Tokens (dark): navy series turn periwinkle so they stay visible on #151719 ---------- */
html[data-theme=dark] body.ct{
  --tl-acc-text:#3EC8C9;--tl-on-action:#0B1A1B;
  --tl-hero-shadow:0 10px 28px rgba(0,0,0,.45);
  --tl-s1:#9DB4E0;--tl-s2:#3EC8C9;--tl-s3:#E3A73A;--tl-s4:#B98AD6;--tl-s5:#7FA2E8;--tl-s6:#8FC4C7;
  --tl-bench:#8F989D;--tl-band:rgba(157,180,224,.16);
}

/* ---------- 2. Navy tool header (.nhero values) ---------- */
html[data-theme] body.ct .tl-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--tl-hero-a) 0%,var(--tl-hero-b) 100%)!important;color:var(--tl-hero-ink);
  border:0!important;border-radius:var(--tl-r-hero)!important;padding:16px 20px!important;margin:8px 0 var(--tl-gap)!important;box-shadow:var(--tl-hero-shadow)!important}
html[data-theme] body.ct .tl-hero::after{content:"";position:absolute;left:20px;right:20px;top:0;height:2px;background:linear-gradient(90deg,#3EC8C9,rgba(62,200,201,0));opacity:.9;border-radius:2px!important}
html[data-theme] body.ct .tl-hero h1,html[data-theme] body.ct .tl-hero .tl-title{color:var(--tl-hero-ink)!important;font:600 20px/30px var(--tl-f-head)!important;letter-spacing:-.01em!important;margin:0 0 12px!important;text-transform:none!important}
html[data-theme] body.ct .tl-hero.tl-solo h1,html[data-theme] body.ct .tl-hero h1:last-child{margin:0!important}
/* kicker above the title (breadcrumb / "Coteau Planning") */
html[data-theme] body.ct .tl-kicker,html[data-theme] body.ct a.tl-kicker:not(#tl-x){display:inline-block;font:600 12px/16px var(--tl-f-body)!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--tl-hero-soft)!important;text-decoration:none!important;border:0!important;margin:0 0 4px}
/* one sub-line under the title */
html[data-theme] body.ct .tl-hero .tl-line,html[data-theme] body.ct .tl-hero p.tl-line{font:400 14px/20px var(--tl-f-body)!important;color:var(--tl-hero-soft)!important;margin:0!important}
/* small pill on navy ("Hypothetical") */
html[data-theme] body.ct .tl-tag{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:var(--tl-r-chip)!important;background:rgba(62,200,201,.16);color:#8FE6E7;font:600 11px/1 var(--tl-f-body);letter-spacing:.06em;text-transform:uppercase}
/* header foot: one muted line + white links */
html[data-theme] body.ct .tl-hero-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;margin-top:14px;padding-top:12px;border-top:1px solid var(--tl-hero-line);font:400 13px/18px var(--tl-f-body);color:var(--tl-hero-soft)}
html[data-theme] body.ct .tl-hero-foot a:not(#tl-x){color:#FFFFFF!important;font-weight:600;text-decoration:none!important;border:0!important;white-space:nowrap;background:none!important}
html[data-theme] body.ct .tl-hero-foot a:not(#tl-x):hover{text-decoration:underline!important;text-underline-offset:3px}
/* ticker chips + add box + Go on navy */
html[data-theme] body.ct .tl-hero-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
html[data-theme] body.ct .tl-hero-chip{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 6px 0 14px;border-radius:var(--tl-r-chip)!important;background:#FFFFFF;color:#15203F;font:600 15px/1 var(--tl-f-body);letter-spacing:.01em}
html[data-theme] body.ct .tl-hero-chip a:not(#tl-x){display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%!important;color:#5B6680!important;text-decoration:none!important;border:0!important;font-size:18px;line-height:1}
html[data-theme] body.ct .tl-hero input.tl-input,html[data-theme] body.ct .tl-hero .tl-add input{height:40px;background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.28)!important;color:#FFFFFF!important;border-radius:var(--tl-r)!important}
html[data-theme] body.ct .tl-hero .tl-add input::placeholder{color:#AEBBD0}
/* Add / Look up / Go inside the navy header: the shared primary (section 15) at header size. Use class="tl-btn pri" (tl-hero-go kept as an alias). */
html[data-theme] body.ct .tl-hero .tl-btn.pri,html[data-theme] body.ct .tl-hero-go{height:40px!important;padding:0 16px!important;font:600 14px/1 var(--tl-f-body)!important;cursor:pointer}
@media (max-width:700px){
  html[data-theme] body.ct .tl-hero{padding:16px 16px 14px!important}
  html[data-theme] body.ct .tl-hero-chip{height:36px;padding:0 2px 0 11px;gap:6px;font-size:14px}
  html[data-theme] body.ct .tl-hero .tl-btn.pri,html[data-theme] body.ct .tl-hero-go{height:38px!important}
}

/* ---------- 3. Cards and headings ---------- */
html[data-theme] body.ct .tl-card{background:var(--tl-surface)!important;border:1px solid var(--tl-line)!important;border-radius:var(--tl-r)!important;box-shadow:none!important;padding:16px!important;margin:0 0 var(--tl-gap)}
@media (min-width:900px){html[data-theme] body.ct .tl-card{padding:18px!important}}
/* section heading inside a card = site h2 (General Sans 600 17/24) */
html[data-theme] body.ct .tl-h2,html[data-theme] body.ct .tl-card>h2{font:600 17px/24px var(--tl-f-head)!important;letter-spacing:-.008em!important;color:var(--tl-ink)!important;text-transform:none!important;margin:0 0 8px!important}
html[data-theme] body.ct .tl-h3,html[data-theme] body.ct .tl-card h3{font:600 14px/20px var(--tl-f-head)!important;letter-spacing:-.005em!important;color:var(--tl-ink)!important;text-transform:none!important;margin:0 0 6px!important}
/* small caps label (group names, "Returns and risk") */
html[data-theme] body.ct .tl-label{font:600 12.5px/16px var(--tl-f-body)!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:var(--tl-ink-2)!important}

/* ---------- 4. Text levels ---------- */
/* the answer: first thing on the page, bold (Jason: "bold the takeaways") */
html[data-theme] body.ct .tl-take{font:600 16px/24px var(--tl-f-body)!important;color:var(--tl-ink)!important;margin:2px 0 14px;max-width:820px;text-wrap:pretty}
html[data-theme] body.ct .tl-take b,html[data-theme] body.ct .tl-take strong{font-weight:700!important;color:var(--tl-ink)!important}
@media (min-width:900px){html[data-theme] body.ct .tl-take{font-size:17px!important;line-height:26px!important}}
html[data-theme] body.ct .tl-body{font:400 14.5px/22px var(--tl-f-body);color:var(--tl-ink)}
html[data-theme] body.ct .tl-muted{font:400 14px/20px var(--tl-f-body);color:var(--tl-ink-2)}
/* the one short muted line ("Not investment advice · Important disclosures"). Never under 13px (legibility.css). */
html[data-theme] body.ct .tl-fine{font:400 13px/19px var(--tl-f-body)!important;color:var(--tl-ink-3)!important;margin:8px 0 0}
html[data-theme] body.ct .tl-fine a:not(#tl-x){color:var(--tl-ink-2)!important;text-decoration:underline!important;text-decoration-color:var(--tl-line-2)!important;text-underline-offset:2px;border:0!important}

/* ---------- 5. Stats (label above, number below) ---------- */
html[data-theme] body.ct .tl-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
@media (max-width:600px){html[data-theme] body.ct .tl-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
html[data-theme] body.ct .tl-stat{background:var(--tl-surface);border:1px solid var(--tl-line);border-radius:var(--tl-r)!important;padding:10px 12px;min-width:0}
html[data-theme] body.ct .tl-stat .k,html[data-theme] body.ct .tl-k{display:block;font:400 13px/18px var(--tl-f-body)!important;color:var(--tl-ink-2)!important;text-transform:none!important;letter-spacing:0!important}
html[data-theme] body.ct .tl-stat .v,html[data-theme] body.ct .tl-v{display:block;font:650 18px/24px var(--tl-f-body)!important;color:var(--tl-ink);font-variant-numeric:tabular-nums!important;letter-spacing:0!important}
html[data-theme] body.ct .tl-stat .s,html[data-theme] body.ct .tl-s{display:block;font:400 13px/18px var(--tl-f-body);color:var(--tl-ink-3)}
html[data-theme] body.ct .tl-stat.lg .v{font-size:22px!important;line-height:28px!important}

/* ---------- 6. Gain / loss (the site pair, never another green or red) ---------- */
html[data-theme] body.ct .tl-up,html[data-theme] body.ct .tl .up,html[data-theme] body.ct .tl .pos{color:var(--tl-up)!important}
html[data-theme] body.ct .tl-down,html[data-theme] body.ct .tl .down,html[data-theme] body.ct .tl .neg{color:var(--tl-down)!important}

/* ---------- 7. Tables ---------- */
html[data-theme] body.ct .tl-table{width:100%;border-collapse:collapse;font:400 14px/20px var(--tl-f-body);font-variant-numeric:tabular-nums}
html[data-theme] body.ct .tl-table th{font:600 13px/18px var(--tl-f-body)!important;color:var(--tl-ink-3)!important;background:var(--tl-surface-2)!important;text-transform:none!important;letter-spacing:0!important;text-align:left;padding:8px 10px!important;border-bottom:1px solid var(--tl-line)!important;vertical-align:bottom}
html[data-theme] body.ct .tl-table td{font:400 14px/20px var(--tl-f-body)!important;color:var(--tl-ink)!important;padding:9px 10px!important;border-bottom:1px solid var(--tl-line)!important;vertical-align:top}
html[data-theme] body.ct .tl-table td.up{color:var(--tl-up)!important}html[data-theme] body.ct .tl-table td.down,html[data-theme] body.ct .tl-table td.neg{color:var(--tl-down)!important}
html[data-theme] body.ct .tl-table .n,html[data-theme] body.ct .tl-table .r{text-align:right!important;font-variant-numeric:tabular-nums!important;white-space:nowrap}
html[data-theme] body.ct .tl-table .w{font-weight:600!important}
html[data-theme] body.ct .tl-table tr:last-child td{border-bottom:0!important}
html[data-theme] body.ct .tl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}

/* ---------- 8. Chips (selectable filter pills; selected = ink fill, per BRAND.md) ---------- */
html[data-theme] body.ct .tl-chips{display:flex;flex-wrap:wrap;gap:8px}
html[data-theme] body.ct .tl-chip,html[data-theme] body.ct a.tl-chip:not(#tl-x){display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px!important;border:1px solid var(--tl-line-2)!important;border-radius:var(--tl-r-chip)!important;background:var(--tl-surface)!important;color:var(--tl-ink)!important;font:500 13.5px/1 var(--tl-f-body)!important;text-decoration:none!important;cursor:pointer;box-shadow:none!important}
html[data-theme] body.ct .tl-chip.on,html[data-theme] body.ct .tl-chip[aria-pressed=true],html[data-theme] body.ct a.tl-chip.on:not(#tl-x){background:var(--tl-ink)!important;border-color:var(--tl-ink)!important;color:var(--tl-surface)!important;font-weight:600!important}

/* ---------- 9. Segmented control (1Y / 3Y / 5Y, Scenario A / B, views) = the stock page .tabs ---------- */
html[data-theme] body.ct .tl-seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:2px;background:var(--tl-surface-2)!important;border:1px solid var(--tl-line)!important;border-radius:var(--tl-r-track)!important;max-width:100%}
html[data-theme] body.ct .tl-seg>a:not(#tl-x),html[data-theme] body.ct .tl-seg>button{flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;height:38px;min-width:44px;padding:0 12px!important;margin:0!important;border:0!important;border-radius:var(--tl-r)!important;background:none!important;color:var(--tl-ink)!important;font:500 14px/1 var(--tl-f-body)!important;text-decoration:none!important;box-shadow:none!important;cursor:pointer;white-space:nowrap}
html[data-theme] body.ct .tl-seg>a.on:not(#tl-x),html[data-theme] body.ct .tl-seg>button.on,html[data-theme] body.ct .tl-seg>[aria-pressed=true],html[data-theme] body.ct .tl-seg>[aria-current]:not(#tl-x){background:var(--tl-grad-action)!important;color:var(--tl-on-action)!important;font-weight:600!important}

/* ---------- 10. Buttons ---------- */
html[data-theme] body.ct .tl-btn,html[data-theme] body.ct a.tl-btn:not(#tl-x){display:inline-flex;align-items:center;justify-content:center;gap:6px;height:44px;padding:0 16px!important;border-radius:var(--tl-r)!important;font:600 13.5px/1 var(--tl-f-body)!important;text-decoration:none!important;cursor:pointer;box-shadow:none!important;border:1px solid var(--tl-line-2)!important;background:var(--tl-surface)!important;color:var(--tl-ink)!important}
html[data-theme] body.ct .tl-btn.pri,html[data-theme] body.ct a.tl-btn.pri:not(#tl-x){background:var(--tl-grad-action)!important;border-color:transparent!important;color:var(--tl-on-action)!important}
html[data-theme] body.ct .tl-btn.sm{height:36px;padding:0 12px!important;font-size:13px!important}

/* ---------- 11. Inputs ---------- */
html[data-theme] body.ct .tl-input,html[data-theme] body.ct .tl-field input,html[data-theme] body.ct .tl-field select{height:44px;padding:0 12px!important;border:1px solid var(--tl-line)!important;border-radius:var(--tl-r)!important;background:var(--tl-surface-2)!important;color:var(--tl-ink)!important;font:400 16px/24px var(--tl-f-body)!important;box-shadow:none!important;font-variant-numeric:tabular-nums}
html[data-theme] body.ct .tl-input:focus,html[data-theme] body.ct .tl-field input:focus,html[data-theme] body.ct .tl-field select:focus{border-color:var(--tl-acc)!important;outline:none!important;box-shadow:0 0 0 3px rgba(62,200,201,.18)!important}
/* prefix / suffix inside a field ($, %, yrs): the 12px padding above must not run text under the mark (planning mock had "$" over the digits) */
html[data-theme] body.ct :is(.tl-field,.tl-inp,.pl-inp).has-pre input:not(#tl-x),html[data-theme] body.ct .has-pre>input.tl-input:not(#tl-x){padding-left:24px!important}
html[data-theme] body.ct :is(.tl-field,.tl-inp,.pl-inp).has-suf input:not(#tl-x),html[data-theme] body.ct .has-suf>input.tl-input:not(#tl-x){padding-right:34px!important}
html[data-theme] body.ct .tl-field label,html[data-theme] body.ct .tl-field>span{display:block;font:500 13.5px/18px var(--tl-f-body);color:var(--tl-ink-2);margin:0 0 6px}

/* ---------- 12. "How this works & disclosures" expander: muted, collapsed ---------- */
html[data-theme] body.ct .tl-how{margin:var(--tl-gap) 0 8px;border:1px solid var(--tl-line)!important;border-radius:var(--tl-r)!important;background:var(--tl-surface)!important;box-shadow:none!important;padding:0!important}
html[data-theme] body.ct .tl-how>summary{display:flex;align-items:center;min-height:48px;padding:0 16px!important;font:600 14px/20px var(--tl-f-body)!important;color:var(--tl-ink-2)!important;list-style:none;cursor:pointer;background:none!important;border:0!important}
html[data-theme] body.ct .tl-how>summary::-webkit-details-marker{display:none}
html[data-theme] body.ct .tl-how>summary::after{content:"+"!important;margin-left:auto!important;font:400 18px/1 var(--tl-f-body)!important;color:var(--tl-ink-3)!important;background:none!important;-webkit-mask:none!important;mask:none!important;transform:none!important;width:auto!important;height:auto!important;border:0!important;position:static!important}
/* in-card variant: a row under a hairline instead of its own box (Planning results card) */
html[data-theme] body.ct .tl-how.flat{border:0!important;border-top:1px solid var(--tl-line)!important;border-radius:0!important;margin:12px 0 0}
html[data-theme] body.ct .tl-how.flat>summary,html[data-theme] body.ct .tl-how.flat .in,html[data-theme] body.ct .tl-how.flat>div{padding-left:0!important;padding-right:0!important}
html[data-theme] body.ct .tl-how[open]>summary::after{content:"\2013"!important}
html[data-theme] body.ct .tl-how>summary::before{display:none!important}
html[data-theme] body.ct .tl-how .in,html[data-theme] body.ct .tl-how>div{padding:0 16px 14px;font:400 13px/20px var(--tl-f-body);color:var(--tl-ink-2)}
html[data-theme] body.ct .tl-how .in p{margin:0 0 8px}

/* ---------- 13. Charts: axis, legend, series ---------- */
html[data-theme] body.ct .tl-chart svg text,html[data-theme] body.ct .tl-axis{font:400 12px/16px var(--tl-f-body)!important;fill:var(--tl-axis);color:var(--tl-axis)}
html[data-theme] body.ct .tl-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0 4px;font:500 13px/18px var(--tl-f-body);color:var(--tl-ink-2)}
html[data-theme] body.ct .tl-legend span{display:inline-flex;align-items:center;gap:7px}
html[data-theme] body.ct .tl-legend i{width:14px;height:4px;border-radius:2px!important;display:inline-block}
html[data-theme] body.ct .tl-legend b{color:var(--tl-ink);font-weight:600}
.tl-s1{--c:var(--tl-s1)}.tl-s2{--c:var(--tl-s2)}.tl-s3{--c:var(--tl-s3)}.tl-s4{--c:var(--tl-s4)}.tl-s5{--c:var(--tl-s5)}.tl-s6{--c:var(--tl-s6)}.tl-sb{--c:var(--tl-bench)}
html[data-theme] body.ct .tl-legend i[class^=tl-s],html[data-theme] body.ct .tl-dot[class*=tl-s]{background:var(--c)!important}
html[data-theme] body.ct svg :is(path,polyline,line)[class*=tl-s]{stroke:var(--c)!important}
html[data-theme] body.ct svg :is(circle,rect)[class*=tl-s]{fill:var(--c)!important}

/* ---------- 14. No motion inside any tool piece ---------- */
html body.ct .tl-hero,html body.ct .tl-hero *,html body.ct .tl-card,html body.ct .tl-card *,html body.ct .tl-how,html body.ct .tl-how *,html body.ct .tl-seg *,html body.ct .tl-chip,html body.ct .tl-btn{animation:none!important;transition:none!important}

/* ---------- 15. Site-wide primary buttons + selected segments = the cyan fade ----------
   Colour, ink, corner, border colour, hover / active / focus / disabled only: every button keeps its own height, padding, width
   and font size (Get the app keeps its arrow and the optical nudges in getapp.css). tools.css is the LAST file in the CSS bundle
   and the selectors below sit inside :is(), so they beat design.css .btn, gradients.css g1, quicksub.css, push.css, getapp.css,
   edit.css (owner) and the Desk acknowledgement's inline style without per-page patches.
   Secondary stays outlined (.btn.ghost, .hx-sec, .qs-ghost, .ps-done, .text, danger), text links stay links. */
html[lang][data-theme] body.ct :is(
  .btn:not(.ghost):not(.hx-sec):not(.text):not(.danger):not(.ct-danger):not(.ct-danger-ghost):not(.ed-danger):not(.dk-open),
  button.btn.me-lbtn.gapp, .ibtn:not(.ffol), .cx-go, .ga-btn, .gapp, header.top .tb a.gapp, #ct-wel a.gapp,
  .qs-btn:not(.qs-ghost), .ps-go:not(.ps-done), .dka .dka-btn, main form button[type=submit]:not([class]),
  .tl-btn.pri, a.tl-btn.pri:not(#tl-x), .tl-hero-go,
  .tabs a.on, .segc a.on, .cx-seg a.on, .ct-seg button.on, .ct-seg button[aria-pressed=true], .mvseg button[aria-pressed=true],
  .ga-tabs button[aria-selected=true], .tl-seg>a.on:not(#tl-x), .tl-seg>button.on, .tl-seg>[aria-pressed=true], .tl-seg>[aria-current]:not(#tl-x)
){background:var(--tl-pri-bg)!important;background-color:#3EC8C9!important;background-origin:border-box!important;color:var(--tl-pri-ink)!important;
  -webkit-text-fill-color:currentColor;border-color:transparent!important;border-radius:var(--tl-pri-r)!important;filter:none!important;text-shadow:none!important}
/* no shadow / glow (the stock tab has none); the push sheet keeps its sticky surface mask */
html[lang][data-theme] body.ct :is(
  .btn:not(.ghost):not(.hx-sec):not(.text):not(.danger):not(.ct-danger):not(.ct-danger-ghost):not(.ed-danger):not(.dk-open),
  button.btn.me-lbtn.gapp, .ibtn:not(.ffol), .cx-go, .ga-btn, .gapp, header.top .tb a.gapp, #ct-wel a.gapp, .qs-btn:not(.qs-ghost), .dka .dka-btn,
  main form button[type=submit]:not([class]), .tl-btn.pri, .tl-hero-go,
  .tabs a.on, .segc a.on, .cx-seg a.on, .ct-seg button.on, .ct-seg button[aria-pressed=true], .mvseg button[aria-pressed=true], .ga-tabs button[aria-selected=true],
  .tl-seg>.on, .tl-seg>[aria-pressed=true], .tl-seg>[aria-current]
):not(:focus-visible){box-shadow:none!important}
/* the svg arrow in Get the app follows the ink */
html[lang][data-theme] body.ct :is(.gapp,.ga-btn) svg{color:var(--tl-pri-ink)!important;stroke:currentColor}
/* hover / pressed (buttons only; a selected segment does not change on hover) */
html[lang][data-theme] body.ct :is(
  .btn:not(.ghost):not(.hx-sec):not(.text):not(.danger):not(.ct-danger):not(.ct-danger-ghost):not(.ed-danger):not(.dk-open),
  button.btn.me-lbtn.gapp, .ibtn:not(.ffol), .cx-go, .ga-btn, .gapp, header.top .tb a.gapp, #ct-wel a.gapp, .qs-btn:not(.qs-ghost), .ps-go:not(.ps-done), .dka .dka-btn,
  main form button[type=submit]:not([class]), .tl-btn.pri, .tl-hero-go
):not([disabled]):not([aria-disabled=true]):hover{background:var(--tl-pri-bg-hover)!important;filter:none!important}
html[lang][data-theme] body.ct :is(
  .btn:not(.ghost):not(.hx-sec):not(.text):not(.danger):not(.ct-danger):not(.ct-danger-ghost):not(.ed-danger):not(.dk-open),
  button.btn.me-lbtn.gapp, .ibtn:not(.ffol), .cx-go, .ga-btn, .gapp, header.top .tb a.gapp, #ct-wel a.gapp, .qs-btn:not(.qs-ghost), .ps-go:not(.ps-done), .dka .dka-btn,
  main form button[type=submit]:not([class]), .tl-btn.pri, .tl-hero-go
):not([disabled]):not([aria-disabled=true]):active{background:var(--tl-pri-bg-active)!important}
/* keyboard focus: a 2px ring outside the button (an outline, not a glow), on light and navy surfaces alike */
html[lang][data-theme] body.ct :is(
  .btn:not(.ghost):not(.hx-sec):not(.text):not(.danger):not(.ct-danger):not(.ct-danger-ghost):not(.ed-danger):not(.dk-open),
  button.btn.me-lbtn.gapp, .ibtn:not(.ffol), .cx-go, .ga-btn, .gapp, header.top .tb a.gapp, #ct-wel a.gapp, .qs-btn:not(.qs-ghost), .ps-go:not(.ps-done), .dka .dka-btn,
  main form button[type=submit]:not([class]), .tl-btn.pri, .tl-hero-go,
  .tabs a.on, .segc a.on, .cx-seg a.on, .ct-seg button, .mvseg button, .ga-tabs button, .tl-seg>a, .tl-seg>button
):focus-visible{outline:2px solid var(--tl-pri-ring)!important;outline-offset:2px!important;box-shadow:none!important}
/* disabled: same fade, faded out, no hover */
html[lang][data-theme] body.ct :is(
  .btn:not(.ghost):not(.hx-sec):not(.text):not(.danger):not(.ct-danger):not(.ct-danger-ghost):not(.ed-danger):not(.dk-open),
  button.btn.me-lbtn.gapp, .ibtn, .cx-go, .ga-btn, .gapp, .qs-btn:not(.qs-ghost), .ps-go:not(.ps-done), .dka .dka-btn,
  main form button[type=submit]:not([class]), .tl-btn.pri, .tl-hero-go
):is([disabled],[aria-disabled=true]){background:var(--tl-pri-bg)!important;opacity:.45!important;cursor:not-allowed!important;filter:none!important}
/* no motion on any of them */
html[lang][data-theme] body.ct :is(.btn,.ibtn,.cx-go,.ga-btn,.gapp,.qs-btn,.ps-go,.dka-btn,.tl-btn,.tl-hero-go,.tabs a,.segc a,.cx-seg a,.ct-seg button,.mvseg button,.ga-tabs button){transition:none!important;animation:none!important}

/* stat-tiles.css */
/* stat-tiles.css: ONE rounded stat-tile look site-wide (Oct 21 2026, Jason: "any place that would have a big returns card
   anywhere on the site like these should be in the same rounded style"). Same shape and type as the home / Desk market and
   model tiles: 12px corners (= the Top gainers tiles), big figure 26px / 700 (shrinks with the tile so three across never
   clips), label 14px / 500, sub-line 13px / 400, and a ▲ / ▼ before a figure coloured up or down. Fills stay as they are
   (only the home / Desk Our models tiles use the button fade, home-phone.css). Charts and tables untouched.
   Tiles: .stat (model, models, retired models, track record, stock valuation, dashboard, rebalance, x-ray), .rtiles .rt
   (stock returns, portfolio hero), .istat (scorecard), .ex-stat (ETF lookup / compare keys). */
html[data-theme] body.ct :is(.stat,.rtiles .rt,.istat,.ex-stat):not(#_){border-radius:12px!important;container-type:inline-size;min-width:0}
html[data-theme] body.ct :is(.stat,.rtiles .rt,.istat,.ex-stat) .v:not(#_){font-family:var(--f-body,"Inter",system-ui,sans-serif)!important;font-size:min(26px,20cqi)!important;line-height:1.2!important;font-weight:700!important;letter-spacing:-.015em;white-space:nowrap;font-variant-numeric:tabular-nums}
html[data-theme] body.ct :is(.stat,.rtiles .rt,.istat,.ex-stat)>.k:first-child:not(#_){font-size:14px!important;line-height:20px!important;font-weight:500!important}
html[data-theme] body.ct :is(.stat,.rtiles .rt,.istat,.ex-stat)>:is(.k:not(:first-child),.s):not(#_){font-size:13px!important;line-height:18px!important;font-weight:400!important}
html[data-theme] body.ct :is(.stat,.istat,.ex-stat) .v.up::before,html[data-theme] body.ct .rtiles .rt.up .v::before{content:"▲\00a0";font-size:.72em;vertical-align:.08em}
html[data-theme] body.ct :is(.stat,.istat,.ex-stat) .v.down::before,html[data-theme] body.ct .rtiles .rt.down .v::before{content:"▼\00a0";font-size:.72em;vertical-align:.08em}

/* explore.css */
/* Shared hub pieces (Oct 21 2026): the navy page hero (templates/_hero.html) and the xp-card / xp-st house style used by the
   dashboard, deal odds, fund moves and weekly recap. /explore itself now uses the Planning hub pieces (static/planning.css). */
html[data-theme] body.ct .xp-hero:not(#_){margin:10px 0 0;padding:16px 16px 14px;border-radius:0!important;color:#F2F4F5;
 background:radial-gradient(90% 120% at 100% 100%,rgba(62,200,201,.06) 0%,rgba(62,200,201,0) 55%),linear-gradient(115deg,#121314 0%,#121626 38%,#15203F 72%,#1A2D58 100%)!important}
html[data-theme] body.ct .xp-hero .hx-eye:not(#_){margin:0 0 6px!important;font:600 12px/16px var(--f-body,"Inter",sans-serif)!important;letter-spacing:.1em!important;text-transform:uppercase;color:#3EC8C9!important;white-space:nowrap}
html[data-theme] body.ct .xp-hero .xp-h:not(#_){margin:0 0 6px!important;font:600 24px/28px var(--f-head,"General Sans","Inter",sans-serif)!important;letter-spacing:-.01em!important;color:#fff!important}
html[data-theme] body.ct .xp-hero .xp-sub:not(#_){margin:0!important;font:400 14px/20px var(--f-body,"Inter",sans-serif)!important;color:#DCE4F2!important;max-width:468px}
html[data-theme] body.ct.pg-xp .xp-flow{display:flex;flex-direction:column;gap:12px;margin:12px 0 24px}
html[data-theme] body.ct.pg-xp .xp-card:not(#_){padding:16px!important;border:1px solid var(--line,#E3E6E8)!important;border-radius:var(--rd-card,14px)!important;overflow:hidden;
 background:var(--grad-edge,linear-gradient(90deg,#14205A 0%,#2B7FD3 70%,#3EC8C9 100%)) top/100% 2px no-repeat,var(--surface,#fff)!important;margin:0!important}
html[data-theme] body.ct.pg-xp .xp-card .sech:not(#_){display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px;margin:0 0 12px!important;padding:0!important;border:0!important}
html[data-theme] body.ct.pg-xp .xp-card .sech::before{display:none!important}
html[data-theme] body.ct.pg-xp .xp-card .sech h2:not(#_){margin:0!important;padding:0!important;font:600 17px/22px var(--f-head,"General Sans","Inter",sans-serif)!important;color:var(--ink,#121314)!important;letter-spacing:0!important}
html[data-theme] body.ct.pg-xp .xp-card .sech-sub:not(#_){font:400 13px/18px var(--f-body,"Inter",sans-serif)!important;color:var(--ink-3,#5F666B)!important}
@media (min-width:768px){
 html[data-theme] body.ct .xp-hero:not(#_){max-width:none!important;width:auto!important;margin:0 calc(50% - 50vw) 8px!important;padding:40px max(24px,calc(50vw - 410px))!important}
 html[data-theme] body.ct .xp-hero .xp-h:not(#_){font-size:36px!important;line-height:42px!important;margin-bottom:12px!important}
 html[data-theme] body.ct .xp-hero .xp-sub:not(#_){font-size:16px!important;line-height:24px!important;max-width:740px}
 html[data-theme] body.ct .xp-hero .hx-eye:not(#_){margin-bottom:8px!important}
 html[data-theme] body.ct.pg-xp .xp-flow{gap:16px;margin-top:16px}
 html[data-theme] body.ct.pg-xp .xp-card:not(#_){padding:20px!important}
}
/* hub stat tile (market dashboard; same look as the home Markets / Our models tiles, without the model fade) */
html[data-theme] body.ct.pg-xp .xp-sts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:8px}
html[data-theme] body.ct.pg-xp .xp-st:not(#_){display:flex;flex-direction:column;justify-content:flex-start;min-width:0;padding:14px 12px!important;border:0!important;border-radius:var(--rd-tile,12px)!important;background:var(--surface-2,#F3F5F6)!important;color:inherit!important;text-decoration:none!important;box-shadow:none!important;container-type:inline-size}
html[data-theme] body.ct.pg-xp .xp-st .xp-stl:not(#_){display:flex;align-items:center;gap:6px;font:500 14px/20px var(--f-body,"Inter",sans-serif)!important;color:var(--ink-2,#3F4549)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-theme] body.ct.pg-xp .xp-st .xp-stv:not(#_){display:block;margin-top:4px;font:700 min(26px,19cqi)/32px var(--f-body,"Inter",sans-serif)!important;letter-spacing:-.02em;white-space:nowrap;color:var(--ink,#121314)}
html[data-theme] body.ct.pg-xp .xp-st .xp-stv.up:not(#_){color:var(--up,#0B7340)!important}
html[data-theme] body.ct.pg-xp .xp-st .xp-stv.down:not(#_){color:var(--down,#B8302A)!important}
html[data-theme] body.ct.pg-xp .xp-st .xp-stv .td-ar{font-size:.72em;vertical-align:.08em}
html[data-theme] body.ct.pg-xp .xp-st .xp-sts1:not(#_){display:block;margin-top:2px;font:400 13px/18px var(--f-body,"Inter",sans-serif)!important;color:var(--ink-3,#5F666B)!important}
html[data-theme] body.ct.pg-xp .xp-st-s .xp-sts1:not(#_){margin-top:4px}
html[data-theme] body.ct.pg-xp .xp-card .sech>a:not(#_){margin-left:auto;font:500 14px/20px var(--f-body,"Inter",sans-serif)!important;color:var(--ink,#121314)!important;text-decoration:none!important;background:none!important;border:0!important}
html[data-theme] body.ct.pg-xp .xp-note:not(#_){margin:10px 0 0!important;font:400 13px/18px var(--f-body,"Inter",sans-serif)!important;color:var(--ink-3,#5F666B)!important}
html[data-theme] body.ct.pg-xp .xp-chart svg{max-width:100%;height:auto}
html[data-theme] body.ct.pg-xp .xp-qs:not(#_){margin:0!important;max-width:none!important;padding:0!important}
@media (min-width:768px){html[data-theme] body.ct.pg-xp .xp-sts{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}}
@media (min-width:1100px){html[data-theme] body.ct.pg-xp .xp-sts{grid-template-columns:repeat(4,minmax(0,1fr))}}
html[data-theme=dark] body.ct.pg-xp .xp-st:not(#_){background:rgba(255,255,255,.05)!important}
/* deal odds cards */
html[data-theme] body.ct.pg-xp .xp-card .sech h2 a:not(#_){color:inherit!important;text-decoration:none!important;background:none!important}
html[data-theme] body.ct.pg-xp .xp-lines:not(#_){list-style:none;margin:10px 0 0!important;padding:0!important}
html[data-theme] body.ct.pg-xp .xp-lines li:not(#_){margin:0!important;padding:0!important;font:400 13px/20px var(--f-body,"Inter",sans-serif)!important;color:var(--ink-2,#3F4549)!important}
html[data-theme] body.ct.pg-xp .xp-lines li::before{content:none!important}
html[data-theme] body.ct.pg-xp .xp-det:not(#_){margin:10px 0 0!important;border-top:1px solid var(--line,#E3E6E8)!important;padding:0!important;background:none!important;border-radius:0!important}
html[data-theme] body.ct.pg-xp .xp-det>summary:not(#_){display:flex;align-items:center;justify-content:space-between;min-height:44px;cursor:pointer;list-style:none;font:500 14px/20px var(--f-body,"Inter",sans-serif)!important;color:var(--ink,#121314)!important}
html[data-theme] body.ct.pg-xp .xp-det>summary::-webkit-details-marker{display:none}
html[data-theme] body.ct.pg-xp .xp-det>summary::after{content:"›";font-size:20px;line-height:1;transform:rotate(90deg);transition:none}
html[data-theme] body.ct.pg-xp .xp-det[open]>summary::after{transform:rotate(-90deg)}
html[data-theme] body.ct.pg-xp .xp-det .xp-lines:not(#_){margin:0 0 2px!important}
html[data-theme] body.ct.pg-xp .xp-howc .ihow:not(#_){margin:0!important;border:0!important;background:none!important;padding:0!important}
/* fund moves: one sentence per move, toggle, filter chips, legend */
html[data-theme] body.ct.pg-xp .xp-ctl:not(#_){display:flex;flex-direction:column;gap:10px}
html[data-theme] body.ct.pg-xp .xp-seg:not(#_){display:inline-flex;align-self:flex-start;gap:2px;padding:2px;border:1px solid var(--line,#E3E6E8)!important;border-radius:var(--rd-ctl,10px)!important;background:var(--surface-2,#F3F5F6)!important}
html[data-theme] body.ct.pg-xp .xp-seg a:not(#_){display:inline-flex;align-items:center;height:36px;padding:0 14px;border-radius:var(--rd-seg-in,8px)!important;font:600 14px/1 var(--f-body,"Inter",sans-serif)!important;color:var(--ink-2,#3F4549)!important;text-decoration:none!important;background:none!important}
html[data-theme] body.ct.pg-xp .xp-seg a.on:not(#_){background:linear-gradient(135deg,#4A9FE3 0%,#3EC8C9 100%)!important;color:#0B1A1B!important}
html[data-theme] body.ct.pg-xp .xp-chips{display:flex;flex-wrap:wrap;gap:6px}
html[data-theme] body.ct.pg-xp a.xp-chip:not(#_){display:inline-flex;align-items:center;height:34px;padding:0 12px;border:1px solid var(--line,#E3E6E8)!important;border-radius:var(--rd-ctl,10px)!important;font:600 13px/1 var(--f-body,"Inter",sans-serif)!important;color:var(--ink-2,#3F4549)!important;text-decoration:none!important;background:var(--surface,#fff)!important}
html[data-theme] body.ct.pg-xp a.xp-chip.on:not(#_){border-color:transparent!important;background:linear-gradient(135deg,#4A9FE3 0%,#3EC8C9 100%)!important;color:#0B1A1B!important}
html[data-theme] body.ct.pg-xp .xp-legend:not(#_){margin:0!important;display:flex;flex-wrap:wrap;align-items:center;gap:6px 6px;font:400 13px/22px var(--f-body,"Inter",sans-serif)!important;color:var(--ink-3,#5F666B)!important}
html[data-theme] body.ct.pg-xp .xp-legend .act{margin-left:6px}
html[data-theme] body.ct.pg-xp .xp-legend .act:first-child{margin-left:0}
html[data-theme] body.ct.pg-xp .xp-card .sech .ffol:not(#_){margin-left:auto;height:32px;font-size:13px!important}
html[data-theme] body.ct.pg-xp .xp-moves:not(#_){list-style:none;margin:0!important;padding:0!important}
html[data-theme] body.ct.pg-xp .xp-moves li:not(#_){margin:0!important;padding:10px 0!important;border-top:1px solid var(--line,#E3E6E8)}
html[data-theme] body.ct.pg-xp .xp-moves li:first-child{border-top:0;padding-top:2px!important}
html[data-theme] body.ct.pg-xp .xp-moves li::before{content:none!important}
html[data-theme] body.ct.pg-xp .xp-mv:not(#_){margin:0!important;font:400 15px/22px var(--f-body,"Inter",sans-serif)!important;color:var(--ink,#121314)!important}
html[data-theme] body.ct.pg-xp .xp-mv a:not(#_){color:var(--ink,#121314)!important;font-weight:600!important;text-decoration:none!important;background:none!important}
html[data-theme] body.ct.pg-xp .xp-mv .act{margin:0 2px;position:relative;top:-1px}
html[data-theme] body.ct.pg-xp .xp-mvs:not(#_){margin:2px 0 0!important;font:400 13px/18px var(--f-body,"Inter",sans-serif)!important;color:var(--ink-3,#5F666B)!important}
html[data-theme] body.ct.pg-xp a.xp-more:not(#_){display:flex;align-items:center;justify-content:space-between;min-height:44px;margin-top:2px;border-top:1px solid var(--line,#E3E6E8);font:500 14px/20px var(--f-body,"Inter",sans-serif)!important;color:var(--ink,#121314)!important;text-decoration:none!important}
html[data-theme] body.ct.pg-xp a.xp-more::after{content:"›";font-size:20px;line-height:1}
html[data-theme] body.ct.pg-xp .xp-card .list:not(#_){border:0!important;background:none!important;margin:0!important}
/* weekly recap: model tiles in the home Our models fade (dark ink; the arrow carries direction) */
html[data-theme] body.ct.pg-xp .xp-st.xp-mod:not(#_){background:linear-gradient(135deg,#4A9FE3 0%,#3EC8C9 100%)!important}
html[data-theme] body.ct.pg-xp .xp-st.xp-mod :is(.xp-stl,.xp-stv,.xp-sts1):not(#_){color:#0B1A1B!important}
html[data-theme] body.ct.pg-xp .xp-st.xp-mod .xp-stl:not(#_){font-weight:600!important}
html[data-theme] body.ct.pg-xp .xp-st .lg-row img,html[data-theme] body.ct.pg-xp .xp-st .lg-row .lgo{flex:none}

/* shared page hero (templates/_hero.html) on every page: 12px below it; buttons like the home hero's */
html[data-theme] body.ct .xp-hero:not(#_){margin-bottom:12px!important}
html[data-theme] body.ct.pg-xp .xp-flow{margin-top:0!important}
html[data-theme] body.ct .xp-hero .xp-cta{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
html[data-theme] body.ct .xp-hero a.xp-btn:not(#_){display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 16px;border-radius:var(--rd-ctl,10px)!important;border:1px solid rgba(255,255,255,.35)!important;color:#fff!important;background:transparent!important;font:600 14px/1 var(--f-body,"Inter",sans-serif)!important;text-decoration:none!important}
html[data-theme] body.ct .xp-hero a.xp-btn.pri:not(#_){border-color:transparent!important;background:linear-gradient(135deg,#4A9FE3 0%,#3EC8C9 100%)!important;color:#0B1A1B!important}
html[data-theme] body.ct .xp-hero h1.xp-h:not(#_){margin:0 0 6px!important;padding:0!important;border:0!important}
html[data-theme] body.ct .xp-note.cx-purpose:not(#_){margin:0 0 12px!important}
@media (min-width:768px){html[data-theme] body.ct .xp-hero:not(#_){margin-bottom:16px!important}html[data-theme] body.ct .xp-hero .xp-cta{margin-top:16px}}
html[data-theme] body.ct.pg-xp .xp-short{margin-top:10px}

/* Explore tiles = one component, modeled on the Planning hub tiles (padding 16, min-height 72, name 14/600, line 13/400),
   12px corners, equal heights in a row; the Planning tile spans the row with the same styling */

/* technicals.css */
/* technicals.css: Coteau Technicals + Analyst rating changes. Layout only: colors, fonts, radii and shadows come from the
   shared Planning / tools components (pl-card, tl-seg, pl-sw, act). */
.pl.tx .tx-q{display:flex;gap:8px;align-items:center}
.pl.tx .tx-q .pl-inp{flex:1 1 auto;min-width:0}
.pl.tx .tx-q .pl-inp input{width:100%;height:44px}
.pl.tx .tx-ctl,.pl.am .am-f{display:flex;flex-wrap:wrap;gap:8px}
.pl.tx .tx-tg{display:flex;flex-wrap:wrap;gap:4px 16px;margin:12px 0}
.pl.tx .tx-chart{overflow-x:auto;-webkit-overflow-scrolling:touch}
.pl.tx .tx-svg{min-width:640px;touch-action:pan-x pan-y}
.pl.tx .tx-chart.drawing .tx-svg{cursor:crosshair;touch-action:none}
.pl.tx .tx-chart.no-ma .tx-ma,.pl.tx .tx-chart.no-tl .tx-tl,.pl.tx .tx-chart.no-zone .tx-zone,.pl.tx .tx-chart.no-fib .tx-fib,.pl.tx .tx-chart.no-user .tx-user{display:none}
.pl.tx .tx-draw{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}
.pl.tx .tx-notes{margin:0;padding-left:18px}
.pl.tx .tx-notes li+li{margin-top:6px}
.pl.am .am-r .l{display:block;min-width:0}
.pl.am .am-r .act{margin-right:6px}
.pl.tx .pl-card>:last-child,.pl.am .pl-card>:last-child{margin-bottom:0}

/* actions.css */
/* actions.css: ONE buy / sell pill site-wide (insider trades, Congress trades, fund moves). Jason, Oct 21 2026: "Buys and
   sells for anything insider needs to be green or red. And congress. And same for the funds."
   buy (Buy, Purchase, New): filled green · add (Added): green outline · sell (Sell, Sale, Sold out): filled red ·
   trim (Trimmed, partial sale): red outline · neu (option exercise, gift, exchange): gray. White on filled, colored text on
   outline. .act-c-up / .act-c-dn colour a row's $ or share figure the same way. */
html[data-theme] body.ct .act:not(#_){display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--rd-tag,6px)!important;font:600 12px/1 var(--f-body,"Inter",sans-serif)!important;letter-spacing:.01em;white-space:nowrap;vertical-align:middle;border:1px solid transparent!important;text-transform:none!important}
html[data-theme] body.ct .act-buy:not(#_){background:#0B7340!important;border-color:#0B7340!important;color:#fff!important}
html[data-theme] body.ct .act-add:not(#_){background:transparent!important;border-color:#0B7340!important;color:#0B7340!important}
html[data-theme] body.ct .act-sell:not(#_){background:#B8302A!important;border-color:#B8302A!important;color:#fff!important}
html[data-theme] body.ct .act-trim:not(#_){background:transparent!important;border-color:#B8302A!important;color:#B8302A!important}
html[data-theme] body.ct .act-neu:not(#_){background:var(--surface-2,#EEF1F3)!important;border-color:var(--line,#D9DEE2)!important;color:var(--ink-2,#3F4549)!important}
html[data-theme] body.ct .act-c-up:not(#_){color:#0B7340!important}
html[data-theme] body.ct .act-c-dn:not(#_){color:#B8302A!important}
html[data-theme=dark] body.ct .act-add:not(#_),html[data-theme=dark] body.ct .act-c-up:not(#_){color:#3FBF7F!important;border-color:#3FBF7F!important}
html[data-theme=dark] body.ct .act-trim:not(#_),html[data-theme=dark] body.ct .act-c-dn:not(#_){color:#F07167!important;border-color:#F07167!important}
html[data-theme=dark] body.ct .act-c-up:not(#_),html[data-theme=dark] body.ct .act-c-dn:not(#_){border-color:transparent!important}

/* home-phone.css */
/* Phone home (homeorder, Oct 21 2026). Desktop: the .hp blocks and .td-lv are hidden; nothing else changes there.
   Phones (<768px, also the installed app): the live components, reordered: navy hero (copy + buttons, no chart), today card,
   top movers, Our models (same card as the today card; tiles outlined in brand cyan), add a watchlist, top news (4), social
   buzz, tools, market emails, fine print. Refinement only (Jason: "a little bigger and nicer"): +4px card padding, labels
   +1px, taller tiles, figures 26px (live 22px), one 16px gap between every card. No animation or transitions. */
body.ct .hp,body.ct .td-lv{display:none}
/* the today card's arrow is its own span (td-ar) so phones can size it; everywhere else it looks as before */
html[data-theme] body.ct .td-i b .td-ar{display:inline;font-size:inherit;line-height:inherit;color:inherit;margin:0}
/* Our models tiles (public phone + Desk): the primary-button fade (135deg #4A9FE3 -> #3EC8C9) with the button ink #0B1A1B.
   Green #0B7340 / red #B8302A on that fade measure 2.1-2.9:1 (fail); #0B1A1B is 6.3-8.8:1, so the figure is dark ink and
   the arrow carries the direction. */
html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-i.hp-mod{background:linear-gradient(135deg,#4A9FE3 0%,#3EC8C9 100%)!important;box-shadow:none!important;border:0!important}
html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-i.hp-mod :is(span,b,small,.td-lv,b.ct-up,b.ct-dn,b.hp-wait){color:#0B1A1B!important}
html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-i.hp-mod>span{font-weight:600}
/* Desk home (/me/, me_home.html): one column of cards with one 16px gap; Our models card (cyan-outlined tiles, context
   under each figure) at every width; Desk-only, never on public pages */
body.ct.me-pg .me-flow{display:flex;flex-direction:column;gap:12px}
html[data-theme] body.ct.me-pg .me-flow>*{margin-top:0!important;margin-bottom:0!important}
html[data-theme] body.ct.me-pg .me-flow .td-card{margin:0!important}
html[data-theme] body.ct.me-pg .me-flow .td-lv{display:block;margin-top:2px;font-size:13px;line-height:18px;color:var(--ink-3,#5F666B)}
html[data-theme] body.ct.me-pg .me-flow .td-i b.hp-wait{font-size:15px;font-weight:600;color:var(--ink-2,#4B5257)}
@media (max-width:767px){
 body.pg-home .hm-flow{display:flex;flex-direction:column;gap:12px}
 body.pg-home .hm-flow>.hm-duo{display:contents}
 html[data-theme] body.ct.pg-home .hm-flow>*:not(.hx),html[data-theme] body.ct.pg-home .hm-flow .hm-duo>*{margin-top:0!important;margin-bottom:0!important}
 html[data-theme] body.ct.pg-home .hm-flow>.hx{margin-bottom:0!important}
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-card{margin:0!important}
 body.pg-home .hm-flow>.hx .hx-card{display:none!important}
 body.pg-home .hm-flow>.hx{order:0}
 body.pg-home .hm-flow>.td-wrap{order:1}
 body.pg-home .hm-flow>.hm-movers{order:2}
 body.pg-home .hm-flow>.td-wrap.hp-modw{order:3}
 body.pg-home .hm-flow>.hp-wl{order:4}
 body.pg-home .hm-flow .hm-newsp{order:5}
 body.pg-home .hm-flow .hm-social{order:6}
 body.pg-home .hm-flow>.hp-tools{order:7}
 body.pg-home .hm-flow>.qs-wrap{order:8}
 body.pg-home .hm-flow>.hiw{order:9}
 body.pg-home .hm-flow>.hm-fine{order:10;margin-top:8px!important}
 html[lang][data-theme] body.ct.pg-home .hm-flow .hv-duo .hm-newsp .list.acc-news>.news:nth-child(n+5){display:none!important}
 body.ct .hp{display:block}

 /* today card + Our models: same card, a little roomier; figures 26px; level / context under each figure */
 html[data-theme] body.ct.pg-home .hm-flow>.td-wrap{padding:0!important}
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-card{padding:20px 16px 14px!important}
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-h{margin:0 0 14px!important}
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-h h2{font-size:18px!important}
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-asof{font-size:14px!important}
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-idx{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin:0 0 12px!important}
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-i{display:block;min-width:0;padding:14px 10px!important}
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-i span{font-size:14px!important;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-i b{font-size:26px!important;line-height:32px!important;margin-top:4px;white-space:nowrap;letter-spacing:-.02em}
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-i b .td-ar{display:inline!important;font-size:.72em!important;line-height:1!important;vertical-align:.08em;color:inherit!important;overflow:visible!important}
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-i b.hp-wait{font-size:15px!important;line-height:32px!important;font-weight:600;color:var(--ink-2,#4B5257);letter-spacing:0}
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-lv{display:block;margin-top:2px;font-size:13px;line-height:18px;color:var(--ink-3,#5F666B);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-list a{font-size:16px!important;padding:13px 0!important}
 /* ours: brand cyan outline on each model tile (same background and corners as the market tiles) */
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .hp-mod span,html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .hp-mod .td-lv{white-space:normal}

 /* movers, news, social: same layout, +4px padding */
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) :is(.hm-movers,.hm-newsp,.hm-social,.me-news,.me-watch,.me-alerts,.scsec,.hm-mod){padding:16px 16px!important}

 /* add a watchlist (card shape of the movers/news cards) */
 html[data-theme] body.ct .hp-wl{display:flex!important;align-items:center;gap:14px;padding:16px 18px!important;border:1px solid var(--line,#E3E6E8);border-radius:12px;background:var(--surface,#fff)}
 body.ct .hp-wl p{margin:0;font-size:16px;line-height:1.4;color:var(--ink,#121314)}
 html[data-theme] body.ct .hp-wl-go{margin-left:auto;flex:none;display:inline-flex;align-items:center;height:40px;padding:0 16px!important;font:600 14px/1 var(--f-body,"Inter",sans-serif)!important;text-decoration:none!important;border-radius:4px}

 /* tools: bigger bordered tiles, three across, header like every card */
 html[data-theme] body.ct .hp-tools{padding:16px 18px!important;border:1px solid var(--line,#E3E6E8);border-radius:12px;background:var(--surface,#fff)}
 html[data-theme] body.ct .hp-tools .td-h{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 14px}
 html[data-theme] body.ct .hp-tools .td-h h2{margin:0!important;font:600 18px/24px var(--f-head,"General Sans","Inter",sans-serif)}
 body.ct .hp-tools .hp-more{font-size:14px}
 body.ct .hp-tl-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
 body.ct .hp-tl-row a{display:flex;flex-direction:column;gap:6px;min-height:92px;padding:14px 12px;border:1px solid var(--line,#E3E6E8);border-radius:4px;background:var(--surface,#fff);color:inherit;text-decoration:none!important}
 body.ct .hp-tl-row b{font:600 16px/1.2 var(--f-head,"General Sans","Inter",sans-serif);color:var(--ink,#121314)}
 body.ct .hp-tl-row span{font-size:13px;line-height:1.35;color:var(--ink-3,#5F666B)}
 html.acc1[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) :is(.td-card,.hp-wl,.hp-tools){background:var(--grad-edge) top/100% 2px no-repeat,var(--surface)!important}
 html[data-theme] body.ct .hp-wl{display:block!important;padding:16px!important;border-radius:var(--r-md,12px)!important}
 html[data-theme] body.ct .hp-wl .td-h{margin:0 0 10px!important}
 body.ct .hp-wl-row{display:flex;align-items:center;gap:14px}
 html[data-theme] body.ct .hp-tools{padding:16px!important;border-radius:var(--r-md,12px)!important}
 html[data-theme] body.ct .hp-tools .td-h{margin:0 0 12px!important}
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) :is(.td-list a,.hp-wl p,.hm-socl a,.me-watch .row,.me-alerts .row .t):not(#_){font-size:15px!important;font-weight:400!important}
 html[data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) :is(.hp-wl-go,.qs-btn,.hm-gl button,.mvfc):not(#_){font-size:14px!important;font-weight:600!important}
 html[lang][data-theme] body.ct.pg-home .hm-flow .hv-duo .hm-newsp .list.acc-news:not(#_){margin-bottom:0!important}
 html[lang][data-theme] body.ct.pg-home .hm-flow .hv-duo .hm-newsp .list.acc-news>.news:nth-child(4):not(#_){padding-bottom:0!important;border-bottom:0!important}
 html[data-theme] body.ct.pg-home .hm-flow .hp-tools :is(.hp-tl-row>a,.hp-tl):not(#_){border-radius:12px!important}
}

/* hero eyebrow: one clean line ("Systematic research · tools"), phones and desktop */
html[lang][data-theme] body.ct.pg-home .hx .hx-eye:not(#_){white-space:nowrap!important;font-size:12px!important;line-height:16px!important;font-weight:600!important;letter-spacing:.1em!important}

/* Our models tiles: identical proportions (one sub-line each; equal rows) */
html[data-theme] body.ct :is(.hm-flow,.me-flow) .hp-mods .td-idx:not(#_){grid-auto-rows:1fr!important;align-items:stretch!important}

/* header 'See all' links: one style (14px / 500 Inter, heading ink, no underline) */
html[lang][data-theme] body.ct :is(.hm-flow,.me-flow) a.hp-see:not(#_){font:500 14px/20px var(--f-body,"Inter",system-ui,sans-serif)!important;color:var(--ink,#121314)!important;text-decoration:none!important;background-image:none!important;border:0!important;box-shadow:none!important;letter-spacing:0!important}
html[lang][data-theme] body.ct :is(.hm-flow,.me-flow) .td-h>a.hp-see:not(#_){margin-left:auto}
/* Our models: the card's own link to /models, same wording, as an obvious full-width tap row (>=44px, chevron at the right) */
html[lang][data-theme] body.ct :is(.hm-flow,.me-flow) .td-list.hp-mods-l:not(#_){margin:12px 0 0!important;border-top:1px solid var(--line,#E3E6E8)!important}
html[lang][data-theme] body.ct.pg-home :is(.hm-flow,.me-flow) .td-list.hp-mods-l a.hp-see:not(#_){font-weight:500!important;color:var(--ink,#121314)!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px;min-height:44px!important;padding:10px 0 0!important;font-size:14px!important;line-height:20px!important}
html[lang][data-theme] body.ct :is(.hm-flow,.me-flow) .td-list.hp-mods-l a.hp-see::after{content:"›"!important;display:inline!important;color:var(--ink,#121314)!important;font-size:20px!important;line-height:1!important;flex:none}

/* pass 4/5 refinements, now at every width and on every Desk page (were phone-only) */
/* pass 4 (Jason, mock 3 notes): tight gaps, the live top stripe on every card, rounded % tiles, calm section headings */
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) :is(.td-h,.sech,.mvtop) h2:not(#_){margin:0!important;padding:0!important;font:600 17px/22px var(--f-head,"General Sans","Inter",sans-serif)!important;color:var(--ink,#121314)!important;letter-spacing:0!important}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) .td-h.td-hs{display:block!important;margin:0 0 12px!important}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) .td-sub{display:block;margin-top:2px;font-size:13px;line-height:18px;color:var(--ink-3,#5F666B)}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) .td-card{padding:16px!important;border:1px solid var(--line,#E3E6E8)!important;border-radius:var(--r-md,12px)!important}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) .td-list li:last-child a{padding-bottom:0!important}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) .td-idx{margin:0 0 8px!important}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) .td-i{border-radius:12px!important}
/* movers: heading, then the session/status as its sub-line (layout of the card itself unchanged) */
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) .hm-movers .mvtop{flex-wrap:wrap;row-gap:2px}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) .hm-movers .mvtop>a{margin-left:auto;white-space:nowrap}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) .hm-movers .mvstat{order:3;flex-basis:100%;margin:0!important}
/* type scale (one size + weight per role, public phone home and Desk home):
section heading 18/500 General Sans · card sub-label 13/400 · big % 26/700 · tile label 14/500 · tile sub-line 13/400 ·
list / news text 15 (headlines 600, lines 400) · small meta 12/400 · links 14/500 · buttons 14/600 */
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) :is(.td-sub,.sech-sub,.mvstat,.mvstat b,.mvstat span):not(#_){font-size:13px!important;line-height:18px!important;font-weight:400!important}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) .td-i>span:not(#_){font-size:14px!important;line-height:20px!important;font-weight:500!important}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) :is(.td-lv,.hp-tl-row span,.mvct>span):not(#_){font-size:13px!important;line-height:18px!important;font-weight:400!important}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) :is(.hp-tl-row b,.mvct b):not(#_){font-family:var(--f-body,"Inter",sans-serif)!important;font-size:14px!important;line-height:20px!important;font-weight:600!important}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) .news .h:not(#_){font-size:15px!important;line-height:21px!important;font-weight:600!important}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) :is(.news .m,.hm-cred,.hm-mvnote,.mvnote,.smm,.me-alerts .row .small):not(#_){font-size:12px!important;line-height:16px!important;font-weight:400!important}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) :is(.sech a,.hp-more,.td-h a):not(#_){font-size:14px!important;font-weight:500!important}
html[data-theme] body.ct:is(.pg-home,.v-d) .hm-flow .qs-hd h2.qs-h:not(#_){font-weight:600!important;font-size:17px!important;line-height:22px!important;color:#fff!important}
html[data-theme] body.ct:is(.pg-home,.v-d) .hm-flow .hm-fine:not(#_),html[data-theme] body.ct.me-pg .ox-disc:not(#_){font-size:12px!important;line-height:18px!important}
html[data-theme] body.ct.me-pg .me-al:not(#_){font-size:14px!important;font-weight:600!important}
/* news card: bottom padding = top padding (no 10px item padding + 12px list margin under the 4th headline) */
/* all widths (Jason: "and the desktop too"): Our models on the desktop home too, below the market card; figures, context lines */
body.ct .hp.hp-modw{display:block}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) .hp-mods .td-lv{display:block;margin-top:2px;color:var(--ink-3,#5F666B);white-space:normal}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) .td-i b:not(#_){font-size:26px!important;line-height:32px!important;font-weight:700!important;white-space:nowrap;letter-spacing:-.02em}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) .td-i b .td-ar{display:inline!important;font-size:.72em!important;line-height:1!important;vertical-align:.08em;color:inherit!important}
html[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) .hp-mod span{white-space:normal}
/* Desk pages beyond the home: the same section heading and the live top stripe on their cards */
html[data-theme] body.ct.v-d :is(.sech,.td-h,.mvtop) h2:not(#_){font:600 17px/22px var(--f-head,"General Sans","Inter",sans-serif)!important;letter-spacing:0!important}
html.acc1[data-theme] body.ct.v-d :is(.hm-mod,section.card,.wrap>.list,main>.list,.wrap>section>.list,.ol-new):not(.list .list):not(#_){background:var(--grad-edge) top/100% 2px no-repeat,var(--surface)!important}
html.acc1[data-theme] body.ct:is(.pg-home,.v-d) :is(.hm-flow,.me-flow) .td-card:not(#_){background:var(--grad-edge) top/100% 2px no-repeat,var(--surface)!important}
/* Our models grid at desktop widths: 3 across in the public home's narrow column, 5 across in the wide Desk column */
@media (min-width:768px){
 html[data-theme] body.ct .hm-flow .hp-mods .td-idx:not(#_){grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
 html[data-theme] body.ct .me-flow .hp-mods .td-idx:not(#_){grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:8px!important}
}
@media (min-width:768px) and (max-width:1100px){html[data-theme] body.ct .me-flow .hp-mods .td-idx:not(#_){grid-template-columns:repeat(3,minmax(0,1fr))!important}}
html[data-theme] body.ct :is(.hm-flow,.me-flow) .td-card>.td-list:not(#_){width:100%!important;max-width:none!important;grid-column:1/-1!important}
html[data-theme] body.ct :is(.hm-flow,.me-flow) .td-card>.td-list>li:not(#_){max-width:none!important}
/* inside a striped card the old 72px accent bar over the heading is redundant (the home already hides it) */
html[data-theme] body.ct.v-d :is(.hm-mod,section.card,.td-card) .sech::before,html[data-theme] body.ct.v-d :is(.hm-mod,section.card) .mvtop::before{display:none!important}

/* rounding.css */
/* rounding.css: ONE radius scale site-wide (Jason, Oct 21 2026: "make sure all tiles and buttons and sections are rounded.
   Nothing squared off unless it's a navy blue header or disclaimer or something that really stands out"). Reverses the
   square tabs / square fade buttons of earlier passes and the old global square rule (coteau.css html body.ct *{border-radius:0}).
   Scale: cards and sections 14px · tiles 12px · buttons, tab rows, chips and inputs 10px (inner segment buttons 8px so
   they nest) · small tags / badges 6px.
   Stays square on purpose: navy hero / header bands (.hx, .hx-copy, .tl-hero, .nhero, .pl-hero, .scmp-hero), the navy
   splash / welcome backgrounds, disclaimer and disclosure strips, full-bleed nav bars and the drawer, tables and charts,
   and rows inside a list (they sit flush inside the rounded card). Last in the bundle. */
html body.ct{--rd-card:14px;--rd-tile:12px;--rd-ctl:10px;--rd-seg-in:8px;--rd-tag:6px;--tl-r:10px;--tl-r-track:10px;--tl-r-chip:10px}

/* cards and sections: 14px; the top stripe is a background, so it follows the corner; clip so inner bands follow too */
html[data-theme] body.ct :is(.card,.list,.tlist,.td-card,.hm-mod,.hm-movers,.mvsec,.qs-card,.scmp-card,.ex-card,.pl-card,.pl-tc,.tl-card,.tl-how:not(.flat),.ex-how,.ex-th,.ox-card,.ct-pcard):not(#_):not(.list>.news):not(.list .list){border-radius:var(--rd-card)!important}
html[data-theme] body.ct :is(.td-card,.hm-mod,.hm-movers,.qs-card,.scmp-card,.ex-card,.pl-card,.tl-card):not(#_){overflow:hidden}
html[data-theme] body.ct .list .list:not(#_){border-radius:var(--rd-tile)!important}

/* tiles: 12px */
html[data-theme] body.ct :is(.td-i,.mvt,.hp-tl-row>a,.tl-stat,.pill.earn,.qs-ed,.news.me-n,.rr-wait,.tc-pend,.scmp-pend,.scmp-st,.g-none,.ol-warn,.stat,.rt,.istat,.ex-stat):not(#_){border-radius:var(--rd-tile)!important}

/* buttons: 10px (fade-gradient primaries, Get the app, Subscribe, hero, Desk / owner, login, tool buttons) */
html[data-theme] body.ct :is(.btn,a.btn,button.btn,.tl-btn,a.tl-btn,.qs-btn,.dki-go,.gapp,.cx-qapp,.ct-getapp,.hx-pri,.hx-sec,.me-al,.ibtn,.scmp-info,.dhb-chip,.iconbtn.small,.ox-btn,input[type=submit],button[type=submit]):not(#_):not(#tl-x){border-radius:var(--rd-ctl)!important}
html[data-theme] body.ct :is(.iconbtn.menubtn,.iconbtn.sbtn,.iconbtn.dclose,.hiw-x):not(#_){border-radius:var(--rd-ctl)!important}

/* tab rows, segmented controls and chips: 10px outside, 8px for the buttons inside */
html[data-theme] body.ct :is(.tl-seg,.hm-gl,.tabs,.cx-seg,.ct-seg,.scmp-tabs,.hx-tabs,.ga-tabs):not(#_){border-radius:var(--rd-ctl)!important}
html[data-theme] body.ct :is(.tl-seg,.hm-gl,.tabs,.cx-seg,.ct-seg,.scmp-tabs,.ga-tabs)>:is(a,button,span):not(#_):not(#tl-x){border-radius:var(--rd-seg-in)!important}
html[data-theme] body.ct :is(.hx-tabs button,.fchip,.mvfc,.tl-chip,a.tl-chip,.scmp-chip,.ct-pchip,.tl-hero-chip,.dnav a):not(#_):not(#tl-x){border-radius:var(--rd-ctl)!important}

/* inputs: 10px */
html[data-theme] body.ct :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not(.sw),select,textarea,.tl-input,.qs-em,.dki-in):not(#_){border-radius:var(--rd-ctl)!important}

/* small tags and badges: 6px */
html[data-theme] body.ct :is(.mtag,.chip,.chg,.mvcc,.b2,.akind,.ol-pill,.tl-tag,.pl-tag,.eyebrow.tag,.ct-pv,.bpill):not(#_){border-radius:var(--rd-tag)!important}

/* square on purpose (navy bands, splash, disclaimers, nav, tables) */
html[data-theme] body.ct :is(.hx,.hx-copy,.tl-hero,.nhero,.pl-hero,.scmp-hero,.drawer,.dhead,nav.bottom,.ct-wel,.ct-wel-card,.hm-fine,.ox-disc,table,th,td,.list>.news,.list>.row):not(#_){border-radius:0!important}
html[data-theme] body.ct .qs-card .qs-hd:not(#_){border-radius:0!important}
/* Desk ack pop-up, Desk login, splash forms */
html[data-theme] body.ct .dka .dka-card:not(#_){border-radius:var(--rd-card)!important;overflow:hidden}
html[data-theme] body.ct .dka :is(.dka-btn,button):not(#_){border-radius:var(--rd-ctl)!important}
html[data-theme] body.ct .dka .dka-live:not(#_){border-radius:var(--rd-tile)!important}

/* get-app pieces (Jason: "were the download-app tiles and buttons fixed too?"): get-app landing, install overlay,
   push / install sheet, drawer Get the app, welcome splash, Desk equivalents. Navy hero band (.ga-hero) stays square. */
html[data-theme] body.ct :is(.ga-btn,.ga-x,.ct-getapp-drawer,.ct-getapp,.ps-go,.ps-link,.ps-x,.ct-wel-go,.ct-wel-cont,.dk-getapp,.dka-btn):not(#_):not(#tl-x){border-radius:var(--rd-ctl)!important}
html[data-theme] body.ct :is(.ga-steps>li,.ga-list>a,.ct-wel-qr):not(#_){border-radius:var(--rd-tile)!important}
html[data-theme] body.ct .ga-steps .n:not(#_){border-radius:var(--rd-tag)!important}
html[data-theme] body.ct :is(.ga-what,.ga-ovc):not(#_){border-radius:var(--rd-card)!important;overflow:hidden}
html[data-theme] body.ct .ga-ovc:not(#_){color:var(--ink,#121314)!important}   /* was --white on a white card in light mode (text invisible) */
html[data-theme] body.ct .ps-sheet:not(#_){border-radius:var(--rd-card) var(--rd-card) 0 0!important;overflow:hidden}
@media (min-width:768px){html[data-theme] body.ct .ps-sheet:not(#_){border-radius:var(--rd-card)!important}}
html[data-theme] body.ct .ga-hero:not(#_){border-radius:0!important}

/* ── The live blue top stripe on EVERY rounded tile and card (Jason, Oct 21 2026: "every single one", "including in the tools
   links", "and explore"). Baked into the shared classes here, last in the bundle, at every width, public and Desk.
   Cards: a 2px background layer (the live look). Tiles: a 2px ::after strip clipped by the corner (overflow:hidden), so it
   sits on top of any tile background, including the gradient Our models tiles (navy there, so it reads on the cyan fade).
   Exempt: inline % pills / chips (.chg,.mvcc,.chip,.mtag) and buy/sell pills (.act). */
html body.ct{--stripe:var(--grad-edge,linear-gradient(90deg,#14205A 0%,#2B7FD3 70%,#3EC8C9 100%))}
html[data-theme] body.ct :is(.card,.td-card,.hm-mod,.hm-movers,.mvsec,.hp-wl,.hp-tools,.xp-card,.pl-card,.tl-card,.scmp-card,.ex-card,.ox-card,.ct-pcard,.list,.ol-new):not(.list .list):not(.shero):not(#_):not(#__){background:var(--stripe) top/100% 2px no-repeat,var(--surface,#fff)!important}
html[data-theme] body.ct :is(.td-i,.hp-tl-row>a,.pl-tc,.pl .pl-st,.pl .pl-note,.pl-mbox,.xp-st,.mvt,.stat,.rtiles .rt,.istat,.ex-stat,.tl-stat,.news.me-n,.ga-steps>li,.ga-list>a,.eh-tile,.tm-t,.ct-st,.pp-t,.oc-t,.bl-t,.rr-t,.scmp-st,.scmp-t,.qs-ed,.tour-t,.qs-card,.ex-th,.ex-how,.tc-pend,.scmp-pend,.g-none,.ol-warn,.rr-wait):not(#_){position:relative;overflow:hidden}
html[data-theme] body.ct :is(.td-i,.hp-tl-row>a,.pl-tc,.pl .pl-st,.pl .pl-note,.pl-mbox,.xp-st,.mvt,.stat,.rtiles .rt,.istat,.ex-stat,.tl-stat,.news.me-n,.ga-steps>li,.ga-list>a,.eh-tile,.tm-t,.ct-st,.pp-t,.oc-t,.bl-t,.rr-t,.scmp-st,.scmp-t,.qs-ed,.tour-t,.qs-card,.ex-th,.ex-how,.tc-pend,.scmp-pend,.g-none,.ol-warn,.rr-wait):not(#_)::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--stripe);pointer-events:none;z-index:1}
html[data-theme] body.ct .td-i.hp-mod:not(#_)::after{background:#0A1124}
/* the Planning hub / Explore wide tile spans the row */
html body.ct .pl-idx>.pl-tc-wide{grid-column:1/-1}

/* ── ONE page-hero fill (Jason, Oct 21 2026: "The blue is the wrong color for the header ... like on the home page that first box").
   Every navy page hero uses the home hero's exact fill (--grad-hero, the token the home .hx-copy / desktop .hx use), its 1px
   nav-fade line along the bottom (no top cyan line, no drop shadow), cyan eyebrow, white headline, #DCE4F2 sub-line. */
html body.ct{--hero-fill:var(--grad-hero,radial-gradient(90% 120% at 100% 100%,rgba(62,200,201,.06) 0%,rgba(62,200,201,0) 55%),linear-gradient(115deg,#121314 0%,#121626 38%,#15203F 72%,#1A2D58 100%));--hero-eye:#3EC8C9;--hero-ink:#FFFFFF;--hero-sub:#DCE4F2}
html[data-theme] body.ct :is(.xp-hero,.pl-hero,.tl-hero,.nhero,.scmp-hero,.ga-hero):not(#_):not(#__){background:var(--hero-fill)!important;box-shadow:none!important;border:0!important;color:#F2F4F5!important;position:relative}
html[data-theme] body.ct :is(.xp-hero,.pl-hero,.tl-hero,.nhero,.scmp-hero,.ga-hero):not(#_)::after{content:""!important;position:absolute!important;left:0!important;right:0!important;top:auto!important;bottom:0!important;height:1px!important;border-radius:0!important;background:var(--grad-navfade,linear-gradient(90deg,rgba(20,32,90,0) 0%,#14205A 30%,#2B7FD3 75%,#3EC8C9 100%))!important;opacity:.7!important}
html[data-theme] body.ct :is(.xp-hero,.pl-hero,.tl-hero,.nhero,.scmp-hero,.ga-hero) :is(h1,h2,.tl-title,.xp-h):not(#_):not(#__){color:var(--hero-ink)!important}
html[data-theme] body.ct :is(.xp-hero,.pl-hero,.tl-hero,.nhero,.scmp-hero) :is(.hx-eye,.pl-crumb,a.pl-crumb):not(#_):not(#plx):not(#ply){color:var(--hero-eye)!important}
html[data-theme] body.ct :is(.xp-hero,.pl-hero,.tl-hero,.nhero,.scmp-hero,.ga-hero) :is(.xp-sub,p.pl-line,.tl-line,p.tl-line,.ga-lede,.nhero-sub,.scmp-sub):not(#_):not(#__){color:var(--hero-sub)!important}

/* ── ONE type role, one look, everywhere (Jason, Oct 21 2026: "make sure the fonts are cohesive too", "the color of the same fonts
   for the same things"). Reference = the home page. Tokens below; all heroes, tiles, labels, links and buttons read from them. */
html body.ct{--t-ink:#121314;--t-ink-2:#4B5257;--t-mute:#5F666B;--t-up:#0B7340;--t-dn:#B8302A;--t-body:var(--f-body,"Inter",system-ui,sans-serif);--t-head:var(--f-head,"General Sans","Inter",sans-serif)}
html[data-theme=dark] body.ct{--t-ink:#F2F4F5;--t-ink-2:#C9CED2;--t-mute:#9AA3A9}
/* hero eyebrow 12/600/16 .1em cyan; headline General Sans 600 24/28 (36/42 from 768px); sentence 14/20 (16/24 from 768px) */
html[data-theme] body.ct :is(.xp-hero,.pl-hero,.tl-hero,.nhero,.scmp-hero) :is(.hx-eye,.pl-crumb,a.pl-crumb):not(#_):not(#plx):not(#ply){font:600 12px/16px var(--t-body)!important;letter-spacing:.1em!important;text-transform:uppercase!important}
html[data-theme] body.ct :is(.pl-hero,.tl-hero,.nhero,.scmp-hero) h1:not(#_):not(#__){font:600 24px/28px var(--t-head)!important;letter-spacing:-.01em!important;margin:4px 0 6px!important}
html[data-theme] body.ct :is(.pl-hero,.tl-hero) :is(p.pl-line,.tl-line):not(#_):not(#__){font:400 14px/20px var(--t-body)!important}
@media (min-width:768px){
 html[data-theme] body.ct :is(.pl-hero,.tl-hero,.nhero,.scmp-hero) h1:not(#_):not(#__){font-size:36px!important;line-height:42px!important;margin:6px 0 10px!important}
 html[data-theme] body.ct :is(.pl-hero,.tl-hero) :is(p.pl-line,.tl-line):not(#_):not(#__){font-size:16px!important;line-height:24px!important}
}
/* link-tile names 14/600/20 ink; tile descriptions 13/400/18 muted (home Tools tiles = Explore = Planning) */
html[data-theme] body.ct :is(.hp-tl-row>a>b,.pl-tc b):not(#_):not(#__){font:600 14px/20px var(--t-body)!important;color:var(--t-ink)!important}
html[data-theme] body.ct :is(.hp-tl-row>a>span,.pl-tc b+span):not(#_):not(#__){font:400 13px/18px var(--t-body)!important;color:var(--t-mute)!important}
/* stat-tile labels 14/500/20 muted; sub-lines 13/400/18 muted (the gradient Our models tiles keep their dark ink) */
html[data-theme] body.ct :is(.xp-st:not(.xp-mod)>.xp-stl,.td-i:not(.hp-mod)>span:first-child,.stat>.k:first-child,.rtiles .rt>.k:first-child,.istat>.k:first-child,.ex-stat>.k:first-child):not(#_):not(#__){font:500 14px/20px var(--t-body)!important;color:var(--t-mute)!important}
html[data-theme] body.ct :is(.xp-st:not(.xp-mod)>.xp-sts1,.td-i:not(.hp-mod) .td-lv):not(#_):not(#__){font:400 13px/18px var(--t-body)!important;color:var(--t-mute)!important}
/* section "See all" links: 14/500/20, ink, no underline */
html[data-theme] body.ct :is(.sech,.td-h,.mvtop)>a:not(.btn):not(#_):not(#__){font:500 14px/20px var(--t-body)!important;color:var(--t-ink)!important;text-decoration:none!important}
/* section sub-lines and small meta text: 13/18 muted */
html[data-theme] body.ct :is(.sech-sub,.small.muted,.muted.small):not(#_):not(#__){font-family:var(--t-body)!important;font-size:13px!important;line-height:18px!important;color:var(--t-mute)!important}
html[data-theme] body.ct .muted:not(.row):not(#_){color:var(--t-mute)!important}
/* buttons: 14/600 Inter everywhere */
html[data-theme] body.ct :is(a.btn,button.btn,.tl-btn,a.tl-btn,.xp-btn,.hx-pri,.hx-sec,.qs-btn,.pl-btn):not(#_):not(#tl-x){font-family:var(--t-body)!important;font-size:14px!important;font-weight:600!important}
/* up / down figures: one green, one red (not on the gradient model tiles, which use dark ink) */
html[data-theme] body.ct :is(.up,.pos,.ct-up,.chg.up):not(.rt):not(.hp-mod *):not(.xp-mod *):not(.act):not(#_){color:var(--t-up)!important}
html[data-theme] body.ct :is(.down,.neg,.ct-dn,.chg.down):not(.rt):not(.hp-mod *):not(.xp-mod *):not(.act):not(#_){color:var(--t-dn)!important}
html[data-theme=dark] body.ct{--t-up:#3FBF7F;--t-dn:#F07167}
html[data-theme] body.ct .xp-st.xp-mod>.xp-stl:not(#_):not(#__){font:500 14px/20px var(--t-body)!important}
html[data-theme] body.ct p.muted:not(.row):not(#_):not(#__){font-size:13px!important;line-height:18px!important}
/* the Planning notice dialog keeps its own scroll (overflow:auto also clips the stripe to the corner) */
html[data-theme] body.ct .pl-mbox:not(#_):not(#__){overflow:auto!important}

/* tighten.css */
/* tighten.css: ONE spacing scale and the last legacy-theme leftovers (Jason, Oct 21 2026: "some of this stuff is like super not
   tightened up", "so much is not cohesive", "make sure everything is totally the same theme"). Loaded last. Found with
   /workspace/homeorder/geoaudit.py (gaps, edges, row heights, control heights, truncation) and themeaudit.py (palette).
   Scale: 16px between cards / sections, 12px inside cards (between blocks and between tiles), 16px card padding,
   24px above / 12px below a heading that sits outside a card, 16px under every page hero. 44px controls. */
html body.ct{--sp-gap:16px;--sp-in:12px;--sp-pad:16px;--sp-h-above:24px;--sp-h-below:12px;--ctl-h:44px}

/* ── 1. between cards: 16px. Flow containers use gap; stacked cards in plain block flow use the sibling margin. */
html[data-theme] body.ct :is(.xp-flow,.hm-flow,.me-flow):not(#_):not(#__){gap:var(--sp-gap)!important}
html[data-theme] body.ct :is(main,.wrap,main>section,.wrap>section,.xp-flow) > :is(.card,.list,.hm-mod,.td-card,.mvsec,.xp-card,.scmp-card,.ex-card,.pl-card,.tl-card,.qs-wrap,.ox-card,details.card) + :is(.card,.list,.hm-mod,.td-card,.mvsec,.xp-card,.scmp-card,.ex-card,.pl-card,.tl-card,.qs-wrap,.ox-card,details.card):not(#_){margin-top:var(--sp-gap)!important}
html[data-theme] body.ct :is(main,.wrap) > :is(.card,.list,.hm-mod,.xp-card,.scmp-card,.ex-card,.pl-card,.tl-card,details.card):not(#_){margin-bottom:0!important}
/* card grids (model cards, tool cards, compare cards, theme ETFs): 16px between cards, 12px between tiles inside a card */
html[data-theme] body.ct :is(.mgrid,.tgrid,.grid2,.cards,.scmp-grid,.ex-themes,.ex-grid):not(#_){gap:var(--sp-gap)!important}
html[data-theme] body.ct :is(.pl-idx,.xp-sts,.td-idx,.xp-tiles,.hp-tl-row,.stats,.rtiles,.istats,.ex-stats):not(#_):not(#__){gap:var(--sp-in)!important}
/* home Our models tiles stay on the shared 12px tile gap at every width */
html[data-theme] body.ct :is(.hm-flow,.me-flow) .hp-mods .td-idx:not(#_):not(#__){gap:var(--sp-in)!important}

/* ── 2. under every page hero: 16px; the first block after it adds nothing */
html[data-theme] body.ct :is(.xp-hero,.pl-hero,.tl-hero,.nhero,.scmp-hero):not(#_):not(#__){margin-bottom:var(--sp-gap)!important}
html[data-theme] body.ct :is(.xp-hero,.pl-hero,.tl-hero,.nhero,.scmp-hero) + *:not(#_):not(#__){margin-top:0!important}
html[data-theme] body.ct :is(.xp-hero,.pl-hero) + :is(.xp-flow,.pl-gh):not(#_):not(#__){margin-top:0!important}


/* ── 3. headings outside cards: 24 above, 12 below; group labels (Planning / Explore) the same */
html[data-theme] body.ct :is(main,.wrap) > :is(h2,.sech):not(#_):not(.hx *){margin:var(--sp-h-above) 0 var(--sp-h-below)!important}
html[data-theme] body.ct .pl-gh:not(#_):not(#__){margin:var(--sp-h-above) 0 var(--sp-h-below)!important}
/* inside a card: heading row 12px above the content */
html[data-theme] body.ct :is(.card,.hm-mod,.td-card,.xp-card,.mvsec,.scmp-card,.ex-card,.pl-card) > :is(.sech,.td-h,.mvtop):not(#_):not(#__){margin-bottom:var(--sp-in)!important}

/* ── 4. card padding: 16px, no oversized bottoms; empty-state cards compact */
html[data-theme] body.ct :is(main,.wrap) > :is(.card:not(.list):not(.flat),.cg-note,.cempty):not(#_){padding:var(--sp-pad)!important}
html[data-theme] body.ct :is(.card,.hm-mod,.xp-card,.td-card) > :last-child:not(#_):not(.list):not(table){margin-bottom:0!important}
html[data-theme] body.ct :is(.cg-note,.cempty,.g-none,.rr-wait,.tc-pend,.scmp-pend):not(#_){min-height:0!important;line-height:20px}

/* ── 5. equal tile heights in a row; equal halves on the desktop home duo */
html[data-theme] body.ct :is(.pl-idx,.xp-sts,.td-idx,.xp-tiles,.hp-tl-row,.ex-themes):not(#_){align-items:stretch!important}

/* ── 6. one control height: 44px buttons, inputs, selects (tap targets) */
html[data-theme] body.ct :is(a.btn,button.btn,.tl-btn,a.tl-btn,.xp-btn,.qs-btn,.dki-go,.pl-btn,.ox-btn,.iconbtn.small,button[type=submit]):not(.hx-tabs *):not(#_):not(#tl-x){min-height:var(--ctl-h)!important;height:var(--ctl-h)!important;box-sizing:border-box!important;display:inline-flex;align-items:center;justify-content:center;padding-top:0!important;padding-bottom:0!important;line-height:1.2!important}
html[data-theme] body.ct :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]):not([type=color]):not(.sw),select,.qs-em,.dki-in,.tl-input):not(#_):not(#tl-x){height:var(--ctl-h)!important;min-height:var(--ctl-h)!important;box-sizing:border-box!important}
html[data-theme] body.ct :is(.ibtn,.ibtn.sm):not(#_):not(#__){display:inline-flex!important;align-items:center;justify-content:center;height:var(--ctl-h)!important;min-height:var(--ctl-h)!important;line-height:1.2!important;padding-top:0!important;padding-bottom:0!important;box-sizing:border-box}

/* ── 7. no truncation of labels: wrap instead of an ellipsis */
html[data-theme] body.ct :is(.xp-stl,.scmp-vh,.dki-lab,.drawer small,#drawer small,.list .row .n,.n):not(#_){white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
html[data-theme] body.ct :is(.mvt .mvn,.mvt .mvct>span:not([class]),.mvt .mvn span):not(#_):not(#__){white-space:normal!important;overflow:hidden!important;text-overflow:clip!important;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical}

/* ── 8. legacy theme leftovers: no coloured left-edge accents, no off-palette label tints, nothing square */
html[data-theme] body.ct :is(.topcard.lead,a.card.mcard,.btbox,.copycard,.rdcf,.arow,.ga a,.ga-list>a,body.v-a .card,body.v-a .list):not(#_):not(#__){border-left:1px solid var(--line,#E3E6E8)!important}
html[data-theme] body.ct :is(.news.nlg,.sw-more,.arow,.ga summary,.chipbar):not(#_):not(#__){border-radius:var(--rd-tile,12px)!important}
html[data-theme] body.ct .sw-more:not(#_){min-height:var(--ctl-h)}
html[data-theme] body.ct :is(.stat,.rtiles .rt,.istat,.ex-stat) .k:not(#_):not(#__){color:var(--t-mute,#5F666B)!important}
html[data-theme] body.ct a.cx-back:not(#_):not(#__){color:var(--hero-sub,#DCE4F2)!important}
html[data-theme] body.ct :is(.dki-help,.dki-nfa):not(#_):not(#__){color:var(--hero-sub,#DCE4F2)!important;opacity:.85}
html[data-theme] body.ct .btag:not(#_){color:var(--t-mute,#5F666B)!important}

/* stacked cards anywhere else (scanner, compare, congress notes): 16px, except inside the gap-driven flows */
html[data-theme] body.ct :is(.card,.list,.hm-mod,.xp-card,.scmp-card,.ex-card,.pl-card,.tl-card,details.card) + :is(.card,.list,.hm-mod,.xp-card,.scmp-card,.ex-card,.pl-card,.tl-card,details.card):not(.hm-flow>*):not(.me-flow>*):not(.xp-flow>*):not(.hm-duo>*):not(.hm-side>*):not(.list .list):not(.card .card):not(#_){margin-top:var(--sp-gap)!important}
html[data-theme] body.ct :has(>.scmp-card+.scmp-card):not(#_){row-gap:var(--sp-gap)!important}
/* segmented controls with 4+ options: a tidy 2 x 2 on phones instead of one orphan on a second line */
@media (max-width:767px){html[data-theme] body.ct :is(.cx-seg,.ct-seg,.tabs):has(>:nth-child(4)):not(.hx-tabs):not(#_){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;overflow:visible!important}
 html[data-theme] body.ct :is(.cx-seg,.ct-seg,.tabs):has(>:nth-child(4))>*:not(#_):not(#tl-x){justify-content:center;text-align:center;white-space:nowrap;min-width:0}}
/* desktop public home: one content width for every section (was 760px for Markets / Our models / email and 1152px for the rest,
   so edges did not line up and the right side sat empty). From 1024px Markets and Our models sit side by side. */
@media (min-width:768px){
 html[data-theme] body.ct.pg-home .hm-flow:not(#_):not(#__){display:grid!important;grid-template-columns:minmax(0,1fr);row-gap:var(--sp-gap)!important;column-gap:var(--sp-gap)!important}
 html[data-theme] body.ct.pg-home .hm-flow>*:not(#_):not(#__){grid-column:1/-1;margin-top:0!important;margin-bottom:0!important}
 html[data-theme] body.ct.pg-home .hm-flow>:is(.td-wrap,.qs-wrap,.hm-fine):not(#_):not(#__){max-width:none!important;width:auto!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important}
 html[data-theme] body.ct.pg-home .hm-flow>.td-wrap>.td-card:not(#_):not(#__){height:100%;box-sizing:border-box}
}
@media (min-width:1024px){
 html[data-theme] body.ct.pg-home .hm-flow:not(#_):not(#__){grid-template-columns:repeat(2,minmax(0,1fr))}
 html[data-theme] body.ct.pg-home .hm-flow>.td-wrap:not(#_):not(#__){grid-column:auto}
}
/* the same when a <script> sits between two cards (scanner) */
html[data-theme] body.ct :is(.card,.list,.hm-mod,.xp-card,.scmp-card,.ex-card,.pl-card) + :is(script,style,template) + :is(.card,.list,.hm-mod,.xp-card,.scmp-card,.ex-card,.pl-card):not(.hm-flow>*):not(.me-flow>*):not(.xp-flow>*):not(#_){margin-top:var(--sp-gap)!important}
html[data-theme] body.ct :is(.ga-steps,.ga-list):not(#_){gap:var(--sp-in)!important}
/* desktop home: Top news and Social buzz the same height side by side */
@media (min-width:768px){html[data-theme] body.ct.pg-home .hm-duo:not(#_):not(#__){align-items:stretch!important}html[data-theme] body.ct.pg-home .hm-duo>*:not(#_):not(#__){height:auto!important}}
/* rounded alert rows carry the same top stripe as every other rounded tile */
html[data-theme] body.ct .arow:not(#_){position:relative;overflow:hidden}
html[data-theme] body.ct .arow:not(#_)::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--stripe);pointer-events:none;z-index:1}
/* Planning tool columns are flex stacks with their own gap: no extra sibling margin on top (was 18 + 16 = 34px), one 16px gap */
html[data-theme] body.ct :is(.pl-grid,.pl-in,.pl-out):not(#_):not(#__){gap:var(--sp-gap)!important}
html[data-theme] body.ct :is(.pl-in,.pl-out)>.pl-card:not(#_):not(#__){margin-top:0!important}
html[data-theme] body.ct .pl>:is(.ix-why,.ix-infl,.ix-gl):not(#_):not(#__){margin-top:var(--sp-gap)!important}
html[data-theme] body.ct .pl>.pl-hero+.ix-why:not(#_):not(#__){margin-top:0!important}
/* Planning hub tiers: section headings on the shared 24 above / 12 below scale (design.css .sech is 28 / 12) */
html[data-theme] body.ct .pl>.pl-sec>.sech:not(#_):not(#__){margin:var(--sp-h-above) 0 4px!important}
html[data-theme] body.ct .pl>.pl-sec>.sech-sub:not(#_):not(#__){margin:0 0 var(--sp-h-below)!important}

/* edit.css */
/* Coteau owner pages (Edit hub, portfolio editor, review, history, Access, site content, Desk sign-in). Oct 21 2026 v2:
   modern finish: filled inputs with hairline/no border + cyan focus ring, one card per step, hairline rows, segmented
   controls instead of native selects, switches instead of checkboxes, navy primary / outline secondary buttons, 8px grid.
   Every rule is scoped to body.ox (owner pages only), so this file is safe in the shared site bundle. Mobile-first (390). */
body.ox{--ox-fill:#F4F6F9;--ox-fill-2:#EBEEF3;--ox-hair:rgba(10,17,36,.08);--ox-hair-2:rgba(10,17,36,.14);--ox-cyan:#3EC8C9;--ox-cyan-ink:#167E80;--ox-cyan-bg:rgba(62,200,201,.12);
 --ox-navy:#0A1124;--ox-muted:#6B747B;--ox-ring:0 0 0 3px rgba(62,200,201,.28);--ox-card:#FFFFFF;--ox-shadow:0 1px 2px rgba(10,17,36,.04),0 4px 16px rgba(10,17,36,.04)}
html[data-theme=dark][lang] body.ox.ox.ct{--ox-fill:#1C1F23;--ox-fill-2:#24282D;--ox-hair:rgba(242,244,245,.08);--ox-hair-2:rgba(242,244,245,.16);--ox-cyan-ink:#7FE0E1;--ox-cyan-bg:rgba(62,200,201,.14);--ox-muted:#9AA2A8;--ox-card:#151719;--ox-shadow:none}
body.ox [hidden]{display:none!important}
body.ox{padding-bottom:calc(96px + env(safe-area-inset-bottom))!important}   /* fixed bottom nav never covers the last control */
body.ox.ed-pg{padding-bottom:calc(104px + env(safe-area-inset-bottom))!important}
body.ox.ed-pg nav.bottom{display:none!important}
body.ox .ed{max-width:1240px;margin:0 auto;padding:8px 0 0}
/* ---------- type ---------- */
body.ox .ed-crumbs{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--ox-muted);margin:0 0 8px;flex-wrap:wrap}
body.ox .ed-crumbs a{color:var(--ox-muted);text-decoration:none}body.ox .ed-crumbs b{color:var(--ink);font-weight:500;max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ox .ed-head h1{font-family:"General Sans",Inter,system-ui,sans-serif;font-weight:600;letter-spacing:-.015em;margin:0 0 8px;font-size:28px;line-height:1.15}
body.ox .ed-head .sub{margin:0 0 24px;font-size:15px;line-height:1.5;color:var(--ox-muted);font-weight:400}
body.ox .ed-head .sub a{color:var(--ox-cyan-ink);text-decoration:none;font-weight:500}
body.ox .ed-step{font:600 12px/1 Inter,system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--ox-cyan-ink);margin:0 0 8px}
body.ox .ed-h{display:flex;align-items:baseline;gap:8px;font-family:"General Sans",Inter,system-ui,sans-serif;font-weight:600;font-size:20px;letter-spacing:-.01em;margin:0 0 8px}
body.ox .ed-h small{font:400 14px Inter,system-ui,sans-serif;color:var(--ox-muted);margin-left:auto}
body.ox .ed-h3{font:600 15px Inter,system-ui,sans-serif;margin:24px 0 8px}body.ox .ed-h3 small{font:400 13px Inter,system-ui,sans-serif;color:var(--ox-muted)}
body.ox .ed-hint{color:var(--ox-muted);font-size:15px;margin:0 0 16px;line-height:1.5}
body.ox .ed-prevlab{font:600 12px/1.2 Inter,system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--ox-muted);margin:0 0 12px}
body.ox .small{font-size:14px}
/* ---------- surfaces ---------- */
body.ox .ed-grid{display:flex;flex-direction:column;gap:16px}
body.ox .ed-main,body.ox .ed-side{display:flex;flex-direction:column;gap:16px;min-width:0}
body.ox .ed-card,body.ox .dk.card,body.ox .me-login.card{background:var(--ox-card)!important;border:1px solid var(--ox-hair)!important;border-radius:16px!important;padding:24px 16px!important;box-shadow:var(--ox-shadow)!important;margin:0}
body.ox .ed-banner{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;background:var(--ox-fill);border-radius:12px!important;padding:12px 16px;margin:0 0 16px;font-size:15px}
body.ox .ed-banner-a{display:flex;gap:8px}
body.ox .ed-warn{background:#FFF7E6;color:#6E4A00;border-radius:12px!important;padding:12px 16px;font-size:14px;line-height:1.5;margin:0 0 16px;border:0}
body.ox .ed-err{background:#FDEEEE;color:#8A2323;border-radius:12px!important;padding:12px 16px;font-size:14px;margin:8px 0;border:0}
body.ox .ed-ok{background:#E9F7EF;color:#1E5B33;border-radius:12px!important;padding:16px;font-size:15px;line-height:1.5;border:0}
html[data-theme=dark][lang] body.ox.ox.ct .ed-warn{background:rgba(201,134,26,.14);color:#F0C67A}html[data-theme=dark][lang] body.ox.ox.ct .ed-err{background:rgba(178,59,59,.16);color:#F1A9A9}html[data-theme=dark][lang] body.ox.ox.ct .ed-ok{background:rgba(46,139,87,.16);color:#8FD9AE}
body.ox .ed-empty{color:var(--ox-muted);font-size:15px;text-align:center;padding:24px 8px;background:var(--ox-fill);border-radius:12px!important;margin:8px 0}
/* ---------- inputs: filled, hairline, cyan focus ---------- */
html[data-theme][lang] body.ox.ox.ct input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),html[data-theme][lang] body.ox.ox.ct textarea,html[data-theme][lang] body.ox.ox.ct select{
 background:var(--ox-fill)!important;border:1px solid transparent!important;border-radius:12px!important;color:var(--ink)!important;font:400 16px/1.4 Inter,system-ui,sans-serif!important;box-shadow:none!important;outline:none!important;-webkit-appearance:none;appearance:none;transition:border-color .12s,box-shadow .12s,background .12s}
html[data-theme][lang] body.ox.ox.ct input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]):hover,html[data-theme][lang] body.ox.ox.ct textarea:hover{border-color:var(--ox-hair-2)!important}
html[data-theme][lang] body.ox.ox.ct input:not([type=checkbox]):not([type=radio]):not([type=range]):focus,html[data-theme][lang] body.ox.ox.ct textarea:focus,html[data-theme][lang] body.ox.ox.ct select:focus{background:var(--ox-card)!important;border-color:var(--ox-cyan)!important;box-shadow:var(--ox-ring)!important}
html[data-theme][lang] body.ox.ox.ct input::placeholder,html[data-theme][lang] body.ox.ox.ct textarea::placeholder{color:#9AA3AA!important;opacity:1}
body.ox .ed-f{display:flex;flex-direction:column;gap:8px;margin:0 0 16px}body.ox .ed-f>span{font-size:14px;color:var(--ink);font-weight:500}body.ox .ed-f small{font-weight:400;color:var(--ox-muted)}
body.ox .ed-f input,body.ox .ed-f textarea{width:100%;box-sizing:border-box;padding:12px 16px!important}body.ox .ed-f input{min-height:48px}
/* ---------- switches (every checkbox on owner pages) ---------- */
html[data-theme][lang] body.ox.ox.ct input[type=checkbox]{-webkit-appearance:none;appearance:none;flex:0 0 44px;width:44px;height:26px;border-radius:99px!important;background:var(--ox-fill-2)!important;border:1px solid var(--ox-hair-2)!important;position:relative;cursor:pointer;margin:0;transition:background .15s,border-color .15s;box-shadow:none!important}
html[data-theme][lang] body.ox.ox.ct input[type=checkbox]::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%!important;background:#fff;box-shadow:0 1px 3px rgba(10,17,36,.25);transition:left .15s}
html[data-theme][lang] body.ox.ox.ct input[type=checkbox]:checked{background:var(--ox-cyan)!important;border-color:var(--ox-cyan)!important}html[data-theme][lang] body.ox.ox.ct input[type=checkbox]:checked::after{left:20px}
html[data-theme][lang] body.ox.ox.ct input[type=checkbox]:focus-visible{box-shadow:var(--ox-ring)!important}
body.ox .ed-chk,body.ox .ol-chk,body.ox .ox-sw{display:flex;gap:16px;align-items:center;justify-content:space-between;font-size:16px;margin:0;padding:12px 0;min-height:48px;border-top:1px solid var(--ox-hair);cursor:pointer}
body.ox .ed-chk input,body.ox .ol-chk input,body.ox .ox-sw input{order:2}
body.ox .ox-sw span{display:flex;flex-direction:column;gap:2px}body.ox .ox-sw b{font-weight:500}body.ox .ox-sw small{font-size:14px;color:var(--ox-muted);line-height:1.4}
/* ---------- buttons ---------- */
html[data-theme][lang] body.ox.ox.ct .btn,html[data-theme][lang] body.ox.ox.ct a.btn,html[data-theme][lang] body.ox.ox.ct button.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:auto!important;min-height:44px;padding:0 20px!important;border-radius:12px!important;
 background:var(--ox-navy)!important;color:#fff!important;border:1px solid var(--ox-navy)!important;font:600 15px/1.2 Inter,system-ui,sans-serif!important;box-shadow:none!important;text-decoration:none;cursor:pointer;letter-spacing:0;transition:filter .12s,background .12s}
html[data-theme=dark][lang] body.ox.ox.ct .btn,html[data-theme=dark][lang] body.ox.ox.ct a.btn,html[data-theme=dark][lang] body.ox.ox.ct button.btn{background:var(--ox-cyan)!important;border-color:var(--ox-cyan)!important;color:#0A1124!important}
html[data-theme][lang] body.ox.ox.ct .btn:hover{filter:brightness(1.12)}html[data-theme][lang] body.ox.ox.ct .btn:focus-visible{box-shadow:var(--ox-ring)!important;outline:none}
html[data-theme][lang] body.ox.ox.ct .btn:disabled{opacity:.45;cursor:default;filter:none}
html[data-theme][lang] body.ox.ox.ct a.btn.ghost,html[data-theme][lang] body.ox.ox.ct button.btn.ghost,html[data-theme][lang] body.ox.ox.ct .btn.ghost{background:transparent!important;color:var(--ink)!important;border:1px solid var(--ox-hair-2)!important}
html[data-theme][lang] body.ox.ox.ct .btn.ghost:hover{background:var(--ox-fill)!important;filter:none}
html[data-theme][lang] body.ox.ox.ct .btn.sm,html[data-theme][lang] body.ox.ox.ct a.btn.sm,html[data-theme][lang] body.ox.ox.ct button.btn.sm{min-height:40px!important;padding:0 16px!important;font-size:14px!important}
html[data-theme][lang] body.ox.ox.ct .btn.text{background:transparent!important;border-color:transparent!important;color:var(--ox-cyan-ink)!important;padding:0 8px!important}
html[data-theme][lang] body.ox.ox.ct .ed-danger,html[data-theme][lang] body.ox.ox.ct .btn.ghost.ed-danger{color:#B23B3B!important;border-color:transparent!important;background:transparent!important}
html[data-theme=dark][lang] body.ox.ox.ct .ed-danger{color:#F1A9A9!important}
body.ox .ed-ib{width:40px;height:40px;border-radius:50%!important;border:0;background:transparent;color:var(--ox-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .12s,color .12s}
body.ox .ed-ib:hover{background:var(--ox-fill);color:var(--ink)}body.ox .ed-ib svg{width:18px;height:18px;display:block}
body.ox .ed-ib:focus-visible{box-shadow:var(--ox-ring);outline:none}
/* segmented control */
body.ox .ed-seg{display:inline-flex;gap:4px;padding:4px;background:var(--ox-fill);border-radius:12px!important;border:0;overflow:visible}
body.ox .ed-seg button,body.ox .ed-seg a{border:0;background:transparent;padding:0 12px;min-height:36px;min-width:36px;border-radius:9px!important;font:500 14px/36px Inter,system-ui,sans-serif;color:var(--ox-muted);cursor:pointer;text-decoration:none;white-space:nowrap;text-align:center}
body.ox .ed-seg button.on,body.ox .ed-seg a.on,body.ox .ed-seg button[aria-pressed=true]{background:var(--ox-card);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(10,17,36,.1),0 0 0 1px var(--ox-hair)}
/* ---------- search + suggestions ---------- */
body.ox .ed-search{position:relative}
body.ox .ed-search input{width:100%;box-sizing:border-box;min-height:52px;padding:0 16px 0 44px!important;font-size:17px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%239AA3AA' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:16px 50%!important}
body.ox .ed-sugg{display:none;position:absolute;left:0;right:0;top:calc(100% + 8px);background:var(--ox-card);border:1px solid var(--ox-hair);border-radius:16px!important;z-index:30;overflow:hidden;box-shadow:0 16px 40px rgba(10,17,36,.14);max-height:60vh;overflow-y:auto;padding:4px}
body.ox .ed-sugg button{display:flex;width:100%;gap:12px;align-items:center;background:none;border:0;border-radius:12px!important;padding:8px 12px;min-height:52px;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
body.ox .ed-sugg button.on,body.ox .ed-sugg button:hover{background:var(--ox-fill)}
body.ox .ed-sugg button span{color:var(--ox-muted);font-size:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}body.ox .ed-none{padding:16px;color:var(--ox-muted)}
/* monogram / logo */
body.ox .ed-lg{flex:0 0 36px;width:36px;height:36px;border-radius:50%!important;display:inline-flex;align-items:center;justify-content:center;background:var(--ox-fill-2);color:#2A3442;font:600 11px/1 Inter,system-ui,sans-serif;letter-spacing:.02em;overflow:hidden;box-shadow:inset 0 0 0 1px var(--ox-hair)}
html[data-theme=dark][lang] body.ox.ox.ct .ed-lg{color:#C9D0D5}
body.ox .ed-lg.has{background:#fff}body.ox .ed-lg img{width:100%;height:100%;object-fit:contain;display:block}
body.ox .ed-lg.cash{color:var(--ox-cyan-ink);background:var(--ox-cyan-bg)}
/* ---------- step 1: names (hairline rows) ---------- */
body.ox .ed-names{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column}
body.ox .ed-name{display:grid;grid-template-columns:24px 36px minmax(0,1fr) 40px 40px;grid-template-areas:"g l n p x" ". . t t t";align-items:center;column-gap:8px;row-gap:8px;background:var(--ox-card);padding:12px 0;border-bottom:1px solid var(--ox-hair);touch-action:pan-y}
body.ox .ed-name:last-child{border-bottom:0}
body.ox .ed-name .ed-grip{grid-area:g}body.ox .ed-name .ed-lg{grid-area:l}body.ox .ed-name .ed-nm{grid-area:n}body.ox .ed-name .ed-theme{grid-area:t}body.ox .ed-name .ed-pin{grid-area:p}body.ox .ed-name .ed-x{grid-area:x}
body.ox .ed-grip{cursor:grab;color:#A9B1B7;display:flex;align-items:center;justify-content:center;user-select:none;touch-action:none;height:40px;border-radius:8px!important}
body.ox .ed-grip svg{width:14px;height:14px}body.ox .ed-grip:focus-visible{box-shadow:var(--ox-ring);outline:none}
body.ox .ed-nm{min-width:0;display:flex;flex-direction:column;gap:2px}body.ox .ed-nm b{font-size:16px;font-weight:600;letter-spacing:.01em}
body.ox .ed-nm span{color:var(--ox-muted);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-theme][lang] body.ox.ox.ct input.ed-theme{min-height:40px;font-size:15px!important;padding:0 12px!important;box-sizing:border-box;width:100%}
body.ox .ed-pin.on{color:var(--ox-cyan-ink);background:var(--ox-cyan-bg)}
body.ox .ed-drag{position:fixed;z-index:50;box-shadow:0 16px 40px rgba(10,17,36,.18);pointer-events:none;opacity:.97;border-radius:12px!important;padding-left:8px;padding-right:8px}
body.ox .ed-ph{border-radius:12px!important;list-style:none;background:var(--ox-cyan-bg);margin:4px 0}
body.ox .ed-row-acts{margin-top:16px}
body.ox .ed-grip-i svg{width:12px;height:12px;vertical-align:-1px}body.ox .ed-pin-i svg{width:14px;height:14px;vertical-align:-2px}
/* ---------- step 2: allocations ---------- */
body.ox .ed-alloc{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
body.ox .ed-al{display:grid;grid-template-columns:36px minmax(0,1fr) 112px;grid-template-areas:"l n w" "m m m" "msg msg msg" "why why why" "rn rn rn";align-items:center;column-gap:12px;row-gap:8px;padding:12px 0;border-bottom:1px solid var(--ox-hair)}
body.ox .ed-al:last-child{border-bottom:0}body.ox .ed-al .ed-lg{grid-area:l}body.ox .ed-al .ed-nm{grid-area:n}body.ox .ed-al .ed-w{grid-area:w}body.ox .ed-al .ed-meth{grid-area:m}body.ox .ed-al .ed-msg{grid-area:msg}body.ox .ed-al .ed-why{grid-area:why}
body.ox .ed-w{position:relative}
html[data-theme][lang] body.ox.ox.ct .ed-w input{width:100%;box-sizing:border-box;min-height:48px;font:600 18px/1 Inter,system-ui,sans-serif!important;text-align:right;padding:0 32px 0 12px!important;font-variant-numeric:tabular-nums}
body.ox .ed-w em{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-style:normal;color:var(--ox-muted);font-size:16px;pointer-events:none}
html[data-theme][lang] body.ox.ox.ct .ed-w input.bad{border-color:#C9861A!important;box-shadow:0 0 0 3px rgba(201,134,26,.2)!important}
body.ox .ed-msg{font-size:14px;color:#8A5A00;background:#FFF7E6;border-radius:10px!important;padding:8px 12px}
body.ox .ed-why{font-size:14px}
/* method weights panel (only when "Method weights" is on) */
body.ox .ed-meth{display:none}
body.ox .ed.ed-mw-on .ed-meth{display:flex;flex-direction:column;gap:8px;background:var(--ox-fill);border-radius:12px!important;padding:12px}
body.ox .ed-mrow{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
body.ox .ed-mlab{display:flex;align-items:center;gap:4px;font:500 14px Inter,system-ui,sans-serif;color:var(--ink)}
body.ox .ed-meth .ed-seg{background:var(--ox-fill-2)}body.ox .ed-meth .ed-seg button{min-height:32px;line-height:32px;min-width:32px;padding:0 10px;font-size:14px}
body.ox .ed-i{width:24px;height:24px;border-radius:50%!important;border:0;background:transparent;color:var(--ox-muted);font:500 15px/24px Inter,system-ui,sans-serif;cursor:pointer;padding:0}
body.ox .ed-i:hover,body.ox .ed-i[aria-expanded=true]{color:var(--ox-cyan-ink);background:var(--ox-cyan-bg)}
body.ox .ed-help{font-size:14px;line-height:1.45;color:var(--ox-muted);margin:0;padding:8px 12px;background:var(--ox-card);border-radius:10px!important}
body.ox .ed-lock-sw{display:flex;align-items:center;gap:8px}
body.ox .ed-helpers{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;align-items:center}
body.ox .ed-helpers .ed-sp{flex:1}
body.ox .ed-mwt{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 12px 0 8px;border-radius:99px!important;border:1px solid var(--ox-hair-2);background:transparent;color:var(--ink);font:500 14px Inter,system-ui,sans-serif;cursor:pointer}
body.ox .ed-mwt i{width:32px;height:20px;border-radius:99px!important;background:var(--ox-fill-2);position:relative;box-shadow:inset 0 0 0 1px var(--ox-hair-2);transition:background .15s}
body.ox .ed-mwt i::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%!important;background:#fff;box-shadow:0 1px 2px rgba(10,17,36,.25);transition:left .15s}
body.ox .ed-mwt[aria-pressed=true] i{background:var(--ox-cyan);box-shadow:none}body.ox .ed-mwt[aria-pressed=true] i::after{left:14px}
body.ox .ed-fold{margin-top:16px;font-size:15px}body.ox .ed-fold summary{cursor:pointer;color:var(--ox-cyan-ink);font-weight:500;list-style:none}body.ox .ed-fold summary::-webkit-details-marker{display:none}
body.ox .ed-fold summary::before{content:"";display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);margin:0 10px 2px 2px;transition:transform .15s}
body.ox .ed-fold[open] summary::before{transform:rotate(45deg)}body.ox .ed-fold div{margin-top:8px;line-height:1.55}
/* ---------- step 3: text ---------- */
body.ox .ed-ex{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:16px;padding:0 0 16px;border-bottom:1px solid var(--ox-hair)}
html[data-theme][lang] body.ox.ox.ct .ed-ex .ed-ext{min-height:44px;font-weight:600!important}body.ox .ed-ex .ed-exb{grid-column:1/-1}body.ox .ed-ex input,body.ox .ed-ex textarea{padding:12px!important;box-sizing:border-box;width:100%}
body.ox .ed-exa{display:flex;gap:0;grid-row:1;grid-column:2}
body.ox .ed-noter{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;font-size:14px}body.ox .ed-noter span{color:var(--ox-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.ox .ed-noter b{color:var(--ink);font-weight:600}
html[data-theme][lang] body.ox.ox.ct .ed-noter input{min-height:44px;padding:0 12px!important;box-sizing:border-box;width:100%;font-size:15px!important}
/* ---------- meter (side card) ---------- */
body.ox .ed-mtop{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
body.ox .ed-left{font:500 15px Inter,system-ui,sans-serif;color:var(--ox-muted)}body.ox .ed-left b{font:600 32px/1 "General Sans",Inter,system-ui,sans-serif;color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
body.ox .ed-tot{font-size:14px;color:var(--ox-muted)}body.ox .ed-tot b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}
body.ox .ed-bar{height:6px;border-radius:99px!important;background:var(--ox-fill-2);overflow:hidden;margin:12px 0 8px}
body.ox .ed-bar i{display:block;height:100%;width:0;border-radius:99px!important;background:var(--ox-cyan);transition:width .18s ease}
body.ox .ed-meter.full .ed-bar i{background:#2E8B57}body.ox .ed-meter.full .ed-left b{color:#2E8B57}
body.ox .ed-mnote{font-size:14px;color:var(--ox-muted)}
/* ---------- preview ---------- */
body.ox .ed-ptitle{font-family:"General Sans",Inter,system-ui,sans-serif;font-weight:600;font-size:22px;margin:0 0 8px;line-height:1.2}
body.ox .ed-pblurb{margin:0 0 16px;font-size:15px;line-height:1.5}
body.ox .ed-pnote{background:var(--ox-fill);border-radius:12px!important;padding:12px 16px;font-size:14px;margin:0 0 16px}
body.ox .ed-plist .row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--ox-hair)}
body.ox .ed-plist .l{display:flex;gap:12px;align-items:center;min-width:0}body.ox .ed-plist .lt{display:flex;flex-direction:column;min-width:0}body.ox .ed-plist .t{font-weight:600}
body.ox .ed-plist .n{font-size:14px;color:var(--ox-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.ox .ed-plist .r{text-align:right;flex:0 0 auto;font-variant-numeric:tabular-nums}
body.ox .ed-pwhy{font-size:13px;color:var(--ox-muted);line-height:1.4;white-space:normal}
body.ox .ed-pmore{font-size:14px;color:var(--ox-muted);margin:8px 0}body.ox .ed-pdisc{margin:16px 0 0}
body.ox .ed-bk{display:flex;flex-direction:column;gap:8px}
body.ox .ed-bkr{display:grid;grid-template-columns:minmax(0,1.2fr) 1fr 56px;gap:8px;align-items:center;font-size:14px}body.ox .ed-bkr span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.ox .ed-bkr i{height:6px;background:var(--ox-fill-2);border-radius:99px!important;overflow:hidden}body.ox .ed-bkr i b{display:block;height:100%;background:var(--ox-cyan);border-radius:99px!important}body.ox .ed-bkr em{font-style:normal;text-align:right;font-variant-numeric:tabular-nums}
body.ox .ed-bthead{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}body.ox .ed-bthead .ed-prevlab{margin:0}
body.ox .ed-btsvg{width:100%;height:112px;margin:8px 0}body.ox .ed-btsvg path{fill:none;stroke-width:2;vector-effect:non-scaling-stroke}body.ox .ed-btsvg .port{stroke:var(--ox-cyan)}body.ox .ed-btsvg .spy{stroke:#A7B3C6;stroke-dasharray:4 3}
body.ox .ed-bttab{width:100%;font-size:14px;border-collapse:collapse;margin:8px 0}body.ox .ed-bttab th{font-weight:500;color:var(--ox-muted);text-align:right;padding:4px 0}body.ox .ed-bttab td{text-align:right;padding:4px 0;font-variant-numeric:tabular-nums}body.ox .ed-bttab td:first-child,body.ox .ed-bttab th:first-child{text-align:left}
body.ox .ed-bttab .dot{display:inline-block;width:8px;height:8px;border-radius:50%!important;margin-right:8px}body.ox .ed-bttab .dot.port{background:var(--ox-cyan)}body.ox .ed-bttab .dot.spy{background:#A7B3C6}
body.ox #bt-run{margin:8px 0}
/* ---------- floating action pill (sticky % left) ---------- */
body.ox .ed-bar-actions{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:8px;padding:8px 8px 8px 16px;background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);border:1px solid var(--ox-hair);border-radius:20px!important;box-shadow:0 10px 30px rgba(10,17,36,.14);overflow:hidden}
html[data-theme=dark][lang] body.ox.ox.ct .ed-bar-actions{background:rgba(21,23,25,.92)}
body.ox .ed-pbar{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--ox-fill-2)}body.ox .ed-pbar i{display:block;height:100%;width:0;background:var(--ox-cyan);transition:width .18s ease}
body.ox .ed-bar-actions.full .ed-pbar i{background:#2E8B57}
body.ox .ed-mini{display:flex;flex-direction:column;line-height:1.1;font:500 12px Inter,system-ui,sans-serif;color:var(--ox-muted);white-space:nowrap;letter-spacing:.04em;text-transform:uppercase}
body.ox .ed-mini b{font:600 20px/1.1 "General Sans",Inter,system-ui,sans-serif;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em;text-transform:none}
body.ox .ed-bar-actions.full .ed-mini b{color:#2E8B57}
body.ox .ed-status{flex:1;font-size:13px;color:var(--ox-muted);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-theme][lang] body.ox.ox.ct .ed-bar-actions .btn{min-height:44px;padding:0 16px!important;white-space:nowrap}
/* ---------- review sheet ---------- */
body.ox .ed-sheet{position:fixed;inset:0;z-index:60;background:rgba(10,17,36,.4);display:flex;align-items:flex-end;justify-content:center}
body.ox .ed-sheet-in{background:var(--ox-card);width:100%;max-width:560px;border-radius:20px 20px 0 0!important;padding:12px 16px calc(16px + env(safe-area-inset-bottom));max-height:88vh;overflow-y:auto;box-sizing:border-box;box-shadow:0 -10px 40px rgba(10,17,36,.18)}
body.ox .ed-sheet-in::before{content:"";display:block;width:40px;height:4px;border-radius:99px!important;background:var(--ox-hair-2);margin:0 auto 16px}
body.ox .ed-sheet-in h2{font:600 20px "General Sans",Inter,system-ui,sans-serif;margin:0 0 8px}
body.ox .ed-eff{font-size:15px;line-height:1.55;color:var(--ink);margin:0 0 16px}
body.ox .ed-diff{display:flex;flex-direction:column;margin:0 0 16px;border-top:1px solid var(--ox-hair)}
body.ox .ed-diff span{display:flex;justify-content:space-between;font-size:15px;padding:12px 0;border-bottom:1px solid var(--ox-hair);font-variant-numeric:tabular-nums}
body.ox .ed-diff span em{font-style:normal;color:var(--ox-muted)}body.ox .ed-diff .in b{color:#1E7A48}body.ox .ed-diff .out b{color:#B23B3B}
body.ox .ed-sheet-acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}html[data-theme][lang] body.ox.ox.ct .ed-sheet-acts .btn{min-height:48px;width:100%;box-sizing:border-box}
body.ed-noscroll{overflow:hidden}
body.ox .ed-toast{position:fixed;left:50%;bottom:104px;transform:translateX(-50%);background:var(--ox-navy);color:#fff;padding:12px 16px;border-radius:12px!important;font-size:14px;z-index:70;transition:opacity .3s}body.ox .ed-toast.go{opacity:0}
/* ---------- hub + lists + history ---------- */
body.ox .eh-grid{display:grid;grid-template-columns:1fr;gap:8px}
body.ox .eh-tile{display:flex;gap:16px;align-items:center;text-decoration:none;color:var(--ink);background:var(--ox-card);border:1px solid var(--ox-hair);border-radius:16px!important;padding:16px;box-shadow:var(--ox-shadow);min-height:72px;transition:border-color .12s}
body.ox .eh-tile:hover{border-color:var(--ox-hair-2)}
body.ox .eh-tile::after{content:"";flex:0 0 8px;height:8px;border-right:1.5px solid #A9B1B7;border-top:1.5px solid #A9B1B7;transform:rotate(45deg);margin-right:4px}
body.ox .eh-ic{flex:0 0 40px;height:40px;border-radius:50%!important;background:var(--ox-cyan-bg);color:var(--ox-cyan-ink);display:inline-flex;align-items:center;justify-content:center}body.ox .eh-ic svg{width:20px;height:20px}
body.ox .eh-tile>span:nth-child(2){flex:1;min-width:0}
body.ox .eh-tile b{font:600 16px Inter,system-ui,sans-serif;display:block;margin-bottom:4px}body.ox .eh-tile span span{font-size:14px;color:var(--ox-muted);line-height:1.45}
body.ox .el-row{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--ox-hair);text-decoration:none;color:var(--ink);min-height:56px}
body.ox .el-row:last-child{border-bottom:0}body.ox .el-row .el-m{flex:1;min-width:0}body.ox .el-row b{font-weight:600;display:block;font-size:16px;margin-bottom:2px}body.ox .el-row small{color:var(--ox-muted);font-size:14px;line-height:1.45}
body.ox .el-row .el-note{font-size:15px;margin-top:8px;line-height:1.5}
body.ox a.el-row::after{content:"";flex:0 0 8px;height:8px;border-right:1.5px solid #A9B1B7;border-top:1.5px solid #A9B1B7;transform:rotate(45deg);margin-right:4px}
body.ox .el-row form{margin:0}
body.ox .el-chip{font:600 11px/1 Inter,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;border-radius:99px!important;padding:6px 8px;background:var(--ox-fill);color:var(--ox-muted);white-space:nowrap}
body.ox .el-chip.ok{background:rgba(46,139,87,.1);color:#1E7A48}body.ox .el-chip.dr{background:#FFF3DA;color:#8A5A00}
body.ox .ed-list{padding:8px 16px!important}
/* ---------- Access ---------- */
body.ox .ac-p{padding:16px 0;border-bottom:1px solid var(--ox-hair)}body.ox .ac-p:last-child{border-bottom:0;padding-bottom:0}body.ox .ac-p:first-of-type{padding-top:0}
body.ox .ac-top{display:flex;align-items:center;gap:12px;margin-bottom:8px}body.ox .ac-top .ed-lg{flex-basis:40px;width:40px;height:40px;font-size:14px}
body.ox .ac-top b{font:600 17px Inter,system-ui,sans-serif;display:block}body.ox .ac-top small{font-size:14px;color:var(--ox-muted)}
body.ox .ac-tg{display:flex;flex-direction:column}body.ox .ac-tg form{margin:0}
body.ox .ac-acts{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}body.ox .ac-acts form{margin:0}
body.ox .ac-sw{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px;border:0;border-top:1px solid var(--ox-hair);border-radius:0!important;padding:12px 0;background:none;font:400 16px Inter,system-ui,sans-serif;color:var(--ink);cursor:pointer;min-height:56px;text-align:left}
body.ox .ac-sw>span{display:flex;flex-direction:column;gap:2px}body.ox .ac-sw>span b{font-weight:500}body.ox .ac-sw>span small{font-size:14px;color:var(--ox-muted);line-height:1.4}
body.ox .ac-sw i{flex:0 0 44px;width:44px;height:26px;border-radius:99px!important;background:var(--ox-fill-2);position:relative;transition:background .15s;box-shadow:inset 0 0 0 1px var(--ox-hair-2)}
body.ox .ac-sw i:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%!important;background:#fff;box-shadow:0 1px 3px rgba(10,17,36,.25);transition:left .15s}
body.ox .ac-sw.on i{background:var(--ox-cyan);box-shadow:none}body.ox .ac-sw.on i:after{left:21px}
body.ox .ac-sw:focus-visible{box-shadow:var(--ox-ring);outline:none;border-radius:8px!important}
body.ox .ac-sw.compact{width:auto;border-top:0;padding:0;min-height:44px;gap:8px;font-size:14px;color:var(--ox-muted)}
body.ox .ac-code{font:600 24px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;background:var(--ox-fill);border-radius:12px!important;padding:16px;text-align:center;user-select:all;word-break:break-all}
body.ox .ac-new{border-color:var(--ox-cyan)!important}
body.ox .ac-form .ed-f:first-of-type{margin-top:0}body.ox .ac-form .btn{width:100%;margin-top:16px}
body.ox .ac-note{margin:16px 0 0;font-size:14px;color:var(--ox-muted);line-height:1.5}
/* site content tabs */
body.ox .es-tabs{display:flex;overflow-x:auto;margin:0 0 16px;width:100%;box-sizing:border-box;scrollbar-width:none}body.ox .es-tabs::-webkit-scrollbar{display:none}
body.ox .es-tabs a{flex:1 0 auto}
body.ox .es-card .ed-sheet-acts{margin-top:8px}
/* ---------- Desk sign-in (/desk, /me/login) ---------- */
body.ox .dk{max-width:420px;margin:24px auto 40px;text-align:center}
body.ox .dk-tile{display:block;margin:0 auto 8px;border-radius:22px!important;box-shadow:0 10px 30px rgba(10,17,36,.18)}
body.ox .dk h1{margin:16px 0 8px;font-weight:600}body.ox .dk form{display:flex;flex-direction:column;gap:16px;margin-top:16px;text-align:left}
html[data-theme][lang] body.ox.ox.ct .dk form input[type=password]{font-size:18px!important;letter-spacing:.08em;min-height:52px;padding:0 16px!important}
body.ox .dk-steps{text-align:left;margin:16px 0 8px;display:flex;flex-direction:column;gap:12px}
body.ox .dk-st{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.45}
body.ox .dk-st b{flex:0 0 24px;height:24px;border-radius:50%!important;background:var(--ox-cyan-bg);color:var(--ox-cyan-ink);display:inline-flex;align-items:center;justify-content:center;font:600 12px Inter,system-ui,sans-serif}
body.ox .dk-st em{font-style:normal;font-weight:600}body.ox .dk-st svg{vertical-align:-3px}
body.ox .dk-open{display:block;margin-top:16px}
html[data-theme][lang] body.ox.ox.ct .dk .btn,html[data-theme][lang] body.ox.ox.ct .me-login .btn{width:100%;min-height:48px}
body.ox .me-login .ol-f{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:500}body.ox .me-login .ol-f input{min-height:52px;padding:0 16px!important}
body.ox .me-login .ol-chk{border-top:0;font-size:15px;color:var(--ox-muted)}
/* ---------- wide screens ---------- */
@media(min-width:700px){body.ox .eh-grid{grid-template-columns:1fr 1fr;gap:16px}}
@media(min-width:1100px){body.ox .eh-grid{grid-template-columns:1fr 1fr 1fr}}
@media(min-width:1000px){
 body.ox .ed.ed-wide{position:relative;left:50%;width:min(1200px,calc(100vw - 64px));max-width:none!important;margin-left:0!important;margin-right:0!important;transform:translateX(-50%)}
 body.ox .ed-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;align-items:start;gap:24px}
 body.ox .ed-side{position:sticky;top:88px}
 body.ox .ed-card{padding:24px!important}
 body.ox .ed-name{grid-template-columns:24px 36px minmax(0,1fr) 200px 40px 40px;grid-template-areas:"g l n t p x"}
 body.ox .ed-al{grid-template-columns:36px minmax(0,1fr) 120px;grid-template-areas:"l n w" "m m m" "msg msg msg" "why why why" "rn rn rn"}
 body.ox .ed-sheet{align-items:center}body.ox .ed-sheet-in{border-radius:20px!important;padding:24px}body.ox .ed-sheet-in::before{display:none}
 body.ox .ed-head h1{font-size:32px}
 body.ox .ed-bar-actions{left:auto;right:24px;bottom:24px;width:auto;max-width:640px}
 body.ox .ed-status{max-width:200px}
}
body.ox .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
html[data-theme][lang] body.ox.ox.ct.ed-pg nav.bottom{display:none!important}
body.ox .ed-meth .ed-seg button{box-sizing:border-box;min-width:32px;padding:0 6px}
body.ox .ed-meth .ed-seg.ed-slv button{padding:0 12px}
body.ox label.ox-sw b,body.ox label.ed-chk span{font-weight:500;font-size:16px;color:var(--ink)}body.ox label.ox-sw small{font-weight:400}
body.ox .ed-meth .ed-seg.ed-conv{gap:2px}body.ox .ed-meth .ed-seg.ed-conv button{width:28px;min-width:28px;padding:0}
/* the site-wide underlined-link rule (ct-cleanup.css) is for text links; owner tiles, rows, tabs and crumbs are not */
html[data-theme][lang] body.ox.ox.ct main a.eh-tile,html[data-theme][lang] body.ox.ox.ct main a.el-row,html[data-theme][lang] body.ox.ox.ct main .es-tabs a,html[data-theme][lang] body.ox.ox.ct main .ed-crumbs a,html[data-theme][lang] body.ox.ox.ct main a.btn{text-decoration:none!important}
html[data-theme][lang] body.ox.ox.ct main .ed-crumbs a{color:var(--ox-muted)!important}
html[data-theme][lang] body.ox.ox.ct main .ed-head .sub a{color:var(--ox-cyan-ink)!important;text-decoration:none!important}
html[data-theme][lang] body.ox.ox.ct main .es-tabs a.on{color:var(--ink)!important}
/* "Important disclosures" placeholder link (/desk and Desk home; polish swaps in the shared sheet) */
.ox-disc{margin:24px 0 8px;text-align:center;font-size:13px}
html[data-theme][lang] body.ct main .ox-disc a,body.ct .ox-disc a{color:var(--ink-3,#7A8388)!important;text-decoration:none!important;font-weight:400}
body.ox .es-tabs a{padding:0 8px}
html[data-theme][lang] body.ox.ox.ct .dk.card,html[data-theme][lang] body.ox.ox.ct .me-login.card,html[data-theme][lang] body.ox.ox.ct .ed-card{border-radius:16px!important}
/* Desk app nav (/desk, /me, /me/*): small "DESK" tag after the COTEAU wordmark, same baseline. Public pages: no tag. */
html.desk body.ct header.top a.ct-brand .dk-tag{display:inline;vertical-align:baseline;margin-left:.45em;font:500 12px/1 "General Sans","Brand Wordmark",Inter,system-ui,sans-serif;letter-spacing:.14em;color:rgba(255,255,255,.6);white-space:nowrap;text-decoration:none}
/* phones: the tag never crowds search / bell / LIVE: the LIVE pill drops its label (dot stays, aria-label keeps the name) */
@media(max-width:430px){html.desk body.ct header.top a.ol-live span{display:none}html.desk body.ct header.top a.ol-live{padding:0 8px;gap:0;margin-right:2px}}
@media(max-width:350px){html.desk body.ct header.top a.ct-brand .dk-tag{display:none}}
html.desk body.ct header.top a.ct-brand .bwx{align-items:baseline}html.desk body.ct header.top a.ct-brand .bwx>svg{align-self:center}

/* ---------- step 2: per-holding author's note ("Why it's here"; hand-built portfolios only, rationale.py) ---------- */
body.ox .ed-al .ed-rn{grid-area:rn;margin:-2px 0 0 48px}
html[data-theme][lang] body.ox.ox.ct .ed-rnb{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:4px 0;font:500 14px/1.2 Inter,system-ui,sans-serif;color:var(--ox-cyan-ink);cursor:pointer;border-radius:8px!important}
html[data-theme][lang] body.ox.ox.ct .ed-rnb:focus-visible{box-shadow:var(--ox-ring)}
html[data-theme][lang] body.ox.ox.ct .ed-rnb::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-left:2px;transition:transform .15s}
html[data-theme][lang] body.ox.ox.ct .ed-rn.open .ed-rnb::after{transform:rotate(-135deg) translateY(-1px)}
body.ox .ed-rnchip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px!important;background:var(--ox-cyan-bg);color:var(--ox-cyan-ink);font:600 11.5px/1.4 Inter,system-ui,sans-serif;letter-spacing:.02em}
body.ox .ed-rnchip i{width:6px;height:6px;border-radius:50%!important;background:var(--ox-cyan)}
body.ox .ed-rnw{margin:6px 0 4px}
html[data-theme][lang] body.ox.ox.ct textarea.ed-rnt{width:100%;box-sizing:border-box;min-height:84px;resize:vertical;font:400 16px/1.45 Inter,system-ui,sans-serif!important}
body.ox .ed-rnf{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-top:6px;font-size:12.5px;color:var(--ox-muted)}
body.ox .ed-rnc{margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap}body.ox .ed-rnc.near{color:#8A5A00}
body.ox .ed-rnh{color:#8A5A00}
body.ox .ed-pvn{display:inline-block;margin-left:6px;padding:0 6px;border:1px solid var(--ox-hair-2);border-radius:999px!important;font:500 11px/1.5 Inter,system-ui,sans-serif;color:var(--ox-cyan-ink);vertical-align:1px}
@media (max-width:380px){body.ox .ed-al .ed-rn{margin-left:0}}
body.ox .ed-al{row-gap:0!important}body.ox .ed-al>.ed-meth,body.ox .ed-al>.ed-msg,body.ox .ed-al>.ed-why{margin-top:8px}body.ox .ed-al>.ed-rn{margin-top:4px}
/* Desk: one combined tag "DESK BETA" (Oct 21 2026): BETA lighter and smaller on the same baseline, shown at every width */
html.desk body.ct header.top a.ct-brand .dk-tag .dk-beta{margin-left:.5em;font-size:10px;font-weight:500;letter-spacing:.16em;color:rgba(255,255,255,.42);text-transform:uppercase}
@media(max-width:350px){html.desk body.ct header.top a.ct-brand .dk-tag{display:inline}html.desk body.ct header.top a.ct-brand .dk-tag .dk-beta{display:none}}
@media(max-width:400px){
 html.desk body.ct header.top a.ct-brand .dk-tag{font-size:11px;letter-spacing:.1em;margin-left:.38em}
 html.desk body.ct header.top a.ct-brand .dk-tag .dk-beta{font-size:9px;letter-spacing:.1em;margin-left:.42em}
 html.desk body.ct header.top .tb .iconbtn{width:34px!important;min-width:34px!important;padding:0!important}
 html.desk body.ct header.top .toprow{gap:6px!important}
 html.desk body.ct header.top .ct-brand{margin-left:4px!important}
}
/* LIVE pill (Oct 21 2026 review): soft filled rounded pill, no outline, always says LIVE (overrides the phone dot-only rule above) */
html.desk body.ct header.top a.ol-live{border-radius:999px!important;border:0!important;background:rgba(62,200,201,.18)!important;box-shadow:none!important;height:24px;padding:0 9px 0 8px;gap:5px}
html.desk body.ct header.top a.ol-live.ol-off{background:rgba(255,255,255,.10)!important}
@media(max-width:430px){html.desk body.ct header.top a.ol-live span{display:inline!important}html.desk body.ct header.top a.ol-live{padding:0 8px 0 7px!important;gap:4px!important;margin-right:0!important}html.desk body.ct header.top a.ol-live span{font-size:10.5px!important;letter-spacing:.05em}}
@media(max-width:400px){
 html.desk body.ct header.top a.ct-brand .dk-tag{font-size:10.5px;letter-spacing:.08em;margin-left:.34em}
 html.desk body.ct header.top a.ct-brand .dk-tag .dk-beta{font-size:8.5px;letter-spacing:.08em;margin-left:.36em}
 html.desk body.ct header.top .tb .iconbtn{width:32px!important;min-width:32px!important}
 html.desk body.ct header.top .toprow{gap:4px!important}
}
@media(max-width:374px){html.desk body.ct header.top .tb .iconbtn{width:30px!important;min-width:30px!important}html.desk body.ct header.top a.ol-live{padding:0 6px!important;gap:3px!important}html.desk body.ct header.top a.ol-live span{font-size:10px!important;letter-spacing:.04em}}
