/* ==========================================================================
   Mentloop design system — tokens, layout, components
   ========================================================================== */
:root{
  /* colour */
  --bg:#f6f6f3; --surface:#fff; --subtle:#fafaf8; --hover:#f3f3ef;
  --line:#e8e7e2; --line-2:#dcdad3;
  --ink:#16161a; --ink-2:#4b4b55; --ink-3:#85858f;
  --accent:#4f46e5; --accent-2:#4338ca; --accent-bg:#eef2ff; --accent-line:#c7d2fe;
  --warm:#b4610e; --warm-bg:#fdf1e3; --pos:#15803d; --pos-bg:#e9f7ee; --neg:#c2410c; --neg-bg:#fdeee6;
  --info:#4054b2; --info-bg:#edf0fb;
  /* spacing scale (4-pt) */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px; --s7:32px; --s8:40px; --s9:56px;
  /* type scale */
  --t-xs:12px; --t-sm:13px; --t-md:14px; --t-lg:16px; --t-xl:20px; --t-2xl:28px;
  /* shape */
  --r-sm:6px; --r:10px; --r-lg:14px; --pill:999px;
  --sh-1:0 1px 2px rgba(20,20,30,.04),0 1px 1px rgba(20,20,30,.03);
  --sh-2:0 6px 20px -6px rgba(20,20,30,.12),0 2px 6px rgba(20,20,30,.04);
  --sidebar:236px; --topbar:56px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:var(--t-md)/1.5 Inter,-apple-system,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
svg.lucide{width:16px;height:16px;stroke-width:1.75;flex:none}
h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em}
.mut{color:var(--ink-3)} .ink2{color:var(--ink-2)} .xs{font-size:var(--t-xs)} .sm{font-size:var(--t-sm)}
.num{font-variant-numeric:tabular-nums}
.row{display:flex;align-items:center;gap:var(--s2)} .wrap{flex-wrap:wrap} .grow{flex:1;min-width:0}
.between{justify-content:space-between} .col{display:flex;flex-direction:column;gap:var(--s2)}
.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.clamp3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- shell ---------- */
.shell{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;background:var(--surface);border-right:1px solid var(--line);
  display:flex;flex-direction:column;padding:var(--s4) var(--s3)}
.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px;font-weight:700;font-size:17px;letter-spacing:-.02em}
.brand .mark{width:30px;height:20px;display:grid;place-items:center}.brand .mark img{width:30px;height:20px;display:block}
.brand .mark svg{width:15px;height:15px;stroke-width:2.2}
.brand small{font-weight:500;font-size:11px;color:var(--ink-3);border:1px solid var(--line);border-radius:var(--pill);padding:0 7px;margin-left:auto}
.nav-group{margin:var(--s3) 0 var(--s1);padding:0 10px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.nav a{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;color:var(--ink-2);font-weight:500;margin:1px 0}
.nav a:hover{background:var(--hover);color:var(--ink)}
.nav a.on{background:var(--accent-bg);color:var(--accent-2)}
.nav a .count{margin-left:auto;font-size:11px;color:var(--ink-3);font-weight:500}
.nav a.on .count{color:var(--accent-2)}
.sidebar .foot{margin-top:auto;border-top:1px solid var(--line);padding-top:var(--s3)}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;height:var(--topbar);display:flex;align-items:center;gap:var(--s3);
  padding:0 var(--s7);background:rgba(246,246,243,.86);backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--line)}
.search-g{flex:1;max-width:520px;position:relative}
.search-g svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ink-3)}
.search-g input{width:100%;height:36px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:0 12px 0 36px;font:inherit;color:var(--ink)}
.search-g input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.search-g kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font:500 11px Inter;color:var(--ink-3);border:1px solid var(--line);border-radius:5px;padding:1px 5px;background:var(--subtle)}
.asof{display:flex;align-items:center;gap:6px;font-size:var(--t-xs);color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--pill);padding:5px 10px;white-space:nowrap}
.asof .dot{width:7px;height:7px;border-radius:50%;background:var(--warm)}
.content{padding:var(--s7) var(--s7) var(--s9);max-width:1320px;width:100%}
.mobile-nav{display:none}

/* ---------- page header ---------- */
.ph{display:flex;align-items:flex-end;gap:var(--s4);margin-bottom:var(--s6)}
.ph .eyebrow{font-size:var(--t-xs);font-weight:600;color:var(--accent);letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px;display:flex;align-items:center;gap:6px}
.ph h1{font-size:var(--t-2xl);line-height:1.15;letter-spacing:-.025em}
.ph p{margin:8px 0 0;color:var(--ink-2);max-width:760px;font-size:15px}
.ph .actions{margin-left:auto;display:flex;gap:var(--s2)}
.crumbs{display:flex;align-items:center;gap:6px;font-size:var(--t-sm);color:var(--ink-3);margin-bottom:var(--s3)}
.crumbs a:hover{color:var(--ink)}
.section{margin-top:var(--s8)}
.sh{display:flex;align-items:baseline;gap:var(--s3);margin-bottom:var(--s3)}
.sh h2{font-size:var(--t-lg)} .sh .mut{font-size:var(--t-sm)} .sh a.more{margin-left:auto;font-size:var(--t-sm);color:var(--accent);font-weight:500;display:flex;align-items:center;gap:4px}

/* ---------- cards ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1)}
.card.pad{padding:var(--s5)}
.card-h{display:flex;align-items:center;gap:var(--s2);padding:var(--s4) var(--s5);border-bottom:1px solid var(--line)}
.card-h h3{font-size:var(--t-md)} .card-h .mut{font-size:var(--t-xs)} .card-h .right{margin-left:auto}
.card-b{padding:var(--s4) var(--s5)}
a.card{transition:box-shadow .15s,border-color .15s,transform .15s;display:block}
a.card:hover,.hov:hover{box-shadow:var(--sh-2);border-color:var(--line-2)}
.grid{display:grid;gap:var(--s4)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))} .g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))} .gauto{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.split{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--s5);align-items:start}

/* ---------- KPI ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s3)}
.kpi{padding:var(--s4);display:flex;flex-direction:column;gap:6px;min-height:104px}
.kpi .lab{display:flex;align-items:center;gap:6px;font-size:var(--t-xs);color:var(--ink-3);font-weight:500}
.kpi .val{font-size:26px;font-weight:600;letter-spacing:-.02em;line-height:1.1}
.kpi .sub{font-size:var(--t-xs);color:var(--ink-3);margin-top:auto}
.kpi .val small{font-size:14px;color:var(--ink-3);font-weight:500;margin-left:2px}

/* ---------- chips & badges ---------- */
.chip{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:var(--pill);border:1px solid var(--line);background:var(--surface);font-size:12px;font-weight:500;color:var(--ink-2);white-space:nowrap}
a.chip:hover{border-color:var(--accent-line);color:var(--accent-2);background:var(--accent-bg)}
.chip svg{width:13px;height:13px}
.badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:var(--pill);font-size:11.5px;font-weight:600;background:var(--hover);color:var(--ink-2);white-space:nowrap}
.badge svg{width:12px;height:12px}
.b-accent{background:var(--accent-bg);color:var(--accent-2)} .b-warm{background:var(--warm-bg);color:var(--warm)}
.b-pos{background:var(--pos-bg);color:var(--pos)} .b-neg{background:var(--neg-bg);color:var(--neg)} .b-info{background:var(--info-bg);color:var(--info)}
.b-outline{background:transparent;border:1px dashed var(--line-2);color:var(--ink-3);font-weight:500}
.dotsep::before{content:"·";margin:0 6px;color:var(--ink-3)}

/* ---------- buttons & inputs ---------- */
.btn{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px;border-radius:var(--r);border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font:500 var(--t-sm) Inter,system-ui;cursor:pointer;transition:background .12s,border-color .12s,box-shadow .12s;white-space:nowrap}
.btn:hover{background:var(--hover)} .btn:active{transform:translateY(1px)}
.btn:focus-visible,.input:focus-visible,.select:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-bg);border-color:var(--accent)}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff} .btn-primary:hover{background:var(--accent-2)}
.btn-ghost{border-color:transparent;background:transparent;color:var(--ink-2)} .btn-ghost:hover{background:var(--hover)}
.btn-sm{height:28px;padding:0 10px;font-size:12.5px}
.btn.on{background:var(--accent-bg);border-color:var(--accent-line);color:var(--accent-2)}
.input,.select{height:34px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--t-sm);padding:0 11px}
.select{appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2385858f' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center}
.field{position:relative;display:flex;align-items:center}
.field svg{position:absolute;left:10px;color:var(--ink-3)} .field .input{padding-left:32px}
.filters{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;padding:var(--s3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:var(--s4)}
.filters .count{margin-left:auto;font-size:var(--t-sm);color:var(--ink-3)}
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.seg a{display:flex;align-items:center;gap:6px;height:32px;padding:0 11px;font-size:var(--t-sm);font-weight:500;color:var(--ink-2)}
.seg a+a{border-left:1px solid var(--line)} .seg a.on{background:var(--accent-bg);color:var(--accent-2)}

/* ---------- avatar / logo ---------- */
.av{--h:170;position:relative;width:36px;height:36px;border-radius:9px;flex:none;display:grid;place-items:center;
  background:hsl(var(--h) 45% 94%);color:hsl(var(--h) 45% 32%);font-weight:600;font-size:13px;overflow:hidden;border:1px solid var(--line)}
.av img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:6px;background:#fff}
.av.lg{width:56px;height:56px;border-radius:14px;font-size:20px} .av.sm{width:24px;height:24px;border-radius:6px;font-size:10px}
.av.sm img{padding:3px}
.src{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--ink-2)}
.src i{width:8px;height:8px;border-radius:2px;display:inline-block;background:var(--c,#999)}

/* ---------- tables ---------- */
.tbl{width:100%;border-collapse:separate;border-spacing:0}
.tbl th{position:sticky;top:var(--topbar);z-index:2;background:var(--subtle);text-align:left;font-size:11.5px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;padding:10px 14px;border-bottom:1px solid var(--line)}
.tbl th a{display:inline-flex;align-items:center;gap:4px} .tbl th a:hover{color:var(--ink)}
.tbl td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0} .tbl tbody tr{transition:background .1s} .tbl tbody tr:hover{background:var(--subtle)}
.tbl .r{text-align:right} .tbl-wrap{overflow-x:auto;border-radius:var(--r-lg)} .tbl-wrap .tbl th{position:static}
.tbl tr.click{cursor:pointer}

/* ---------- lists ---------- */
.list>*{border-bottom:1px solid var(--line)} .list>*:last-child{border-bottom:0}
.item{display:flex;gap:var(--s3);padding:var(--s4) var(--s5);align-items:flex-start;transition:background .1s}
a.item:hover{background:var(--subtle)}
.item h4{font-size:15px;line-height:1.35;font-weight:600}
.item .meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:12.5px;color:var(--ink-3);margin-top:3px}
.item p{margin:6px 0 0;color:var(--ink-2);font-size:13.5px}

/* ---------- signals ---------- */
.sig{display:flex;gap:var(--s3);padding:var(--s4) var(--s5)}
.sig .ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;flex:none}
.sig .ic.accent{background:var(--accent-bg);color:var(--accent)} .sig .ic.warm{background:var(--warm-bg);color:var(--warm)}
.sig .ic.positive{background:var(--pos-bg);color:var(--pos)} .sig .ic.neg{background:var(--neg-bg);color:var(--neg)}
.sig h4{font-size:14px;font-weight:600;line-height:1.35}
.sig .q{margin:8px 0 0;padding:6px 10px;border-left:2px solid var(--warm);background:var(--warm-bg);border-radius:0 6px 6px 0;color:var(--ink-2);font-size:13px}

/* ---------- stories ---------- */
.story,a.card.story{display:grid;grid-template-columns:minmax(0,1fr) 168px;gap:var(--s5);padding:var(--s5)}
.story .img{width:168px;height:112px;border-radius:10px;background:var(--hover) center/cover no-repeat;border:1px solid var(--line)}
.story h3{font-size:17px;line-height:1.35;letter-spacing:-.01em}
.story .lead{margin:6px 0 0;color:var(--ink-2);font-size:13.5px}
.outlets{display:flex;gap:6px;flex-wrap:wrap;margin-top:var(--s3)}
.spread{position:relative;height:28px;margin-top:var(--s3)}
.spread .axis{position:absolute;left:6px;right:6px;top:13px;height:2px;background:var(--line);border-radius:2px}
.spread .pt{position:absolute;top:7px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--c,#999);border:2px solid #fff;box-shadow:0 0 0 1px var(--line-2)}
.spread .pt.origin{box-shadow:0 0 0 2px var(--accent)}
.conf{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3)}
.conf b{display:inline-block;width:46px;height:5px;border-radius:5px;background:var(--line);overflow:hidden;position:relative}
.conf b::after{content:"";position:absolute;inset:0;width:var(--w);background:var(--accent);border-radius:5px}

/* ---------- timeline ---------- */
.tl{position:relative;padding-left:26px}
.tl::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:var(--line)}
.tl-i{position:relative;padding:0 0 var(--s5)}
.tl-i:last-child{padding-bottom:0}
.tl-i .node{position:absolute;left:-23px;top:3px;width:14px;height:14px;border-radius:50%;background:var(--surface);border:3px solid var(--c,var(--line-2))}
.tl-i .when{font-size:12px;color:var(--ink-3);display:flex;gap:6px;align-items:center}

/* ---------- charts ---------- */
.chart{width:100%;height:auto;display:block}
.chart .grid line{stroke:var(--line)} .chart text{font:11px Inter;fill:var(--ink-3)}
.hbar{display:grid;grid-template-columns:120px 1fr 36px;align-items:center;gap:10px;font-size:13px;margin:7px 0}
.hbar .track{height:8px;border-radius:8px;background:var(--hover);overflow:hidden}
.hbar .fill{display:block;height:100%;border-radius:8px;background:var(--accent)}
.spark{display:block}

/* ---------- transcript ---------- */
.tr{display:grid;grid-template-columns:64px 1fr;gap:var(--s3);padding:10px var(--s5);border-bottom:1px solid var(--line);transition:background .1s}
.tr:hover{background:var(--subtle)} .tr.hit{background:#fffaf0}
.tr .ts{background:none;border:0;text-align:left;align-self:start;height:auto;font:500 12px Inter;color:var(--accent);cursor:pointer;padding-top:2px}
.tr .ts:hover{text-decoration:underline}
.tr p{margin:0;font-size:14.5px;line-height:1.65;color:var(--ink)}
mark{background:#ffe8a3;color:inherit;padding:0 2px;border-radius:3px;box-shadow:0 0 0 1px #f5d36b inset}
.player{position:sticky;top:calc(var(--topbar) + 12px);z-index:5}
.player audio{width:100%;height:40px}

/* ---------- reader ---------- */
.reader h1{font-size:30px;line-height:1.2;letter-spacing:-.025em}
.reader .hero{width:100%;max-height:420px;object-fit:cover;border-radius:var(--r-lg);border:1px solid var(--line);margin:var(--s5) 0}
.reader .body{font-size:16px;line-height:1.75;color:#26262c;white-space:pre-line}
.reader .lead{font-size:18px;line-height:1.6;color:var(--ink-2);margin-top:var(--s3)}

/* ---------- empty / alerts ---------- */
.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--s9) var(--s6);gap:var(--s3)}
.empty .ic{width:52px;height:52px;border-radius:14px;background:var(--accent-bg);color:var(--accent);display:grid;place-items:center}
.empty .ic svg{width:24px;height:24px}
.empty h3{font-size:var(--t-xl)} .empty p{margin:0;max-width:520px;color:var(--ink-2)}
.steps{counter-reset:s;text-align:left;margin:var(--s3) 0 0;padding:0;list-style:none;max-width:520px;width:100%}
.steps li{counter-increment:s;display:flex;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:13.5px;color:var(--ink-2)}
.steps li::before{content:counter(s);width:22px;height:22px;border-radius:50%;background:var(--hover);display:grid;place-items:center;font-size:11px;font-weight:600;color:var(--ink-2);flex:none}
.alert{display:flex;gap:10px;padding:12px 14px;border-radius:var(--r);background:var(--info-bg);color:#2c3a80;font-size:13.5px;border:1px solid #d7ddf6}
.alert.warm{background:var(--warm-bg);color:#7a420a;border-color:#f3dcc0}
.pending{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-3);border:1px dashed var(--line-2);border-radius:var(--pill);padding:1px 8px}

/* ---------- ask ---------- */
.ask-hero{padding:var(--s8) var(--s7);text-align:center;background:radial-gradient(1200px 300px at 50% -40%,#d9f1ec 0%,transparent 60%),var(--surface)}
.ask-hero h1{font-size:30px;letter-spacing:-.03em}
.ask-hero p{color:var(--ink-2);margin:8px auto 0;max-width:600px}
.ask-box{display:flex;align-items:center;gap:var(--s2);max-width:760px;margin:var(--s6) auto 0;background:var(--surface);border:1px solid var(--line-2);border-radius:16px;padding:8px 8px 8px 16px;box-shadow:var(--sh-2)}
.ask-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-bg),var(--sh-2)}
.ask-box input{flex:1;border:0;outline:0;font:inherit;font-size:16px;background:transparent;color:var(--ink)}
.ask-box .btn{height:40px;border-radius:12px}
.sugg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3);margin-top:var(--s6)}
.sugg a{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:13.5px;text-align:left;color:var(--ink-2);transition:all .12s}
.sugg a:hover{border-color:var(--accent-line);background:var(--accent-bg);color:var(--accent-2)}
.sugg a svg{margin-top:2px;color:var(--accent)}
.thinking{display:none;align-items:center;gap:10px;justify-content:center;margin-top:var(--s5);color:var(--ink-2);font-size:13.5px}
.loading .thinking{display:flex}
.dots span{display:inline-block;width:6px;height:6px;margin:0 2px;border-radius:50%;background:var(--accent);animation:b 1s infinite}
.dots span:nth-child(2){animation-delay:.15s}.dots span:nth-child(3){animation-delay:.3s}
@keyframes b{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.answer{border-left:3px solid var(--accent)}

/* ---------- skeleton & progress ---------- */
.sk{background:linear-gradient(90deg,var(--hover) 0%,#ecebe6 50%,var(--hover) 100%);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:8px}
@keyframes sk{to{background-position:-200% 0}}
#progress{position:fixed;top:0;left:0;height:2px;width:0;background:var(--accent);z-index:100;transition:width .4s ease,opacity .3s}
#progress.go{width:70%} #progress.done{width:100%;opacity:0}

/* ---------- details / evidence ---------- */
details.ev{border-top:1px solid var(--line)}
details.ev summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;padding:var(--s4) var(--s5);font-weight:600;font-size:13.5px}
details.ev summary::-webkit-details-marker{display:none}
details.ev[open] summary .chev{transform:rotate(90deg)} details.ev .chev{transition:transform .15s}
.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 16px;font-size:13px;padding:0 var(--s5) var(--s5)}
.kv dt{color:var(--ink-3)} .kv dd{margin:0;word-break:break-all}
.tag-row{display:flex;flex-wrap:wrap;gap:6px}

/* ---------- ad cards ---------- */
.ad{overflow:hidden} .ad .creative{aspect-ratio:1/1;background:var(--hover) center/cover no-repeat;border-bottom:1px solid var(--line)}

/* ---------- responsive ---------- */
@media (max-width:1200px){.split{grid-template-columns:1fr}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){
  .shell{grid-template-columns:1fr}.sidebar{display:none}
  .mobile-nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--line)}
  .mobile-nav a{flex:none;padding:6px 10px;border-radius:8px;font-size:13px;color:var(--ink-2)} .mobile-nav a.on{background:var(--accent-bg);color:var(--accent-2)}
  .topbar,.content{padding-left:16px;padding-right:16px}
  .g2,.g3,.sugg{grid-template-columns:1fr}.story,a.card.story{grid-template-columns:1fr}.story .img{width:100%;height:160px}.story .img:not([style]){display:none}
  .ph{flex-direction:column;align-items:flex-start}.ph .actions{margin-left:0}.asof{display:none}
}
@media (max-width:560px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.g4{grid-template-columns:1fr}.tr{grid-template-columns:52px 1fr}}
.mobile-nav::-webkit-scrollbar{display:none}
.tr.now{background:var(--accent-bg);box-shadow:inset 3px 0 0 var(--accent)}
.split>*,.grid>*,.kpis>*{min-width:0}
@media (max-width:560px){.co-head{flex-wrap:wrap}.co-head .grow{flex:1 1 calc(100% - 80px);min-width:0}.co-head h1{font-size:22px!important}.co-head form{width:100%}.co-head form .btn{width:100%;justify-content:center}}
.lbl{font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:6px} textarea.input{width:100%;resize:vertical} label .input,label .select{width:100%}
/* ---------- account / login ---------- */
.sidebar .me{display:flex;align-items:center;gap:4px;margin-top:6px;padding-top:8px;border-top:1px solid var(--line)}
.sidebar .me a{flex:1;min-width:0;display:flex;align-items:center;gap:8px}
.me-name{display:block;font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me-role{display:block;font-size:11px;color:var(--ink-3)}
.login-body{background:var(--bg)}
.login-wrap{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
.login-scene{background:linear-gradient(155deg,#1e1b4b 0%,#3730a3 45%,#6d28d9 100%);color:#e0e7ff;padding:40px 48px;display:flex;flex-direction:column;justify-content:space-between;gap:32px}
.login-scene .mark{background:none!important}
.login-scene h2{font-size:32px;line-height:1.15;letter-spacing:-.02em;color:#fff;max-width:420px}
.login-scene p{margin:14px 0 0;max-width:420px;color:#c7d2fe;font-size:15px;line-height:1.55}
.login-scene ul{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:10px;font-size:14px}
.login-scene li{display:flex;gap:10px;align-items:center}.login-scene li svg{width:16px;height:16px;opacity:.85}
.login-scene small{color:#a5b4fc;font-size:12px}
.login-main{display:grid;place-items:center;padding:32px 16px}
.login-card{width:100%;max-width:380px;display:grid;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:32px}
.login-card h1{font-size:24px;letter-spacing:-.02em}.login-card p{margin:0}
.login-card .input{height:40px;width:100%}
.login-card .input[aria-invalid=true]{border-color:var(--neg);box-shadow:0 0 0 3px var(--neg-bg)}
.login-card .pw{position:relative}.login-card .pw .btn{position:absolute;right:4px;top:4px;height:32px}
.login-btn{height:40px;justify-content:center;width:100%}
@media (max-width:900px){.login-wrap{grid-template-columns:1fr}.login-scene{padding:28px 20px;gap:16px}.login-scene ul,.login-scene small{display:none}.login-scene h2{font-size:22px}}
