/* Soft, low-saturation dark theme (default) — neutral slate greys and muted up/down colours,
   easier on the eyes than a saturated navy with neon accents. */
/* Default palette "Classic" — the original MoneyDesk colors: soft slate greys with
   the sky-blue accent, exactly as shipped before the v3.x color experiments.
   Alternative palettes are opt-in via html[data-pal=…] (🎨 Appearance section). */
:root{
  --bg:#181b20; --panel:#21252b; --panel2:#1c2026; --line:#2b313a; --line2:#39404b;
  --ink:#dfe4ea; --mut:#a0aab8; --dim:#868f9c; --accent:#5a9bd8; --accent2:#5fc9d6;
  --accent-soft:rgba(90,155,216,.15); --accent-ink:#fff;
  --cta:#2b6cb0; --cta-ink:#fff;
  --up:#41b883; --up-bg:rgba(65,184,131,.14); --down:#e0736c; --down-bg:rgba(224,115,108,.14);
  --up-ink:#52c893; --down-ink:#ec8f88;   /* chip text on the tinted chip backgrounds, >= 4.5:1 */
  --chart-grid:#2a2f38; --chart-axis:#6b7686;
  --tip-bg:rgba(17,28,46,.96); --tip-ink:#d6dce4;
  --shadow-card:0 1px 2px rgba(0,0,0,.22);
  --shadow-pop:0 18px 44px rgba(0,0,0,.5);
  --mono:"Consolas","SF Mono",ui-monospace,monospace;
  --sans:"Segoe UI","Segoe UI Variable Text",Inter,Roboto,system-ui,-apple-system,Arial,sans-serif;
}
/* Classic, light — warm off-white with dark-slate text (the original light theme). */
:root[data-theme="light"]{
  --bg:#f3f4f2; --panel:#ffffff; --panel2:#eef0f3; --line:#e2e6eb; --line2:#d4dae1;
  --ink:#272e36; --mut:#4c5660; --dim:#636b74; --accent:#2f6fb0; --accent2:#0e8fa3;
  --accent-soft:rgba(47,111,176,.12); --accent-ink:#fff;
  --cta:#2f6fb0; --cta-ink:#fff;
  --up:#1f9d57; --up-bg:rgba(31,157,87,.12); --down:#cf4b45; --down-bg:rgba(207,75,69,.12);
  --up-ink:#146c3b; --down-ink:#b02a24;
  --chart-grid:#e6e9ee; --chart-axis:#8a95a1;
  --tip-bg:rgba(255,255,255,.97); --tip-ink:#2c343d;
  --shadow-card:0 1px 2px rgba(16,24,40,.05),0 2px 10px rgba(16,24,40,.04);
  --shadow-pop:0 16px 40px rgba(16,24,40,.16);
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);font-size:16px;display:flex;flex-direction:column;text-rendering:optimizeLegibility}
/* Accessibility: skip link, keyboard focus ring, reduced motion (2026-10-14) */
.skip-link{position:absolute;left:8px;top:-52px;z-index:100000;background:var(--accent);color:#fff;padding:10px 16px;border-radius:0 0 10px 10px;font-weight:700;font-size:13px;text-decoration:none;transition:top .15s ease}
.skip-link:focus{top:0;outline:3px solid #fff;outline-offset:2px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,[role="button"]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:5px}
#main:focus{outline:none}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}
b{font-weight:700}

/* top bar */
.topbar{display:flex;align-items:center;gap:14px;padding:10px 18px;background:var(--panel);border-bottom:1px solid var(--line);position:relative;z-index:30;flex:none}
.backbtn{border:1px solid var(--line2);background:var(--panel2);color:var(--mut);border-radius:9px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
.backbtn:hover:not(:disabled){color:var(--ink);border-color:var(--accent)}
.backbtn:disabled{opacity:.35;cursor:default}

/* main navigation — one calm row of grouped dropdown menus (v3 redesign).
   Menus open on hover / keyboard focus; .closed suppresses a menu right after a pick
   (app.js removes it on mouseleave). Active view underlines its item or menu head. */
.mainnav{display:flex;align-items:center;gap:2px;padding:0 14px;background:var(--panel);border-bottom:1px solid var(--line);flex:none;position:relative;z-index:25;flex-wrap:wrap}
.mainnav .navtop{border:0;background:transparent;color:var(--mut);padding:13px 15px;font-size:15px;font-weight:600;cursor:pointer;white-space:nowrap;font-family:inherit;position:relative;display:inline-flex;align-items:center;gap:6px;border-radius:0}
.mainnav .navtop:hover{color:var(--ink)}
.mainnav .navtop.on{color:var(--accent)}
.mainnav .navtop.on::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:var(--accent);border-radius:2px}
.navgrp{position:relative}
.navgrp .caret{font-size:12px;opacity:.5}
.navmenu{position:absolute;top:100%;left:0;min-width:290px;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-pop);padding:8px;display:none;z-index:60}
.navgrp:hover .navmenu,.navgrp:focus-within .navmenu{display:block}
.navgrp.closed .navmenu{display:none !important}
.navgrp:last-child .navmenu{left:auto;right:0}
.navmenu button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:transparent;border-radius:10px;padding:9px 10px;cursor:pointer;color:var(--ink);font-family:inherit;font-size:14px}
.navmenu button:hover{background:var(--panel2)}
.navmenu button.on{background:var(--accent-soft)}
.navmenu .mi{font-size:16px;width:34px;height:34px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:9px;background:var(--panel2)}
.navmenu button:hover .mi{background:var(--panel)}
.navmenu .mt{display:flex;flex-direction:column;min-width:0}
.navmenu .mt b{font-size:14px;font-weight:600;line-height:1.25}
.navmenu .mt small{color:var(--dim);font-size:13px;margin-top:1px;line-height:1.3}
@media (max-width:900px){
  .mainnav{padding:0 6px}
  .mainnav .navtop{padding:11px 9px;font-size:14px}
  .navmenu{min-width:250px}
}
.brand{display:flex;align-items:center;gap:8px;font-size:16px}
.brand h1{font-size:inherit;font-weight:700;margin:0}
.brand .logo{font-size:18px}
.seointro{max-width:760px;margin:24px auto;padding:0 16px;line-height:1.6}
.seointro h2{font-size:22px;margin:0 0 12px}
.seointro h3{font-size:17px;margin:18px 0 6px}
.seointro p{margin:8px 0;color:var(--dim)}
.brand .tag{color:var(--dim);font-size:13px;text-transform:uppercase;letter-spacing:1.5px}
.searchwrap{position:relative;flex:1;max-width:560px;min-width:230px}
.searchwrap input{width:100%;background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:10px;padding:9px 13px;font-size:14px;outline:none}
.searchwrap input:focus{border-color:var(--accent)}
.searchdrop{position:absolute;top:44px;left:0;width:min(620px,86vw);background:var(--panel);border:1px solid var(--line2);border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.5);overflow:hidden;display:none;z-index:40}
.searchdrop.open{display:block}
.searchdrop .row{display:flex;align-items:center;gap:10px;padding:9px 13px;cursor:pointer;border-bottom:1px solid var(--line)}
.searchdrop .row:last-child{border-bottom:0}
.searchdrop .row:hover,.searchdrop .row.active{background:var(--panel2)}
.searchdrop .sym{font-weight:700;font-family:var(--mono);min-width:64px}
.searchdrop .nm{color:var(--mut);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.searchdrop .ex{color:var(--dim);font-size:12px}
.status{display:flex;align-items:center;gap:12px;margin-left:auto;position:relative;flex-wrap:wrap;justify-content:flex-end;row-gap:6px}
.provmenu{position:absolute;top:calc(100% + 8px);right:0;background:var(--panel);border:1px solid var(--line2);border-radius:9px;box-shadow:0 12px 30px rgba(0,0,0,.4);overflow:hidden;display:none;z-index:40;min-width:130px}
.provmenu.open{display:block}
.provmenu .prow{padding:8px 14px;cursor:pointer;font-size:13px;color:var(--mut);text-transform:capitalize}
.provmenu .prow:hover{background:var(--panel2);color:var(--ink)}
.provmenu .prow.on{color:var(--accent2)}
.badge{background:var(--panel2);border:1px solid var(--line2);color:var(--mut);border-radius:20px;padding:3px 11px;font-size:12px}
.iconbtn{cursor:pointer;line-height:1.2}
.iconbtn:hover{color:var(--ink);border-color:var(--accent)}
.ver{color:var(--dim);font-size:12px;font-family:var(--mono)}

/* layout */
.layout{display:flex;align-items:flex-start;flex:1;min-height:0}
.prebooting .layout{visibility:hidden}   /* until app.js has built the first view (see theme-init.js) */
.prebooting .layout *{animation:none !important}   /* skeleton shimmer etc. do not run while unpainted */
/* Home cards that start as skeletons and fill in from the API: reserve their usual height on wide
   screens so the cards below them do not jump when the data lands (layout shift, measured 555/566px). */
@media (min-width:1000px){ #homeEco{min-height:540px} #homeHealth{min-height:550px} }
.side{width:280px;flex:none;border-right:1px solid var(--line);height:100%;display:flex;flex-direction:column;background:var(--panel2)}
.sidehead{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-size:13px;text-transform:uppercase;letter-spacing:1.4px;color:var(--dim);border-bottom:1px solid var(--line)}
.clock{font-family:var(--mono);letter-spacing:.5px}
.watchlist{flex:1;overflow-y:auto;padding:6px}
.sidefoot{padding:10px 16px;color:var(--dim);font-size:13px;border-top:1px solid var(--line)}
.main{flex:1;height:100%;overflow-y:auto;padding:20px 26px}

/* watchlist rows */
.wrow{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:9px;cursor:pointer;position:relative}
.wrow:hover{background:var(--panel)}
.wrow.active{background:var(--panel);box-shadow:inset 2px 0 0 var(--accent)}
.wrow .wsym{font-weight:700;font-family:var(--mono);font-size:14px}
.wrow .wprice{margin-left:auto;text-align:right}
.wrow .wprice .p{font-family:var(--mono);font-size:13px}
.wrow .wprice .c{font-size:13px}
.wrow .wx{position:absolute;right:6px;top:6px;color:var(--dim);opacity:0;font-size:12px;padding:2px 5px;border-radius:5px}
.wrow:hover .wx{opacity:1}
.wrow .wx:hover{color:var(--down);background:var(--down-bg)}
.up{color:var(--up)} .down{color:var(--down)}
.chip-up{background:var(--up-bg);color:var(--up-ink,var(--up))} .chip-down{background:var(--down-bg);color:var(--down-ink,var(--down))}

/* symbol header */
.symhead{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap;margin-bottom:14px}
.symhead .id .tk{font-size:22px;font-weight:700;font-family:var(--mono);letter-spacing:.5px}
.symhead .id .nm{color:var(--mut);font-size:14px;margin-top:2px}
.symhead .id .ex{color:var(--dim);font-size:12px;margin-top:3px}
.symhead .px{margin-left:auto;text-align:right}
.symhead .px .big{font-size:30px;font-weight:700;font-family:var(--mono);line-height:1}
.symhead .px .chg{font-size:15px;font-weight:600;margin-top:4px;font-family:var(--mono)}
.symhead .px .chip{display:inline-block;padding:2px 10px;border-radius:20px;margin-left:6px;font-size:13px}

/* chart card */
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:18px}
.chartbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.ranges,.overlays{display:inline-flex;gap:4px;background:var(--panel2);border:1px solid var(--line2);border-radius:9px;padding:3px}
.ranges button,.overlays button{background:transparent;border:0;color:var(--mut);padding:5px 11px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer}
.ranges button.on{background:var(--accent);color:#fff}
.overlays button.on{background:var(--panel);color:var(--accent2);box-shadow:inset 0 0 0 1px var(--line2)}
.overlays .lbl{color:var(--dim);font-size:13px;text-transform:uppercase;letter-spacing:1px;padding:5px 6px}
.chartwrap{position:relative}
.chart{width:100%;height:380px;display:block;touch-action:none}
.crosshair{position:absolute;pointer-events:none;background:var(--tip-bg);color:var(--tip-ink);border:1px solid var(--line2);border-radius:8px;padding:7px 10px;font-size:12px;display:none;z-index:5;white-space:nowrap;box-shadow:0 4px 16px rgba(0,0,0,.25)}
.crosshair .d{color:var(--dim);font-size:13px;margin-bottom:2px}
.crosshair .row{display:flex;justify-content:space-between;gap:14px;font-family:var(--mono)}

/* stats grid */
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.stat{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.stat .k{color:var(--dim);font-size:13px;text-transform:uppercase;letter-spacing:.6px}
.stat .v{font-family:var(--mono);font-size:15px;margin-top:3px}

.btparam{font-size:13px;color:var(--mut);display:inline-flex;align-items:center;gap:5px}
.btparam input{background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:7px;padding:6px 8px;font-size:13px;font-family:var(--mono)}
.eqleg{font-size:12px;color:var(--mut);margin-top:8px}
#btMsg{font-size:13px;color:var(--mut)}
.alertform{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.alertform input,.alertform select{background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:8px;padding:8px 11px;font-size:14px}
.alertform input{width:120px} .alertform #alSym{width:100px;font-family:var(--mono);text-transform:uppercase}
.scrow{margin-bottom:8px} .scrow select{min-width:120px} #scSymbols{font-family:var(--mono);text-transform:uppercase}
.jobintro{color:var(--dim);margin-bottom:12px;max-width:720px;line-height:1.5}
.jobhead{display:flex;align-items:center;justify-content:space-between;gap:12px}
.jobtoggle{display:flex;align-items:center;gap:8px;font-size:15px;cursor:pointer}
.jobtoggle input{width:16px;height:16px;accent-color:var(--up)}
.jobmeta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0 6px}
.jobmeta input{background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:8px;padding:7px 10px;font-size:14px;font-family:var(--mono)}
.jobmeta input[data-bad]{border-color:var(--down)}
.jobhint{color:var(--dim);font-size:13px} .jobnext{color:var(--mut);font-size:13px}
.jobmsg{font-size:13px;color:var(--mut)} .jobmsg.err{color:var(--down)}
.joblast{color:var(--mut);font-size:14px;margin-top:4px} .joblast a{color:var(--accent);text-decoration:none}
.joboutput{margin-top:10px} .joboutput:empty{margin:0}
.joboutpre{background:var(--panel2);border:1px solid var(--line2);border-radius:8px;padding:10px;overflow:auto;font-size:12px;max-height:280px}
.obanner{background:var(--panel2);border:1px solid var(--line2);border-left:3px solid var(--up);border-radius:8px;padding:11px 14px;margin-bottom:14px;color:var(--mut);line-height:1.5;max-width:820px}
.obanner.live{border-left-color:var(--down)}
.oticket{row-gap:10px} .oticket #oSym{width:100px;font-family:var(--mono);text-transform:uppercase}
.odry{background:var(--panel2);border:1px solid var(--line2);border-radius:8px;padding:6px 10px}
.ocard .stats{margin-bottom:10px}
.ofeasible{font-size:14px;padding:8px 0} .ofeasible.ok{color:var(--up)} .ofeasible.bad{color:var(--down)}
.oconfirm{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px}
.odim{color:var(--dim);font-size:13px}
.btn.confirm{background:var(--accent);color:#fff;border:none;font-weight:600;padding:10px 16px}
.btn.confirm:hover{filter:brightness(1.08)} .btn.confirm:disabled{opacity:.6;cursor:default}
/* dividend capture */
.divbanner{background:var(--panel2);border:1px solid var(--line2);border-left:3px solid var(--accent);border-radius:8px;padding:13px 16px;margin-bottom:14px;color:var(--mut);line-height:1.55;max-width:900px}
.divbanner b{color:var(--ink)}
.divcaveat{margin-top:9px;padding-top:9px;border-top:1px solid var(--line2);font-size:13px;color:var(--dim)}
.divhead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.divtable td{vertical-align:top} .divname{font-size:13px;font-weight:400;margin-top:1px}
.divrow{cursor:pointer} .divrow:hover{background:var(--panel2)}
.vchip{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap}
.vd-favourable{background:rgba(65,184,131,.16);color:var(--up)}
.vd-avoid{background:rgba(226,90,90,.16);color:var(--down)}
.vd-mixed{background:rgba(210,150,60,.18);color:#d2963c}
.vd-thin{background:var(--panel2);color:var(--dim)}
.divadvice td{padding:0 !important;background:transparent}
.dvadvbox{margin:2px 0 8px;padding:12px 14px;border-radius:8px;background:var(--panel2);border:1px solid var(--line2);border-left:3px solid var(--mut)}
.dvadvbox.vb-favourable{border-left-color:var(--up)} .dvadvbox.vb-avoid{border-left-color:var(--down)}
.dvadvbox.vb-mixed{border-left-color:#d2963c} .dvadvbox.vb-thin{border-left-color:var(--dim)}
.dvadvtext{color:var(--ink);line-height:1.5} .dvadvtext b{color:var(--ink)}
.dvadvmeta{color:var(--mut);font-size:13px;margin:8px 0} .dvk{color:var(--dim)}
.btn.dvchart,.btn.dvtocalc{padding:5px 12px;font-size:13px}
/* sub-tabs */
.dvtabbar{display:flex;gap:6px;margin:14px 0 12px;flex-wrap:wrap}
.dvtab{background:var(--panel2);border:1px solid var(--line2);color:var(--mut);border-radius:8px;padding:8px 15px;font-size:14px;font-weight:600;cursor:pointer}
.dvtab:hover{color:var(--ink)} .dvtab.on{background:var(--accent);border-color:var(--accent);color:#fff}
/* sortable headers + scroll */
.tblscroll{overflow-x:auto} .divtable{min-width:820px}
.sorth{cursor:pointer;white-space:nowrap;user-select:none} .sorth:hover{color:var(--ink)} .sorth.on{color:var(--accent)}
/* risk chips */
.rchip{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap}
.rk-low{background:rgba(65,184,131,.16);color:var(--up)}
.rk-medium{background:rgba(210,150,60,.18);color:#d2963c}
.rk-high{background:rgba(226,90,90,.16);color:var(--down)}
.dvrisk{margin:10px 0;color:var(--mut)} .dvrlist{margin:6px 0 0;padding-left:20px;line-height:1.6} .dvrlist li{color:var(--mut)}
/* calendar */
.calmonth{font-size:15px;font-weight:700;color:var(--ink);margin:16px 0 6px;padding-bottom:5px;border-bottom:1px solid var(--line2)}
/* calculator */
.calchead{font-size:15px;color:var(--ink);margin:14px 0 6px} .calchead b{color:var(--ink)}
.calcstats{margin-top:6px} .calcstats .stat{min-width:150px}
.calcwarn{background:rgba(226,90,90,.12);border:1px solid rgba(226,90,90,.4);border-radius:8px;padding:10px 13px;margin:10px 0;color:var(--ink);line-height:1.5}
.calcdisc{margin-top:12px;padding-top:10px;border-top:1px solid var(--line2);color:var(--dim);font-size:13px;line-height:1.5}
.rrbar{margin:14px 0 4px}
.rrhead{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;margin-bottom:5px}
.rrhead .odim{font-weight:400}
.rrtrack{position:relative;display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--panel2);border:1px solid var(--line2)}
.rrbad{background:linear-gradient(90deg,rgba(226,90,90,.7),rgba(226,90,90,.25))}
.rrgood{background:linear-gradient(90deg,rgba(65,184,131,.25),rgba(65,184,131,.7));margin-left:auto}
.rrmid{position:absolute;left:50%;top:-2px;bottom:-2px;width:2px;background:var(--ink);opacity:.5}
.rrmark{position:absolute;top:-3px;bottom:-3px;width:3px;background:var(--ink);border-radius:2px;transform:translateX(-50%)}
/* recommendations */
.recintro{color:var(--mut);line-height:1.55;max-width:880px} .recintro b{color:var(--ink)}
.scenario{font-size:15px;color:var(--ink);line-height:1.55;margin-bottom:4px} .scenario b{color:var(--ink)}
.riskexplain{margin-top:12px;color:var(--mut);font-size:13px;line-height:1.55} .riskexplain b{color:var(--ink)}
.secchips{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.secchip{background:var(--panel2);border:1px solid var(--line2);border-radius:20px;padding:3px 11px;font-size:12px;color:var(--mut)}
/* short-term trading */
.ideagrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:8px}
.ideacard{background:var(--panel2);border:1px solid var(--line2);border-left:3px solid var(--accent);border-radius:8px;padding:13px 15px}
.ideacard.tone-mean{border-left-color:var(--accent2)} .ideacard.tone-mom{border-left-color:var(--up)} .ideacard.tone-trend{border-left-color:#d2963c}
.ideahd{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.ideahd b{color:var(--ink);font-size:15px}
.ideakind{font-size:13px;color:var(--mut);background:var(--panel);border:1px solid var(--line2);border-radius:20px;padding:2px 9px;white-space:nowrap}
.ideatxt{color:var(--mut);line-height:1.5;font-size:14px} .ideameta{color:var(--dim);font-size:12px;margin-top:8px}
.tedge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap}
.tedge.yes{background:rgba(65,184,131,.16);color:var(--up)} .tedge.no{background:var(--panel2);color:var(--dim)}
.tplan td{padding:0 !important;background:transparent}
/* best buys (value) */
.tierchip{display:inline-block;padding:2px 9px;border-radius:20px;font-size:13px;font-weight:600;white-space:nowrap;margin-left:4px}
.tier-toppick{background:rgba(65,184,131,.18);color:var(--up)} .tier-strong{background:var(--accent-soft);color:var(--accent)}
.tier-watch{background:var(--panel2);color:var(--mut)} .tier-speculative{background:rgba(210,150,60,.16);color:#d2963c}
.secbadge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap;margin-left:4px;background:var(--accent-soft);color:var(--accent)}
.zone{display:inline-block;padding:0 6px;border-radius:10px;font-size:12px;font-weight:600;text-transform:capitalize;vertical-align:middle}
.zone.zg{background:rgba(65,184,131,.16);color:var(--up)} .zone.zy{background:rgba(210,150,60,.16);color:#d2963c} .zone.zr{background:var(--down-bg);color:var(--down)}
.pickgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(430px,1fr));gap:14px;margin-top:12px}
.pickcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}
.pickhd{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.picksym{font-size:19px;font-weight:700;color:var(--ink)} .pickname{font-size:12px;margin-top:2px}
.pickscore{text-align:center} .pso{font-size:26px;font-weight:700;color:var(--up);line-height:1}
.pickbuy{margin-top:8px;font-size:13px;color:var(--accent);font-weight:600}
.scores{margin:12px 0}
.scrow{display:flex;align-items:center;gap:8px;margin:4px 0;font-size:12px}
.scl{width:56px;color:var(--mut)} .scv{width:24px;text-align:right;color:var(--ink);font-weight:600}
.sctrack{flex:1;height:8px;background:var(--panel2);border-radius:5px;overflow:hidden}
.scfill{height:100%;border-radius:5px}
.sc-rebound{background:#8b7cf6} .sc-safety{background:var(--up)} .sc-quality{background:var(--accent2)} .sc-value{background:var(--accent)} .sc-unloved{background:#d2963c}
.sc-resil{background:#3aa981} .sc-strength{background:#4d8fd1} .sc-trendk{background:#8b7cf6}
.mcard.sc-resil-b{border-top-color:#3aa981} .mcard.sc-strength-b{border-top-color:#4d8fd1}
.tierchip.role-dividendanchor{background:rgba(210,150,60,.16);color:#d2963c}
.tierchip.role-defensivecompounder{background:rgba(58,169,129,.16);color:#3aa981}
.tierchip.role-steadycompounder{background:rgba(77,143,209,.16);color:#4d8fd1}
#navBackBtn:disabled{opacity:.35;cursor:default;pointer-events:none}
.whynow{background:rgba(139,124,246,.09);border:1px solid rgba(139,124,246,.28);border-radius:8px;padding:9px 12px;margin:10px 0}
.whyh{color:#8b7cf6}
.secbadge.okb{background:rgba(65,184,131,.16);color:var(--up)}
.tick{color:var(--up);font-weight:700}
.vmetrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0;padding:10px 0;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}
.vm{min-width:0} .vmk{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:.02em} .vmv{font-size:14px;font-weight:600;color:var(--ink)}
.thesis{color:var(--mut);line-height:1.55;margin:10px 0;font-size:14px}
.srgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:10px}
.srh{font-size:12px;font-weight:700;margin-bottom:4px} .vgoodh{color:var(--up)} .vbadh{color:#d2963c}
.srl{margin:0;padding-left:16px} .srl li{font-size:12px;line-height:1.45;margin-bottom:3px} .vgood{color:var(--mut)} .vbad{color:var(--mut)}
.methodgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:8px}
.mcard{background:var(--panel2);border:1px solid var(--line2);border-radius:8px;padding:12px 14px;border-top:3px solid var(--line2)}
.mcard b{color:var(--ink)} .mcard .odim{margin-top:5px;line-height:1.5}
.mcard.sc-rebound-b{border-top-color:#8b7cf6} .mcard.sc-safety-b{border-top-color:var(--up)} .mcard.sc-quality-b{border-top-color:var(--accent2)} .mcard.sc-value-b{border-top-color:var(--accent)} .mcard.sc-unloved-b{border-top-color:#d2963c}
@media (max-width:560px){ .vmetrics{grid-template-columns:repeat(2,1fr)} .srgrid{grid-template-columns:1fr} }
#alMsg{font-size:13px;color:var(--down)}
.xbtn{background:transparent;border:0;color:var(--dim);cursor:pointer;font-size:13px;padding:2px 6px;border-radius:5px}
.xbtn:hover{color:var(--down);background:var(--down-bg)}
#toasts{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:8px;z-index:80}
.toast{background:var(--panel);border:1px solid var(--line2);border-left:3px solid var(--accent);color:var(--ink);
  padding:11px 15px;border-radius:9px;box-shadow:0 10px 30px rgba(0,0,0,.4);font-size:13px;max-width:320px;
  opacity:0;transform:translateY(8px);transition:.25s}
.toast.show{opacity:1;transform:none}
.traderow{display:flex;align-items:center;gap:7px;margin-top:9px;justify-content:flex-end}
.traderow input{width:78px;background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:8px;padding:6px 9px;font-size:14px;font-family:var(--mono);text-align:right}
.btn{border:1px solid var(--line2);background:var(--panel2);color:var(--ink);padding:6px 15px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}
.btn:hover{opacity:.92}
.btn.buy{background:var(--up);border-color:var(--up);color:#06281a}
.btn.sell{background:var(--down);border-color:var(--down);color:#fff}
#tradeMsg{font-size:12px;min-width:60px;text-align:left}
#tradeMsg.ok{color:var(--up)} #tradeMsg.err{color:var(--down)}
.phead{display:flex;align-items:center;justify-content:space-between;margin:2px 0 14px}
.phead h2{font-size:20px}
.ptable{width:100%;border-collapse:collapse;font-size:14px}
.ptable th{text-align:left;color:var(--dim);font-size:13px;text-transform:uppercase;letter-spacing:.5px;padding:8px 10px;border-bottom:1px solid var(--line);font-weight:700}
.ptable td{padding:9px 10px;border-bottom:1px solid var(--line);font-family:var(--mono)}
.ptable tbody tr:last-child td{border-bottom:0}
.ptable .sym{font-weight:700;cursor:pointer}
.ptable .sym:hover{color:var(--accent2)}
.tabbar{display:flex;gap:6px;margin:2px 0 14px}
.tabbar button{background:var(--panel2);border:1px solid var(--line);color:var(--mut);padding:7px 16px;border-radius:9px;font-size:14px;font-weight:600;cursor:pointer}
.tabbar button:hover{color:var(--ink)}
.tabbar button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.fundhead{color:var(--mut);margin-bottom:12px;font-size:14px}
.fgh{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--dim);font-weight:700;margin-bottom:10px}
.newsrow{display:block;padding:11px 6px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.newsrow:last-child{border-bottom:0}
.newsrow:hover{background:var(--panel2);border-radius:8px}
.newst{font-weight:600;font-size:14px;line-height:1.4}
.newsm{color:var(--dim);font-size:12px;margin-top:3px}
.profile{color:var(--mut);font-size:14px;line-height:1.6}
.profile .meta{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:8px;color:var(--dim);font-size:13px}
.profile a{color:var(--accent2)}

.empty{display:grid;place-items:center;height:70%;color:var(--dim);text-align:center}
.empty .big{font-size:44px;margin-bottom:10px}
.err{background:var(--down-bg);border:1px solid rgba(239,68,68,.35);color:var(--down);border-radius:10px;padding:12px 15px;margin:10px 0}
.spin{color:var(--dim);padding:30px;text-align:center}
.scanstamp{color:var(--dim);font-size:13px;margin:-8px 0 12px}
.scanstamp a{color:var(--accent);text-decoration:none}
.scanstamp a:hover{text-decoration:underline}

/* quick trade — live prices in search results, one-click buy/sell dialog */
.searchdrop .qpx{font-family:var(--mono);font-size:13px;color:var(--ink);white-space:nowrap}
.searchdrop .qpx .up{color:var(--up)} .searchdrop .qpx .down{color:var(--down)}
.searchdrop .acts{display:flex;gap:6px;margin-left:4px}
.mini{border:1px solid var(--line2);background:var(--panel2);color:var(--ink);border-radius:7px;padding:3px 9px;font-size:12px;font-weight:600;cursor:pointer;line-height:1.4}
.mini:hover{border-color:var(--accent)}
.mini:disabled{opacity:.6;cursor:default}
.mini.buy{background:var(--up);border-color:var(--up);color:#fff}
.mini.sellm{background:var(--down);border-color:var(--down);color:#fff}
.pact{white-space:nowrap} .pact .mini{margin-right:5px}
.qtback{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:flex-start;justify-content:center;z-index:60;padding-top:12vh}
.qtback.open{display:flex}
.qtcard{background:var(--panel);border:1px solid var(--line2);border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.45);width:430px;max-width:92vw;padding:18px 20px}
.qthead{display:flex;align-items:flex-start;gap:14px;margin-bottom:12px}
.qthead .tk{font-size:20px;font-weight:700;font-family:var(--mono)}
.qthead .nm{color:var(--mut);font-size:13px;max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qthead .px{margin-left:auto;font-size:17px;font-weight:600;font-family:var(--mono);text-align:right}
.qtx{background:none;border:none;color:var(--dim);font-size:15px;cursor:pointer;padding:2px 4px}
.qtx:hover{color:var(--ink)}
.qtside{display:flex;gap:8px;margin-bottom:10px}
.qtside button{flex:1;border:1px solid var(--line2);background:var(--panel2);color:var(--mut);border-radius:8px;padding:7px 0;font-size:14px;font-weight:600;cursor:pointer}
.qtside button.on.buy{background:var(--up);border-color:var(--up);color:#fff}
.qtside button.on.sell{background:var(--down);border-color:var(--down);color:#fff}
.qtmeta{color:var(--mut);font-size:13px;margin:8px 0}
.qtrow{display:flex;align-items:flex-end;gap:10px;margin:12px 0 4px}
.qtrow label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--dim);flex:1}
.qtrow input{background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:8px;padding:8px 10px;font-size:14px;font-family:var(--mono);width:100%}
.qtrow .eq{color:var(--dim);padding-bottom:9px}
.qtrow .mini{margin-bottom:6px}
.qtmsg{min-height:20px;font-size:13px;margin:6px 0}
.qtmsg.err{color:var(--down)} .qtmsg.ok{color:var(--up)}
.qtfoot{display:flex;align-items:center;gap:12px;margin-top:10px}
.qtfoot a{color:var(--accent);font-size:13px;text-decoration:none;margin-left:auto}
.qtfoot a:hover{text-decoration:underline}
.qtdone .big{font-size:17px;font-weight:700;margin-bottom:6px}
.qtdone .big.ok{color:var(--up)}
.qtdone .sub{color:var(--mut);font-size:14px}
.qtpick .row{display:flex;align-items:center;gap:10px;padding:9px 11px;cursor:pointer;border-radius:8px}
.qtpick .row:hover{background:var(--panel2)}
.qtpick .sym{font-weight:700;font-family:var(--mono);min-width:64px}
.qtpick .nm{color:var(--mut);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qtpick .ex{color:var(--dim);font-size:12px}

/* home dashboard */
.brand{cursor:pointer}
.mktrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:18px}
.mktcard{margin-bottom:0;padding:12px 14px}
.mktcard.clickable{cursor:pointer}
.mktcard.clickable:hover{border-color:var(--accent)}
.mktcard .mkl{color:var(--dim);font-size:13px;text-transform:uppercase;letter-spacing:.6px}
.mktcard .mks{font-family:var(--mono);font-weight:700;font-size:13px;margin-top:2px;color:var(--mut)}
.mktcard .mkv{font-family:var(--mono);font-size:16px;font-weight:600;margin-top:7px}
.mktcard .chip{display:inline-block;padding:1px 8px;border-radius:20px;font-size:13px;margin-left:5px}
.homerow{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-bottom:18px}
.homecard{margin-bottom:0}
.hstats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.fwdrow{padding:8px 11px;border:1px solid var(--line);border-radius:9px;margin-bottom:8px;cursor:pointer;background:var(--panel2)}
.fwdrow:hover{border-color:var(--accent)}
.fwdrow .fwn{font-weight:600;font-size:13px}
.fwdrow .fwm{color:var(--mut);font-size:12px;margin-top:3px;font-family:var(--mono)}
.mvh{font-size:13px;text-transform:uppercase;letter-spacing:.6px;font-weight:700;margin-bottom:4px}
.mvrow{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:7px;cursor:pointer;font-family:var(--mono);font-size:13px}
.mvrow:hover{background:var(--panel2)}
.mvrow .sym{font-weight:700;min-width:56px}
.mvrow .mvp{margin-left:auto;color:var(--mut)}
.tilegrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.tile{display:flex;align-items:center;gap:11px;background:var(--panel2);border:1px solid var(--line2);border-radius:10px;padding:11px 13px;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}
.tile:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.22)}
.tile .ti{font-size:19px;width:38px;height:38px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:10px}
.tile b{font-size:14px}
.tile .odim{font-size:13px;margin-top:1px}

/* home hero */
.homehero{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px;padding:18px 22px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,var(--panel) 30%,var(--accent-soft) 100%)}
.hgreet{font-size:21px;font-weight:700;letter-spacing:.2px}
.hsub{color:var(--mut);font-size:13px;margin-top:6px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.heroact{display:flex;gap:9px;flex-wrap:wrap}
.mktstatus{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;border-radius:20px;padding:3px 11px;background:var(--panel2);border:1px solid var(--line2)}
.mktstatus .dot{width:7px;height:7px;border-radius:50%;background:var(--dim)}
.mktstatus.live{color:var(--up)} .mktstatus.live .dot{background:var(--up);animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.heroev{display:inline-flex;align-items:center;font-size:12px;font-weight:600;color:var(--accent2);background:var(--panel2);border:1px solid var(--line2);border-radius:20px;padding:3px 11px}

/* home cards + market strip polish */
.mktcard,.homecard{transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}
.mktcard.clickable:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.22)}
.mkspark{margin-top:8px;min-height:30px;display:flex;align-items:center}
/* sparklines (watchlist + home equity) */
.spark{display:inline-block;vertical-align:middle}
.sp{fill:none;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.sp.up{stroke:var(--up)} .sp.down{stroke:var(--down)} .sp.acc{stroke:var(--accent)}
.wrow .wspark{margin-left:auto;line-height:0;opacity:.85}
.wrow .wspark:empty{margin-left:0}
.wrow .wspark + .wprice{margin-left:0}
.wrow .wspark:empty + .wprice{margin-left:auto}
/* transactions note marker */
.txnote{cursor:default;font-size:12px}

@media(max-width:820px){
  .side{position:fixed;left:0;top:57px;bottom:0;z-index:20;transform:translateX(-100%);transition:transform .2s}
  .side.open{transform:none}
  .main{padding:16px}
}

/* ===== portfolio insights, earnings, adopt & home alerts (v1.16 frontend additions) ===== */
:root{ --warn:#d2963c; --warn-bg:rgba(210,150,60,.16) }
:root[data-theme="light"]{ --warn:#a2691b; --warn-bg:rgba(162,105,27,.12) }
/* sector allocation card */
.alrow{margin-bottom:12px}
.alhead{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:13px;margin-bottom:4px}
.alname{font-weight:600;color:var(--ink)}
.alval{font-family:var(--mono);color:var(--mut);font-size:13px;white-space:nowrap}
.altrack{height:10px;background:var(--panel2);border:1px solid var(--line2);border-radius:6px;overflow:hidden}
.alfill{height:100%;background:var(--accent);border-radius:6px;opacity:.85}
.alsyms{margin-top:5px;display:flex;gap:5px;flex-wrap:wrap}
.alchip{background:var(--panel2);border:1px solid var(--line2);border-radius:20px;padding:1px 9px;font-size:13px;font-family:var(--mono);color:var(--mut);cursor:pointer}
.alchip:hover{border-color:var(--accent);color:var(--ink)}
.warnline{color:var(--warn);font-size:13px;margin-top:8px;line-height:1.45}
/* earnings chip in the positions table */
.echip{display:inline-block;background:var(--warn-bg);color:var(--warn);border-radius:20px;padding:1px 8px;font-size:13px;font-weight:600;margin-left:7px;white-space:nowrap;vertical-align:1px}
/* symbol-page overview extras: 52-week range bar, earnings & analyst target lines */
#symExtras{margin-top:12px;display:flex;flex-direction:column;gap:8px}
#symExtras:empty{margin:0}
.rngwrap{display:flex;align-items:center;gap:10px}
.rnglab{color:var(--dim);font-size:13px;text-transform:uppercase;letter-spacing:.6px;white-space:nowrap}
.rngv{font-family:var(--mono);font-size:12px;color:var(--mut);white-space:nowrap}
.rngtrack{position:relative;flex:1;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--down),var(--warn),var(--up));opacity:.9}
.rngmark{position:absolute;top:-4px;bottom:-4px;width:3px;border-radius:2px;background:var(--ink);box-shadow:0 0 0 1px var(--bg);transform:translateX(-50%)}
.symearn{font-size:13px;color:var(--mut)} .symearn.soon{color:var(--warn)} .symearn b{color:inherit}
.symtarget{font-size:13px;color:var(--mut)} .symtarget b{color:var(--ink);font-family:var(--mono)}
/* adopt-into-portfolio modal */
.adoptlist{max-height:280px;overflow-y:auto;margin:6px 0}
.adrow{font-size:13px;padding:4px 0;font-family:var(--mono)}
.adrow.skip{color:var(--mut)}
/* home alerts card */
.alcount{font-size:14px;font-weight:600}
.alertrow{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:7px;cursor:pointer;font-size:13px}
.alertrow:hover{background:var(--panel2)}
.alertrow .sym{font-weight:700;font-family:var(--mono);min-width:52px}
.alertrow .alc{color:var(--mut);flex:1}

/* index constituent browser */
.idxctl{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.idxctl input,.idxctl select{background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:8px;padding:7px 11px;font-size:13px}
.idxctl input{flex:1;min-width:180px;max-width:340px}
.ptable th.sortable{cursor:pointer;user-select:none}
.ptable th.sortable:hover{color:var(--accent2)}

/* watchlist group tabs */
.wgroups{display:flex;flex-wrap:wrap;gap:5px;padding:8px 10px;border-bottom:1px solid var(--line)}
.wgtab{background:var(--panel);border:1px solid var(--line2);color:var(--mut);border-radius:14px;padding:3px 10px;font-size:12px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.wgtab:hover{color:var(--ink);border-color:var(--accent)}
.wgtab.on{background:var(--accent);border-color:var(--accent);color:#fff}
.wgtab .wgx{opacity:.75;font-size:13px}
.wgtab .wgx:hover{opacity:1}
.wgtab.wgadd{padding:3px 9px}

/* earnings calendar */
.ecday{padding:10px 0;border-bottom:1px solid var(--line)}
.ecday:last-of-type{border-bottom:0}
.echead{margin-bottom:7px}
.ecsyms{display:flex;flex-wrap:wrap;gap:7px}
.ecchip{background:var(--panel2);border:1px solid var(--line2);border-radius:8px;padding:5px 11px;font-family:var(--mono);font-weight:700;font-size:13px;cursor:pointer}
.ecchip:hover{border-color:var(--accent);color:var(--accent2)}
.ecbadge{font-size:13px}

/* auth modal */
.aucode{font-family:var(--mono);font-size:20px;font-weight:700;letter-spacing:2px;text-align:center;background:var(--panel2);border:1px dashed var(--accent);border-radius:10px;padding:14px;margin:10px 0;user-select:all}

/* disclaimer modal */
.dccard{width:560px;max-width:94vw}
.dctext{max-height:52vh;overflow-y:auto;font-size:13px;line-height:1.55;padding-right:6px}
.dctext p{margin:0 0 9px}
.sidefoot a{color:var(--accent)}
/* community + captcha */
.caprow{align-items:center}
.capbox{display:inline-flex;align-items:center;gap:8px}
.capimg svg{border-radius:8px;border:1px solid var(--line2);height:44px;width:auto}
.tsbox{min-height:66px;margin:6px 0}
.capin{width:74px;background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:8px;padding:7px 9px;font-family:var(--mono)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.cmpost{cursor:pointer}
.cmpost:hover{border-color:var(--accent)}
.cmtop{display:flex;align-items:center;gap:10px;margin-bottom:5px}
.cmcat{margin-left:auto;background:var(--panel2);border:1px solid var(--line2);border-radius:12px;padding:2px 10px;font-size:13px;color:var(--mut);white-space:nowrap}
.cmsnip{color:var(--mut);font-size:13px;margin-bottom:7px}
.cmbody{white-space:pre-wrap;font-size:14px;margin:7px 0;line-height:1.55}
.cmmeta{display:flex;align-items:center;gap:8px;color:var(--dim);font-size:12px}
.cmacts{margin-left:auto;display:flex;gap:6px}
.cmacts .mini.on{border-color:var(--accent);color:var(--accent2)}
.cmreply{border-top:1px solid var(--line);padding:9px 0}
.dcpre{white-space:pre-wrap;font-family:inherit;font-size:13px;margin:0}
#cmBanner .err{margin-top:0}
textarea{background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:8px;padding:8px 10px;font-size:14px;font-family:inherit;width:100%;resize:vertical}

/* holdings signals */
.hdsig{display:inline-block;border-radius:9px;padding:2px 9px;font-size:13px;font-weight:600;margin:1px 0}
.hdsig.sell_stop{background:var(--down-bg);color:var(--down)}
.hdsig.take_profit{background:var(--up-bg);color:var(--up)}
.hdsig.downtrend{background:var(--warn-bg,rgba(178,106,22,.15));color:var(--warn,#b26a16)}
.good-note{background:var(--up-bg);border-left:4px solid var(--up);border-radius:8px;padding:9px 13px;margin-bottom:12px;font-size:13px}

/* community v2 — richer cards */
.cmrow{display:flex;gap:12px;align-items:flex-start}
.cmmain{flex:1;min-width:0}
.avtr{flex:none;width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;border:1px solid}
.cmtitle{font-weight:700;font-size:15px}
.cmside{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}
.cmvote{background:var(--panel2);border:1px solid var(--line2);color:var(--mut);border-radius:16px;padding:5px 13px;font-size:13px;cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.cmvote b{font-size:13px}
.cmvote:hover{border-color:var(--accent)}
.cmvote.on{background:var(--up-bg);border-color:var(--up);color:var(--up)}
.cmadminbits{display:flex;gap:5px}
.cmn{background:rgba(127,142,163,.25);border-radius:9px;padding:0 6px;font-size:12px;margin-left:3px}
#cmCats button.on .cmn{background:rgba(255,255,255,.3)}
.cmsortwrap{margin-left:auto;display:inline-flex;gap:4px;border-left:1px solid var(--line2);padding-left:8px}
.cmreplies{color:var(--accent2)}
.cmempty{text-align:center;padding:34px 20px;color:var(--ink)}
.cmempty .odim{margin-top:5px}
#cmBanner a,.odim a{color:var(--accent2);font-weight:600}

/* QA pass: legible links everywhere, browser-native widgets follow the theme */
:root{color-scheme:dark}
:root[data-theme="light"]{color-scheme:light}
a{color:var(--accent2)}
.capimg svg{background:#eef2f4}
.caperr{color:var(--down);font-size:13px}
.cmnew{background:var(--accent);color:#fff;border-radius:8px;padding:1px 7px;font-size:12px;font-weight:700;letter-spacing:.5px}
.cmvote.small{padding:2px 9px;font-size:13px}

/* v2.7: nav activity dot + inline edit box */
.navdot{background:var(--down);color:#fff;border-radius:9px;padding:0 6px;font-size:12px;font-weight:700;margin-left:3px}
.cmeditbox{margin-top:10px;border-top:1px dashed var(--line2);padding-top:10px}
.cmeditbox .cmet{width:100%;background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:8px;padding:7px 10px;font-size:14px;margin-bottom:8px}
.cmeditbox textarea{margin-bottom:6px}

/* portfolio health — validated categorical palette (dark steps default, light overrides) */
:root{--viz1:#3987e5;--viz2:#d95926;--viz3:#199e70;--viz4:#c98500;--viz5:#d55181;--viz6:#008300;--viz7:#9085e9;--viz8:#e66767;--vizother:#7f8ea3;--vizg1:#8a99a8;--vizg2:#677684;--vizg3:#aab7c2}
:root[data-theme="light"]{--viz1:#2a78d6;--viz2:#eb6834;--viz3:#1baf7a;--viz4:#eda100;--viz5:#e87ba4;--viz6:#008300;--viz7:#4a3aa7;--viz8:#e34948;--vizother:#8a95a1;--vizg1:#7c8894;--vizg2:#5c6c7c;--vizg3:#a4b2bf}
.hlthrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:14px;margin-bottom:14px}
.hlthcard{margin-bottom:0}
.hlthflex{display:flex;gap:16px;align-items:center}
.donut{width:130px;height:130px;flex:none}
.gauge{width:170px;height:100px;display:block;margin:2px auto 6px}
.dch1{font-size:22px;font-weight:700;fill:var(--ink);font-family:var(--mono)}
.dch2{font-size:12px;fill:var(--mut);text-transform:uppercase;letter-spacing:.5px}
.lglist{flex:1;min-width:0}
.lgrow{display:flex;align-items:center;gap:7px;padding:2.5px 0;font-size:13px;flex-wrap:wrap}
.lgdot{width:9px;height:9px;border-radius:3px;flex:none}
.lgname{color:var(--ink);font-weight:600}
.lgval{color:var(--mut);font-family:var(--mono)}
.lgsyms{display:flex;gap:4px;flex-wrap:wrap}
.riskul{margin:6px 0 0;padding-left:18px;font-size:13px;color:var(--mut);line-height:1.65}
.recrow{display:flex;gap:8px;font-size:13px;line-height:1.5;padding:5px 0;border-bottom:1px solid var(--line)}
.recrow:last-of-type{border-bottom:0}
.recrow.sev-high span{color:var(--ink)}
.segrow{display:flex;align-items:center;gap:10px;padding:3.5px 0}
.segname{width:190px;flex:none;font-size:13px;color:var(--ink)}
.segheld{background:var(--accent);color:#fff;border-radius:8px;padding:0 6px;font-size:12px;font-weight:700}
.segtrack{flex:1;height:14px;background:var(--panel2);border-radius:5px;position:relative;overflow:hidden}
.segzero{position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--line2)}
.segfill{position:absolute;top:2px;bottom:2px;border-radius:4px}
.segfill.up{background:var(--up)}
.segfill.down{background:var(--down)}
.segval{width:64px;flex:none;text-align:right;font-family:var(--mono);font-size:13px}

/* news & economy */
.mcbrief{border-left:4px solid var(--accent)}
.mcbtext{font-size:15px;line-height:1.75;margin:4px 0 10px}
.mcdot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none;margin-top:4px}
.mcdot.good{background:var(--up)}
.mcdot.warn{background:var(--warn,#b26a16)}
.mcdot.bad{background:var(--down)}
.mcind{display:grid;grid-template-columns:16px 1fr auto;gap:2px 8px;padding:7px 0;border-bottom:1px solid var(--line)}
.mcspark{margin-right:9px;opacity:.75;vertical-align:middle}
.mcind:last-of-type{border-bottom:0}
.mcl{font-weight:600;font-size:13px}
.mcv{font-family:var(--mono);font-size:13px}
.mct{grid-column:2/4;color:var(--mut);font-size:12px;line-height:1.45}
.mcnews{padding:9px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.5}
.mcnews:last-of-type{border-bottom:0}
.mcnews .nhead{font-size:15px;font-weight:600;line-height:1.45}
.nmeta{font-size:12px;margin-top:2px}
.nsnip{font-size:13px;color:var(--mut);margin-top:3px;line-height:1.55;max-width:900px}
.ntone{font-size:13px;font-weight:700;white-space:nowrap;margin-left:6px}
.nsym{display:inline-block;background:var(--accent);color:#fff;border-radius:6px;padding:1px 8px;font-size:12px;font-weight:700;margin-right:8px;font-family:var(--mono)}
.ntabs{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 6px}
.ntab{background:var(--panel2);border:1px solid var(--line2);border-radius:16px;color:var(--ink);padding:5px 13px;font-size:13px;font-weight:600;cursor:pointer}
.ntab:hover{border-color:var(--accent)}
.ntab.on{background:var(--accent);border-color:var(--accent);color:#fff}

/* recession watch + regime + GDP */
.mckind{background:var(--panel2);border:1px solid var(--line2);border-radius:8px;padding:0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--dim);font-weight:600}
.mcsum{font-size:13px;margin:4px 0 10px;color:var(--ink)}
.rglabel{font-size:21px;font-weight:700;margin:8px 0 2px}

/* calendar + mood */
.calrow{display:flex;gap:14px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px;flex-wrap:wrap}
.calrow:last-of-type{border-bottom:0}
.caldate{font-family:var(--mono);font-weight:700;width:92px;flex:none}
.calev{font-weight:600}
.calnote{font-size:12px}
.calrow.hi .caldate{color:var(--accent2)}

/* home economy chips */
/* portfolio "explained" layout — big type, numbered steps, plain-English plan */
.stepfg{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700;margin-bottom:12px}
.stepnum{width:27px;height:27px;border-radius:50%;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex:none}
.pfsent{font-size:17px;line-height:1.7;margin-bottom:6px}
.bigstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:12px;margin-top:12px}
.bigstat{background:var(--panel2);border:1px solid var(--line2);border-radius:12px;padding:14px 16px}
.bigstat .k{color:var(--mut);font-size:13px;font-weight:700}
.bigstat .v{font-size:25px;font-weight:700;font-family:var(--mono);margin-top:6px;letter-spacing:-.5px}
.bigstat .sub{font-size:13px;color:var(--mut);margin-top:5px;line-height:1.4}
.pfplancard{border:2px solid var(--accent);background:linear-gradient(160deg,var(--panel) 55%,var(--accent-soft))}
.planrow{display:flex;gap:15px;padding:14px 4px;border-bottom:1px solid var(--line);align-items:flex-start}
.planrow:last-of-type{border-bottom:0}
.plannum{width:30px;height:30px;border-radius:50%;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;flex:none;margin-top:2px;background:var(--dim)}
.plan-now .plannum{background:var(--down)} .plan-soon .plannum{background:#c07b1e} .plan-good .plannum{background:var(--up)}
.planbody{min-width:0}
.planbody .pt{font-size:17px;font-weight:700;line-height:1.4}
.planbody .purg{font-size:12px;font-weight:700;letter-spacing:1px;border-radius:10px;padding:2px 9px;margin-left:6px;vertical-align:2px;background:var(--panel2);border:1px solid var(--line2);color:var(--mut)}
.plan-now .purg{color:var(--down);border-color:var(--down)} .plan-soon .purg{color:#c07b1e;border-color:#c07b1e} .plan-good .purg{color:var(--up);border-color:var(--up)}
.planbody .pw{font-size:15px;color:var(--ink);opacity:.88;margin-top:4px;line-height:1.6}
.planbody .ph{font-size:15px;margin-top:7px;color:var(--accent2);font-weight:600;line-height:1.55}
.howread{font-size:14px;line-height:1.6;color:var(--mut);margin-top:12px;padding:9px 13px;background:var(--panel2);border-radius:9px;border-left:3px solid var(--accent)}

.ecochip{display:inline-block;border-radius:11px;padding:2px 10px;font-size:13px;font-weight:700;margin:0 5px 5px 0}
.ecochip.ok{background:var(--up-bg);color:var(--up)}
.ecochip.wr{background:var(--warn-bg,rgba(178,106,22,.15));color:var(--warn,#b26a16)}
.ecochip.bd{background:var(--down-bg);color:var(--down)}

/* ---------- monthly budget ---------- */
.budhead{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.budnav{display:inline-flex;align-items:center;gap:8px}
.budnav .budyear{font-size:16px;min-width:52px;text-align:center}
.budmonths{flex-wrap:wrap}
.budtitle{margin-left:auto;font-size:15px;font-weight:700;color:var(--dim)}
.budtable td{font-family:inherit;vertical-align:middle}
.budtable input{width:100%;background:var(--panel2);border:1px solid var(--line2);border-radius:7px;
  color:var(--ink);padding:7px 9px;font-size:14px;font-family:inherit}
.budtable input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}
.budtable .budamtcell{position:relative}
.budtable .budamtcell .cursign{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--dim);font-size:13px;pointer-events:none}
.budtable .budamt{padding-left:20px;font-family:var(--mono)}
.budsave{display:flex;align-items:center;gap:12px;margin:14px 0}
.budsavemsg{font-size:13px;font-weight:600}
.budsavemsg.ok{color:var(--up)}
.budsavemsg.err{color:var(--down)}
.budcur td{background:var(--panel2)}
.budtot td{border-top:2px solid var(--line);border-bottom:0}

/* ---------- debt payoff planner ---------- */
.debttable .debtaprcell{position:relative}
.debttable .debtaprcell .pctsign{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:var(--dim);font-size:13px;pointer-events:none}
.debttable .debtapr{width:100%;background:var(--panel2);border:1px solid var(--line2);border-radius:7px;color:var(--ink);padding:7px 22px 7px 9px;font-size:14px;font-family:var(--mono)}
.debttable .debtapr:focus{outline:2px solid var(--accent);border-color:var(--accent)}
.debtcards{align-items:stretch}
.debtcard{position:relative;display:flex;flex-direction:column;gap:2px}
.debtcard .v{font-size:22px;font-weight:700}
.debtcard .debtint{font-size:13px;margin-top:6px}
.debtbest{border-color:var(--up);box-shadow:0 0 0 1px var(--up) inset}
.debtflag{position:absolute;top:10px;right:12px;font-size:13px;font-weight:700;color:var(--up);text-transform:uppercase;letter-spacing:.5px}
.debtorder{margin:6px 0 0;padding-left:22px;line-height:1.9}
.debtorder li{padding-left:4px}
.empty-note{text-align:left}

/* ---------- emergency fund tracker ---------- */
.emghero .emgtop{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:10px}
.emghero .emgtop .v{font-size:26px;font-weight:700}
.emghero .emgtarget{text-align:right}
.emghero .emgtarget .v{color:var(--dim)}
.emgbar{height:16px;border-radius:999px;background:var(--panel2);border:1px solid var(--line2);overflow:hidden}
.emgbar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--up));transition:width .4s ease}
.emgstats{display:flex;flex-wrap:wrap;gap:16px;margin-top:10px;font-size:13px;color:var(--ink)}
.emgms{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}
.emgms:last-child{border-bottom:0}
.emgms-ic{font-size:15px;width:20px;text-align:center}
.emgms-label{flex:1;min-width:130px;font-weight:600}
.emgms-bar{flex:2;height:8px;border-radius:999px;background:var(--panel2);border:1px solid var(--line2);overflow:hidden;min-width:80px}
.emgms-fill{display:block;height:100%;background:var(--up)}
.emgms-amt{font-family:var(--mono);color:var(--dim);min-width:90px;text-align:right}
.emgms.done .emgms-label{color:var(--up)}

/* ---------- bill reminders ---------- */
.billtable td{vertical-align:middle}
.billwhen{font-family:var(--mono);font-size:13px}
.billwhen.soon{color:var(--warn);font-weight:700}
.billwhen.today{color:var(--down);font-weight:700}
.billtable tr.billoff{opacity:.5}
.billtable .billremind{width:16px;height:16px;cursor:pointer}

/* ---------- financial health ---------- */
.alert-note{background:var(--warn-bg);border:1px solid var(--warn);color:var(--ink);border-radius:10px;padding:12px 14px;margin-bottom:14px;font-size:14px}
.healthhero{display:flex;align-items:center;gap:20px}
.hgrade{font-size:44px;font-weight:700;width:96px;height:96px;flex:none;display:grid;place-items:center;border-radius:18px;color:#fff;background:var(--mut)}
.health-good .hgrade{background:var(--up)}
.health-medium .hgrade{background:var(--warn)}
.health-high .hgrade{background:#e8710a}
.health-critical .hgrade{background:var(--down)}
.hscorewrap{flex:1;min-width:0}
.hrating{font-size:18px;font-weight:700;margin-bottom:8px}
.hbar{height:10px;border-radius:999px;background:var(--panel2);border:1px solid var(--line2);overflow:hidden}
.hbar.big{height:14px}
.hbar-fill{height:100%;border-radius:999px;background:var(--mut);transition:width .4s ease}
.hbar-fill.lvl-good{background:var(--up)}
.hbar-fill.lvl-medium{background:var(--warn)}
.hbar-fill.lvl-high{background:#e8710a}
.hbar-fill.lvl-critical{background:var(--down)}
.hcomp{padding:10px 0;border-bottom:1px solid var(--line)}
.hcomp:last-child{border-bottom:0}
.hcomp-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}
.hcomp-detail{font-size:13px;margin-top:5px}
.hcomp-tip{font-size:12px;margin-top:2px}

/* ---------- money leaks ---------- */
.leakflag td{background:var(--warn-bg)}
.leaktag{font-size:13px;font-weight:700;color:var(--warn);border:1px solid var(--warn);border-radius:999px;padding:2px 8px;white-space:nowrap}

/* ---------- guided cross-section links ---------- */
.guiderow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.guiderow .guidelabel{font-size:13px;color:var(--dim);margin-right:2px}
.guiderow .mini{cursor:pointer}
[data-nav]{cursor:pointer}

/* ---------- money home dashboard ---------- */
.moneygrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-bottom:14px}
.moneycard{cursor:pointer;transition:border-color .15s,transform .05s;display:flex;flex-direction:column}
.moneycard:hover{border-color:var(--accent)}
.moneycard:active{transform:translateY(1px)}
.mc-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.mc-k{font-size:12px;font-weight:700;color:var(--dim);text-transform:uppercase;letter-spacing:.5px}
.mc-go{font-size:12px;font-weight:600;color:var(--accent)}
.mc-big{font-size:26px;font-weight:700;line-height:1.1}
.mc-big.mc-dim{color:var(--dim)}
.mc-unit{font-size:14px;font-weight:600;color:var(--dim)}
.mc-note{margin-top:8px;font-size:12px}
.mc-health{display:flex;align-items:center;gap:14px}
.mc-grade{font-size:30px;font-weight:700;width:56px;height:56px;flex:none;display:grid;place-items:center;border-radius:12px;color:#fff;background:var(--mut)}
.mc-grade.lvl-good{background:var(--up)}
.mc-grade.lvl-medium{background:var(--warn)}
.mc-grade.lvl-high{background:#e8710a}
.mc-grade.lvl-critical{background:var(--down)}

/* ---------- net worth ---------- */
.nwhero .nwtop{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:10px}
.nwbig{font-size:34px;font-weight:700;line-height:1.1}
.nwsplit{display:flex;align-items:center;gap:14px;text-align:right}
.nwsplit .up,.nwsplit .down{font-size:18px;font-weight:700}
.nwminus{font-size:20px;color:var(--dim)}
.nwchart{margin-top:6px}
.nwtable .nwauto td{background:var(--panel2)}
.nwtable .nwauto .nwamt{font-family:var(--mono)}
.nwlink{font-size:13px;font-weight:600;color:var(--accent);cursor:pointer;margin-left:6px}
.nwtable input{width:100%;background:var(--panel2);border:1px solid var(--line2);border-radius:7px;color:var(--ink);padding:7px 9px;font-size:14px;font-family:inherit}
.nwtable .nwnum{font-family:var(--mono);padding-left:20px}
.nwtable input:focus{outline:2px solid var(--accent);border-color:var(--accent)}

/* ---------- goals ---------- */
.goalcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.goalcard{padding:14px}
.goalcard .goalhd{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.goaltable input{width:100%;background:var(--panel2);border:1px solid var(--line2);border-radius:7px;color:var(--ink);padding:7px 9px;font-size:14px;font-family:inherit}
.goaltable .goalnum{font-family:var(--mono);padding-left:20px}
.goaltable input:focus{outline:2px solid var(--accent);border-color:var(--accent)}

/* ---------- data export/import label ---------- */
.datalbl{cursor:pointer;display:inline-flex;align-items:center}

/* ---------- Money Home: per-bank statement rows ---------- */
.banklist{display:flex;flex-direction:column}
.bankrow{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--line2);flex-wrap:wrap}
.banklist .bankrow:last-of-type{border-bottom:none}
.bankdot{flex:0 0 10px;width:10px;height:10px;border-radius:50%}
.bankinfo{flex:1;min-width:200px}
.bankname{font-size:16px}
.banksub{font-size:13px;margin-top:2px}
.banktot{font-size:14px;white-space:nowrap}
.bankaddrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.bankaddrow input,.bankaddrow select{background:var(--panel2);border:1px solid var(--line2);border-radius:7px;color:var(--ink);padding:8px 10px;font-size:14px;font-family:inherit}
.bankaddrow #bankNewName{flex:2;min-width:200px}
.bankaddrow #bankNewLast4{flex:0 0 76px}
.bankresult:not(:empty){margin:0 4px 10px}
.bankpanel{border:1px solid var(--line2);border-left:4px solid var(--accent);border-radius:8px;padding:10px 12px;font-size:14px;background:var(--panel2)}
.bankpanel.ok{border-left-color:var(--up)}
.bankpanel.err{border-left-color:var(--down)}
.bankmini td,.bankmini th{font-size:13px;padding:4px 8px}
.bankchips{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.bankchip{background:var(--panel2);border:1px dashed var(--line2);border-radius:999px;color:var(--ink);
  padding:7px 14px;font-size:14px;cursor:pointer;font-family:inherit}
.bankchip:hover{border-color:var(--accent);border-style:solid}
.bankchip:disabled{opacity:.5;cursor:default}
.bankdel{color:var(--dim)}
.bankdel:hover{color:var(--down);border-color:var(--down)}

/* ---------- per-account spending report ---------- */
.repstory{border-left:4px solid var(--accent)}
.rephead{font-size:17px;line-height:1.5;font-weight:600}
.replist{margin:10px 0 0;padding-left:22px;font-size:15px;line-height:1.7}
.repsplit{display:flex;gap:22px;align-items:flex-start;flex-wrap:wrap}
.repsplit .expdonutwrap{flex:0 0 210px}
.replist2{flex:1;min-width:300px;display:flex;flex-direction:column}
.reprow{display:flex;gap:12px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--line2)}
.replist2 .reprow:last-child{border-bottom:none}
.repic{flex:0 0 30px;font-size:20px;text-align:center}
.repinfo{flex:1;min-width:180px}
.repname{font-size:16px;font-weight:600}
.repbarline{height:8px;background:var(--panel2);border-radius:999px;margin:5px 0 4px;overflow:hidden}
.repfill{display:block;height:100%;border-radius:999px}
.repsub{font-size:13px}
.repright{text-align:right;font-size:15px;min-width:100px}
.repright .spark{display:block;margin:4px 0 0 auto}
.repbar{fill:var(--accent);opacity:.85}
.repbar:hover{opacity:1}
.repbarlbl{fill:var(--dim);font-size:12px}
.reprow:hover{background:var(--panel2)}
.repdrill{border:1px solid var(--line2);border-left:4px solid var(--accent);border-radius:8px;
  padding:12px 14px;margin:6px 0 10px;background:var(--panel2)}
.repmchips{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}
.repmchip{font-size:12px;background:var(--panel);border:1px solid var(--line2);border-radius:999px;padding:4px 10px;color:var(--dim)}
.repcatsel{background:var(--panel);border:1px solid var(--line2);border-radius:7px;color:var(--ink);
  padding:5px 8px;font-size:13px;font-family:inherit;max-width:220px}
.repcreep{border:1px solid var(--line2);border-left:4px solid #b26a16;border-radius:8px;
  padding:9px 12px;margin-top:8px;font-size:14px;background:var(--panel2)}

/* ---------- accessibility: visible keyboard focus ---------- */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.mainnav button:focus-visible{outline-offset:-2px}

/* ---------- two-factor setup key ---------- */
.au2key{font-family:var(--mono);font-size:18px;font-weight:700;letter-spacing:1px;
  background:var(--panel2);border:1px solid var(--line2);border-radius:8px;
  padding:10px 12px;margin:4px 0;user-select:all;word-break:break-all}

/* ---------- money home getting-started checklist ---------- */
.setupcard{margin-bottom:14px}
.setupbar{height:8px;border-radius:999px;background:var(--panel2);border:1px solid var(--line2);overflow:hidden;margin:8px 0 12px}
.setupbar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--up));transition:width .4s ease}
.setuplist{display:grid;gap:6px}
.setupitem{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;cursor:pointer;transition:border-color .15s}
.setupitem:hover{border-color:var(--accent)}
.setupitem .setupck{font-size:15px;width:20px;text-align:center}
.setupitem .setuplbl{flex:1;font-weight:600;font-size:14px}
.setupitem.done .setuplbl{color:var(--dim);font-weight:500}
.setupitem.done{cursor:default;opacity:.75}

/* ---------- financial education (Learn) ---------- */
.learnintro{margin-bottom:12px;color:var(--ink)}
.learntopic{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-bottom:10px;overflow:hidden}
.learnhd{display:flex;align-items:center;gap:12px;width:100%;background:transparent;border:0;color:var(--ink);
  padding:15px 18px;cursor:pointer;font-family:inherit;text-align:left}
.learnhd:hover{background:var(--panel2)}
.learnic{font-size:20px;flex:none}
.learntt{flex:1;font-size:15px;font-weight:700}
.learnchev{color:var(--dim);transition:transform .2s;flex:none}
.learntopic.open .learnchev{transform:rotate(180deg)}
.learnbody{display:none;padding:2px 20px 18px;border-top:1px solid var(--line);line-height:1.6;color:var(--ink-2,var(--ink))}
.learntopic.open .learnbody{display:block}
.learnbody p{margin:12px 0}
.learnbody ul,.learnbody ol{margin:10px 0;padding-left:22px}
.learnbody li{margin:6px 0}
.learntip{background:var(--panel2);border:1px solid var(--line2);border-radius:9px;padding:10px 12px;font-size:14px}
.lnav{color:var(--accent);font-weight:600;cursor:pointer;white-space:nowrap}
.lnav:hover{text-decoration:underline}
.learndisc{margin-top:14px;font-size:13px;color:var(--dim);line-height:1.55}
/* Watchlist page (2026-10-16) */
.wlgtabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.wlgtab{border:1px solid var(--line2);background:var(--panel2);color:var(--mut);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:7px}
.wlgtab:hover{border-color:var(--accent);color:var(--ink)}
.wlgtab.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.wlgnew{border-style:dashed;color:var(--dim)}
.wlgx{font-size:12px;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}
.wlgtab.on .wlgx:hover{background:rgba(255,255,255,.28)}
.wlcard{padding:16px}
.wladd{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.wladd input{flex:1;min-width:180px;padding:10px 12px;border:1px solid var(--line2);border-radius:9px;background:var(--panel2);color:var(--ink);font-size:14px;text-transform:uppercase}
.wladd input:focus{outline:none;border-color:var(--accent)}
.wlrows{display:flex;flex-direction:column}
.wlrow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 10px;border-bottom:1px solid var(--line);cursor:pointer;border-radius:8px;transition:background .12s ease}
.wlrow:last-child{border-bottom:0}
.wlrow:hover{background:var(--panel2)}
.wlr-l{display:flex;flex-direction:column;gap:2px;min-width:0}
.wlr-sym{font-weight:700;font-size:15px;color:var(--ink)}
.wlr-name{font-size:12px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:340px}
.wlr-r{display:flex;align-items:center;gap:12px;flex:none}
.wlr-px{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.wlx{color:var(--dim);font-size:13px;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px}
.wlx:hover{background:var(--down-bg);color:var(--down)}
.wlempty{padding:26px 10px;color:var(--dim);text-align:center;font-size:14px}
/* Guided tour coachmarks (2026-10-15) */
.tour-ov{position:fixed;inset:0;z-index:4000}
.tour-spot{position:fixed;border-radius:10px;box-shadow:0 0 0 3px var(--accent),0 0 0 9999px rgba(0,0,0,.62);transition:left .2s ease,top .2s ease,width .2s ease,height .2s ease;pointer-events:none}
.tour-pop{position:fixed;width:320px;max-width:calc(100vw - 24px);background:var(--panel);border:1px solid var(--line2);border-radius:14px;box-shadow:var(--shadow-pop);padding:16px 16px 12px;z-index:4001}
.tour-h{font-size:15px;font-weight:700;color:var(--ink);margin:2px 0 6px;padding-right:44px}
.tour-bd{font-size:13px;line-height:1.55;color:var(--mut)}
.tour-ft{display:flex;justify-content:space-between;align-items:center;margin-top:14px}
.tour-cnt{font-size:13px;color:var(--dim);font-weight:600}
.tour-nav{display:flex;gap:8px}
.tour-btn{border:1px solid var(--line2);background:var(--panel2);color:var(--ink);border-radius:9px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
.tour-btn:hover{border-color:var(--accent)}
.tour-next{background:var(--accent);color:#fff;border-color:var(--accent)}
.tour-skip{position:absolute;top:10px;right:12px;border:0;background:transparent;color:var(--dim);font-size:12px;padding:4px 6px;cursor:pointer;font-weight:600;font-family:inherit}
.tour-skip:hover{color:var(--ink)}
.tour-btn:focus-visible,.tour-skip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion: reduce){ .tour-spot{transition:none} }
/* Global legal disclaimer, pinned to the bottom of every view (2026-10-15) */
.globaldisc{margin-top:30px;padding:16px 0 10px;border-top:1px solid var(--line);font-size:12px;line-height:1.6;color:var(--dim)}
.globaldisc strong{color:var(--mut);font-weight:700}
.globaldisc a,.globaldisc .lnav{color:var(--accent);cursor:pointer;white-space:normal;font-weight:600}
.globaldisc a:hover,.globaldisc .lnav:hover{text-decoration:underline}
.globaldisc .lnav:focus-visible,.globaldisc a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}

/* ---------- legal / terms ---------- */
.legaldoc{line-height:1.6;max-width:900px}
.legaldoc .lgmeta{color:var(--dim);font-size:13px;margin:0 0 12px}
.legaldoc .lgbanner{background:var(--warn-bg);border:1px solid var(--warn);border-radius:9px;padding:12px 14px;margin:0 0 8px}
.legaldoc .lgh{font-size:15px;margin:20px 0 4px;color:var(--ink)}
.legaldoc p{margin:8px 0;color:var(--ink-2,var(--ink))}
.legaldoc .lgclose{margin-top:20px;padding-top:14px;border-top:1px solid var(--line);font-weight:600;color:var(--ink)}

/* ---------- command palette (quick jump) ---------- */
.mainnav .navjump{background:var(--accent);color:#fff;font-weight:700}
.mainnav .navjump:hover{filter:brightness(1.08);background:var(--accent);color:#fff}
.cmdback{align-items:flex-start}
.cmdbox{width:min(560px,92vw);margin-top:12vh;background:var(--panel);border:1px solid var(--line2);
  border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.5);overflow:hidden}
.cmdinput{width:100%;box-sizing:border-box;border:0;border-bottom:1px solid var(--line);
  background:transparent;color:var(--ink);font-size:16px;padding:16px 18px;font-family:inherit;outline:none}
.cmdlist{max-height:52vh;overflow-y:auto;padding:6px}
.cmditem{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:9px;cursor:pointer}
.cmditem.sel{background:var(--accent);color:#fff}
.cmditem .cmdic{font-size:17px;width:24px;text-align:center;flex:none}
.cmditem .cmdlbl{font-size:14px;font-weight:600}
.cmdempty{padding:16px 18px;color:var(--dim)}

/* ---------- home "Your Money" card ---------- */
.hmrow{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:5px 0;font-size:14px;border-bottom:1px solid var(--line)}
.hmrow:last-of-type{border-bottom:0}
.lvl-txt-good{color:var(--up)}
.lvl-txt-medium{color:var(--warn)}
.lvl-txt-high{color:#e8710a}
.lvl-txt-critical{color:var(--down)}

/* ---------- reporting / print ---------- */
.rptlist{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:6px}
.rptitem{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:14px}
.rptitem:hover{border-color:var(--accent)}
#printArea{display:none}
@media print{
  body.printing > *:not(#printArea){ display:none !important; }
  body.printing #printArea{ display:block !important; }
  #printArea{ color:#000; background:#fff; font-family:Arial,Helvetica,sans-serif; padding:0 6px; }
  #printArea h1{ font-size:20px; margin:0 0 2px; }
  #printArea h2{ font-size:15px; margin:16px 0 6px; border-bottom:1px solid #bbb; padding-bottom:3px; }
  #printArea p{ margin:5px 0; font-size:12px; }
  #printArea .rptmeta,#printArea .rptdisc,#printArea .rptfoot{ font-size:12px; color:#555; }
  #printArea .rptdisc{ margin:6px 0; }
  #printArea table{ width:100%; border-collapse:collapse; font-size:13px; margin:5px 0; }
  #printArea th,#printArea td{ border:1px solid #ccc; padding:4px 6px; text-align:left; }
  #printArea th{ background:#f0f0f0; }
  #printArea .rptsec{ page-break-inside:avoid; margin-bottom:6px; }
  #printArea .rptfoot{ margin-top:22px; border-top:1px solid #ccc; padding-top:6px; }
}

/* ---------- Monthly Expenses Breakdown ---------- */
.expgrid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:820px){ .expgrid{ grid-template-columns:1fr; } }
.expdonutwrap{ display:flex; justify-content:center; padding:6px 0 12px; }
.expdonutwrap .donut{ width:180px; height:180px; }
.explegend{ display:flex; flex-direction:column; gap:5px; }
.explegrow{ display:flex; align-items:center; gap:8px; font-size:13px; }
.expdot{ width:10px; height:10px; border-radius:3px; flex:0 0 auto; }
.explbl{ flex:0 0 42%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.expbarwrap{ flex:1; height:8px; background:var(--panel2,#20242c); border-radius:5px; overflow:hidden; }
.expbar{ display:block; height:100%; border-radius:5px; }
.exppct{ flex:0 0 46px; text-align:right; color:var(--dim); }
.expamt{ flex:0 0 84px; text-align:right; font-variant-numeric:tabular-nums; }
.exptable td .expcat{ max-width:190px; }
.exptable .expdesc{ max-width:260px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.expempty{ text-align:center; padding:26px 16px; }
.expempty .ti{ opacity:.7; }
.acctgroup{ margin-top:10px; }
.acctgrouphd{ font-size:12px; color:var(--dim); text-transform:uppercase; letter-spacing:.04em; margin:6px 0 4px; }
.acctrow{ display:flex; gap:10px; flex-wrap:wrap; }
.acctcard{ flex:1 1 190px; max-width:240px; background:var(--panel2,#20242c); border-radius:10px; padding:10px 12px; cursor:pointer; transition:transform .08s, box-shadow .08s; }
.acctcard:hover{ transform:translateY(-1px); box-shadow:0 3px 10px rgba(0,0,0,.25); }
.acctcard.on{ outline:2px solid var(--accent); }
.acctname{ font-weight:600; font-size:14px; }
.acctlast4{ font-weight:400; font-size:13px; color:var(--dim); background:rgba(127,127,127,.15); padding:1px 5px; border-radius:6px; }
.acctspent{ font-size:18px; font-weight:700; margin-top:6px; font-variant-numeric:tabular-nums; }
.acctbtns{ margin-top:8px; display:flex; gap:6px; }
.exptable .expnotes{ font-size:12px; padding:2px 5px; }
.exptable .expacct{ max-width:130px; font-size:12px; }
.budrow{ margin:10px 0; }
.budtop{ display:flex; align-items:center; gap:10px; font-size:13px; margin-bottom:4px; }
.budnums{ font-variant-numeric:tabular-nums; white-space:nowrap; }
.budinput{ width:72px; font-size:12px; padding:2px 5px; text-align:right; }
.budtrack{ height:10px; background:var(--panel2,#20242c); border-radius:6px; overflow:hidden; }
.budfill{ height:100%; border-radius:6px; transition:width .2s; }
.budstatus{ font-size:13px; color:var(--dim); margin-top:3px; }
.budtotal{ border-top:1px solid var(--border,#333); padding-top:8px; margin-top:6px; }

/* ================= community v3 — full visual redesign ================= */
/* hero */
.cmhero{display:flex;align-items:center;gap:18px;justify-content:space-between;flex-wrap:wrap;
  background:linear-gradient(135deg,var(--panel) 0%,var(--panel2) 100%);
  border:1px solid var(--line2);border-radius:16px;padding:22px 26px;margin-bottom:14px}
.cmhero-txt h2{margin:0 0 4px;font-size:23px;font-weight:700;letter-spacing:-.3px}
.cmhero-txt p{margin:0;font-size:14px;color:var(--mut);line-height:1.55;max-width:560px}
.cmnewbtn{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;border:0;
  border-radius:12px;padding:12px 22px;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;
  box-shadow:0 4px 14px rgba(0,0,0,.25);transition:transform .12s ease,box-shadow .12s ease;white-space:nowrap}
.cmnewbtn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.3)}
.cmnewbtn:active{transform:translateY(0)}

/* notes / banner */
.cmnote{display:flex;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--line2);
  border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:14px;color:var(--mut);line-height:1.5}
.cmnote .avtr{width:26px;height:26px;font-size:12px;border-radius:8px}
.cmnote b{color:var(--ink)}

/* category tabs + sort */
.cmtabsbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.cmtabsbar button{background:transparent;border:1px solid var(--line2);color:var(--mut);border-radius:999px;
  padding:8px 15px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .12s ease}
.cmtabsbar button:hover{border-color:var(--accent);color:var(--ink)}
.cmtabsbar button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.cmtabsbar .cmn{background:rgba(127,142,163,.22);border-radius:999px;padding:1px 7px;font-size:13px;margin-left:4px}
.cmtabsbar button.on .cmn{background:rgba(255,255,255,.28)}
.cmsortwrap{margin-left:auto;display:inline-flex;gap:0;border:1px solid var(--line2);border-radius:999px;
  padding:3px;background:var(--panel2)}
.cmsortwrap button{border:0;border-radius:999px;padding:6px 14px;font-size:13px}
.cmsortwrap button.on{background:var(--accent);color:#fff;box-shadow:0 1px 4px rgba(0,0,0,.25)}

/* post cards */
.cmcard{display:flex;gap:18px;align-items:stretch;border-radius:14px;padding:18px 20px;
  transition:border-color .12s ease,transform .12s ease,box-shadow .12s ease}
.cmpost:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,0,0,.18);border-color:var(--accent)}
.cmcmain{flex:1;min-width:0}
.cmhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cmwho{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.cmwho b{font-size:14px;color:var(--ink)}
.cmtime{font-size:12px;color:var(--dim)}
.avtr{flex:none;width:38px;height:38px;border-radius:12px;display:inline-flex;align-items:center;
  justify-content:center;font-weight:700;font-size:16px;border:1px solid}
.avtr-lg{width:46px;height:46px;border-radius:14px;font-size:19px}
.cmtitle{font-weight:700;font-size:17px;letter-spacing:-.2px;line-height:1.35;margin:9px 0 5px;color:var(--ink)}
.cmsnip{color:var(--mut);font-size:14px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden;margin:0}
.cmfoot{display:flex;align-items:center;gap:10px;margin-top:12px}
.cmreplychip{background:var(--panel2);border:1px solid var(--line2);border-radius:999px;
  padding:4px 12px;font-size:13px;color:var(--mut)}
.cmadminbits{display:flex;gap:5px;margin-left:auto;align-items:center}
.cmadminbits .mini{opacity:.75}
.cmadminbits .mini:hover{opacity:1}

/* category tints */
.cmcat{margin-left:auto;border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700;
  white-space:nowrap;border:1px solid var(--line2);background:var(--panel2);color:var(--mut)}
.cmcat.cc-experience{background:rgba(90,155,216,.14);border-color:rgba(90,155,216,.4);color:#5a9bd8}
.cmcat.cc-feedback{background:rgba(224,163,75,.14);border-color:rgba(224,163,75,.4);color:#e0a34b}
.cmcat.cc-enhancement{background:rgba(167,139,250,.14);border-color:rgba(167,139,250,.4);color:#a78bfa}
.cmcat.cc-idea{background:rgba(65,184,131,.14);border-color:rgba(65,184,131,.4);color:#41b883}
.cmnew{background:linear-gradient(135deg,#e0736c,#c74b8a);color:#fff;border-radius:999px;
  padding:2px 9px;font-size:12px;font-weight:700;letter-spacing:.6px}

/* vote box */
.cmvotebox{flex:none;display:flex;align-items:flex-start}
.cmvote{display:flex;flex-direction:column;align-items:center;gap:1px;width:62px;padding:10px 0 8px;
  background:var(--panel2);border:1px solid var(--line2);border-radius:12px;color:var(--mut);
  font-size:12px;cursor:pointer;font-family:inherit;transition:all .12s ease;line-height:1.2}
.cmvote b{font-size:16px;font-weight:700;color:var(--ink)}
.cmvote span{font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--dim)}
.cmvote:hover{border-color:var(--accent);transform:translateY(-1px)}
.cmvote.on{background:rgba(65,184,131,.14);border-color:var(--up);color:var(--up)}
.cmvote.on b,.cmvote.on span{color:var(--up)}
.cmvote.small{flex-direction:row;width:auto;padding:3px 11px;gap:5px;border-radius:999px;font-size:12px}
.cmvote.small b{font-size:13px}

/* thread view */
.cmbackbtn{background:transparent;border:1px solid var(--line2);color:var(--mut);border-radius:999px;
  padding:7px 16px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;margin-bottom:12px}
.cmbackbtn:hover{border-color:var(--accent);color:var(--ink)}
.cmthreadpost .cmttitle{font-size:21px;font-weight:700;letter-spacing:-.3px;line-height:1.3;margin:12px 0 6px}
.cmthreadpost .cmbody{white-space:pre-wrap;font-size:15px;line-height:1.7;margin:4px 0 0;color:var(--ink)}
.cmthread{display:block}
.cmrh{font-size:15px;font-weight:700;padding-bottom:10px;border-bottom:1px solid var(--line2);margin-bottom:4px}
.cmreply{display:flex;gap:12px;padding:14px 0;border-top:0;border-bottom:1px solid var(--line2);flex-wrap:wrap}
.cmreplies-list .cmreply:last-child{border-bottom:0}
.cmreply .avtr{width:32px;height:32px;font-size:14px;border-radius:10px;margin-top:2px}
.cmrbubble{flex:1;min-width:240px;background:var(--panel2);border:1px solid var(--line2);
  border-radius:4px 14px 14px 14px;padding:11px 14px}
.cmrbubble .cmhead{margin-bottom:4px}
.cmrbody{white-space:pre-wrap;font-size:15px;line-height:1.65;color:var(--ink)}
.cmnoreplies{border:1px dashed var(--line2);border-radius:12px;text-align:center;color:var(--dim);
  padding:22px;font-size:14px;margin:10px 0}
.cmreplybox{display:flex;gap:12px;margin-top:16px}
.cmreplybox .avtr{margin-top:2px}
.cmreplyform{flex:1}
.cmreplyform textarea{border-radius:12px;padding:11px 14px;font-size:15px;line-height:1.5}
.cmsend{margin-top:8px;padding:9px 20px;font-size:14px}
.cmreply .cmeditbox{flex-basis:100%}

/* composer */
.cmcomposer{border-radius:16px;border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft),0 8px 26px rgba(0,0,0,.22);padding:20px 22px}
.cmch{font-size:17px;font-weight:700;letter-spacing:-.2px;margin-bottom:2px}
.cmcsub{margin:0 0 12px;font-size:13px;color:var(--mut)}
.cmcsub .avtr{width:22px;height:22px;font-size:13px;border-radius:7px;vertical-align:-6px}
.cmcomposer input,.cmcomposer select{background:var(--panel2);border:1px solid var(--line2);color:var(--ink);
  border-radius:10px;padding:10px 13px;font-size:15px;font-family:inherit;width:100%}
.cmcomposer textarea{border-radius:12px;padding:11px 14px;font-size:15px;line-height:1.55}
.cmcomposer input:focus,.cmcomposer select:focus,.cmcomposer textarea:focus,
.cmreplyform textarea:focus{outline:2px solid var(--accent);border-color:var(--accent)}
.cmcomposer label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:var(--mut)}
.cmcbar{display:flex;justify-content:flex-end;margin:4px 0}
.cmcount{font-size:12px;color:var(--dim);font-family:var(--mono)}

/* empty state */
.cmempty{text-align:center;padding:52px 24px;border-radius:16px;border-style:dashed}
.cmempty .ti{font-size:46px;margin-bottom:10px}
.cmempty b{font-size:17px;display:block;margin-bottom:4px}
.cmempty .odim{font-size:14px;max-width:420px;margin:0 auto}
.cmempty:hover{border-color:var(--accent)}

/* small screens: vote box tucks under content */
@media (max-width:640px){
  .cmcard{flex-direction:column;gap:10px}
  .cmvotebox{order:2}
  .cmvote{flex-direction:row;width:auto;padding:6px 14px;gap:6px;border-radius:999px}
}

/* ============ community v4 — organized boards: directory, board pages, crumbs ============ */
.cmboards{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px;margin-bottom:14px}
.cmboard{cursor:pointer;padding:16px 18px;border-radius:14px;display:block;
  transition:border-color .12s ease,transform .12s ease,box-shadow .12s ease}
.cmboard:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.2);border-color:var(--accent)}
.cmbtop{display:flex;align-items:center;gap:13px}
.cmbic{flex:none;width:46px;height:46px;border-radius:13px;display:inline-flex;align-items:center;
  justify-content:center;font-size:23px;border:1px solid var(--line2);background:var(--panel2)}
.cmbic-lg{width:58px;height:58px;font-size:29px;border-radius:16px}
.cmbic.cc-experience{background:rgba(90,155,216,.13);border-color:rgba(90,155,216,.4)}
.cmbic.cc-question{background:rgba(95,201,214,.13);border-color:rgba(95,201,214,.4)}
.cmbic.cc-feedback{background:rgba(224,163,75,.13);border-color:rgba(224,163,75,.4)}
.cmbic.cc-enhancement{background:rgba(167,139,250,.13);border-color:rgba(167,139,250,.4)}
.cmbic.cc-idea{background:rgba(65,184,131,.13);border-color:rgba(65,184,131,.4)}
.cmbic.cc-mine{background:rgba(199,138,199,.13);border-color:rgba(199,138,199,.4)}
.cmbmain{flex:1;min-width:0}
.cmbname{font-size:17px;font-weight:700;letter-spacing:-.2px;color:var(--ink)}
.cmbname-lg{font-size:20px}
.cmbtag{font-size:13px;color:var(--mut);margin-top:2px;line-height:1.45}
.cmbgo{color:var(--dim);font-size:19px;transition:transform .12s ease}
.cmboard:hover .cmbgo{transform:translateX(3px);color:var(--accent2)}
.cmbstats{display:flex;gap:7px;font-size:13px;color:var(--dim);margin:11px 0 0}
.cmblatest{margin-top:9px;padding-top:9px;border-top:1px dashed var(--line2);font-size:13px;
  color:var(--mut);display:flex;gap:7px;align-items:baseline;min-width:0}
.cmblatest b{color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.cmblatest:hover b{color:var(--accent2)}
.cmbwho{flex:none;font-size:12px;color:var(--dim)}
.cmblatest.cmbnone{color:var(--dim)}
.cmboard-mine{display:flex;align-items:center}
.cmboard-mine .cmbtop{width:100%}

/* board page */
.cmcrumb{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:14px;color:var(--dim)}
.cmcrumb button{background:transparent;border:1px solid var(--line2);color:var(--mut);border-radius:999px;
  padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
.cmcrumb button:hover{border-color:var(--accent);color:var(--ink)}
.cmcrumb b{color:var(--ink);font-weight:700}
.cmcrumbtitle{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}
.cmbhead{display:flex;align-items:center;gap:16px;border-radius:16px;padding:18px 22px;flex-wrap:wrap}
.cmbdesc{font-size:14px;color:var(--mut);line-height:1.55;margin-top:3px;max-width:640px}
.cmbhead .cmnewbtn{margin-left:auto}
.cmbar{display:flex;align-items:center;margin:0 0 12px}

/* latest activity rail */
.cmlatest{border-radius:14px}
.cmlrow{display:flex;align-items:center;gap:12px;padding:10px 2px;border-bottom:1px solid var(--line2);cursor:pointer}
.cmlatest .cmlrow:last-child{border-bottom:0}
.cmlrow:hover .cmltitle{color:var(--accent2)}
.cmlrow .avtr{width:30px;height:30px;font-size:13px;border-radius:9px}
.cmlmain{flex:1;min-width:0}
.cmltitle{font-size:15px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmlmeta{font-size:12px;color:var(--dim);margin-top:1px}
.cmlrow .cmcat{margin-left:0;flex:none}
.cmlstats{flex:none;font-size:13px;color:var(--mut);font-variant-numeric:tabular-nums}
.cmcat.cc-question{background:rgba(95,201,214,.14);border-color:rgba(95,201,214,.4);color:#5fc9d6}

@media (max-width:640px){
  .cmbhead .cmnewbtn{margin-left:0;width:100%}
  .cmcrumbtitle{max-width:150px}
}

/* ============ community v5 — search, answers, pins & labels, inbox ============ */
.cmsearch{margin:0 0 12px;flex:1;min-width:220px}
.cmsearch input{width:100%;background:var(--panel);border:1px solid var(--line2);color:var(--ink);
  border-radius:999px;padding:11px 18px;font-size:14px;font-family:inherit}
.cmsearch input:focus{outline:2px solid var(--accent);border-color:var(--accent)}
.cmbar{gap:12px}
.cmbar .cmsearch{margin:0}
.cmbar .cmsortwrap{margin-left:0}

.cmchip{border-radius:999px;padding:3px 10px;font-size:13px;font-weight:700;letter-spacing:.3px;
  border:1px solid transparent;white-space:nowrap}
.cmchip-pin{background:rgba(224,163,75,.16);border-color:rgba(224,163,75,.45);color:#e0a34b}
.cmchip-ans{background:rgba(65,184,131,.16);border-color:rgba(65,184,131,.45);color:#41b883}
.cmchip.lb-planned{background:rgba(90,155,216,.16);border-color:rgba(90,155,216,.45);color:#5a9bd8}
.cmchip.lb-done{background:rgba(65,184,131,.16);border-color:rgba(65,184,131,.45);color:#41b883}
.cmchip.lb-declined{background:rgba(224,115,108,.14);border-color:rgba(224,115,108,.4);color:#e0736c}
.cmpinned{border-left:3px solid #e0a34b}

.cmreply.accepted .cmrbubble{border-color:var(--up);background:rgba(65,184,131,.08)}
.cmansribbon{display:inline-block;background:var(--up);color:#fff;border-radius:999px;
  padding:2px 11px;font-size:13px;font-weight:700;letter-spacing:.4px;margin-bottom:7px}
.cmansbtn.on{border-color:var(--up);color:var(--up)}
.cmlabelsel{background:var(--panel2);border:1px solid var(--line2);color:var(--mut);border-radius:999px;
  padding:5px 10px;font-size:12px;font-family:inherit}

.cminbox{border-radius:14px;border-color:var(--accent)}
.cminbox .cmrh{display:flex;align-items:center;gap:10px}

/* ================= opening page (splash) ================= */
#splash{position:fixed;inset:0;z-index:9999;cursor:pointer;overflow:hidden;
  display:flex;align-items:center;justify-content:center;text-align:center;
  background:#0b1020;
  background:linear-gradient(135deg,#0b1020 0%,#131a33 35%,#122a3f 70%,#0e3345 100%);
  opacity:1;transition:opacity .5s ease}
#splash.bye{opacity:0;pointer-events:none}
.spl-glow{position:absolute;border-radius:50%;opacity:.5;pointer-events:none}
.spl-g1{width:620px;height:620px;left:-190px;top:-210px;background:radial-gradient(circle,#3b6fd4 0%,rgba(59,111,212,.35) 30%,transparent 70%)}
.spl-g2{width:660px;height:660px;right:-210px;bottom:-230px;background:radial-gradient(circle,#12907e 0%,rgba(18,144,126,.35) 30%,transparent 70%)}
.spl-g3{width:520px;height:520px;left:34%;top:48%;background:radial-gradient(circle,#7c5bd4 0%,rgba(124,91,212,.3) 30%,transparent 70%);opacity:.35}
@keyframes splfloat{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(34px,-26px) scale(1.07)}}
.spl-spark{position:absolute;left:0;right:0;bottom:0;width:100%;height:26vh;opacity:.8;pointer-events:none}
.spl-inner{position:relative;max-width:720px;padding:24px}   /* no entrance fade: the text is the page's largest paint and must count from its first frame */
@keyframes splin{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.spl-logo{font-size:72px;line-height:1;margin-bottom:6px;animation:splbob 3.2s ease-in-out 3}
@keyframes splbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.spl-name{margin:0;font-size:64px;font-weight:700;letter-spacing:-2px;line-height:1.1;
  background:linear-gradient(92deg,#6db3f2 0%,#4ade80 45%,#a78bfa 90%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
@keyframes splhue{0%{background-position:0% 0}100%{background-position:200% 0}}
.spl-tag{margin:12px 0 26px;font-size:19px;color:#c6d3ea;line-height:1.55}
.spl-chips{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:34px}
.spl-chip{border-radius:999px;padding:9px 18px;font-size:15px;font-weight:600;color:#e8eefb;
  border:1px solid}
.spl-chip.c1{background:rgba(90,155,216,.14);border-color:rgba(90,155,216,.55)}
.spl-chip.c2{background:rgba(167,139,250,.14);border-color:rgba(167,139,250,.55)}
.spl-chip.c3{background:rgba(95,201,214,.14);border-color:rgba(95,201,214,.55)}
.spl-chip.c4{background:rgba(74,222,128,.13);border-color:rgba(74,222,128,.5)}
.spl-chip.c5{background:rgba(224,163,75,.14);border-color:rgba(224,163,75,.55)}
.spl-chip.c6{background:rgba(224,115,140,.14);border-color:rgba(224,115,140,.55)}
.spl-chip.c7{background:rgba(232,182,76,.14);border-color:rgba(232,182,76,.55)}
.spl-btn{background:linear-gradient(135deg,#3b82f6,#10b981);color:#fff;border:0;border-radius:999px;
  padding:17px 46px;font-size:19px;font-weight:700;cursor:pointer;font-family:inherit;letter-spacing:.2px;
  box-shadow:0 10px 34px rgba(16,185,129,.35),0 4px 14px rgba(59,130,246,.35);
  transition:transform .15s ease,box-shadow .15s ease;animation:splpulse 2.6s ease-in-out 4;will-change:transform}
.spl-btn:hover{transform:translateY(-2px) scale(1.02);
  box-shadow:0 14px 44px rgba(16,185,129,.5),0 6px 18px rgba(59,130,246,.45)}
@keyframes splpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.03)}}   /* transform only: composited, no repaint */
.spl-note{margin:20px 0 0;font-size:13px;color:#8fa0bd;letter-spacing:.3px}
/* Splash: live market tape, clickable chips, second CTA (2026-10-16) */
.spl-tape{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;align-items:center;margin:-8px 0 26px;min-height:20px;font-size:14px}
.splq{display:inline-flex;gap:7px;align-items:center;color:#c6d3ea}
.splq b{font-weight:700;color:#e8eefb}
.splq .up{color:#4ade80;font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums}
.splq .down{color:#f0756e;font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums}
.spl-cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;align-items:center}
.spl-btn2{background:transparent;color:#e8eefb;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:16px 30px;font-size:16px;font-weight:700;cursor:pointer;font-family:inherit;transition:border-color .15s ease,transform .15s ease}
.spl-btn2:hover{border-color:rgba(255,255,255,.65);transform:translateY(-2px)}
.spl-chip{cursor:pointer}
.spl-chip:hover{transform:translateY(-2px);filter:brightness(1.18)}
.spl-chip:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media (max-width:640px){
  .spl-name{font-size:44px}
  .spl-tag{font-size:16px}
  .spl-logo{font-size:56px}
  .spl-btn{padding:15px 36px;font-size:17px}
}
@media (prefers-reduced-motion:reduce){
  #splash *,#splash{animation:none !important}
}

/* opening page is static HTML: hide on mid-session refresh (flag set in theme-init.js
   before the body parses), style the heading like the old h1, and let the crawlable
   intro fade in gently instead of flashing before the app boots */
.nosplash #splash{display:none}
.spl-name{font-family:inherit}
h2.spl-name{margin:0}
.seointro{opacity:0;animation:seoshow .3s ease .35s forwards}
@keyframes seoshow{to{opacity:1}}

/* ============ community v6 — profiles, formatting, watch, pulse & helpers ============ */
.cmuser{cursor:pointer;color:var(--ink)}
.cmuser:hover{color:var(--accent2);text-decoration:underline;text-underline-offset:3px}
.cmpulse{display:flex;gap:18px;flex-wrap:wrap;align-items:center;background:var(--panel);
  border:1px solid var(--line2);border-radius:999px;padding:10px 20px;margin-bottom:12px;
  font-size:13px;color:var(--mut)}
.cmpulse b{color:var(--ink);font-size:14px}
.cmpstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:12px}
.cmpstat{background:var(--panel);border:1px solid var(--line2);border-radius:14px;padding:14px;
  text-align:center;display:flex;flex-direction:column;gap:3px}
.cmpstat b{font-size:20px;letter-spacing:-.3px}
.cmpstat span{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:.8px}
.cmwatchbtn{margin-top:8px;width:100%;border-radius:999px}
.cmwatchbtn.on{border-color:var(--accent);color:var(--accent2)}
.cmhelpers{border-radius:14px}
.cmhelprow{cursor:default}
.cmmedal{flex:none;width:30px;text-align:center;font-size:17px}
.cmbody code,.cmrbody code{background:var(--panel);border:1px solid var(--line2);border-radius:6px;
  padding:1px 6px;font-family:var(--mono);font-size:.92em}
.cmbody a,.cmrbody a{word-break:break-all}

/* community v7: quotes, mentions, share */
.cmquote{display:block;border-left:3px solid var(--accent);background:var(--panel);
  border-radius:0 10px 10px 0;padding:7px 12px;margin:5px 0;color:var(--mut);font-size:.95em}
.cmmention{color:var(--accent2);font-weight:700}

/* community v8: compact post lists — many users, little space */
.cmlistwrap{padding:4px 8px}
.cmpostrow{display:flex;gap:11px;align-items:center;padding:9px 10px;border-bottom:1px solid var(--line2);
  cursor:pointer;border-radius:9px;min-width:0}
.cmlistwrap .cmpostrow:last-child{border-bottom:0}
.cmpostrow:hover{background:var(--panel2)}
.cmpostrow .avtr{width:28px;height:28px;font-size:12px;border-radius:9px;flex:none}
.cmpostrow .cmcmain{flex:1;min-width:0}
.cmline1{display:flex;gap:7px;align-items:center;min-width:0}
.cmrtitle{font-size:15px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;min-width:0;letter-spacing:-.1px}
.cmpostrow:hover .cmrtitle{color:var(--accent2)}
.cmline1 .cmchip{padding:1px 7px;font-size:12px;flex:none}
.cmline1 .cmcat{padding:2px 9px;font-size:12px;flex:none;margin-left:0}
.cmline1 .cmnew{flex:none}
.cmline2{font-size:12px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.cmline2 .cmuser{font-weight:600;font-size:12px}
.cmrstats{flex:none;display:flex;gap:10px;align-items:center;font-size:13px;color:var(--mut);
  font-variant-numeric:tabular-nums;margin-left:8px}
.cmrstats .cmvote.small{padding:3px 10px}
.cmpinnedrow{box-shadow:inset 3px 0 0 #e0a34b}
@media (max-width:640px){
  .cmrstats span[title="Views"]{display:none}
  .cmline2{max-width:52vw}
}

/* News: America's report card */
.usacard{border-left:4px solid var(--accent)}
.usachips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:8px 0 4px}
@media (max-width:900px){.usachips{grid-template-columns:repeat(2,minmax(0,1fr))}}
.usachip{background:var(--panel2);border:1px solid var(--line2);border-radius:12px;padding:10px 12px}
.usachip .uk{font-size:13px;color:var(--dim);text-transform:uppercase;letter-spacing:.7px}
.usachip .uv{font-size:19px;font-weight:700;letter-spacing:-.3px;margin:3px 0 4px}
.usachip .un{font-size:12px;color:var(--mut);line-height:1.45}
.usastory{font-size:15px;line-height:1.7;margin:10px 0 4px;color:var(--ink)}
.lnmini{margin-left:8px;text-transform:none;letter-spacing:0;font-size:13px;vertical-align:middle}

/* News: export field guide */
.usaguide{border-left:4px solid #41b883}
.usadet{border:1px solid var(--line2);border-radius:12px;margin:8px 0;background:var(--panel2);overflow:hidden}
.usadet summary{cursor:pointer;padding:11px 14px;font-size:15px;font-weight:700;color:var(--ink);list-style:none;display:flex;align-items:center;gap:6px}
.usadet summary::-webkit-details-marker{display:none}
.usadet summary::after{content:'▾';margin-left:auto;color:var(--dim);transition:transform .15s ease}
.usadet[open] summary::after{transform:rotate(180deg)}
.usadet summary:hover{color:var(--accent2)}
.usaitem{padding:8px 14px;border-top:1px solid var(--line2);font-size:14px;line-height:1.65;color:var(--mut)}
.usaitem b{color:var(--ink)}

/* Business Startup game plans */
.sugoal{font-size:15px;line-height:1.65;background:var(--panel2);border:1px solid var(--line2);
  border-left:4px solid var(--accent);border-radius:10px;padding:10px 14px}
.suh{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--accent2);
  margin:16px 0 6px;border-bottom:1px solid var(--line2);padding-bottom:4px}
.sutab{width:100%;border-collapse:collapse;font-size:14px;margin:6px 0}
.sutab td{padding:6px 10px;border-bottom:1px solid var(--line2);color:var(--mut)}
.sutab td:last-child{text-align:right;white-space:nowrap;color:var(--ink);font-variant-numeric:tabular-nums}
.sutab tr:last-child td{border-bottom:0}

/* startup: prominent end-of-page disclaimer */
.sudisc{border-left:4px solid var(--down);font-size:13px;line-height:1.7}

/* launch tracker */
.sutracker{border-left:4px solid #41b883;border-radius:16px}
.suprog{display:flex;align-items:center;gap:12px;margin:10px 0}
.suprogbar{flex:1;height:10px;background:var(--panel2);border-radius:999px;overflow:hidden;border:1px solid var(--line2)}
.suprogfill{display:block;height:100%;width:0;background:linear-gradient(90deg,#3b82f6,#10b981);border-radius:999px;transition:width .3s ease}
.surow{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;border-top:1px solid var(--line2)}
.surow.done .sulabel{color:var(--dim);text-decoration:line-through}
.suchk input{width:17px;height:17px;margin-top:2px;accent-color:#10b981;cursor:pointer}
.sumain{flex:1;min-width:0}
.sulabel{font-size:14px;font-weight:600;color:var(--ink)}
.suhint{font-size:12px;margin-top:1px}
.sunote{margin-top:7px}
.sunote textarea{font-size:13px;border-radius:9px}
.sunotebar{display:flex;gap:8px;align-items:center;margin-top:5px}
.suNoteBtn{flex:none}

/* white paper: paper-styled document, prints clean */
.wpdoc{background:#ffffff;color:#1c2733;border-radius:14px;padding:36px 44px;line-height:1.7;font-size:15px}
.wpdoc a{color:#0f6d8a}
.wpdoc .sugoal{background:#f2f6f9;border-color:#d7e2ea;border-left-color:#127b8a;color:#1c2733}
.wpdoc .suh{color:#0f6d8a;border-color:#e2e9ec}
.wpdoc .sutab td{color:#3d4c59;border-color:#e2e9ec}
.wpdoc .sutab td:last-child{color:#1c2733}
.wpdoc .learntip{background:#f2f6f9;border-radius:10px;padding:9px 13px}
.wpdoc .lnav{color:#0f6d8a;cursor:pointer;font-weight:600}
.wpdoc .usadet{background:#f8fafb;border-color:#e2e9ec}
.wpdoc .usadet summary{color:#0f2433}
.wpdoc .usaitem{color:#3d4c59;border-color:#e2e9ec}
.wpdoc .usaitem b{color:#0f2433}
.wpcover{text-align:center;padding:30px 10px 34px;border-bottom:3px double #d7e2ea;margin-bottom:26px}
.wpkicker{font-size:12px;letter-spacing:3px;text-transform:uppercase;color:#127b8a;font-weight:700}
.wptitle{font-size:34px;line-height:1.25;letter-spacing:-.5px;margin:14px 0 10px;color:#0f2433}
.wpsub{font-size:16px;color:#5c7079;max-width:640px;margin:0 auto}
.wpmeta{font-size:12px;color:#8a98a1;margin-top:14px}
.wph2{font-size:21px;letter-spacing:-.3px;margin:34px 0 10px;color:#0f2433;border-bottom:1px solid #e2e9ec;padding-bottom:6px}
.wptoc{columns:2;font-size:14px;gap:30px}
.wptoc li{margin-bottom:5px}
@media print{
  .topbar,.mainnav,.side,#splash,.wpbar,#toasts{display:none !important}
  body,.layout,.main{background:#fff !important;display:block !important;overflow:visible !important;height:auto !important}
  .main{padding:0 !important}
  .wpdoc{border:0;border-radius:0;padding:0}
  .wph2{page-break-after:avoid}
  .usadet,.sutab,.sugoal{page-break-inside:avoid}
}

/* white paper: reference links + numbered references */
.wpref{font-size:13px;vertical-align:super;text-decoration:none}
.wprefs{font-size:13px;line-height:1.7;color:#3d4c59;padding-left:22px}
.wprefs li{margin-bottom:6px}

/* Business Startup tabs + white-paper key-findings box */
.sutabs{margin-bottom:14px}
.sutabs .cmchip{margin-left:5px}
.wpkey{background:#f2f6f9;border:1px solid #d7e2ea;border-left:4px solid #127b8a;border-radius:12px;
  padding:14px 18px;margin:0 0 8px}
.wpkey ul{margin:8px 0 0;padding-left:20px}
.wpkey li{margin-bottom:5px;font-size:14px;line-height:1.6}

/* Business Startup: idea bank */
.suideagrp{border-radius:14px}
.suidea{display:flex;gap:12px;align-items:center;padding:10px 8px;border-top:1px solid var(--line2);cursor:pointer;border-radius:9px}
.suidea:hover{background:var(--panel2)}
.suidea:hover .suideat{color:var(--accent2)}
.suideacost{flex:none;width:46px;text-align:center;font-weight:700;font-size:13px;border-radius:8px;padding:5px 0;
  font-variant-numeric:tabular-nums;letter-spacing:1px}
.suideacost.c1{background:rgba(65,184,131,.15);color:#41b883;border:1px solid rgba(65,184,131,.4)}
.suideacost.c2{background:rgba(224,163,75,.15);color:#e0a34b;border:1px solid rgba(224,163,75,.4)}
.suideacost.c3{background:rgba(224,115,108,.14);color:#e0736c;border:1px solid rgba(224,115,108,.4)}
.suideamain{flex:1;min-width:0}
.suideat{font-size:15px;font-weight:700;color:var(--ink)}
.suidead{font-size:13px;margin-top:1px;line-height:1.5}

/* News: freshness strip */
.mcfresh{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--mut);border-left:4px solid var(--accent)}
.mcfresh b{color:var(--ink)}
.mcfresh .mini{margin-left:auto;white-space:nowrap}

/* ===================== v3.0 design refresh — calmer, cleaner, more air =====================
   Overrides layered on top of the rules above: quieter chrome, one accent, softer cards,
   a centered content column and a consistent type scale. */

/* top bar: airy white chrome, quiet controls */
.topbar{padding:12px 20px;gap:16px}
.brand{gap:9px;font-size:17px;cursor:pointer}
.brand .logo{font-size:20px}
.brand .tag{display:none}
.backbtn{background:transparent;border-color:var(--line);border-radius:10px;padding:8px 14px}
.searchwrap input{background:var(--panel2);border-color:transparent;border-radius:12px;padding:10px 15px;font-size:15px;transition:box-shadow .15s,border-color .15s,background .15s}
.searchwrap input:focus{background:var(--panel);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.badge{background:transparent;border-color:var(--line);padding:5px 12px;border-radius:20px;font-size:13px}
.iconbtn:hover{background:var(--panel2)}
.ver{font-size:13px}

/* sidebar: same surface as the chrome, roomier rows */
.side{background:var(--panel);width:284px}
.sidehead{border-bottom:1px solid var(--line);padding:14px 18px;font-size:12px;letter-spacing:1.6px}
.watchlist{padding:8px}
.wrow{padding:10px 11px;border-radius:10px}
.wrow:hover{background:var(--panel2)}
.wrow.active{background:var(--accent-soft);box-shadow:none}
.sidefoot{font-size:13px;line-height:1.55;opacity:.9}

/* centered content column: long lines of cards read better with margins */
.main{padding:26px 32px}
.main>*{max-width:1280px;margin-left:auto;margin-right:auto}

/* cards: softer corners, gentle elevation, more breathing room */
.card{border-radius:16px;padding:20px 22px;margin-bottom:20px;box-shadow:var(--shadow-card)}
.fgh{font-size:13px;letter-spacing:1.3px;color:var(--dim);margin-bottom:12px}

/* buttons: consistent radii and calm neutrals */
.btn{border-radius:10px;padding:8px 16px;font-size:14px;background:var(--panel);border-color:var(--line2)}
.btn:hover{opacity:1;border-color:var(--accent);color:var(--accent)}
.btn.buy:hover,.btn.sell:hover{color:#fff}
/* primary CTA: pill button — black on light, white on dark (Brevo-style) */
.btn.confirm{border-radius:12px;background:var(--cta);color:var(--cta-ink)}
.btn.confirm:hover{color:var(--cta-ink);filter:brightness(1.15)}
.mini{border-radius:8px;padding:4px 11px;background:var(--panel);border-color:var(--line2)}
.mini:hover{border-color:var(--accent);color:var(--accent)}
.mini.buy:hover,.mini.sellm:hover{color:#fff}
.ranges,.overlays{border-radius:10px;border-color:var(--line)}
.ranges button.on{border-radius:8px}

/* home launcher tiles: lighter, less boxy */
.tilegrid{gap:12px}
.tile{background:var(--panel);border-color:var(--line);border-radius:12px;padding:12px 14px}
.tile:hover{transform:none;box-shadow:var(--shadow-card);border-color:var(--accent)}
.tile b{font-size:14px}
.tile .odim{font-size:12px}

/* inputs everywhere: visible focus, softer corners */
input,select,textarea{font-family:inherit}
input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}

/* quieter scrollbars (WebKit) */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--line2);border-radius:8px;border:2px solid var(--bg)}
::-webkit-scrollbar-track{background:transparent}

/* ===================== 🎨 Appearance system =====================
   User-selectable color palettes, fonts and text sizes (Appearance section).
   A palette overrides the design tokens for BOTH modes: the bare
   :root[data-pal=…] block styles dark mode; the [data-theme=light] block
   (higher specificity, declared after) styles light mode. "meadow" is the
   default green and needs no block (data-pal is removed). --accent-ink is
   the text color used ON accent-filled chips/buttons, so light accents
   (mint, yellow) stay readable. */

/* text on accent fills follows the palette */
.ranges button.on,.dvtab.on,.tabbar button.on,.wgtab.on,.cmnew,.segheld,.nsym,.ntab.on,
.stepnum,.mainnav .navjump,.mainnav .navjump:hover,.cmditem.sel,.cmtabsbar button.on,
.cmsortwrap button.on{color:var(--accent-ink)}

/* --- Ocean Blue --- */
:root[data-pal="ocean"]{--bg:#0d1218;--panel:#141b24;--panel2:#1c2632;--line:#223040;--line2:#33465c;--ink:#e3ebf3;--mut:#9aabbd;--dim:#8391a2;--accent:#4d9fff;--accent2:#45c4d6;--accent-soft:rgba(77,159,255,.16);--accent-ink:#08121c;--cta:#edf2f7;--cta-ink:#131a22;--chart-grid:#202c3a;--chart-axis:#68798d}
:root[data-pal="ocean"][data-theme="light"]{--bg:#f4f8fb;--panel:#ffffff;--panel2:#e9f1f8;--line:#dfe8f0;--line2:#c9d8e6;--ink:#14202b;--mut:#465566;--dim:#5e6c79;--accent:#1a66c9;--accent2:#0d8f9f;--accent-soft:rgba(26,102,201,.10);--accent-ink:#fff;--cta:#14202b;--cta-ink:#fff;--chart-grid:#e4ecf3;--chart-axis:#8aa0b5}

/* --- Indigo Night --- */
:root[data-pal="indigo"]{--bg:#10121c;--panel:#171a26;--panel2:#1f2433;--line:#262c40;--line2:#3a4460;--ink:#e6e8f2;--mut:#a0a8bf;--dim:#858ca2;--accent:#7688f7;--accent2:#4cc4d4;--accent-soft:rgba(118,136,247,.17);--accent-ink:#0c0f1c;--cta:#eef0f7;--cta-ink:#14161f;--chart-grid:#232940;--chart-axis:#6e7690}
:root[data-pal="indigo"][data-theme="light"]{--bg:#f6f7fb;--panel:#ffffff;--panel2:#eef0f8;--line:#e4e7f1;--line2:#d2d7e8;--ink:#171a26;--mut:#4d5468;--dim:#646a7a;--accent:#3b50d6;--accent2:#0d8f9f;--accent-soft:rgba(59,80,214,.10);--accent-ink:#fff;--cta:#171a26;--cta-ink:#fff;--chart-grid:#e7eaf3;--chart-axis:#8a91a6}

/* --- Royal Violet --- */
:root[data-pal="violet"]{--bg:#131019;--panel:#1a1622;--panel2:#241e30;--line:#2b2440;--line2:#41365c;--ink:#eae6f2;--mut:#a9a1bf;--dim:#8d85a2;--accent:#a586f5;--accent2:#d67ab8;--accent-soft:rgba(165,134,245,.17);--accent-ink:#140c22;--cta:#f0edf7;--cta-ink:#171320;--chart-grid:#291f3d;--chart-axis:#776e90}
:root[data-pal="violet"][data-theme="light"]{--bg:#f8f6fb;--panel:#ffffff;--panel2:#f0ecf8;--line:#e7e2f1;--line2:#d6cde8;--ink:#1d1626;--mut:#544a68;--dim:#6c657d;--accent:#6d3fd6;--accent2:#b0348c;--accent-soft:rgba(109,63,214,.10);--accent-ink:#fff;--cta:#1d1626;--cta-ink:#fff;--chart-grid:#ebe6f3;--chart-axis:#9188a6}

/* --- Teal Lagoon --- */
:root[data-pal="lagoon"]{--bg:#0d1516;--panel:#141d1e;--panel2:#1c2829;--line:#223133;--line2:#33494c;--ink:#e3efee;--mut:#94b0ae;--dim:#809393;--accent:#2cc7b2;--accent2:#58b6e0;--accent-soft:rgba(44,199,178,.16);--accent-ink:#05201c;--cta:#ecf4f3;--cta-ink:#121a19;--chart-grid:#20302f;--chart-axis:#687f7e}
:root[data-pal="lagoon"][data-theme="light"]{--bg:#f2f9f8;--panel:#ffffff;--panel2:#e7f3f1;--line:#dcebe9;--line2:#c5ddda;--ink:#122423;--mut:#435a57;--dim:#5c6d6a;--accent:#0b8a80;--accent2:#1a66c9;--accent-soft:rgba(11,138,128,.10);--accent-ink:#fff;--cta:#122423;--cta-ink:#fff;--chart-grid:#e2eeec;--chart-axis:#86a09c}

/* --- Rose Quartz --- */
:root[data-pal="rose"]{--bg:#171013;--panel:#201619;--panel2:#2b1e23;--line:#34252b;--line2:#4c363f;--ink:#f2e6ea;--mut:#be9eaa;--dim:#9f828d;--accent:#f06595;--accent2:#e8963e;--accent-soft:rgba(240,101,149,.16);--accent-ink:#23050f;--cta:#f7eef1;--cta-ink:#201316;--chart-grid:#33232a;--chart-axis:#8f6e7a}
:root[data-pal="rose"][data-theme="light"]{--bg:#fbf6f8;--panel:#ffffff;--panel2:#f8ecf1;--line:#f0e1e8;--line2:#e2cbd6;--ink:#26141b;--mut:#664c57;--dim:#7a6570;--accent:#c2255c;--accent2:#0d8f9f;--accent-soft:rgba(194,37,92,.10);--accent-ink:#fff;--cta:#26141b;--cta-ink:#fff;--chart-grid:#f2e6ec;--chart-axis:#a68a96}

/* --- Warm Sunset --- */
:root[data-pal="sunset"]{--bg:#16110b;--panel:#1e1810;--panel2:#2a2116;--line:#32281a;--line2:#4a3c27;--ink:#f2eade;--mut:#bcab8f;--dim:#978a70;--accent:#e8963e;--accent2:#f06595;--accent-soft:rgba(232,150,62,.17);--accent-ink:#201200;--cta:#f5efe5;--cta-ink:#1c150c;--chart-grid:#302617;--chart-axis:#8e8064}
:root[data-pal="sunset"][data-theme="light"]{--bg:#fbf6ee;--panel:#fffdf8;--panel2:#f7ecd9;--line:#efe3cd;--line2:#e0cfae;--ink:#241b10;--mut:#61503a;--dim:#76664e;--accent:#b35c10;--accent2:#c2255c;--accent-soft:rgba(179,92,16,.10);--accent-ink:#fff;--cta:#241b10;--cta-ink:#fff;--chart-grid:#f0e6d4;--chart-axis:#a08a68}

/* --- Sepia Comfort (gentle, low blue-light — easy on tired eyes) --- */
:root[data-pal="sand"]{--bg:#171310;--panel:#1e1a15;--panel2:#29231c;--line:#322b21;--line2:#4a4030;--ink:#ece4d4;--mut:#b5a88f;--dim:#968d79;--accent:#d0a24f;--accent2:#8fbf7f;--accent-soft:rgba(208,162,79,.16);--accent-ink:#201700;--cta:#f0e9dc;--cta-ink:#1c1712;--chart-grid:#2f2820;--chart-axis:#857a63}
:root[data-pal="sand"][data-theme="light"]{--bg:#f7f1e3;--panel:#fdf9ef;--panel2:#efe6d0;--line:#e6dbc2;--line2:#d3c4a2;--ink:#2c2619;--mut:#584f3b;--dim:#6e6550;--accent:#8a6420;--accent2:#4e7d4e;--accent-soft:rgba(138,100,32,.12);--accent-ink:#fff;--cta:#37301f;--cta-ink:#fff;--chart-grid:#eadfc9;--chart-axis:#99906f}

/* --- Calm Lavender (soft, muted — easy on the eyes) --- */
:root[data-pal="lavender"]{--bg:#131220;--panel:#1a1929;--panel2:#232238;--line:#2b2a44;--line2:#403e60;--ink:#e8e7f2;--mut:#a9a7c0;--dim:#8d8ba4;--accent:#9d8cff;--accent2:#6cc4c4;--accent-soft:rgba(157,140,255,.16);--accent-ink:#0f0a2a;--cta:#efeef7;--cta-ink:#16151f;--chart-grid:#272641;--chart-axis:#747290}
:root[data-pal="lavender"][data-theme="light"]{--bg:#f7f5fb;--panel:#ffffff;--panel2:#efedf8;--line:#e6e3f1;--line2:#d4d0e8;--ink:#1c1a26;--mut:#534f68;--dim:#69667a;--accent:#5b49c0;--accent2:#0d8f9f;--accent-soft:rgba(91,73,192,.10);--accent-ink:#fff;--cta:#1c1a26;--cta-ink:#fff;--chart-grid:#eae7f3;--chart-axis:#908ca6}

/* --- Soft Mist (muted gray-green, minimal glare — easy on the eyes) --- */
:root[data-pal="mist"]{--bg:#141715;--panel:#1a1e1c;--panel2:#232826;--line:#2a302d;--line2:#3d4642;--ink:#e2e8e4;--mut:#a3afa9;--dim:#85928d;--accent:#7fa893;--accent2:#8fa8c4;--accent-soft:rgba(127,168,147,.16);--accent-ink:#0c1510;--cta:#e9eeeb;--cta-ink:#171b19;--chart-grid:#262c29;--chart-axis:#71807a}
:root[data-pal="mist"][data-theme="light"]{--bg:#f2f4f2;--panel:#fafbfa;--panel2:#e9ede9;--line:#e0e5e0;--line2:#ccd4cc;--ink:#252c28;--mut:#4b544e;--dim:#636b65;--accent:#43705d;--accent2:#55708c;--accent-soft:rgba(67,112,93,.12);--accent-ink:#fff;--cta:#303833;--cta-ink:#fff;--chart-grid:#e4e8e4;--chart-axis:#929c94}

/* --- Graphite (calm, nearly colorless) --- */
:root[data-pal="graphite"]{--bg:#121316;--panel:#191b1f;--panel2:#222429;--line:#292c32;--line2:#3e424a;--ink:#e7e9ec;--mut:#a4a9b0;--dim:#8b8e93;--accent:#9aa7b5;--accent2:#8fb59a;--accent-soft:rgba(154,167,181,.16);--accent-ink:#101418;--cta:#eef0f2;--cta-ink:#16181b;--chart-grid:#26292e;--chart-axis:#75797f}
:root[data-pal="graphite"][data-theme="light"]{--bg:#f5f5f6;--panel:#ffffff;--panel2:#ededef;--line:#e3e3e6;--line2:#d0d0d4;--ink:#191a1c;--mut:#4e5054;--dim:#68696d;--accent:#3d4854;--accent2:#4e6e5e;--accent-soft:rgba(61,72,84,.10);--accent-ink:#fff;--cta:#191a1c;--cta-ink:#fff;--chart-grid:#e8e8ea;--chart-axis:#8c8e93}

/* --- High Contrast (maximum legibility for low vision) --- */
:root[data-pal="contrast"]{--bg:#000;--panel:#000;--panel2:#121212;--line:#7a7a7a;--line2:#9a9a9a;--ink:#fff;--mut:#f0f0f0;--dim:#d0d0d0;--accent:#ffd400;--accent2:#6fd0ff;--accent-soft:rgba(255,212,0,.22);--accent-ink:#000;--cta:#fff;--cta-ink:#000;--chart-grid:#666;--chart-axis:#ccc}
:root[data-pal="contrast"][data-theme="light"]{--bg:#fff;--panel:#fff;--panel2:#f0f0f0;--line:#5a5a5a;--line2:#3a3a3a;--ink:#000;--mut:#111;--dim:#2e2e2e;--accent:#0000c8;--accent2:#7a0060;--accent-soft:rgba(0,0,200,.12);--accent-ink:#fff;--cta:#000;--cta-ink:#fff;--chart-grid:#999;--chart-axis:#222}

/* --- Font choices (all pre-installed system fonts — nothing downloads) --- */
html[data-font="arial"]{--sans:Arial,"Helvetica Neue",Helvetica,sans-serif}
html[data-font="verdana"]{--sans:Verdana,Geneva,sans-serif}
html[data-font="tahoma"]{--sans:Tahoma,Geneva,sans-serif}
html[data-font="trebuchet"]{--sans:"Trebuchet MS","Segoe UI",sans-serif}
html[data-font="georgia"]{--sans:Georgia,"Times New Roman",serif}
html[data-font="cambria"]{--sans:Cambria,Georgia,serif}
html[data-font="comic"]{--sans:"Comic Sans MS","Segoe Print",cursive}

/* --- Text size --- */
html[data-fsize="large"] body{font-size:18px}
html[data-fsize="xl"] body{font-size:19px}
html[data-fsize="large"] .mainnav .navtop{font-size:16px}
html[data-fsize="xl"] .mainnav .navtop{font-size:17px}
html[data-fsize="large"] .navmenu .mt b{font-size:15px}
html[data-fsize="xl"] .navmenu .mt b{font-size:16px}

/* --- Appearance section UI --- */
.apgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.appal{display:flex;align-items:center;gap:12px;padding:13px 14px;border:2px solid var(--line);border-radius:12px;cursor:pointer;background:var(--panel);text-align:left;font-family:inherit;color:var(--ink)}
.appal:hover{border-color:var(--accent)}
.appal.on{border-color:var(--accent);background:var(--accent-soft)}
.apsw{display:flex;flex:none;align-items:center}
.apsw i{display:block;width:22px;height:22px;border-radius:50%;border:2px solid var(--line2);margin-left:-7px}
.apsw i:first-child{margin-left:0}
.apname{font-weight:700;font-size:15px}
.apdesc{color:var(--dim);font-size:13px;margin-top:1px;line-height:1.35}
.apeye{display:inline-block;margin-left:6px;font-size:13px;background:var(--up-bg);color:var(--up);border-radius:12px;padding:1px 8px;font-weight:600;white-space:nowrap}
.apfont{display:block;width:100%;padding:12px 14px;border:2px solid var(--line);border-radius:12px;cursor:pointer;background:var(--panel);text-align:left;color:var(--ink)}
.apfont:hover{border-color:var(--accent)}
.apfont.on{border-color:var(--accent);background:var(--accent-soft)}
.apfont .apsample{display:block;font-size:19px;line-height:1.35;margin-top:3px}
.apseg{display:flex;gap:10px;flex-wrap:wrap}
.apsz{border:2px solid var(--line);background:var(--panel);color:var(--ink);border-radius:12px;padding:12px 18px;cursor:pointer;text-align:center;min-width:130px;font-family:inherit}
.apsz:hover{border-color:var(--accent)}
.apsz.on{border-color:var(--accent);background:var(--accent-soft)}
.apsz .szA{display:block;font-weight:700;line-height:1.2}
.apsz .szl{display:block;color:var(--mut);font-size:13px;margin-top:3px}
.apnote{border-left:4px solid var(--accent);padding:10px 14px;color:var(--mut);font-size:14px;line-height:1.55;background:var(--panel2);border-radius:0 10px 10px 0;margin-top:4px}
.appal>span:last-child{display:flex;flex-direction:column;min-width:0}
.apname{display:flex;align-items:center;flex-wrap:wrap;gap:2px}
.apfont>b{display:block;margin-bottom:1px}

/* --- Meadow Green (in the style of brevo.com — was the v3.1 default) --- */
:root[data-pal="meadow"]{--bg:#0f1311;--panel:#161b18;--panel2:#1e2620;--line:#242d27;--line2:#33403a;--ink:#e6ece7;--mut:#9eada1;--dim:#839187;--accent:#17a173;--accent2:#4cc4a8;--accent-soft:rgba(34,176,125,.15);--accent-ink:#04150e;--cta:#eef2ee;--cta-ink:#151815;--chart-grid:#232b26;--chart-axis:#6f7f74}
:root[data-pal="meadow"][data-theme="light"]{--bg:#f7faf4;--panel:#ffffff;--panel2:#eef6e9;--line:#e3ebe1;--line2:#cfdccd;--ink:#1b1b1b;--mut:#4c5a50;--dim:#656f66;--accent:#0b8f63;--accent2:#0a7a55;--accent-soft:rgba(11,143,99,.10);--accent-ink:#fff;--cta:#1b1b1b;--cta-ink:#fff;--chart-grid:#e5ece3;--chart-axis:#8a978c}

/* --- Sage Green (whole-page soft sage, accent #8fbf7f) --- */
:root[data-pal="sage"]{--bg:#151a11;--panel:#1c2417;--panel2:#253020;--line:#2f3c27;--line2:#465840;--ink:#ecf1e6;--mut:#a7b89a;--dim:#8b9b82;--accent:#8fbf7f;--accent2:#d0a24f;--accent-soft:rgba(143,191,127,.16);--accent-ink:#14210f;--cta:#8fbf7f;--cta-ink:#14210f;--chart-grid:#2b3623;--chart-axis:#75886a}
:root[data-pal="sage"][data-theme="light"]{--bg:#e3ecdc;--panel:#f4f8f0;--panel2:#dbe7d1;--line:#c9d8bd;--line2:#b2c5a2;--ink:#1f261a;--mut:#45513c;--dim:#5c6753;--accent:#4e7d4e;--accent2:#a07a1f;--accent-soft:rgba(78,125,78,.14);--accent-ink:#fff;--cta:#8fbf7f;--cta-ink:#1b2a18;--chart-grid:#d3e0c8;--chart-axis:#79876d}

/* --- Medium mode ("dim") — a soft mid-gray between light and dark. One block
   serves every palette: it comes LAST so its surface tokens override any
   palette's dark surfaces, while the palette's accent colors shine through. --- */
:root[data-theme="medium"]{
  --bg:#31363c;--panel:#3a4046;--panel2:#444b53;--line:#4e565f;--line2:#5e6771;
  --ink:#eef1f4;--mut:#bcc4cd;--dim:#b5bcc3;
  --chart-grid:#474e56;--chart-axis:#98a2ac;
  --tip-bg:rgba(49,54,60,.97);--tip-ink:#eef1f4;
  --shadow-card:0 1px 2px rgba(0,0,0,.16);--shadow-pop:0 18px 44px rgba(0,0,0,.35)
}
/* the Sage palette keeps its green even in medium mode */
:root[data-pal="sage"][data-theme="medium"]{
  --bg:#394432;--panel:#414d39;--panel2:#4b5942;--line:#566549;--line2:#667757;
  --ink:#ecf1e6;--mut:#c0ccb4;--dim:#c6cebf;
  --chart-grid:#4d5a43;--chart-axis:#9aa88d;
  --tip-bg:rgba(57,68,50,.97);--tip-ink:#ecf1e6
}

/* market dashboard */
.dashcols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:1100px){.dashcols{grid-template-columns:1fr}}
.dashcols .card{margin-bottom:0}
.dashcols{margin-bottom:20px}
.dashcred{font-size:13px;line-height:1.7;color:var(--mut)}

/* 2FA nudge strip */
.nudgebar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 20px;background:var(--accent-soft);border-bottom:1px solid var(--line);color:var(--ink);font-size:14px;flex:none;z-index:20}
.nudgebar .mini{margin-left:4px}
.nudgex{margin-left:auto;border:0;background:transparent;color:var(--dim);cursor:pointer;font-size:13px;padding:3px 8px;border-radius:6px}
.nudgex:hover{color:var(--ink);background:var(--panel2)}

/* 2FA enrollment QR — always on a white tile so phone cameras can read it in dark mode */
.au2qr{background:#fff;border-radius:12px;padding:12px;display:inline-block;margin:8px 0;line-height:0;border:1px solid var(--line2)}
.au2qr svg{width:196px;height:196px;display:block}

/* contact-admin form */
.qtrow textarea{width:100%;background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:10px;padding:9px 12px;font-size:14px;font-family:inherit;resize:vertical;min-height:110px}

/* 🛡 security center */
.sctable{width:100%;border-collapse:collapse;font-size:14px}
.sctable th{text-align:left;color:var(--dim);font-size:13px;text-transform:uppercase;letter-spacing:1px;padding:6px 10px;border-bottom:1px solid var(--line)}
.sctable td{padding:7px 10px;border-bottom:1px solid var(--line)}
.sctable tr:last-child td{border-bottom:0}
.sctable .mono{font-family:var(--mono)}
.scleg{display:flex;gap:18px;font-size:13px;color:var(--mut);margin-bottom:8px}
.scleg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.scbar{display:flex;align-items:center;gap:10px;margin:4px 0 2px}
.scbl{flex:none;width:230px;font-weight:600;font-size:14px}
.scbt{flex:1;height:10px;background:var(--panel2);border-radius:6px;overflow:hidden}
.scbf{display:block;height:100%;background:var(--accent);border-radius:6px}
.scbv{flex:none;min-width:36px;text-align:right;font-family:var(--mono);font-size:13px}
.screc{border-left:4px solid var(--line2);padding:8px 12px;margin:6px 0;border-radius:0 8px 8px 0;background:var(--panel2);font-size:14px;line-height:1.5}
.screc.lv-high{border-left-color:var(--down)}
.screc.lv-med{border-left-color:#e0a34b}
.screc.lv-info{border-left-color:var(--accent)}

/* WAF tuning card */
.scck{display:inline-flex;align-items:center;gap:7px;font-size:14px;cursor:pointer}
.scck input{width:auto}
.scnum{display:inline-flex;flex-direction:column;gap:3px;font-size:13px;color:var(--mut)}
.scnum input{width:110px;background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:8px;padding:6px 9px;font-size:14px}
.scpat{display:block;font-family:var(--mono);font-size:13px;color:var(--mut);word-break:break-all;max-width:520px}

/* ---------- investing section ---------- */
.invtag{display:block;font-weight:400;font-size:12px;color:var(--dim);margin-top:2px}
.invdeep{margin:14px 0 4px;border:1px dashed var(--line2);border-radius:10px;padding:8px 14px;background:var(--panel2)}
.invdeep summary{cursor:pointer;font-weight:700;color:var(--accent)}
.invdeep[open] summary{margin-bottom:6px}
.ivext{color:var(--accent);font-weight:600;text-decoration:none;border-bottom:1px dotted var(--accent)}
.ivext:hover{border-bottom-style:solid}
.ivarrow{font-size:.8em;margin-left:2px;opacity:.75}
.ivhero{display:flex;gap:18px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;padding:22px 24px;margin-bottom:18px;border-radius:16px;
  background:linear-gradient(135deg,var(--accent-soft),transparent 60%),var(--panel);border:1px solid var(--line)}
.ivhero h2{margin:0 0 8px;font-size:24px;line-height:1.2}
.ivhero p{margin:0;color:var(--dim);max-width:820px;line-height:1.55}
.ivhero-cta .lnav{display:inline-block;padding:9px 14px;border-radius:10px;background:var(--panel2);border:1px solid var(--line2)}
.ivpersonas{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:8px 0}
.ivpersona{text-align:left;background:var(--panel2);border:1px solid var(--line2);border-radius:12px;padding:14px;cursor:pointer;color:var(--ink);font-family:inherit;display:flex;flex-direction:column;gap:4px;transition:transform .12s}
.ivpersona:hover{transform:translateY(-2px)} .ivpersona.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.ivpersona b{font-size:15px} .ivpersona small{color:var(--dim)} .ivp-ic{font-size:26px}
.ivplan{margin-top:12px;padding:14px 16px;border-radius:12px;background:var(--panel2);border:1px solid var(--line2)}
.ivplan ol{margin:6px 0 0;padding-left:22px} .ivplan li{margin:6px 0}
.ivchips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.ivchip{border:1px solid var(--line2);background:var(--panel);color:var(--ink);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer;font-family:inherit}
.ivchip:hover{border-color:var(--accent);color:var(--accent)}
.ivstairs{margin:8px 0}
.ivstair{position:relative;margin:6px 0;padding:9px 12px;border-radius:9px;background:var(--panel2);overflow:hidden}
.ivstair-bar{position:absolute;left:0;top:0;bottom:0;opacity:.22}
.ivstair-t{position:relative} .ivstair-t small{display:block;color:var(--dim);font-size:12px}
.ivcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-top:6px}
.ivcard{display:flex;gap:12px;align-items:flex-start;text-align:left;background:var(--panel2);border:1px solid var(--line2);border-left:4px solid var(--tc);border-radius:12px;padding:12px 14px;cursor:pointer;color:var(--ink);font-family:inherit;transition:transform .12s,border-color .12s}
.ivcard:hover{transform:translateY(-2px);border-color:var(--tc)}
.ivcard-ic{font-size:24px;line-height:1} .ivcard-b b{display:block;font-size:15px} .ivcard-b small{display:block;color:var(--dim);margin:2px 0 6px}
.ivcard-m{display:flex;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--dim)}
.ivdots i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--line2);margin-left:2px;vertical-align:middle}
.ivdots i.on{background:var(--tc,var(--accent))}
.ivtopic{border-left:4px solid var(--tc)}
.ivx-top{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin:12px 0}
.ivx-30{padding:12px 14px;border-radius:10px;background:var(--panel2);line-height:1.6}
.ivx-lbl{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--dim);margin-bottom:4px}
.ivx-facts{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:13px;align-content:start}
.ivx-facts > div{display:flex;flex-direction:column;gap:2px} .ivx-facts span{color:var(--dim);font-size:13px;text-transform:uppercase;letter-spacing:.5px}
.ivx-pay{grid-column:1 / -1;padding-top:6px;border-top:1px dashed var(--line2)}
.ivx-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ivx h4{margin:10px 0 4px;font-size:14px} .ivx h4.ok{color:var(--up)} .ivx h4.no{color:var(--down,#e0736c)}
.ivx ul,.ivx ol{margin:6px 0;padding-left:20px} .ivx li{margin:5px 0}
.ivcall{margin:12px 0;padding:10px 14px;border-radius:10px;border:1px solid var(--line2);background:var(--panel2)}
.ivcall.warn{border-color:rgba(224,163,75,.6);background:rgba(224,163,75,.08)} .ivcall.tip{border-color:var(--accent);background:var(--accent-soft)}
.ivcall-t{font-weight:700;margin-bottom:4px} .ivcall ul{margin:4px 0}
.ivsteps{margin:12px 0} .ivstep-l{color:var(--dim);font-size:13px}
.ivlinks{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.ivlink em{font-style:normal;color:var(--dim);font-size:13px;margin-left:4px}
.ivq{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0} .ivq label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--dim)}
.ivq input,.ivq select{background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:8px;padding:8px 10px;font-size:14px;font-family:inherit;min-width:140px}
.ivrec{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.ivrec-i{padding:12px 14px;border-radius:10px;background:var(--panel2);border:1px solid var(--line2)} .ivrec-i div{color:var(--dim);font-size:13px;margin:4px 0 6px}
.ivnums{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.ivnum{padding:12px;border-radius:10px;background:var(--panel2);border:1px solid var(--line2);display:flex;flex-direction:column;gap:3px}
.ivnum b{font-size:20px;font-family:var(--mono)} .ivnum span{font-size:13px;color:var(--dim)}
.ivgloss{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px 22px;margin:6px 0 0}
.ivgloss dt{font-weight:700;margin-top:6px} .ivgloss dd{margin:2px 0 6px;color:var(--dim);font-size:13px}
.ivhead{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:14px}
.ivh{padding:12px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--line)} .ivh.dim{opacity:.8}
.ivh span{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--dim)} .ivh b{display:block;font-family:var(--mono);font-size:22px;margin:2px 0} .ivh small{color:var(--dim)}
.ivbar{display:grid;grid-template-columns:minmax(150px,1.3fr) 3fr 64px;gap:10px;align-items:center;margin:6px 0;font-size:13px}
.ivbar-t{height:12px;border-radius:6px;background:var(--panel2);overflow:hidden} .ivbar-f{height:100%;border-radius:6px;transition:width .3s} .ivbar-v{font-family:var(--mono);text-align:right}
.ivcurve{width:100%;max-width:640px;height:auto;display:block;margin:6px 0}
.ivwin{background:rgba(65,184,131,.14);border-radius:6px}
.ivhow{padding-left:22px} .ivhow li{margin:6px 0}
@media (max-width:760px){ .ivx-top,.ivx-grid{grid-template-columns:1fr} .ivbar{grid-template-columns:1fr 2fr 56px} }

/* ---------- home v2 ---------- */
.homehero2{position:relative;overflow:hidden;margin-bottom:16px;padding:22px 24px 18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,var(--panel) 40%,var(--accent-soft) 100%)}
.hh-glow{position:absolute;right:-120px;top:-140px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,var(--accent-soft),transparent 70%);filter:blur(30px);pointer-events:none}
.hh-top{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.homehero2 .hgreet{font-size:26px;font-weight:700;letter-spacing:-.3px}
.hlead{margin-top:10px;max-width:640px;color:var(--mut);font-size:15px;line-height:1.55}
.tape{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}
.tapeitem{background:var(--panel2);border:1px solid var(--line2);border-radius:12px;padding:10px 12px;margin:0}
.tapehd{display:flex;justify-content:space-between;align-items:baseline}
.tapeitem .mkv{margin-top:6px}
@media (max-width:900px){.tape{grid-template-columns:repeat(2,minmax(0,1fr))}}
.skels{display:flex;flex-direction:column;gap:8px;padding:4px 0}
.skel{display:inline-block;height:12px;border-radius:6px;background:linear-gradient(90deg,var(--panel2),var(--line2),var(--panel2));background-size:200% 100%;animation:skel 1.2s linear infinite}
@keyframes skel{0%{background-position:200% 0}100%{background-position:-200% 0}}
.briefstrip{padding:14px 18px}
.briefrow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.brieftxt{flex:1 1 320px;font-size:15px;line-height:1.5}
.briefchips{display:flex;flex-wrap:wrap;gap:4px}
.deskrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-bottom:18px}
.deskcta{display:grid;grid-template-columns:1.6fr 1fr;gap:18px;align-items:center;border-left:4px solid var(--accent)}
.deskcta h3{margin:2px 0 6px;font-size:19px} .deskcta p{margin:0 0 12px;color:var(--mut);line-height:1.55}
.deskcta-b{display:flex;gap:8px;flex-wrap:wrap}
.deskcta-l{list-style:none;margin:0;padding:0;display:grid;gap:8px} .deskcta-l li{padding:9px 12px;border-radius:10px;background:var(--panel2);border:1px solid var(--line2);font-size:14px}
@media (max-width:760px){.deskcta{grid-template-columns:1fr}}
.featrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:12px;margin-bottom:18px}
.feat{display:flex;gap:14px;align-items:flex-start;padding:16px;border-radius:16px;background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--fc);cursor:pointer;transition:transform .14s,box-shadow .14s}
.feat:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(0,0,0,.25)}
.feat-ic{font-size:30px;line-height:1;width:52px;height:52px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:14px;background:color-mix(in srgb,var(--fc) 18%,transparent)}
.feat-b b{font-size:16px} .feat-b p{margin:4px 0 8px;color:var(--mut);font-size:13px;line-height:1.5} .feat-go{color:var(--accent);font-weight:700;font-size:13px}
.explore{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px 22px}
.exhd{font-size:13px;text-transform:uppercase;letter-spacing:.8px;color:var(--dim);font-weight:700;margin-bottom:6px}
.exitem{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;background:transparent;color:var(--ink);padding:7px 8px;border-radius:9px;cursor:pointer;font-family:inherit;font-size:14px}
.exitem:hover{background:var(--panel2);color:var(--accent)}
.exic{width:26px;text-align:center;font-size:16px}

/* ---------- watchlist sidebar v2 ---------- */
.sidehead{gap:8px}
.sh-l{display:inline-flex;align-items:center;gap:7px}
.sh-dot{width:7px;height:7px;border-radius:50%;background:var(--up);box-shadow:0 0 0 3px var(--up-bg);animation:pulse 2.4s ease-in-out infinite}
.wlsum{margin-left:auto;font-size:13px;letter-spacing:0;text-transform:none;font-family:var(--mono)}
.wlsum .up{color:var(--up)} .wlsum .down{color:var(--down)}
.clock{font-size:12px;letter-spacing:0}
.wrow{display:block;padding:9px 12px 8px;margin:3px 0;border-radius:12px;border:1px solid transparent}
.wrow:hover{background:var(--panel);border-color:var(--line2)}
.wrow.active{background:var(--accent-soft);border-color:var(--accent);box-shadow:none}
.wl1{display:flex;align-items:baseline;gap:8px}
.wl1 .wsym{font-weight:700;font-family:var(--mono);font-size:14px;letter-spacing:.2px}
.wl1 .wname{flex:1;min-width:0;color:var(--dim);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wl1 .wp{font-family:var(--mono);font-size:14px;font-weight:600}
.wl2{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:5px}
.wl2 .wspark{margin:0;line-height:0;opacity:.9}
.wchip{display:inline-block;font-family:var(--mono);font-size:13px;font-weight:700;padding:2px 8px;border-radius:999px;font-variant-numeric:tabular-nums}
.wchip.up{background:var(--up-bg);color:var(--up-ink,var(--up))} .wchip.down{background:var(--down-bg);color:var(--down-ink,var(--down))} .wchip.flat{background:var(--panel);color:var(--dim)}
.wrow .wx{top:8px;right:8px}
.wlnote{margin:10px 4px 6px;padding:12px 14px;border-radius:12px;background:var(--panel);border:1px dashed var(--line2);font-size:13px;line-height:1.5;color:var(--mut)}
.wlnote b{display:block;color:var(--ink);margin-bottom:2px}
.wlnote-b{display:flex;gap:6px;margin-top:10px}
.wlempty{padding:14px 12px;color:var(--dim);font-size:13px;line-height:1.5}
.wladd{display:flex;gap:6px;margin:10px 4px 4px}
.wladd input{flex:1;min-width:0;background:var(--panel);border:1px solid var(--line2);color:var(--ink);border-radius:9px;padding:8px 10px;font-size:13px;font-family:var(--mono);text-transform:uppercase}
.wladd input::placeholder{text-transform:none;font-family:var(--sans)}
.btn.mini{padding:5px 11px;font-size:12px}

/* ---------- home v3: tasks + events ---------- */
.taskgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;margin-bottom:18px}
.task{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:14px;background:var(--panel);border:1px solid var(--line);cursor:pointer;transition:transform .14s,border-color .14s,box-shadow .14s}
.task:hover{transform:translateY(-2px);border-color:var(--tc);box-shadow:0 10px 24px rgba(0,0,0,.22)}
.task-ic{font-size:24px;line-height:1;width:44px;height:44px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:12px;background:color-mix(in srgb,var(--tc) 18%,transparent)}
.task-b b{font-size:15px} .task-b p{margin:3px 0 8px;color:var(--mut);font-size:13px;line-height:1.45}
.task-l{display:flex;flex-wrap:wrap;gap:6px}
.task-link{border:1px solid var(--line2);background:var(--panel2);color:var(--ink);border-radius:999px;padding:3px 10px;font-size:13px;cursor:pointer;font-family:inherit}
.task-link:hover{border-color:var(--tc);color:var(--tc)}
.evrow{display:flex;gap:12px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line)} .evrow:last-of-type{border-bottom:0}
.evdate{flex:none;width:64px;text-align:center;padding:6px 4px;border-radius:9px;background:var(--panel2)} .evdate b{display:block;font-size:13px} .evdate small{color:var(--dim);font-size:12px}
.evtxt{font-size:14px;line-height:1.4} .evtxt .odim{font-size:12px}

/* ---------- market pulse rail ---------- */
.railwatch{display:flex;flex-direction:column;min-height:0;max-height:52vh}
.railwatch[hidden]{display:none}
.railpulse{flex:1;overflow-y:auto;border-top:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.railpulse .sidehead{border-bottom:1px solid var(--line)}
.sh-dot.off{background:var(--dim);box-shadow:none;animation:none}
.railbody{padding:2px 10px 10px}
.prow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 8px;border-bottom:1px solid var(--line);transition:background .12s ease,transform .12s ease}
.prow:last-of-type{border-bottom:0}
.prow.clickable{cursor:pointer;border-radius:10px}
.prow.clickable:hover{background:var(--panel);transform:translateX(2px)}
.pl{display:flex;align-items:center;gap:9px;min-width:0} .pn{font-size:13px;font-weight:600;white-space:nowrap;color:var(--ink);letter-spacing:.1px} .psp{line-height:0;opacity:.9}
.pr{display:flex;flex-direction:column;align-items:flex-end;gap:3px} .pv{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.pr .wchip{font-size:12px;padding:2px 7px}
/* Markets-now status pill + visitor 'Your connection' panel (2026-10-13) */
.railpulse .sidehead .clock{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;padding:3px 9px;border-radius:999px;background:var(--up-bg);color:var(--up-ink,var(--up))}
.railpulse .sidehead:has(.sh-dot.off) .clock{background:var(--panel);color:var(--dim)}
.railyou{padding:11px 16px;border-top:1px solid var(--line);background:var(--panel2)}
.youh{font-size:12px;text-transform:uppercase;letter-spacing:1.1px;color:var(--dim);font-weight:700;margin-bottom:7px;display:flex;align-items:center;gap:7px}
.youh::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent2);box-shadow:0 0 0 3px var(--accent-soft)}
.yourow{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;padding:3px 0}
.yourow span{color:var(--mut)} .yourow b{font-family:var(--mono);color:var(--ink);font-size:12px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;text-align:right}
.railsec{margin:10px 0 0;padding:10px 10px 8px;border-radius:11px;background:var(--panel);border:1px solid var(--line2)}
.railh{font-size:12px;text-transform:uppercase;letter-spacing:.9px;color:var(--dim);font-weight:700;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}
.railh .lnav{text-transform:none;letter-spacing:0;font-size:13px}
.moodbar{height:8px;border-radius:5px;background:linear-gradient(90deg,var(--down),#e0a34b,var(--up));position:relative;opacity:.9}
.moodfill{position:absolute;top:-3px;height:14px;width:2px;background:transparent;border-right:3px solid var(--ink);border-radius:2px}
.moodlbl{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--dim);margin-top:5px} .moodlbl b{color:var(--ink);font-size:12px}
.rrow{display:flex;justify-content:space-between;font-size:13px;padding:3px 0} .rrow b{font-family:var(--mono)} .rrow.dim{color:var(--dim)} .rrow.dim b{color:var(--dim)}
.rev b{display:block;font-size:13px} .rev span{font-size:13px;color:var(--dim)}
.railcta{margin:12px 2px 4px;padding:12px 14px;border-radius:12px;background:var(--accent-soft);border:1px solid var(--accent);font-size:13px;line-height:1.5}
.railcta b{display:block;margin-bottom:2px} .railcta span{color:var(--mut)}

/* ---------- home: top stories / economy at a glance / daily bits ---------- */
.hncols{display:grid;grid-template-columns:1fr 1fr;gap:6px 26px}
@media (max-width:900px){.hncols{grid-template-columns:1fr}}
.hnh{font-size:13px;text-transform:uppercase;letter-spacing:.8px;color:var(--dim);font-weight:700;margin:4px 0 6px}
.hn{display:grid;grid-template-columns:10px 1fr;gap:3px 10px;padding:8px 4px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;align-items:start}
.hn:last-of-type{border-bottom:0} .hn:hover .hnt{color:var(--accent)}
.hnt{font-size:14px;font-weight:600;line-height:1.4} .hnm{grid-column:2;font-size:13px;color:var(--dim)}
.ndot{width:8px;height:8px;border-radius:50%;background:var(--line2);margin-top:7px} .ndot.up{background:var(--up)} .ndot.down{background:var(--down)}
.hnfoot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.glance{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.gt{padding:11px 13px;border-radius:12px;background:var(--panel2);border:1px solid var(--line2);border-left:4px solid var(--line2)}
.gt.good{border-left-color:var(--up)} .gt.warn{border-left-color:#e0a34b} .gt.bad{border-left-color:var(--down)}
.gtk{font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--dim)} .gtv{font-family:var(--mono);font-size:19px;font-weight:700;margin:3px 0} .gtt{font-size:12px;color:var(--mut);line-height:1.45}
.grates{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.gr{display:flex;flex-direction:column;padding:8px 10px;border-radius:10px;background:var(--panel2)} .gr span{font-size:13px;color:var(--dim)} .gr b{font-family:var(--mono);font-size:16px} .gr small{font-size:13px;color:var(--mut)}
.secrow{display:flex;flex-wrap:wrap;gap:6px}
.sec{font-size:13px;font-weight:700;padding:4px 10px;border-radius:999px;font-family:var(--mono);position:relative}
.sec::after{content:"";position:absolute;left:10px;right:10px;bottom:2px;height:2px;border-radius:2px;background:currentColor;opacity:var(--mag,1)} .sec.up{background:var(--up-bg);color:var(--up-ink,var(--up))} .sec.down{background:var(--down-bg);color:var(--down-ink,var(--down))}
.dailyrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:18px}
.daily{margin-bottom:0} .dailyk{display:block;font-size:17px;margin-bottom:4px} .dailyt{font-size:13px;color:var(--mut);line-height:1.5;margin-bottom:8px}

/* ---------- admin: revisions ---------- */
.revtools{display:flex;gap:10px;align-items:center;margin:0 0 10px}
.revtable td{vertical-align:top} .revrow{cursor:pointer} .revrow:hover td{background:var(--panel2)} .revrow.on td{background:var(--accent-soft)}
.revbody{font-size:13px;margin-top:2px}
.revcard{margin-top:14px}
.revmsg{white-space:pre-wrap;font-family:var(--sans);font-size:13px;color:var(--mut);background:var(--panel2);padding:10px 12px;border-radius:9px;margin:0 0 10px}
.revfiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:4px 16px;margin-bottom:10px}
.revfile{display:flex;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:12px;padding:3px 0;border-bottom:1px solid var(--line)}
.revstat{white-space:pre-wrap;font-family:var(--mono);font-size:12px;background:var(--panel2);padding:10px 12px;border-radius:9px}
.diff{font-family:var(--mono);font-size:12px;line-height:1.45;max-height:70vh;overflow:auto;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}
.dl{white-space:pre-wrap;padding:0 10px;word-break:break-all}
.dl.da{background:rgba(65,184,131,.14);color:var(--up)} .dl.dd{background:rgba(224,115,108,.14);color:var(--down)}
.dl.dhunk{color:var(--accent);background:var(--panel);padding:4px 10px} .dl.dfile{color:var(--ink);font-weight:700;background:var(--panel);padding:8px 10px;border-top:1px solid var(--line)} .dl.dh{color:var(--dim)}

/* ---------- Secure Your Future ---------- */
.secprog{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.secprog-b{flex:1 1 240px;height:10px;border-radius:6px;background:var(--panel2);overflow:hidden}
.secprog-f{height:100%;background:linear-gradient(90deg,var(--accent),var(--up));transition:width .3s}
.secnum{width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex:none}
.secstep.done .secnum{background:var(--up);color:#fff}
.secstep.done .learntt{text-decoration:line-through;text-decoration-color:var(--dim);opacity:.8}
.secck{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--dim);margin-right:8px;cursor:pointer;flex:none}
.sectools{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:12px}
.sectool{padding:12px 14px;border-radius:12px;background:var(--panel2);border:1px solid var(--line2)} .sectool h4{margin:0 0 4px}
.sectool .ivq input,.sectool .ivq select{min-width:110px}
.secans{margin-top:6px;font-size:14px} .secans b{font-family:var(--mono);font-size:17px} .secans span{display:block;color:var(--mut);font-size:13px;margin-top:3px;line-height:1.45}
.secans.err{color:var(--down)}
.secans span b{font-family:inherit;font-size:inherit;color:var(--ink)}
.secmist{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:8px 14px} .secmi{padding:9px 12px;border-radius:10px;background:var(--panel2);border-left:3px solid var(--down)} .secmi b{display:block;font-size:14px} .secmi span{display:block;color:var(--mut);font-size:13px;margin-top:2px;line-height:1.4}
.secdec{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px} .secdec h4{margin:0 0 6px} .secdec ul{margin:0;padding-left:18px} .secdec li{margin:3px 0}

/* ---------- Business: two goals (home panel + overview page) ---------- */
.homebiz{border:1px solid var(--line);border-radius:18px;padding:16px 18px 12px;margin-bottom:14px;background:linear-gradient(135deg,color-mix(in srgb,#5a9bd8 10%,var(--panel)),color-mix(in srgb,#41b883 10%,var(--panel)))}
.homebiz-k{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:700}
.homebiz-h p{margin:4px 0 10px;color:var(--mut);font-size:14px}
.homebiz-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}
.homebiz .bizgoal{background:var(--panel)} .homebiz .feat-b b{font-size:15px}
.homebiz-f{margin-top:10px;font-size:13px}
.bizhero h2{max-width:900px}
.bizgoals{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px;margin-bottom:14px}
.bizgoal-card{margin:0;border-top:4px solid var(--fc);position:relative}
.bizgoal-card h3{margin:2px 0 8px;font-size:18px} .bizgoal-card p{color:var(--mut);line-height:1.55} .bizgoal-card ul{padding-left:20px;margin:6px 0 12px} .bizgoal-card li{margin:3px 0}
.bizgoal-n{font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--fc)}
.bizgoal-cta{display:flex;gap:8px;flex-wrap:wrap}
.bizpick{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px 24px} .bizpick h4{margin:0 0 4px} .bizpick ul{margin:0;padding-left:20px} .bizpick li{margin:4px 0;line-height:1.5}
.bizgoal-tag{margin-left:auto;font-size:12px;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:4px 10px;border-radius:999px;cursor:pointer;white-space:nowrap}

/* ---------- guides.js: forensics + college ---------- */
.gsec{scroll-margin-top:70px}
.gtable{width:100%;border-collapse:collapse;font-size:13px} .gtable th{text-align:left;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);padding:6px 8px;border-bottom:1px solid var(--line)} .gtable td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.5} .gtable tr:last-child td{border-bottom:0}
.gtools summary{font-weight:700;font-size:14px}
.gticks{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:6px 16px}
.gtick{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:10px;background:var(--panel2);cursor:pointer} .gtick input{margin-top:3px} .gtick b{font-size:14px;font-weight:600} .gtick small{display:block;color:var(--dim);font-size:13px} .gtick:has(input:checked) b{text-decoration:line-through;opacity:.7}
.ladder{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.rung{display:flex;gap:14px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:var(--panel2);border-left:4px solid var(--fc)} .rung-n{width:28px;height:28px;border-radius:50%;background:var(--fc);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none} .rung b{font-size:15px} .rung p{margin:3px 0 0;color:var(--mut);font-size:13px;line-height:1.5}

/* home market tiles (stat tile: name, price + day change, one-month area sparkline, caption) */
.tape{gap:12px;margin-top:18px}
.tapeitem{padding:12px 14px 10px;border-radius:14px}
.tapeitem .tapehd{gap:8px}
.tapeitem .mkname{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tapeitem .mks{flex:none}
.tapeitem .mkv{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;font-family:var(--sans);min-height:24px}
.tapeitem .mkprice{font-size:20px;font-weight:700;letter-spacing:-.2px;font-variant-numeric:tabular-nums;color:var(--ink)}
.tapeitem .chip{margin-left:0;font-weight:600;font-variant-numeric:tabular-nums}
.tapeitem .mkspark{margin:8px -2px 0;min-height:40px}
.sparea{display:block;width:100%;height:40px;overflow:visible}
.spa-fill{fill:var(--accent);fill-opacity:.13}
.spa-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.sparea.up .spa-fill{fill:var(--up)} .sparea.up .spa-line{stroke:var(--up)}
.sparea.down .spa-fill{fill:var(--down)} .sparea.down .spa-line{stroke:var(--down)}
.tapeitem .mkfoot{margin-top:6px;font-size:13px;color:var(--dim)}
.mkfoot .up{color:var(--up);font-weight:600} .mkfoot .down{color:var(--down);font-weight:600}
@media (max-width:520px){.tape{gap:8px} .tapeitem{padding:10px 12px 8px} .tapeitem .mkprice{font-size:17px}}

/* home: top stories (self-contained ts* block, scoped to .homenews) */
.homenews{padding:22px 24px}
.homenews .tshead{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.homenews .tstitle{margin:0;font-size:21px;font-weight:700;letter-spacing:-.2px;color:var(--ink);line-height:1.2}
.homenews .tssub{margin-top:4px;font-size:14px;color:var(--mut)}
.homenews .tspills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.homenews .tspill{font:inherit;font-size:13px;font-weight:600;padding:6px 12px;border-radius:20px;border:1px solid var(--line2);background:var(--panel2);color:var(--mut);cursor:pointer;line-height:1.2}
.homenews .tspill:hover{border-color:var(--accent);color:var(--ink)}
.homenews .tspill.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.homenews .tsc{opacity:.75;font-weight:500}
.homenews .tscols{display:grid;grid-template-columns:1.15fr 1fr;gap:18px 30px}
@media (max-width:900px){.homenews .tscols{grid-template-columns:1fr}}
.homenews .tsh{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--mut);margin:0 0 8px}
.homenews .tsh::before{content:"";width:4px;height:15px;border-radius:2px;background:var(--accent)}
.homenews .tslead{display:block;padding:16px 18px;border-radius:14px;background:var(--panel2);border:1px solid var(--line2);color:var(--ink);text-decoration:none;margin-bottom:8px;transition:border-color .14s ease,background .14s ease}
.homenews .tslead:hover{border-color:var(--accent);background:var(--accent-soft)}
.homenews .tstags{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.homenews .tstopic{font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--accent)}
.homenews .tslt{font-size:20px;font-weight:700;line-height:1.3;letter-spacing:-.2px}
.homenews .tsld{margin-top:8px;font-size:15px;line-height:1.5;color:var(--mut);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.homenews .tsm{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--mut)}
.homenews .tslead .tsm{margin-top:10px}
.homenews .tsm b{color:var(--ink);font-weight:600} .homenews .tsdot{color:var(--dim)}
.homenews .tsn{display:inline-flex;align-items:center;font-size:13px;font-weight:700;padding:2px 8px;border-radius:20px;line-height:1.5;white-space:nowrap}
.homenews .tsn.up{color:var(--up-ink,var(--up));background:var(--up-bg)} .homenews .tsn.down{color:var(--down-ink,var(--down));background:var(--down-bg)}
.homenews .tsrow{display:block;padding:12px 10px;margin:0 -10px;border-radius:10px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.homenews .tsrow:last-child{border-bottom:0}
.homenews .tsrow:hover{background:var(--panel2)} .homenews .tsrow:hover .tsrt{color:var(--accent)}
.homenews .tsrt{display:block;font-size:16px;font-weight:600;line-height:1.4}
.homenews .tsrm{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:5px}
.homenews .tsempty{color:var(--mut);font-size:14px;padding:8px 0}
.homenews .tsfoot{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:13px;color:var(--mut);line-height:1.7}
@media (max-width:520px){.homenews{padding:16px} .homenews .tslt{font-size:18px} .homenews .tsrt{font-size:16px} .homenews .tshead .btn{width:100%}}

/* ===== sitewide legibility (v3.54.13): section labels, small-text floor, tabs that stand out ===== */
:root{--tab-on:#f08c2e;--tab-on-ink:#161008;--tab-on-hover:#f59b47}
:root[data-theme="light"]{--tab-on:#e8801c;--tab-on-ink:#161008;--tab-on-hover:#f08c2e}
/* section labels: bigger, in --mut rather than --dim */
.fgh{font-size:13px;letter-spacing:.9px;color:var(--mut);font-weight:700;margin-bottom:12px}
.hnh,.exhd,.mvh,.gtk,.stat .k,.railh,.youh,.mktcard .mkl{font-size:13px;color:var(--mut)}
.railh{letter-spacing:.8px} .youh{letter-spacing:.9px}
/* tabs and pills: every family, bigger + bold; active = orange with dark ink */
.tabbar button,.dvtab,.ntab,.wgtab,.ranges button,.cmtabsbar button,.cmsortwrap button,.homenews .tspill{
  font-size:14px;font-weight:700;padding:8px 15px;border-radius:999px;border:1px solid var(--line2);background:var(--panel2);color:var(--ink);line-height:1.2}
.ranges button{padding:6px 12px;font-size:14px}
.wgtab{padding:5px 12px;font-size:13px}
.tabbar button:hover,.dvtab:hover,.ntab:hover,.wgtab:hover,.ranges button:hover,.cmtabsbar button:hover,.cmsortwrap button:hover,.homenews .tspill:hover{
  border-color:var(--tab-on);color:var(--ink);background:var(--panel2)}
.tabbar button.on,.dvtab.on,.ntab.on,.wgtab.on,.ranges button.on,.cmtabsbar button.on,.cmsortwrap button.on,.homenews .tspill.on,
.tabbar button.on:hover,.dvtab.on:hover,.ntab.on:hover,.wgtab.on:hover,.ranges button.on:hover,.homenews .tspill.on:hover{
  background:var(--tab-on);border-color:var(--tab-on);color:var(--tab-on-ink);box-shadow:0 2px 10px rgba(240,140,46,.35)}
.homenews .tspills{gap:9px;margin-bottom:18px}
.homenews .tsc{opacity:1;font-weight:700;background:rgba(0,0,0,.14);border-radius:999px;padding:0 7px;margin-left:3px}
.homenews .tspill:not(.on) .tsc{background:var(--line);color:var(--mut)}
.task-link{font-size:13px;font-weight:600;padding:5px 12px;border-color:var(--line2);color:var(--ink)}
.task-link:hover{border-color:var(--tab-on);color:var(--ink);background:var(--panel2)}
/* home sections: same floor as Top stories */
.gtt{font-size:14px;color:var(--mut)} .gr small{font-size:13px} .gr b{font-size:17px}
.task-b b{font-size:15px} .task-b p{font-size:14px;line-height:1.5;color:var(--mut)}
.feat-b b{font-size:16px} .feat-b p{font-size:14px;color:var(--mut)} .feat-go{font-size:14px}
.alertrow{font-size:14px;padding:8px 10px}
.evtxt{font-size:14px} .evtxt .odim{font-size:13px} .evdate b{font-size:14px}
.setupitem .setuplbl{font-size:14px}
.yourow{font-size:13px} .yourow b{font-size:13px} .rrow{font-size:13px}
.wl1 .wname{font-size:13px;color:var(--mut)} .moodlbl b{font-size:13px}
.stat .v{font-size:16px}
.hn .hnt{font-size:15px} .hn .hnm{font-size:13px}
.tile .odim{font-size:13px}
.odim{color:var(--mut)}

/* ===== section language (v3.54.14): every view reads like Top stories ===== */
/* page title row */
.phead{margin:2px 0 18px;gap:14px;flex-wrap:wrap;align-items:flex-end}
.phead h2{font-size:23px;font-weight:700;letter-spacing:-.2px;line-height:1.2;margin:0;color:var(--ink)}
.phead .odim,.phead .sub,.phead small,.phead p{font-size:14px;color:var(--mut)}
h2{font-size:22px;font-weight:700;letter-spacing:-.2px;line-height:1.2} h3{font-size:18px;font-weight:700;line-height:1.3}
/* section labels: accent bar + uppercase, like the MARKETS & BUSINESS column head */
.fgh{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:13px;letter-spacing:.8px;text-transform:uppercase;color:var(--mut);font-weight:700;line-height:1.3;margin-bottom:12px}
.fgh::before{content:"";flex:none;width:4px;height:15px;border-radius:2px;background:var(--accent)}
.fgh .odim,.fgh small{text-transform:none;letter-spacing:0;font-weight:500;font-size:13px;color:var(--mut)}
.youh,.hnh,.mvh,.exhd{display:flex;align-items:center;gap:8px;font-size:13px;letter-spacing:.8px;text-transform:uppercase;color:var(--mut);font-weight:700}
.youh::before,.hnh::before,.mvh::before,.exhd::before{content:"";flex:none;width:3px;height:13px;border-radius:2px;background:var(--accent)}
.railh,.sidehead{font-size:13px;letter-spacing:.8px;color:var(--mut);font-weight:700}
/* list rows: same rhythm as the Top stories rows */
.hn,.newsrow,.wlrow,.recrow,.prow,.planrow,.evrow,.hmrow,.calrow,.mcnews,.hcomp{font-size:14px;line-height:1.45}
.newsrow,.recrow,.planrow,.evrow,.calrow,.mcnews{padding-top:10px;padding-bottom:10px}
.mcnews .nhead{font-size:16px;font-weight:600} .hn .hnt{font-size:16px;font-weight:600} .hn .hnm{font-size:13px}
.tile b{font-size:15px} .tile .odim{font-size:13px}
/* tables */
table{font-size:14px} .ptable{font-size:14px}
.ptable th{font-size:13px;color:var(--mut);letter-spacing:.6px;padding:10px 10px}
.ptable td{padding:10px 10px}
/* body copy, meta, muted */
.sub{font-size:14px;color:var(--mut)} .odim{font-size:13px;color:var(--mut)} .meta{font-size:13px;color:var(--mut)} small{font-size:13px;color:var(--mut)}
.divbanner{font-size:14px;color:var(--mut)} .divcaveat{font-size:13px;color:var(--mut)}
.card p{line-height:1.55}

/* ===== main navigation (v3.54.18): bigger, bold, orange, stands out ===== */
:root{--nav-ink:#f08c2e;--nav-ink-hover:#ffa94d;--nav-on-bg:#f08c2e;--nav-on-ink:#161008;--nav-hover-bg:rgba(240,140,46,.13)}
:root[data-theme="light"]{--nav-ink:#b35a08;--nav-ink-hover:#8f4706;--nav-on-bg:#e8801c;--nav-on-ink:#161008;--nav-hover-bg:rgba(232,128,28,.12)}
.mainnav{gap:4px;padding:6px 14px;border-bottom:2px solid var(--line2)}
.mainnav .navtop{color:var(--nav-ink);font-size:17px;font-weight:700;padding:9px 15px;border-radius:999px;letter-spacing:.1px;line-height:1.2;transition:background .12s ease,color .12s ease}
.mainnav .navtop:hover{color:var(--nav-ink-hover);background:var(--nav-hover-bg)}
.mainnav .navtop.on,.mainnav .navtop.on:hover{color:var(--nav-on-ink);background:var(--nav-on-bg);box-shadow:0 2px 10px rgba(240,140,46,.38)}
.mainnav .navtop.on::after{display:none}
.mainnav .navtop .caret{font-size:12px;opacity:.85;margin-left:1px}
.mainnav .navgrp.open>.navhead{color:var(--nav-ink-hover);background:var(--nav-hover-bg)}
html[data-fsize="large"] .mainnav .navtop{font-size:18px}
html[data-fsize="xl"] .mainnav .navtop{font-size:19px}
@media (max-width:900px){
  .mainnav{padding:4px 6px;gap:2px}
  .mainnav .navtop{padding:8px 11px;font-size:15px}
}

/* ===== brand (v3.54.19): Moneydesks mark + wordmark ===== */
.brand{gap:10px;cursor:pointer;align-items:center}
.brand .logo{width:34px;height:34px;flex:none;display:block;filter:drop-shadow(0 2px 6px rgba(240,140,46,.35))}
.brand .wordmark{font-size:22px;font-weight:700;letter-spacing:-.4px;margin:0;color:var(--ink);line-height:1;white-space:nowrap}
.brand .wordmark span{color:var(--nav-ink)}
.brand:hover .wordmark span{color:var(--nav-ink-hover)}
.brand .tag{display:none}
@media (max-width:900px){.brand .wordmark{font-size:18px} .brand .logo{width:28px;height:28px}}
/* home: the three gauge cards (recession watch, market regime, market mood) */
.homehealth{margin-bottom:18px}
.homehealth .hlthcard .mcind{font-size:14px}

/* splash (v3.54.21): the Moneydesks mark and wordmark */
.spl-logo .spl-mark{width:84px;height:84px;display:block;margin:0 auto;filter:drop-shadow(0 6px 18px rgba(240,140,46,.45))}
.spl-name .spl-accent{color:#f08c2e}
@media (max-width:520px){.spl-logo .spl-mark{width:64px;height:64px}}

/* v3.54.26: policy links where people expect them */
.spl-note a{color:#c6d3ea;text-decoration:underline;text-underline-offset:3px;font-weight:600}
.spl-note a:hover{color:#fff}
.sidefoot{font-size:14px;line-height:1.6;opacity:1}
.sidefoot a{font-weight:600}
.globaldisc .lnav{font-weight:600}
/* sign-up consent: one flowing sentence with inline links (the .qtrow label column layout is for inputs) */
.qtrow label.agreelbl{display:block;line-height:1.55;font-size:14px}
.qtrow label.agreelbl input{display:inline-block;vertical-align:-2px;margin:0 7px 0 0;width:auto}
.qtrow label.agreelbl a{display:inline;color:var(--accent);font-weight:600}
