/* =========================================================================
   CSI Research Dashboard v10 — Complete Design System
   Dark fintech SaaS · 8px grid · Spectral · Green #35DC6E
   ========================================================================= */

/* ── Tokens ─────────────────────────────────────────────────────────────── */
:root {
  /* ── v5 "Chip Stock Investor" emerald-teal + violet palette ── */
  --bg:            #080b14;
  --bg-sidebar:    #080b14;
  --bg-topbar:     rgba(8,11,20,.96);
  --bg-card:       #0f1623;   /* solid navy surface — v5 --surface */
  --bg-card-hv:    #131b2e;
  --bg-elevated:   #151d2e;   /* v5 --surface-2 */
  --bg-input:      #151d2e;
  --bg-overlay:    rgba(4,6,14,.88);

  --border:        rgba(255,255,255,.07);
  --border-hv:     rgba(255,255,255,.14);  /* v5 --border-2 */
  --border-green:  rgba(45,212,191,.40);   /* v5 --brand-line (teal) */
  --border-blue:   rgba(99,179,237,.2);

  /* Brand = teal (#2dd4bf) — v5's primary accent */
  --green:         #2dd4bf;
  --green-bright:  #5eead4;
  --green-dim:     rgba(45,212,191,.13);  /* v5 --brand-soft */
  --green-glow:    rgba(45,212,191,.22);
  --green-text:    #2dd4bf;

  --red:           #f87171;   /* v5 --down */
  --red-dim:       rgba(248,113,113,.14);
  --amber:         #FBBF24;
  --amber-dim:     rgba(251,191,36,.1);
  --blue:          #60A5FA;
  --blue-dim:      rgba(96,165,250,.1);
  --purple:        #8b5cf6;   /* v5 --accent — exact violet */

  /* Text hierarchy — v5 scale */
  --t1:  #e9eef6;   /* v5 --text */
  --t2:  #93a0b6;   /* v5 --text-muted */
  --t3:  #5d6a81;   /* v5 --text-dim */
  --t4:  #2d3748;

  --sidebar-w: 290px;

  --r1: 4px;  --r2: 6px;  --r3: 8px;  --r4: 10px;
  --r5: 12px; --r6: 16px; --r7: 20px; --rpill: 999px;

  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px;
  --s6:24px; --s7:32px; --s8:40px; --s9:48px; --s10:64px;

  /* Base UI font — keeps form controls (which don't inherit) on Spectral too */
  --font:'Spectral',serif;

  --ease: cubic-bezier(.4,0,.2,1);
  --t-fast: 120ms var(--ease);
  --t-base: 200ms var(--ease);
  --t-slow: 300ms var(--ease);

  /* v5 shadow scale */
  --shadow:    0 1px 2px rgba(0,0,0,.55);
  --shadow-md: 0 18px 44px -16px rgba(0,0,0,.75);
}

/* ── Reset ──────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{
  font-family:'Spectral',serif;
  background:var(--bg);
  color:var(--t1);
  line-height:1.5;
  min-height:100vh;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
button{background:none;border:none;cursor:pointer;font:inherit;color:inherit}
ul,ol{list-style:none}
img{max-width:100%;display:block}
input,select,textarea{font:inherit}
svg{display:block;flex-shrink:0}

/* ── Animated BG ─────────────────────────────────────────────────────────── */
body::before{
  content:'';
  position:fixed;
  inset:0;
  background:
    radial-gradient(ellipse 800px 600px at 20% 0%, rgba(45,212,191,.055) 0%, transparent 60%),
    radial-gradient(ellipse 600px 400px at 80% 100%, rgba(139,92,246,.042) 0%, transparent 60%);
  pointer-events:none;
  z-index:0;
}

/* ── Shell ───────────────────────────────────────────────────────────────── */
.app{display:flex;min-height:100vh;position:relative;z-index:1}

/* ── Sidebar ─────────────────────────────────────────────────────────────── */
.sidebar{
  width:var(--sidebar-w);
  min-height:100vh;
  background:var(--bg-sidebar);
  border-right:1px solid var(--border);
  display:flex;
  flex-direction:column;
  position:fixed;
  inset-block:0;
  left:0;
  z-index:100;
  overflow:hidden;
}
.sidebar::before{
  content:'';
  position:absolute;
  top:-100px;left:-60px;
  width:280px;height:280px;
  background:radial-gradient(circle,rgba(45,212,191,.07) 0%,transparent 70%);
  pointer-events:none;
}

.sidebar-logo{
  display:flex;align-items:center;gap:var(--s3);
  padding:0 var(--s5);
  border-bottom:1px solid var(--border);
  height:57px;flex-shrink:0;position:relative;z-index:1;
  cursor:pointer;text-decoration:none;
}
.sidebar-logo img.mark{height:30px;width:auto;flex-shrink:0}
.sidebar-logo img.full{height:22px;width:auto}

.sidebar-nav{
  flex:1;padding:var(--s3) 0;overflow-y:auto;overflow-x:hidden;
  position:relative;z-index:1;
}
.sidebar-nav::-webkit-scrollbar{width:3px}
.sidebar-nav::-webkit-scrollbar-thumb{background:var(--t4);border-radius:2px}

.nav-group-label{
  font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--t3);padding:var(--s4) var(--s3) var(--s2);
}

.nav-item{
  display:flex;align-items:center;gap:10px;
  padding:10px var(--s3);
  color:var(--t2);font-size:14px;font-weight:500;
  cursor:pointer;position:relative;
  transition:color var(--t-fast),background var(--t-fast);
  user-select:none;white-space:nowrap;
}
.nav-item svg{width:17px;height:17px;flex-shrink:0;transition:color var(--t-fast)}
.nav-item:hover{color:var(--t1);background:rgba(255,255,255,.04)}
.nav-item.active{color:var(--green)}
.nav-item.active::before{
  content:'';position:absolute;left:0;top:5px;bottom:5px;
  width:2.5px;background:var(--green);border-radius:0 2px 2px 0;
  box-shadow:0 0 8px var(--green-glow);
}
.nav-item.active svg{color:var(--green)}
.nav-chevron{
  width:13px;height:13px;margin-left:auto;color:var(--t3);flex-shrink:0;
  transition:transform var(--t-base),color var(--t-fast);
}
.nav-item.open .nav-chevron{transform:rotate(90deg);color:var(--t2)}

/* sub-nav */
.sub-nav{overflow:hidden;max-height:0;transition:max-height var(--t-slow)}
.sub-nav.open{max-height:260px}
.sub-item{
  display:flex;align-items:center;gap:var(--s2);
  padding:6px var(--s3) 6px 52px;
  font-size:13px;font-weight:500;color:var(--t3);
  cursor:pointer;transition:color var(--t-fast),background var(--t-fast);
  white-space:nowrap;
}
.sub-item::before{
  content:'';width:4px;height:4px;border-radius:50%;
  background:currentColor;opacity:.5;flex-shrink:0;
}
.sub-item:hover{color:var(--t2);background:rgba(255,255,255,.025)}
.sub-item.active{color:var(--green-text)}
.sub-item.active::before{opacity:1}

/* sidebar bottom */
.sidebar-foot{
  padding:var(--s4) var(--s3);border-top:1px solid var(--border);
  flex-shrink:0;position:relative;z-index:1;
}
.user-row{display:flex;align-items:center;gap:var(--s3)}
.user-avatar{
  width:30px;height:30px;border-radius:50%;
  background:var(--green-dim);border:1.5px solid var(--green);
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700;color:var(--green);flex-shrink:0;
}
.user-name{font-size:12px;font-weight:600;color:var(--t1)}
.user-role{font-size:10px;color:var(--t3);margin-top:1px}

/* ── Main ────────────────────────────────────────────────────────────────── */
.main{flex:1;min-width:0;margin-left:var(--sidebar-w);min-height:100vh;display:flex;flex-direction:column}

/* ── Topbar ──────────────────────────────────────────────────────────────── */
.topbar{
  height:57px;background:var(--bg-topbar);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  display:flex;align-items:center;gap:var(--s4);padding:0 var(--s7);
  position:sticky;top:0;z-index:90;flex-shrink:0;
  margin-left:var(--sidebar-w);
}
@media(max-width:768px){.topbar{margin-left:0}}
.topbar-title{font-size:14px;font-weight:600;flex:1;color:var(--t1)}
.topbar-title span{font-weight:400;color:var(--t3);margin-left:4px}

.search-wrap{
  display:flex;align-items:center;gap:var(--s2);
  background:var(--bg-input);border:1px solid var(--border);
  border-radius:var(--r3);padding:0 var(--s3);height:34px;width:240px;
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.search-wrap:focus-within{border-color:var(--border-green);box-shadow:0 0 0 3px var(--green-dim)}
.search-wrap svg{width:13px;height:13px;color:var(--t3);flex-shrink:0}
.search-wrap input{
  background:none;border:none;outline:none;
  color:var(--t1);font-size:12px;flex:1;min-width:0;
}
.search-wrap input::placeholder{color:var(--t3)}
.kbd{
  font-size:10px;color:var(--t3);background:var(--bg-elevated);
  border:1px solid var(--border);border-radius:3px;padding:1px 5px;
  font-family:'JetBrains Mono',monospace;flex-shrink:0;
}
.tb-actions{display:flex;align-items:center;gap:6px}
.tb-icon{
  width:34px;height:34px;border-radius:var(--r3);
  display:flex;align-items:center;justify-content:center;
  color:var(--t2);position:relative;
  transition:color var(--t-fast),background var(--t-fast);
}
.tb-icon:hover{color:var(--t1);background:var(--bg-elevated)}
.tb-icon svg{width:17px;height:17px}
.notif-dot{
  position:absolute;top:7px;right:7px;width:6px;height:6px;
  background:var(--green);border-radius:50%;border:1.5px solid var(--bg-topbar);
}
.tb-div{width:1px;height:22px;background:var(--border);margin:0 4px}
.tb-user{
  display:flex;align-items:center;gap:var(--s2);padding:5px var(--s2);
  border-radius:var(--r3);cursor:pointer;transition:background var(--t-fast);
}
.tb-user:hover{background:var(--bg-elevated)}
.tb-avatar{
  width:28px;height:28px;border-radius:50%;
  background:var(--green-dim);border:1.5px solid var(--green);
  display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:700;color:var(--green);flex-shrink:0;
}
.tb-uname{font-size:12px;font-weight:600}
.tb-user svg{width:12px;height:12px;color:var(--t3)}

/* market ticker */
.ticker-bar{
  display:flex;align-items:center;gap:var(--s6);
  padding:0 var(--s7);height:36px;
  background:rgba(255,255,255,.015);
  border-bottom:1px solid var(--border);
  overflow-x:auto;scrollbar-width:none;flex-shrink:0;
}
.ticker-bar::-webkit-scrollbar{display:none}
.ticker-item{display:flex;align-items:center;gap:6px;flex-shrink:0;font-size:11px}
.ticker-name{color:var(--t3);font-weight:500}
.ticker-val{color:var(--t1);font-weight:700;font-variant-numeric:tabular-nums}
.ticker-chg{font-weight:600;font-variant-numeric:tabular-nums}
.up{color:var(--green)}.dn{color:var(--red)}
.ticker-live{
  margin-left:auto;display:flex;align-items:center;gap:5px;
  font-size:10px;font-weight:700;color:var(--green);flex-shrink:0;
}
.live-dot{
  width:5px;height:5px;border-radius:50%;background:var(--green);
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}

/* ── Page ────────────────────────────────────────────────────────────────── */
.page{flex:1;padding:var(--s7);overflow-y:auto}
.tab-panel{display:none}
.tab-panel.active{display:block;animation:fadeUp 220ms var(--ease) forwards}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ── Cards ───────────────────────────────────────────────────────────────── */
.card{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--r5);
  overflow:hidden;
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.card:hover{border-color:var(--border-hv)}
.card.glow:hover{
  border-color:var(--border-green);
  box-shadow:0 0 0 1px var(--border-green),0 8px 32px rgba(0,0,0,.4);
}
.card-hd{
  display:flex;align-items:center;justify-content:space-between;
  padding:var(--s4) var(--s5);border-bottom:1px solid var(--border);
}
.card-title{font-size:11px;font-weight:700;color:var(--t3);letter-spacing:.07em;text-transform:uppercase}
.card-link{
  font-size:11px;font-weight:600;color:var(--green-text);
  display:flex;align-items:center;gap:3px;transition:opacity var(--t-fast);
}
.card-link:hover{opacity:.7}
.card-link svg{width:10px;height:10px}
.card-body{padding:var(--s5)}

/* ── Dashboard list-card content: breathing room below the last row ───────── */
#dashAnnouncements,
#dashArticleList,
#dashAlertsList,
#dashThesesProgress,
#dashThesesComplete,
#dashRecentlyWatched,
#dashRecentlyRead,
#dashSavedDCF,
#dashSavedArticles{
  padding-bottom:var(--s4);
}

/* ── Greeting ─────────────────────────────────────────────────────────────── */
.greeting{display:flex;align-items:center;gap:var(--s4);margin-bottom:var(--s7)}
.greeting-avatar{
  width:44px;height:44px;border-radius:50%;
  background:var(--green-dim);border:2px solid var(--green);
  display:flex;align-items:center;justify-content:center;
  font-size:16px;font-weight:700;color:var(--green);flex-shrink:0;
}
.greeting h1{font-size:22px;font-weight:700;line-height:1.2;letter-spacing:-.3px}
.greeting p{font-size:12px;color:var(--t3);margin-top:2px}

/* ── Home grid ───────────────────────────────────────────────────────────── */
.home-grid{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) minmax(0,1fr);
  gap:var(--s5);
}
@media(max-width:1280px){.home-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.home-grid{grid-template-columns:1fr}}

/* ── Article list ─────────────────────────────────────────────────────────── */
.article-rows{display:flex;flex-direction:column}
.article-row{
  display:flex;flex-direction:column;gap:3px;
  padding:var(--s4) var(--s5);border-bottom:1px solid var(--border);
  cursor:pointer;transition:background var(--t-fast);
}
.article-row:last-child{border-bottom:none}
.article-row:hover{background:rgba(255,255,255,.025)}
.article-cat{
  font-size:10px;font-weight:700;color:var(--green-text);
  text-transform:uppercase;letter-spacing:.07em;
}
.article-title-text{font-size:13px;font-weight:600;color:var(--t1);line-height:1.4}
.article-meta-row{font-size:11px;color:var(--t3);display:flex;align-items:center;gap:6px}

/* ── Video grid ──────────────────────────────────────────────────────────── */
.video-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.video-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s5)}
.video-card{
  border-radius:var(--r4);overflow:hidden;
  background:var(--bg-card);border:1px solid var(--border);
  cursor:pointer;
  transition:transform var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast);
}
.video-card:hover{
  transform:translateY(-2px);
  border-color:var(--border-green);
  box-shadow:0 12px 36px rgba(0,0,0,.5),0 0 0 1px var(--border-green);
}
.video-thumb{
  aspect-ratio:16/9;overflow:hidden;position:relative;
  background:linear-gradient(135deg,#0f1a14,#0a1020);
}
.video-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 400ms var(--ease)}
.video-card:hover .video-thumb img{transform:scale(1.03)}
.play-overlay{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.35);transition:background var(--t-fast);
}
.video-card:hover .play-overlay{background:rgba(0,0,0,.5)}
.play-btn-circle{
  width:44px;height:44px;border-radius:50%;
  background:rgba(45,212,191,.18);border:2px solid var(--green);
  display:flex;align-items:center;justify-content:center;
  transition:background var(--t-fast),transform var(--t-fast);
  backdrop-filter:blur(4px);
}
.video-card:hover .play-btn-circle{background:rgba(45,212,191,.3);transform:scale(1.1)}
.play-btn-circle svg{width:18px;height:18px;fill:var(--green);margin-left:2px}
.video-info{padding:var(--s3) var(--s4)}
.video-title{font-size:12px;font-weight:600;color:var(--t1);line-height:1.35;margin-bottom:3px}
.video-date{font-size:10px;color:var(--t3)}

/* ── Sub-tab bar ─────────────────────────────────────────────────────────── */
.subtab-bar{
  display:flex;align-items:center;gap:2px;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--r5);padding:4px;margin-bottom:var(--s6);
  overflow-x:auto;scrollbar-width:none;
}
.subtab-bar::-webkit-scrollbar{display:none}
.subtab-btn{
  flex-shrink:0;display:flex;align-items:center;gap:6px;
  padding:7px var(--s4);border-radius:var(--r4);
  font-size:12px;font-weight:500;color:var(--t2);
  transition:color var(--t-fast),background var(--t-fast);white-space:nowrap;
}
.subtab-btn:hover{color:var(--t1);background:rgba(255,255,255,.04)}
.subtab-btn.active{color:var(--green);background:var(--green-dim);font-weight:600}
.subtab-btn svg{width:13px;height:13px}
.subtab-panel{display:none}
.subtab-panel.active{display:block;animation:fadeUp 200ms var(--ease) forwards}

/* ── Filter bar ──────────────────────────────────────────────────────────── */
.filter-bar{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s5);flex-wrap:wrap}
.filter-sel{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r3);
  color:var(--t2);font-size:12px;padding:6px var(--s3);outline:none;cursor:pointer;
  transition:border-color var(--t-fast);
}
.filter-sel:focus{border-color:var(--border-green)}
.search-inline{
  flex:1;min-width:140px;background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--r3);color:var(--t1);font-size:12px;padding:6px var(--s3);
  outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.search-inline:focus{border-color:var(--border-green);box-shadow:0 0 0 3px var(--green-dim)}
.search-inline::placeholder{color:var(--t3)}

/* ── Article card grid ───────────────────────────────────────────────────── */
.article-card-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--s5);
}
.article-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r5);
  overflow:hidden;cursor:pointer;
  transition:transform var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast);
}
.article-card:hover{
  transform:translateY(-2px);border-color:var(--border-green);
  box-shadow:0 8px 28px rgba(0,0,0,.4),0 0 0 1px var(--border-green);
}
.article-card-thumb{
  aspect-ratio:16/7;overflow:hidden;
  background:linear-gradient(135deg,var(--bg-elevated),rgba(0,0,0,.2));
  position:relative;
}
.article-card-thumb::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to bottom,transparent 50%,rgba(6,9,17,.6));
  pointer-events:none;
}
.article-card-thumb img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 400ms var(--ease);
}
.article-card:hover .article-card-thumb img{transform:scale(1.04)}
.article-card-body{padding:var(--s4)}
.article-card-cat{font-size:10px;font-weight:700;color:var(--green-text);text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px}
.article-card-title{font-size:13px;font-weight:600;color:var(--t1);line-height:1.4;margin-bottom:var(--s2)}
.article-card-meta{font-size:10px;color:var(--t3);display:flex;align-items:center;gap:6px}

/* ── Company card grid ───────────────────────────────────────────────────── */
.co-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--s4)}
.co-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r5);
  padding:var(--s5);cursor:pointer;
  transition:transform var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast);
  display:flex;flex-direction:column;gap:var(--s3);
}
.co-card:hover{transform:translateY(-2px);border-color:var(--border-green);box-shadow:0 8px 24px rgba(0,0,0,.35)}
.co-card-hd{display:flex;align-items:center;gap:var(--s3)}
.co-logo{
  width:36px;height:36px;border-radius:var(--r3);
  background:var(--bg-elevated);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.co-logo img{width:26px;height:26px;object-fit:contain}
.co-ticker{font-size:14px;font-weight:700}
.co-name{font-size:10px;color:var(--t3)}
.co-desc{font-size:11px;color:var(--t2);line-height:1.5}
.co-foot{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:var(--s3);border-top:1px solid var(--border);
}

/* ── Pill ────────────────────────────────────────────────────────────────── */
.pill{
  display:inline-flex;align-items:center;gap:3px;
  font-size:10px;font-weight:700;padding:2px 8px;border-radius:var(--rpill);line-height:1.4;
}
.pill-g{background:var(--green-dim);color:var(--green)}
.pill-r{background:var(--red-dim);color:var(--red)}
.pill-a{background:var(--amber-dim);color:var(--amber)}
.pill-b{background:var(--blue-dim);color:var(--blue)}
.pill-m{background:rgba(255,255,255,.06);color:var(--t2)}

/* ── Financial ───────────────────────────────────────────────────────────── */
.fin-search{display:flex;gap:var(--s3);margin-bottom:var(--s6)}
.fin-ticker-input{
  width:160px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r3);
  color:var(--t1);font-size:15px;font-weight:700;padding:var(--s3) var(--s4);
  outline:none;text-transform:uppercase;letter-spacing:.08em;
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.fin-ticker-input:focus{border-color:var(--border-green);box-shadow:0 0 0 3px var(--green-dim)}
.fin-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s4);margin-bottom:var(--s6)}
@media(max-width:1000px){.fin-kpi-row{grid-template-columns:repeat(2,1fr)}}

/* ── KPI tile ────────────────────────────────────────────────────────────── */
.kpi{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r5);
  padding:var(--s5) var(--s5);
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.kpi:hover{border-color:var(--border-green);box-shadow:0 0 0 1px var(--border-green)}
.kpi-label{font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--s2)}
.kpi-val{font-size:24px;font-weight:800;color:var(--t1);line-height:1;font-variant-numeric:tabular-nums}
.kpi-sub{font-size:11px;color:var(--t3);margin-top:var(--s2)}

/* ── Btn ─────────────────────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px var(--s5);border-radius:var(--r3);font-size:12px;font-weight:600;
  transition:transform var(--t-fast),box-shadow var(--t-fast),background var(--t-fast),border-color var(--t-fast);
  cursor:pointer;border:1px solid transparent;white-space:nowrap;
}
.btn:active{transform:scale(.97)!important}
.btn-primary{background:var(--green);color:#000;border-color:var(--green)}
.btn-primary:hover{background:var(--green-bright);transform:translateY(-1px);box-shadow:0 4px 16px var(--green-glow)}
.btn-secondary{background:var(--bg-elevated);color:var(--t1);border-color:var(--border)}
.btn-secondary:hover{background:rgba(255,255,255,.1);border-color:var(--border-hv)}
.btn-ghost{background:transparent;color:var(--t2);border-color:var(--border)}
.btn-ghost:hover{color:var(--t1);background:var(--bg-elevated)}
.btn svg{width:13px;height:13px}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}

/* load more */
.load-more{display:flex;justify-content:center;padding:var(--s6) 0 var(--s2)}

/* ── ITC ─────────────────────────────────────────────────────────────────── */
.itc-layout{display:grid;grid-template-columns:260px 1fr;gap:var(--s6)}
@media(max-width:900px){.itc-layout{grid-template-columns:1fr}}
.itc-list{display:flex;flex-direction:column;gap:var(--s3)}
.itc-item{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r4);
  padding:var(--s4) var(--s5);cursor:pointer;
  transition:border-color var(--t-fast),background var(--t-fast);
}
.itc-item:hover{border-color:var(--border-hv)}
.itc-item.checked{border-color:var(--green);background:var(--green-dim)}
.itc-row{display:flex;align-items:center;gap:var(--s3)}
.itc-box{
  width:18px;height:18px;border-radius:var(--r1);border:2px solid var(--border-hv);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:background var(--t-fast),border-color var(--t-fast);
}
.itc-item.checked .itc-box{background:var(--green);border-color:var(--green)}
.itc-box svg{width:10px;height:10px;stroke:black;stroke-width:3;display:none}
.itc-item.checked .itc-box svg{display:block}
.itc-text{font-size:13px;font-weight:600}
.itc-sub{font-size:11px;color:var(--t3);margin-top:3px;padding-left:30px}
.score-display{
  background:linear-gradient(135deg,var(--green-dim),rgba(45,212,191,.03));
  border:1px solid var(--border-green);border-radius:var(--r5);
  padding:var(--s6);text-align:center;
}
.score-num{font-size:40px;font-weight:800;color:var(--green);line-height:1;font-variant-numeric:tabular-nums}
.score-label{font-size:11px;color:var(--t3);font-weight:600;text-transform:uppercase;letter-spacing:.07em;margin-bottom:var(--s2)}
.score-verdict{font-size:12px;color:var(--t2);margin-top:var(--s3);line-height:1.5}

/* ── DCF ─────────────────────────────────────────────────────────────────── */
.dcf-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--s6)}
@media(max-width:900px){.dcf-layout{grid-template-columns:1fr}}
.input-group{display:flex;flex-direction:column;gap:5px}
.input-label{font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.08em}
.input-field{
  background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r3);
  color:var(--t1);font-size:14px;font-weight:600;padding:var(--s3) var(--s4);
  outline:none;font-variant-numeric:tabular-nums;
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.input-field:focus{border-color:var(--border-green);box-shadow:0 0 0 3px var(--green-dim)}
.dcf-result-card{
  background:linear-gradient(135deg,rgba(45,212,191,.06) 0%,rgba(45,212,191,.02) 100%);
  border:1px solid var(--border-green);border-radius:var(--r5);
  padding:var(--s7);display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:var(--s3);
}
.dcf-result-label{font-size:11px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.08em}
.dcf-result-val{font-size:48px;font-weight:800;color:var(--green);line-height:1;font-variant-numeric:tabular-nums}
.dcf-result-sub{font-size:12px;color:var(--t2);line-height:1.5;max-width:220px}

/* ── Webinar ─────────────────────────────────────────────────────────────── */
.webinar-list{display:flex;flex-direction:column;gap:var(--s4)}
.webinar-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r5);
  padding:var(--s5) var(--s6);display:flex;align-items:center;gap:var(--s5);
  transition:border-color var(--t-fast),background var(--t-fast);
}
.webinar-card:hover{border-color:var(--border-hv);background:var(--bg-card-hv)}
.webinar-date{
  flex-shrink:0;background:var(--bg-elevated);border:1px solid var(--border);
  border-radius:var(--r4);padding:var(--s3) var(--s4);text-align:center;min-width:52px;
}
.webinar-month{font-size:9px;font-weight:800;color:var(--green);text-transform:uppercase;letter-spacing:.07em}
.webinar-day{font-size:20px;font-weight:800;line-height:1.1}
.webinar-info{flex:1}
.webinar-title{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:3px}
.webinar-meta{font-size:11px;color:var(--t3);display:flex;align-items:center;gap:5px}

/* ── Transaction table ───────────────────────────────────────────────────── */
.table-scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:12px}
thead th{
  text-align:left;padding:var(--s3) var(--s4);
  font-size:10px;font-weight:700;color:var(--t3);
  text-transform:uppercase;letter-spacing:.07em;
  border-bottom:1px solid var(--border);white-space:nowrap;
}
tbody tr{border-bottom:1px solid var(--border);transition:background var(--t-fast);cursor:pointer}
tbody tr:last-child{border-bottom:none}
tbody tr:hover{background:rgba(255,255,255,.025)}
tbody td{padding:var(--s3) var(--s4);color:var(--t2);vertical-align:middle}
tbody td:first-child{color:var(--t1)}
.buy{color:var(--green);font-weight:700}
.sell{color:var(--red);font-weight:700}

/* ── Filter tabs ─────────────────────────────────────────────────────────── */
.ftabs{display:flex;align-items:center;gap:var(--s1)}
.ftab{
  padding:5px 14px;border-radius:var(--rpill);font-size:11px;font-weight:600;
  color:var(--t3);background:var(--bg-elevated);border:1px solid var(--border);cursor:pointer;
  transition:all var(--t-fast);
}
.ftab:hover{color:var(--t2);border-color:var(--border-hv)}
.ftab.active{color:var(--green);background:var(--green-dim);border-color:var(--border-green)}

/* ── Company row ─────────────────────────────────────────────────────────── */
.co-rows{display:flex;flex-direction:column}
.co-row{
  display:flex;align-items:center;gap:var(--s3);
  padding:10px var(--s5);border-bottom:1px solid var(--border);
  cursor:pointer;transition:background var(--t-fast);
}
.co-row:last-child{border-bottom:none}
.co-row:hover{background:rgba(255,255,255,.025)}
.co-row-logo{
  width:30px;height:30px;border-radius:var(--r2);background:var(--bg-elevated);
  border:1px solid var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;
}
.co-row-logo img{width:22px;height:22px;object-fit:contain}
.co-row-info{flex:1;min-width:0}
.co-row-ticker{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.co-row-name{font-size:10px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── Empty state ─────────────────────────────────────────────────────────── */
.empty{display:flex;flex-direction:column;align-items:center;gap:var(--s4);padding:var(--s10) var(--s6);text-align:center}
.empty-icon{
  width:44px;height:44px;border-radius:var(--r5);background:var(--bg-elevated);
  border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--t3);
}
.empty-icon svg{width:20px;height:20px}
.empty-title{font-size:14px;font-weight:600;color:var(--t2)}
.empty-desc{font-size:12px;color:var(--t3);max-width:300px;line-height:1.6}

/* ── Skeleton ────────────────────────────────────────────────────────────── */
.skel{
  background:linear-gradient(90deg,var(--bg-elevated) 25%,rgba(255,255,255,.08) 50%,var(--bg-elevated) 75%);
  background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--r2);
}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ── Trend cards (How CSI Invests) ──────────────────────────────────────── */
.trend-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s5)}
.trend-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r5);
  padding:var(--s6);text-align:center;
  transition:border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast);
}
.trend-card:hover{border-color:var(--border-green);transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.35)}
.trend-icon{width:44px;height:44px;border-radius:var(--r4);background:var(--bg-elevated);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;margin:0 auto var(--s4);color:var(--t2)}
.trend-icon svg{width:22px;height:22px}
.trend-card h3{font-size:14px;font-weight:700;margin-bottom:var(--s2)}
.trend-card p{font-size:12px;color:var(--t2);line-height:1.6;margin-bottom:var(--s4)}

/* ── Video modal ─────────────────────────────────────────────────────────── */
.modal-overlay{
  position:fixed;inset:0;background:var(--bg-overlay);backdrop-filter:blur(6px);
  z-index:500;display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity var(--t-base);
}
.modal-overlay.open{opacity:1;pointer-events:auto}
.modal{
  background:var(--bg-sidebar);border:1px solid var(--border-hv);border-radius:var(--r6);
  overflow:hidden;transform:scale(.94) translateY(10px);transition:transform var(--t-slow);
  box-shadow:0 32px 80px rgba(0,0,0,.7);
}
.modal-overlay.open .modal{transform:scale(1) translateY(0)}
.modal-video .modal{width:min(880px,calc(100vw - 32px))}
.modal-sm .modal{width:min(520px,calc(100vw - 32px))}
.modal-image .modal{width:min(1100px,calc(100vw - 32px));max-height:calc(100vh - 32px);display:flex;flex-direction:column}
.ig-modal-img-wrap{display:flex;align-items:center;justify-content:center;background:#000;overflow:auto;max-height:calc(100vh - 90px)}
.ig-modal-img-wrap img{max-width:100%;max-height:calc(100vh - 90px);display:block}
.ig-modal-caption{padding:var(--s4) var(--s5);font-size:13px;font-weight:600;color:var(--t1);text-align:center;border-top:1px solid var(--border)}

.modal-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:var(--s4) var(--s5);border-bottom:1px solid var(--border);
}
.modal-title{font-size:14px;font-weight:700}
.modal-x{
  width:30px;height:30px;border-radius:var(--r3);display:flex;align-items:center;justify-content:center;
  color:var(--t3);cursor:pointer;transition:color var(--t-fast),background var(--t-fast);
}
.modal-x:hover{color:var(--t1);background:var(--bg-elevated)}
.modal-x svg{width:14px;height:14px}
.modal-body{padding:var(--s5)}
.modal-foot{display:flex;justify-content:flex-end;gap:var(--s3);padding:var(--s4) var(--s5);border-top:1px solid var(--border)}

/* YouTube iframe */
.yt-wrap{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}
.yt-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:none;border-radius:var(--r3)}

/* ── QA form ─────────────────────────────────────────────────────────────── */
.form-field{display:flex;flex-direction:column;gap:5px;margin-bottom:var(--s4)}
.form-label{font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.08em}
.form-input{
  background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r3);
  color:var(--t1);font-size:13px;padding:var(--s3) var(--s4);outline:none;
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.form-input:focus{border-color:var(--border-green);box-shadow:0 0 0 3px var(--green-dim)}
.form-input::placeholder{color:var(--t3)}
textarea.form-input{min-height:130px;resize:vertical;line-height:1.5}

/* ── Scrollbar ───────────────────────────────────────────────────────────── */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--t4);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--t3)}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media(max-width:1024px){
  :root{--sidebar-w:60px}
  .sidebar-logo img.full,.nav-item .nav-label,.sub-nav,.nav-group-label,.user-name,.user-role{display:none}
  .nav-item{justify-content:center;padding:var(--s3)}
  .nav-item .nav-icon{display:flex!important}
  .nav-chevron{display:none}
  .nav-item.active::before{left:0;top:0;bottom:0;height:auto;width:2px}
  .user-avatar{margin:0 auto}
  .fin-kpi-row{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
  :root{--sidebar-w:0px}
  .sidebar{display:none}
  .main{margin-left:0}
  .page{padding:var(--s5)}
  .topbar{padding:0 var(--s5)}
  .ticker-bar{padding:0 var(--s5)}
  .search-wrap{width:160px}
  .home-grid{grid-template-columns:1fr}
  .video-grid-2,.video-grid-3{grid-template-columns:1fr}
  .dcf-layout,.itc-layout{grid-template-columns:1fr}
  .seg-grid{grid-template-columns:repeat(2,1fr)}
  .fin-kpi-row{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ═══════════════════════════════════════════════════════════════════════════
   V10 SUPPLEMENTAL STYLES — fills all classes used by index.html + app.js
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Layout: shell ───────────────────────────────────────────────────────── */
.main{
  margin-left:var(--sidebar-w);
  min-height:100vh;
  padding:var(--s7);
}
@media(max-width:768px){.main{margin-left:0;padding:var(--s4)}}

/* ── Animated orbs ───────────────────────────────────────────────────────── */
.bg-orb{position:fixed;border-radius:50%;pointer-events:none;filter:blur(80px);z-index:0}
.bg-orb-1{width:700px;height:500px;top:-150px;left:-200px;background:radial-gradient(circle,rgba(45,212,191,.052),transparent 70%)}
.bg-orb-2{width:600px;height:600px;bottom:-200px;right:-150px;background:radial-gradient(circle,rgba(139,92,246,.038),transparent 70%)}
.bg-orb-3{width:400px;height:400px;top:40%;left:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(45,212,191,.022),transparent 70%)}

/* ── Sidebar extras ──────────────────────────────────────────────────────── */
.logo-full{height:32px;width:auto}
.logo-full-light{height:32px;width:auto;display:none}
.logo-mark{height:36px;width:auto;display:none}
/* light mode: swap the white wordmark for the dark-text version */
body.light .logo-full{display:none}
body.light .logo-full-light{display:block}
.nav-icon{width:18px;height:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.nav-icon svg{width:17px;height:17px}
.nav-label{font-size:13px}
.sidebar-footer{
  padding:var(--s4) var(--s5);border-top:1px solid var(--border);flex-shrink:0;
}
.btn-sidebar-link{
  display:flex;align-items:center;gap:8px;padding:8px var(--s3);border-radius:var(--r3);
  font-size:12px;font-weight:500;color:var(--t2);
  transition:color var(--t-fast),background var(--t-fast);
}
.btn-sidebar-link:hover{color:var(--t1);background:rgba(255,255,255,.05)}
.btn-sidebar-link svg{flex-shrink:0}

/* ── Mobile menu btn ─────────────────────────────────────────────────────── */
.menu-btn{
  display:none;width:36px;height:36px;border-radius:var(--r3);
  align-items:center;justify-content:center;color:var(--t2);
  transition:color var(--t-fast),background var(--t-fast);flex-shrink:0;
}
.menu-btn:hover{color:var(--t1);background:var(--bg-elevated)}
@media(max-width:768px){
  .menu-btn{display:flex}
  .sidebar{display:flex;transform:translateX(-100%);transition:transform var(--t-slow)}
  .sidebar.open{transform:translateX(0)}
  :root{--sidebar-w:0px}
}

/* ── Topbar extras ───────────────────────────────────────────────────────── */
.topbar-title{font-size:14px;font-weight:600;flex:1;color:var(--t1)}
.topbar-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}

/* ── Tab sections ────────────────────────────────────────────────────────── */
.tab-section{display:none;min-width:0} /* flex item of .main — without this, wide content (e.g. the statements table) forces .main wider instead of scrolling internally */
.tab-section.active{display:block;animation:fadeUp 200ms var(--ease) forwards}

/* ── Section heading ─────────────────────────────────────────────────────── */
.section-header{margin-bottom:var(--s6)}
.section-title{font-size:22px;font-weight:700;color:var(--t1);letter-spacing:-.3px;margin-bottom:4px}
.section-sub{font-size:13px;color:var(--t3);line-height:1.5}

/* ── Spacing utils ───────────────────────────────────────────────────────── */
.mt-4{margin-top:var(--s5)}
.mt-6{margin-top:var(--s7)}

/* ── KPI row ─────────────────────────────────────────────────────────────── */
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s4);margin-bottom:var(--s5)}
@media(max-width:1100px){.kpi-row{grid-template-columns:repeat(2,1fr)}}
@media(max-width:500px){.kpi-row{grid-template-columns:1fr 1fr}}
.kpi-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r5);
  padding:var(--s5) var(--s5);
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.kpi-card:hover{border-color:var(--border-green);box-shadow:0 0 0 1px var(--border-green)}
.kpi-label{font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--s2)}
.kpi-val{font-size:28px;font-weight:800;color:var(--t1);line-height:1;font-variant-numeric:tabular-nums;margin-bottom:var(--s2)}
.kpi-meta{font-size:11px;color:var(--t3)}
.kpi-meta.green{color:var(--green-text)}
.kpi-meta.amber{color:var(--amber)}

/* ── Card body text ──────────────────────────────────────────────────────── */
.card-body-text{font-size:13px;color:var(--t2);line-height:1.6;padding:var(--s4) var(--s5)}
.card-hd + .card-body-text{padding-top:var(--s5)}

/* ── Btn sm ──────────────────────────────────────────────────────────────── */
.btn-sm{padding:5px 12px;font-size:11px}

/* ── Video category filter chips ──────────────────────────────────────── */
.video-cat-chips{display:flex;gap:var(--s2);flex-wrap:wrap;padding:0 var(--s5) var(--s3)}
.video-cat-chip{
  display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--r3);
  font-size:12px;font-weight:600;cursor:pointer;background:transparent;border:1px solid var(--border);
  color:var(--t2);transition:all var(--t-fast);
}
.video-cat-chip:hover{color:var(--t1);background:var(--bg-card-hv)}
.video-cat-chip.active{background:var(--green-dim);border-color:var(--border-green);color:var(--green)}
.video-cat-count{font-size:10px;font-weight:700;opacity:.65}

/* ── Video grid (auto-fill, 3 col) ──────────────────────────────────────── */
.video-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:var(--s5);
  padding:var(--s4) var(--s5);
}
.video-thumb{
  border-radius:var(--r4);overflow:hidden;
  background:var(--bg-card);border:1px solid var(--border);
  cursor:pointer;
  transition:transform var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast);
}
.video-thumb.has-video:hover{
  transform:translateY(-2px);border-color:var(--border-green);
  box-shadow:0 12px 36px rgba(0,0,0,.5),0 0 0 1px var(--border-green);
}
.video-thumb img{
  width:100%;aspect-ratio:16/9;object-fit:cover;display:block;
  transition:transform 400ms var(--ease);
}
.video-thumb.has-video:hover img{transform:scale(1.03)}
.play-overlay{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.35);transition:background var(--t-fast);
}
.video-thumb.has-video:hover .play-overlay{background:rgba(0,0,0,.5)}
.play-btn-circle{
  width:44px;height:44px;border-radius:50%;
  background:rgba(45,212,191,.18);border:2px solid var(--green);
  display:flex;align-items:center;justify-content:center;
  transition:background var(--t-fast),transform var(--t-fast);
  backdrop-filter:blur(4px);
}
.video-thumb.has-video:hover .play-btn-circle{background:rgba(45,212,191,.3);transform:scale(1.1)}
.play-btn-circle svg{fill:var(--green);margin-left:2px}
.video-thumb{position:relative}
.thumb-placeholder{
  aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;
  color:var(--t4);
  background:linear-gradient(135deg,#0c1319,#0a1020);
}
.video-info{padding:var(--s3) var(--s4)}
.video-date{font-size:10px;color:var(--t3);margin-bottom:3px}
.video-note{font-size:10px;color:var(--t3);margin-top:4px;font-style:italic}

/* ── Info banner ─────────────────────────────────────────────────────────── */
.info-banner{
  display:flex;align-items:flex-start;gap:12px;
  background:var(--blue-dim);border:1px solid var(--border-blue);border-radius:var(--r4);
  padding:var(--s4) var(--s5);margin:var(--s4) var(--s5);font-size:13px;color:var(--t2);line-height:1.6;
}
.info-banner svg{color:var(--blue);flex-shrink:0;margin-top:1px}
.info-banner a{color:var(--green-text);text-decoration:underline;text-underline-offset:2px}
.info-banner.error-banner{background:var(--red-dim);border-color:rgba(244,86,106,.25)}
.info-banner.error-banner svg{color:var(--red)}

/* ── Article card inner ──────────────────────────────────────────────────── */
.article-card{display:block;color:inherit;padding:0}
.article-card-inner{padding:var(--s5)}
.article-meta{font-size:10px;color:var(--t3);margin-bottom:5px}
.article-title{font-size:13px;font-weight:600;color:var(--t1);line-height:1.45;margin-bottom:8px}
.article-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}
.article-tag{
  font-size:10px;font-weight:600;padding:2px 8px;border-radius:var(--rpill);
  background:var(--bg-elevated);border:1px solid var(--border);color:var(--t3);
}
.article-read-more{
  display:flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--green-text);
  transition:gap var(--t-fast);
}
.article-card:hover .article-read-more{gap:7px}

/* ── Webinar cards ───────────────────────────────────────────────────────── */
.webinar-card{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s5);
  padding:var(--s5) var(--s6);border-bottom:1px solid var(--border);
  transition:background var(--t-fast);
}
.webinar-card:last-child{border-bottom:none}
.webinar-card:hover{background:rgba(255,255,255,.02)}
.webinar-card.past{opacity:.65}
.webinar-left{flex:1;min-width:0}
.webinar-badge{
  display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--rpill);
  font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  margin-bottom:6px;
}
.badge-green{background:var(--green-dim);color:var(--green);border:1px solid var(--border-green)}
.badge-dim{background:var(--bg-elevated);color:var(--t3);border:1px solid var(--border)}
.webinar-title{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:5px;line-height:1.35}
.webinar-date{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--t3)}
.webinar-actions{flex-shrink:0}
.btn-zoom{background:var(--green);color:#000;border-color:var(--green)}
.btn-zoom:hover{background:var(--green-bright);transform:translateY(-1px);box-shadow:0 4px 14px var(--green-glow)}

/* ── Badge (generic) ─────────────────────────────────────────────────────── */
.badge{
  display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--rpill);
  font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
}

/* ── Search input standalone ─────────────────────────────────────────────── */
.search-input{
  background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r3);
  color:var(--t1);font-size:12px;padding:7px var(--s4);outline:none;
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.search-input:focus{border-color:var(--border-green);box-shadow:0 0 0 3px var(--green-dim)}
.search-input::placeholder{color:var(--t3)}
.search-wrap .search-input{background:none;border:none;box-shadow:none;padding:0}
.search-wrap .search-input:focus{border:none;box-shadow:none}

/* ── Financial dashboard ─────────────────────────────────────────────────── */
.fin-ticker-row{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;padding:0 var(--s5)}
.fin-profile{
  padding:var(--s5) var(--s5) var(--s4);border-bottom:1px solid var(--border);
}
.fin-profile-name{font-size:18px;font-weight:700;color:var(--t1);margin-bottom:4px}
.fin-profile-meta{display:flex;gap:var(--s4);flex-wrap:wrap}
.fin-profile-meta span{font-size:11px;color:var(--t3)}
.fin-tables-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:var(--s6);padding:var(--s5);
}
@media(max-width:800px){.fin-tables-grid{grid-template-columns:1fr}}
.fin-table-title{font-size:11px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:var(--s3)}
.fin-table{width:100%;border-collapse:collapse;font-size:12px;border-radius:var(--r4);overflow:hidden}
.fin-table th{
  text-align:left;padding:var(--s2) var(--s3);
  font-size:10px;font-weight:700;color:var(--t3);
  text-transform:uppercase;letter-spacing:.06em;
  border-bottom:1px solid var(--border);background:rgba(255,255,255,.02);
}
.fin-table td{
  padding:var(--s2) var(--s3);border-bottom:1px solid var(--border);
  font-size:12px;color:var(--t2);font-variant-numeric:tabular-nums;
}
.fin-table tr:last-child td{border-bottom:none}
.fin-table tr:hover td{background:rgba(255,255,255,.02);color:var(--t1)}
.fin-label{color:var(--t2)!important;font-weight:500}
.fin-empty{text-align:center;color:var(--t3);padding:var(--s5)!important}
.skeleton-row{
  height:40px;border-radius:var(--r3);margin-bottom:var(--s3);
  background:linear-gradient(90deg,var(--bg-elevated) 25%,rgba(255,255,255,.07) 50%,var(--bg-elevated) 75%);
  background-size:200% 100%;animation:shimmer 1.4s infinite;
}

/* ── ITC checklist ───────────────────────────────────────────────────────── */
.itc-item{
  display:flex;align-items:flex-start;gap:12px;
  padding:var(--s4) var(--s5);border-bottom:1px solid var(--border);
  cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast);
}
.itc-item:last-child{border-bottom:none}
.itc-item:hover{background:rgba(255,255,255,.02)}
.itc-item.checked{background:var(--green-dim)}
.itc-check{
  width:22px;height:22px;border-radius:var(--r2);border:2px solid var(--border-hv);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;
  transition:background var(--t-fast),border-color var(--t-fast);
}
.itc-item.checked .itc-check{background:var(--green);border-color:var(--green)}
.itc-check svg{stroke:black;opacity:0;transition:opacity var(--t-fast)}
.itc-item.checked .itc-check svg{opacity:1}
.itc-body{flex:1;min-width:0}
.itc-label{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:2px}
.itc-desc{font-size:11px;color:var(--t3);line-height:1.5}
.score-display{
  display:flex;flex-direction:column;align-items:center;
  background:linear-gradient(135deg,var(--green-dim),rgba(45,212,191,.03));
  border:1px solid var(--border-green);border-radius:var(--r5);
  padding:var(--s5) var(--s6);text-align:center;margin:var(--s5) var(--s5) 0;
}
.score-num{font-size:36px;font-weight:800;color:var(--green);line-height:1;font-variant-numeric:tabular-nums}
.score-label{font-size:10px;color:var(--t3);font-weight:700;text-transform:uppercase;letter-spacing:.07em;margin-top:4px}
.score-high .score-num{color:var(--green)}
.score-mid .score-num{color:var(--amber)}
.score-low .score-num{color:var(--red)}

/* ── Trends grid ─────────────────────────────────────────────────────────── */
.trends-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s5);
  padding:var(--s4) var(--s5) var(--s5);
}
.trend-card{padding:var(--s6);transition:border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast)}
.trend-card:hover{border-color:var(--border-green);transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.35)}
.trend-icon{font-size:28px;margin-bottom:var(--s4);line-height:1}
.trend-title{font-size:14px;font-weight:700;color:var(--t1);margin-bottom:3px}
.trend-sub{font-size:10px;font-weight:700;color:var(--green-text);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--s3)}
.trend-body{font-size:12px;color:var(--t2);line-height:1.6}

/* ── DCF Calculator (Svelte FD replica) ─────────────────────────────────── */
.dcfv2-card{max-width:680px;margin-left:auto;margin-right:auto}
.dcfv2-search-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:14px 16px 12px;margin-bottom:4px;
  border-bottom:1px solid var(--border);
}
.dcfv2-search-group{display:flex;align-items:center;gap:8px}
.dcfv2-ticker{
  width:120px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r3);
  color:var(--t1);font-size:13px;font-weight:700;letter-spacing:.06em;
  padding:7px 11px;text-transform:uppercase;
  transition:border-color var(--t-fast);
}
.dcfv2-ticker:focus{border-color:var(--border-green);outline:none;box-shadow:0 0 0 3px var(--green-dim)}
.dcfv2-status{min-height:14px;padding:0 16px 4px;font-size:11px;color:var(--t3)}
.dcfv2-chk{accent-color:var(--green);width:13px;height:13px;cursor:pointer;flex-shrink:0}

/* Custom-weight override row (Reverse DCF Calculator) — .dcf-row/.dcf-label/
   .dcf-input-group/.dcf-text-input/.dcf-slider are also class names used by
   the embedded Fiscal.ai Financial Dashboard's own DCF Calculator tab; these
   rules used to be bare/unscoped and leaked into that widget (forcing its
   EPS/FCF weight rows into a 2-column layout and its stock-info line into a
   single flex row, neither of which the raw bundle does by default). Scoped
   under the unique wrapper classes actually used here so they only apply to
   this override row and the Save Scenario modal's notify-range row. */
.dcf-override-row.dcf-row{
  display:flex;flex-direction:column;align-items:flex-start;gap:8px;
  padding:14px 0 8px;border-bottom:1px solid var(--border);
}
.dcf-override-row .dcf-label{
  flex-shrink:0;width:110px;font-size:12px;font-weight:600;color:var(--t2);
}
.dcf-chk-label{
  display:inline-flex;align-items:center;gap:8px;
  font-size:12px;font-weight:600;color:var(--t2);cursor:pointer;user-select:none;
}
.dcf-custom-weight-row{display:none;align-items:center;gap:8px;padding-left:21px}
.dcf-custom-weight-row.is-visible{display:flex}
.dcf-custom-weight-row .dcf-label{width:auto}

/* Save Scenario modal — notify-range slider row */
.dcf-modal-notify-range .dcf-input-group{display:flex;align-items:center;gap:10px;flex:1}
.dcf-slider{flex:1;accent-color:var(--green);cursor:pointer;min-width:0}
.dcf-slider:disabled{opacity:.25;cursor:default}
.dcf-modal-notify-range .dcf-text-input{
  width:68px;flex-shrink:0;
  background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r2);
  color:var(--t1);font-size:12px;font-weight:700;padding:5px 8px;text-align:right;
  font-variant-numeric:tabular-nums;
  transition:border-color var(--t-fast);
}
.dcf-modal-notify-range .dcf-text-input:focus{border-color:var(--border-green);outline:none;box-shadow:0 0 0 2px var(--green-dim)}

/* Modal */
.dcf-modal-backdrop{
  display:none;position:fixed;inset:0;z-index:1000;
  background:rgba(0,0,0,.65);
  align-items:center;justify-content:center;
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
}
.dcf-modal-backdrop.is-open{display:flex}
.dcf-modal{
  background:#1a2030;border:1px solid var(--border);border-radius:14px;
  padding:32px;width:min(440px,90vw);box-shadow:0 28px 60px rgba(0,0,0,.7);
}
.dcf-modal-title{font-size:18px;font-weight:700;color:var(--t1);margin-bottom:20px}
.dcf-modal-label{
  display:block;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--t3);margin-bottom:8px;
}
.dcf-modal-input{
  display:block;width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r3);
  color:var(--t1);font-size:14px;font-weight:700;padding:10px 14px;margin-bottom:18px;
}
.dcf-modal-input:focus{border-color:var(--border-green);outline:none;box-shadow:0 0 0 3px var(--green-dim)}
.dcf-modal-notify-label{
  display:flex;align-items:center;gap:10px;
  font-size:13px;font-weight:600;color:var(--t2);cursor:pointer;margin-bottom:16px;
}
.dcf-modal-notify-range{margin-bottom:24px}
.dcf-modal-notify-range .dcf-modal-label{margin-bottom:10px}
.dcf-modal-notify-range .dcf-input-group{align-items:center}
.dcf-modal-notify-range .dcf-text-input{width:50px}
.dcf-modal-btns{display:flex;gap:12px}
.dcf-modal-btns .btn{flex:1;justify-content:center;font-size:13px;font-weight:700;letter-spacing:.06em}
.save-flash{font-size:11px;font-weight:700;color:var(--green-text)}

/* ── Changelog / What's New ─────────────────────────────────────────────── */
.cl-pill{
  margin-left:auto;min-width:16px;height:16px;padding:0 5px;border-radius:8px;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:9px;font-weight:800;line-height:1;
  background:var(--green);color:#04221d;
}
.cl-modal{width:min(560px,92vw);padding:0;display:flex;flex-direction:column;max-height:84vh}
.cl-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  padding:24px 28px 18px;border-bottom:1px solid var(--border);
}
.cl-sub{font-size:12.5px;color:var(--t3);margin:0}
.cl-close{
  flex-shrink:0;width:30px;height:30px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  background:transparent;border:none;color:var(--t3);cursor:pointer;transition:all var(--t-fast);
}
.cl-close:hover{background:var(--bg-elevated);color:var(--t1)}
.cl-body{padding:8px 28px 24px;overflow-y:auto}
.cl-entry{padding:18px 0;border-bottom:1px solid var(--border)}
.cl-entry:last-child{border-bottom:none}
.cl-ver-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.cl-ver{font-size:14px;font-weight:800;color:var(--t1);letter-spacing:.01em}
.cl-date{font-size:11px;font-weight:600;color:var(--t3)}
.cl-latest{
  margin-left:auto;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  padding:3px 8px;border-radius:20px;background:var(--green-dim);color:var(--green-text);
}
.cl-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.cl-li{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;color:var(--t2)}
.cl-li strong{color:var(--t1);font-weight:700}
.cl-li code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;
  background:var(--bg-elevated);border:1px solid var(--border);border-radius:4px;padding:1px 5px;color:var(--t1);
}
.cl-tag{
  flex-shrink:0;margin-top:1px;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  padding:3px 7px;border-radius:5px;min-width:54px;text-align:center;
}
.cl-tag.t-new{background:var(--green-dim);color:var(--green-text)}
.cl-tag.t-improved{background:var(--blue-dim);color:var(--blue)}
.cl-tag.t-fixed{background:var(--amber-dim);color:var(--amber)}
.cl-tag.t-removed{background:var(--red-dim);color:var(--red)}

/* ── Supply chain result ─────────────────────────────────────────────────── */
.seg-result{
  background:var(--bg-card);border:1px solid var(--border-green);border-radius:var(--r5);
  padding:var(--s5) var(--s6);animation:fadeUp 180ms var(--ease) forwards;
}
.seg-result-hd{margin-bottom:var(--s4)}
.seg-result-hd strong{font-size:15px;font-weight:700;color:var(--t1);display:block;margin-bottom:4px}
.seg-result-desc{font-size:12px;color:var(--t2);line-height:1.5}
.seg-tickers{display:flex;flex-wrap:wrap;gap:var(--s2)}
.ticker-pill{
  padding:4px 12px;border-radius:var(--rpill);
  background:var(--bg-elevated);border:1px solid var(--border);
  font-size:12px;font-weight:700;color:var(--t1);letter-spacing:.04em;
  transition:border-color var(--t-fast),color var(--t-fast),background var(--t-fast);
  cursor:default;
}
.ticker-pill:hover{border-color:var(--border-green);color:var(--green);background:var(--green-dim)}

/* ── Company cards ───────────────────────────────────────────────────────── */
.co-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r5);
  padding:var(--s5);
  display:flex;flex-direction:column;align-items:flex-start;gap:var(--s3);
  transition:transform var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast);
}
.co-card:hover{transform:translateY(-2px);border-color:var(--border-green);box-shadow:0 8px 24px rgba(0,0,0,.35)}
.co-logo{
  width:40px;height:40px;border-radius:var(--r3);
  background:var(--bg-elevated);border:1px solid var(--border);
  object-fit:contain;padding:4px;
}
.co-info{flex:1;min-width:0}
.co-name{font-size:14px;font-weight:700;color:var(--t1)}
.co-ticker{font-size:11px;color:var(--t3);font-weight:500;margin-bottom:2px}
.co-segment{font-size:10px;color:var(--green-text);font-weight:600;text-transform:uppercase;letter-spacing:.05em}

/* ── Education grid ──────────────────────────────────────────────────────── */
.edu-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--s5);
  margin-bottom:var(--s6);
}
.edu-card{padding:var(--s6);transition:border-color var(--t-fast),transform var(--t-fast)}
.edu-card:hover{border-color:var(--border-green);transform:translateY(-2px)}
.edu-icon{
  width:48px;height:48px;border-radius:var(--r5);
  background:var(--green-dim);border:1px solid var(--border-green);
  display:flex;align-items:center;justify-content:center;
  color:var(--green);margin-bottom:var(--s4);
}
.edu-title{font-size:15px;font-weight:700;color:var(--t1);margin-bottom:var(--s3)}
.edu-body{font-size:13px;color:var(--t2);line-height:1.65}

/* ── Process steps ───────────────────────────────────────────────────────── */
.process-steps{display:flex;flex-direction:column;gap:0;padding:var(--s4) var(--s5)}
.process-step{
  display:flex;gap:var(--s5);padding:var(--s5) 0;border-bottom:1px solid var(--border);
}
.process-step:last-child{border-bottom:none}
.step-num{
  width:36px;height:36px;border-radius:50%;flex-shrink:0;
  background:var(--green-dim);border:1.5px solid var(--green);
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:800;color:var(--green);
}
.step-body{flex:1;min-width:0;padding-top:4px}
.step-body h4{font-size:14px;font-weight:700;color:var(--t1);margin-bottom:6px}
.step-body p{font-size:13px;color:var(--t2);line-height:1.6}

/* ── Buy/Sell — v4-style timeline ────────────────────────────────────────── */
#stocks-buy-sell-board{padding:var(--s4) 0 var(--s5)}

.bs-intro{font-size:13px;color:var(--t3);margin-bottom:var(--s4)}

.bs-new-badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 14px;margin-bottom:var(--s4);
  background:var(--green-dim);border:1px solid var(--border-green);
  border-radius:var(--rpill);font-size:12px;font-weight:500;
  color:var(--green);cursor:pointer;
}

/* Filter chips */
.bs-filter-rail{
  display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;
  margin-bottom:var(--s5);scrollbar-width:thin;
}
.bs-filter-rail::-webkit-scrollbar{height:4px}
.bs-filter-rail::-webkit-scrollbar-thumb{background:var(--border-hv);border-radius:99px}
.bs-chip{
  flex-shrink:0;display:inline-flex;align-items:center;
  padding:6px 14px;border-radius:var(--rpill);
  border:1px solid var(--border);background:none;
  font-size:12px;font-weight:500;color:var(--t2);
  cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast);
}
.bs-chip:hover{color:var(--t1);border-color:var(--border-hv)}
.bs-chip.active{
  border-color:var(--border-green);
  background:var(--green-dim);
  color:var(--green);
}

/* Timeline wrapper */
.bs-timeline{position:relative;padding-left:28px}
.bs-timeline::before{
  content:'';position:absolute;left:7px;top:8px;bottom:8px;
  width:1px;background:var(--border-hv);
}

/* Individual item */
.bs-item{position:relative;margin-bottom:var(--s4)}
.bs-item:last-child{margin-bottom:0}

/* Timeline dot */
.bs-dot{
  position:absolute;left:-28px;top:14px;
  width:14px;height:14px;
  border-radius:50%;border:2px solid var(--bg);
}
.bs-dot-green{background:var(--green)}
.bs-dot-red{background:var(--red)}
.bs-dot-amber{background:var(--amber)}
.bs-dot-blue{background:var(--blue)}

/* Card */
.bs-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--r4);padding:var(--s4);
  transition:border-color var(--t-fast);
}
.bs-card:hover{border-color:var(--border-hv)}

/* Card header row */
.bs-card-hd{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}

/* Type badge */
.bs-badge{
  display:inline-flex;align-items:center;
  padding:2px 8px;border-radius:var(--rpill);
  font-size:11px;font-weight:600;letter-spacing:.04em;
  border:1px solid transparent;
}
.bs-badge-green{background:var(--green-dim);color:var(--green);border-color:var(--border-green)}
.bs-badge-red{background:var(--red-dim);color:var(--red);border-color:rgba(248,113,113,.3)}
.bs-badge-amber{background:var(--amber-dim);color:var(--amber);border-color:rgba(251,191,36,.3)}
.bs-badge-blue{background:var(--blue-dim);color:var(--blue);border-color:rgba(96,165,250,.25)}

/* Pinned label */
.bs-pinned{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:500;color:var(--amber)}

/* Date */
.bs-date{margin-left:auto;font-size:12px;color:var(--t3);white-space:nowrap}

/* Title */
.bs-title{font-size:15px;font-weight:600;color:var(--t1);margin-bottom:4px}

/* Body */
.bs-body{font-size:13px;line-height:1.6;color:var(--t2)}
.bs-body a{color:var(--green);text-decoration:none}
.bs-body a:hover{text-decoration:underline}
.bs-body p{margin-bottom:6px}
.bs-body p:last-child{margin-bottom:0}

/* Empty / spinner */
.bs-empty{padding:var(--s7) 0;text-align:center;font-size:14px;color:var(--t3)}
.bs-spinner{
  width:24px;height:24px;margin:var(--s6) auto;
  border:2px solid var(--border-hv);border-top-color:var(--green);
  border-radius:50%;animation:spin .7s linear infinite;
}

/* ── Modal close btn ─────────────────────────────────────────────────────── */
.modal{position:relative}
.modal-close{
  position:absolute;top:var(--s4);right:var(--s4);z-index:10;
  width:32px;height:32px;border-radius:var(--r3);
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.08);color:var(--t2);
  transition:color var(--t-fast),background var(--t-fast);
}
.modal-close:hover{color:var(--t1);background:rgba(255,255,255,.15)}
.modal-video{width:min(900px,calc(100vw - 32px))}

/* ── fin-ticker-row within card ──────────────────────────────────────────── */
.card-hd .fin-ticker-row{padding:0}

/* ── Fix: subtab-bar inside tab ──────────────────────────────────────────── */
.tab-section .subtab-bar{margin-top:0}

/* ── Responsive extras ───────────────────────────────────────────────────── */
@media(max-width:768px){
  .logo-full,.logo-full-light{display:none}
  body.light .logo-full-light{display:none}
  .logo-mark{display:block}
  .kpi-row{grid-template-columns:1fr 1fr}
  .trends-grid,.edu-grid{grid-template-columns:1fr}
  .dcf-field-group{grid-template-columns:1fr 1fr}
  .fin-tables-grid{grid-template-columns:1fr}
  .process-step{flex-direction:column;gap:var(--s3)}
}
@media(max-width:480px){
  .section-title{font-size:18px}
  .kpi-row{grid-template-columns:1fr 1fr;gap:var(--s3)}
  .kpi-val{font-size:22px}
  .video-grid{grid-template-columns:1fr}
  .dcf-field-group{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════════════════════════════════════
   TOPBAR — Search bar + right actions
   ═══════════════════════════════════════════════════════════════════════════ */

.tb-search{
  flex:1;max-width:460px;position:relative;
  display:flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.05);border:1px solid var(--border);
  border-radius:var(--r3);padding:0 var(--s3);height:36px;
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.tb-search:focus-within{border-color:var(--border-green);box-shadow:0 0 0 3px var(--green-dim)}
.tb-search-icon{color:var(--t3);flex-shrink:0}
.tb-search-input{
  flex:1;min-width:0;background:none;border:none;outline:none;
  color:var(--t1);font-size:12px;
}
.tb-search-input::placeholder{color:var(--t3)}
.tb-search-results{
  position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:200;
  max-height:360px;overflow-y:auto;
  background:var(--bg-sidebar);border:1px solid var(--border-hv);border-radius:var(--r4);
  padding:6px;box-shadow:0 18px 50px -12px rgba(0,0,0,.6);
  animation:fadeUp 140ms var(--ease) forwards;
}
.tsr-group-label{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--t3);padding:8px 10px 4px}
.tsr-item{
  display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r2);
  font-size:12px;font-weight:500;color:var(--t1);cursor:pointer;transition:background var(--t-fast);
}
.tsr-item:hover{background:var(--bg-elevated)}
.tsr-item-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tsr-ticker{font-weight:700;color:var(--green-text);flex-shrink:0;margin-right:6px}
.tsr-meta{flex-shrink:0;font-size:10px;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.tsr-empty{padding:16px 10px;text-align:center;font-size:12px;color:var(--t3)}
.tb-right{display:flex;align-items:center;gap:6px;margin-left:auto;flex-shrink:0}
.tb-right .tb-live,
.tb-right .acct-wrap>.btn,
.tb-right .tb-user{height:34px;padding-top:0;padding-bottom:0}
.tb-live{
  display:flex;align-items:center;gap:5px;
  font-size:10px;font-weight:700;color:var(--green);letter-spacing:.06em;
  padding:4px 10px;border-radius:var(--rpill);
  background:var(--green-dim);border:1px solid var(--border-green);
}
.tb-bell{
  width:34px;height:34px;border-radius:var(--r3);
  display:flex;align-items:center;justify-content:center;
  color:var(--t2);transition:color var(--t-fast),background var(--t-fast);
}
.tb-bell:hover{color:var(--t1);background:var(--bg-elevated)}
.tb-av{
  width:28px;height:28px;border-radius:50%;
  background:var(--green-dim);border:1.5px solid var(--green);
  display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:700;color:var(--green);flex-shrink:0;
}

/* ═══════════════════════════════════════════════════════════════════════════
   DASHBOARD HOME — Multi-column layout + all widgets
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Greeting bar ─────────────────────────────────────────────────────────── */
.dash-greet-bar{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--s5);
  margin-bottom:var(--s5);padding:var(--s4) var(--s5);
}
.dash-greet-left{display:flex;flex-direction:column;align-items:center;gap:3px}
.da-av{
  width:42px;height:42px;border-radius:50%;
  background:var(--green-dim);border:2px solid var(--green);
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;color:var(--green);flex-shrink:0;
}
.dash-hello{font-size:18px;font-weight:700;color:var(--t1);letter-spacing:-.3px}
.dash-tagline{font-size:11px;color:var(--t3);margin-top:2px}

/* ── Main 3-col grid ─────────────────────────────────────────────────────── */
.dash-main-grid{
  display:grid;
  grid-template-columns:1.05fr 1fr 1.2fr;
  gap:16px;
  margin-bottom:16px;
  align-items:stretch;
}
.dash-main-grid > .card{display:flex;flex-direction:column}
.dash-main-grid > .card > .card-foot-row{margin-top:auto}
.dash-main-grid > .card > #savedCoList{flex:1}
@media(max-width:1300px){.dash-main-grid{grid-template-columns:1fr 1fr 1.1fr}}
@media(max-width:1100px){.dash-main-grid{grid-template-columns:1fr 1fr}}
@media(max-width:768px){.dash-main-grid{grid-template-columns:1fr}}

/* ── Bottom 5-col grid ───────────────────────────────────────────────────── */
.dash-bottom-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:16px;
  margin-bottom:16px;
  align-items:stretch;
}
.dash-bottom-grid > .card{display:flex;flex-direction:column}
.dash-bottom-grid > .card > .card-foot-row{margin-top:auto}
@media(max-width:1400px){.dash-bottom-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1000px){.dash-bottom-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.dash-bottom-grid{grid-template-columns:1fr}}


/* ── Saved companies toolbar (tabs + view toggle) ────────────────────────── */
.dco-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:8px var(--s5);border-bottom:1px solid var(--border);
  background:rgba(255,255,255,.012);
}
.co-filter-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.ftab-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:16px;height:16px;padding:0 4px;margin-left:4px;border-radius:var(--rpill);
  font-size:9px;font-weight:800;background:rgba(255,255,255,.08);color:var(--t2);
}
.ftab.active .ftab-count{background:var(--green-dim);color:var(--green)}
.dco-view-toggle{display:flex;gap:2px;flex-shrink:0}
.dco-vt{
  width:26px;height:26px;border-radius:var(--r2);
  display:flex;align-items:center;justify-content:center;
  color:var(--t4);transition:all var(--t-fast);
}
.dco-vt:hover{color:var(--t2)}
.dco-vt.active{background:var(--green-dim);color:var(--green)}

/* ── Split-dropdown filter tabs ─────────────────────────────────────────── */
.ftab-dd-wrap{position:relative;display:inline-flex}
.ftab-split-label{
  border-radius:var(--rpill) 0 0 var(--rpill);
  padding-right:8px;
  border-right:none;
}
.ftab-split-arrow{
  border-radius:0 var(--rpill) var(--rpill) 0;
  padding:5px 8px;
  display:flex;align-items:center;justify-content:center;
  border-left:1px solid rgba(255,255,255,.04);
}
.ftab-split-label.active{color:var(--green);background:var(--green-dim);border-color:var(--border-green)}
.ftab-split-arrow.active{color:var(--green);background:var(--green-dim);border-color:var(--border-green);border-left-color:rgba(45,212,191,.18)}
.ftab-split-label:hover,.ftab-split-arrow:hover{color:var(--t2);border-color:var(--border-hv)}
.ftab-split-label.active:hover,.ftab-split-arrow.active:hover{color:var(--green)}

/* Dropdown panel */
.ftab-dd-menu{
  position:absolute;top:calc(100% + 5px);left:0;z-index:300;
  background:var(--bg-card);
  border:1px solid var(--border-green);
  border-radius:var(--r3);
  padding:4px;min-width:230px;
  box-shadow:0 8px 32px rgba(0,0,0,.45),0 0 0 1px var(--border-green);
  animation:ddIn .12s ease;
}
@keyframes ddIn{from{opacity:0;transform:translateY(-4px)} to{opacity:1;transform:translateY(0)}}
.ftab-dd-item{
  display:flex;align-items:center;gap:8px;width:100%;
  padding:9px 12px;border-radius:var(--r2);
  font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--green);background:none;cursor:pointer;text-align:left;
  transition:background var(--t-fast);
}
.ftab-dd-item:hover{background:var(--green-dim)}
.ftab-dd-dot{
  width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0;
}

/* ── Company grid cards ──────────────────────────────────────────────────── */
.dco-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px var(--s5)}
.dco-listview{display:flex;flex-direction:column;gap:6px;padding:12px var(--s5)}
.dco-card{
  background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r4);
  padding:11px 12px;display:flex;flex-direction:column;gap:9px;
  transition:border-color var(--t-fast),background var(--t-fast);
  position:relative;
}
.dco-card.dco-dragging{opacity:.35;outline:2px dashed var(--border-hv);outline-offset:-2px}
.dco-card.dco-drag-over{
  outline:2px solid var(--green);outline-offset:-2px;
  box-shadow:0 0 0 3px var(--green-dim);
  border-color:var(--border-green);
}
.dco-card:hover{border-color:var(--border-green);background:var(--bg-card-hv)}
.dco-remove{
  position:absolute;top:6px;right:6px;z-index:2;
  width:22px;height:22px;display:flex;align-items:center;justify-content:center;
  border-radius:var(--r2);color:var(--t4);background:transparent;cursor:pointer;
  opacity:0;transition:opacity var(--t-fast),color var(--t-fast),background var(--t-fast);
}
.dco-card:hover .dco-remove{opacity:1}
.dco-remove:hover{color:var(--red);background:var(--red-dim)}
.dco-listview .dco-remove{position:static;opacity:1;flex-shrink:0;order:3}
.dco-listview .dco-card{flex-direction:row;align-items:center;justify-content:space-between;gap:12px}
.dco-card-head{display:flex;align-items:center;gap:9px;min-width:0}
.dco-logo{
  width:30px;height:30px;border-radius:var(--r2);flex-shrink:0;
  background:#fff;border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
  font-size:10px;font-weight:800;color:var(--t2);
}
.dco-logo.mono{background:var(--bg-card)}
.dco-logo img{width:22px;height:22px;object-fit:contain}
.dco-meta{min-width:0}
.dco-name{font-size:12px;font-weight:800;color:var(--t1);font-variant-numeric:tabular-nums;line-height:1.2}
.dco-fullname{font-size:10px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.dco-card-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}
.dco-listview .dco-card-foot{align-items:center}
.dco-price-wrap{min-width:0}
.dco-price{font-size:14px;font-weight:800;color:var(--t1);font-variant-numeric:tabular-nums;line-height:1.1}
.dco-chg{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;margin-top:2px}
.dco-chg.up{color:var(--green)}
.dco-chg.dn{color:var(--red)}
.dco-spark{width:70px;height:30px;flex-shrink:0}

/* ── Card foot row ───────────────────────────────────────────────────────── */
.card-foot-row{
  border-top:1px solid var(--border);padding:var(--s3) var(--s5);
  background:rgba(255,255,255,.012);
}
.btn-text-link{
  background:none;border:none;cursor:pointer;font:inherit;
  font-size:11px;font-weight:600;color:var(--green-text);
  transition:opacity var(--t-fast);padding:0;
}
.btn-text-link:hover{opacity:.7}
.red-link{color:var(--red)!important}

/* ── Dashboard article rows (DAR) ────────────────────────────────────────── */
.dar{
  display:flex;align-items:stretch;border-bottom:1px solid var(--border);
  position:relative;transition:background var(--t-fast);
}
.dar:last-child{border-bottom:none}
.dar:hover{background:rgba(255,255,255,.025)}
.dar-link{
  display:flex;align-items:flex-start;gap:11px;flex:1;
  padding:11px var(--s5);text-decoration:none;min-width:0;
}
.dar-thumb{
  width:46px;height:46px;border-radius:var(--r2);flex-shrink:0;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.dar-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.dar-thumb-ph.dar-thumb-green{background:linear-gradient(135deg,#0f2a1a,#0a1f10)}
.dar-thumb-ph.dar-thumb-blue{background:linear-gradient(135deg,#0a1020,#0e1530)}
.dar-thumb-ph.dar-thumb-amber{background:linear-gradient(135deg,#1a1000,#251500)}
.dar-thumb-ph::after{content:'';width:18px;height:18px;border-radius:4px;background:rgba(255,255,255,.07)}
.dar-body{flex:1;min-width:0}
.dar-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.dar-cat{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}
.dar-cat-green{color:var(--green-text)}
.dar-cat-blue{color:var(--blue)}
.dar-cat-amber{color:var(--amber)}
.dar-date{font-size:10px;color:var(--t3)}
.dar-title{
  font-size:12px;font-weight:600;color:var(--t1);line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.dar:hover .dar-title{color:var(--green-text)}
.dar-img{
  width:52px;height:52px;border-radius:var(--r2);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
}
.dar-img-0{background:linear-gradient(135deg,#0f2a1a,#0a1f10)}
.dar-img-1{background:linear-gradient(135deg,#0a1020,#0e1530)}
.dar-img-2{background:linear-gradient(135deg,#1a1000,#251500)}
.dar-img-3{background:linear-gradient(135deg,#120a20,#1a1030)}
.dar-img-glow{
  position:absolute;inset:0;
  background:radial-gradient(circle at 60% 40%,rgba(45,212,191,.18) 0%,transparent 70%);
}
.dar-img svg{position:relative;z-index:1}
.save-art-btn{
  padding:0 var(--s3);display:flex;align-items:center;justify-content:center;
  color:var(--t3);transition:color var(--t-fast);border-left:1px solid var(--border);
  cursor:pointer;flex-shrink:0;min-width:32px;align-self:stretch;
}
.save-art-btn:hover{color:var(--t1)}
.save-art-btn.saved{color:var(--green)}

/* article card save button in grid view */
.article-card{position:relative}
.article-card .save-art-btn{
  position:absolute;top:var(--s3);right:var(--s3);
  width:28px;height:28px;border-radius:var(--r2);
  background:var(--bg-elevated);border:1px solid var(--border);
  padding:0;border-left:none;align-self:unset;
}
.article-card .save-art-btn:hover{background:var(--bg-card-hv)}

/* ── Announcement compact rows ───────────────────────────────────────────── */
.ann-type{
  display:inline-block;font-size:9px;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;padding:3px 8px;border-radius:var(--r1);
}
.ann-type-ann{background:rgba(96,165,250,.14);color:var(--blue)}
.ann-type-upd{background:rgba(251,191,36,.13);color:var(--amber)}
.ann-type-res,.ann-type-buy{background:var(--green-dim);color:var(--green)}
.ann-type-sell{background:var(--red-dim);color:var(--red)}
.ann-row{padding:10px var(--s5);border-top:1px solid var(--border);cursor:pointer;transition:background var(--t-fast)}
.ann-row:hover,.ann-row:focus-visible{background:rgba(255,255,255,.025)}
.ann-row:focus-visible{outline:1px solid var(--border-green);outline-offset:-1px}
.ann-row-top{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.ann-row-ago{font-size:10px;color:var(--t3)}
.ann-row-body{font-size:12px;color:var(--t2);line-height:1.45}

/* ── Announcement detail modal ───────────────────────────────────────────── */
.ann-modal-meta{display:flex;align-items:center;gap:8px}
.ann-modal-title{margin-top:10px}
.ann-modal-body{margin-top:10px;max-height:50vh;overflow-y:auto}

/* ── Latest videos grid (2×2) ────────────────────────────────────────────── */
.dash-vid-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px var(--s5)}
.dvg-card{cursor:pointer}
.dvg-thumb{
  aspect-ratio:16/9;position:relative;overflow:hidden;border-radius:var(--r3);
  background:#0b1018;border:1px solid var(--border);
}
.dvg-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 300ms var(--ease)}
.dvg-card:hover .dvg-thumb img{transform:scale(1.05)}
.dvg-card:hover .dvg-thumb{border-color:var(--border-green)}
.dvg-play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:30px;height:30px;border-radius:50%;
  background:rgba(0,0,0,.5);border:1.5px solid var(--green);color:var(--green);
  display:flex;align-items:center;justify-content:center;
  transition:background var(--t-fast),transform var(--t-fast);
}
.dvg-card:hover .dvg-play{background:rgba(45,212,191,.35);transform:translate(-50%,-50%) scale(1.1)}
.dvg-dur{
  position:absolute;bottom:5px;right:5px;
  padding:1px 5px;border-radius:var(--r1);
  font-size:9px;font-weight:700;color:#fff;background:rgba(0,0,0,.78);font-variant-numeric:tabular-nums;
}
.dvg-title{
  font-size:11px;font-weight:600;color:var(--t1);line-height:1.3;margin-top:7px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.dvg-card:hover .dvg-title{color:var(--green-text)}
.dvg-date{font-size:10px;color:var(--t3);margin-top:3px}

/* ── Recently watched rows ───────────────────────────────────────────────── */
.rw-row{
  display:flex;align-items:center;gap:11px;
  padding:10px var(--s5);border-bottom:1px solid var(--border);
  transition:background var(--t-fast);
}
.rw-row:last-child{border-bottom:none}
.rw-row.has-video{cursor:pointer}
.rw-row.has-video:hover{background:rgba(255,255,255,.025)}
.rw-check{
  width:24px;height:24px;border-radius:50%;flex-shrink:0;
  background:var(--green-dim);color:var(--green);
  display:flex;align-items:center;justify-content:center;
}
.rw-info{flex:1;min-width:0}
.rw-title{
  font-size:11px;font-weight:600;color:var(--t1);line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.rw-row.has-video:hover .rw-title{color:var(--green-text)}
.rw-date{font-size:10px;color:var(--t3);margin-top:1px}

/* ── Saved DCF scenario rows ─────────────────────────────────────────────── */
.dcf-row{
  display:flex;align-items:center;gap:11px;
  padding:10px var(--s5);border-bottom:1px solid var(--border);
  transition:background var(--t-fast);
}
.dcf-row:last-child{border-bottom:none}
.dcf-row.has-ticker{cursor:pointer}
.dcf-row.has-ticker:hover{background:rgba(255,255,255,.025)}
.dcf-row.has-ticker:hover .dcf-row-title{color:var(--green-text)}
.dcf-row-icon{
  width:28px;height:28px;border-radius:var(--r2);flex-shrink:0;
  background:var(--green-dim);color:var(--green);
  display:flex;align-items:center;justify-content:center;
}
.dcf-row-info{flex:1;min-width:0}
.dcf-row-title{
  font-size:11px;font-weight:600;color:var(--t1);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.dcf-row-date{font-size:10px;color:var(--t3);margin-top:1px}
.dcf-row-delta{
  font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;flex-shrink:0;
}
.dcf-row-delta.up{color:var(--green)}
.dcf-row-delta.dn{color:var(--red)}

/* ── Centered footer link ────────────────────────────────────────────────── */
.foot-link-c{display:block;width:100%;text-align:center}

/* ── Generic compact list rows (Recently Read / Saved Articles) ──────────── */
.dl-row{
  display:flex;align-items:center;gap:11px;
  padding:10px var(--s5);border-bottom:1px solid var(--border);
  text-decoration:none;transition:background var(--t-fast);
}
.dl-row:last-child{border-bottom:none}
.dl-row:hover{background:rgba(255,255,255,.025)}
.dl-icon{
  width:28px;height:28px;border-radius:var(--r2);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.dl-icon-green{background:var(--green-dim);color:var(--green)}
.dl-icon-blue{background:var(--blue-dim);color:var(--blue)}
.dl-icon-amber{background:var(--amber-dim);color:var(--amber)}
.dl-info{flex:1;min-width:0}
.dl-title{
  font-size:11px;font-weight:600;color:var(--t1);line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
a.dl-row:hover .dl-title{color:var(--green-text)}
.dl-date{font-size:10px;color:var(--t3);margin-top:1px}
.dl-remove{
  width:24px;height:24px;display:flex;align-items:center;justify-content:center;
  border-radius:var(--r2);color:var(--t4);flex-shrink:0;cursor:pointer;
  transition:color var(--t-fast),background var(--t-fast);
}
.dl-remove:hover{color:var(--red);background:var(--red-dim)}

/* ── Empty state ─────────────────────────────────────────────────────────── */
.dash-empty-state{
  display:flex;flex-direction:column;align-items:center;
  padding:var(--s5) var(--s5);text-align:center;gap:var(--s2);
}
.des-icon{color:var(--t3)}
.des-title{font-size:12px;font-weight:600;color:var(--t2)}
.des-desc{font-size:11px;color:var(--t3);line-height:1.5;max-width:220px}

/* ── DCF save row ────────────────────────────────────────────────────────── */
.dcf-save-row{display:flex;justify-content:flex-end;margin-top:var(--s4)}

/* ── Responsive dashboard ────────────────────────────────────────────────── */
@media(max-width:768px){
  .dash-greet-bar{flex-direction:column;align-items:flex-start;gap:var(--s4)}
  .co-filter-row{flex-wrap:wrap}
}
@media(max-width:480px){
  .dash-main-grid,.dash-bottom-grid{grid-template-columns:1fr}
  .dco-grid{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════════════════════════════════════
   SIDEBAR NAV — horizontal icon + label, left accent bar
   ═══════════════════════════════════════════════════════════════════════════ */
.sidebar-nav{padding:var(--s3) var(--s2);display:flex;flex-direction:column;gap:2px}
.nav-item{
  display:flex;flex-direction:row;align-items:center;
  gap:12px;text-align:left;
  padding:10px 12px;
  border-radius:var(--r3);
  background:transparent;position:relative;
}
.nav-item::before{
  content:'';position:absolute;
  left:0;top:8px;bottom:8px;width:3px;
  background:var(--green);border-radius:0 3px 3px 0;
  box-shadow:0 0 8px rgba(45,212,191,.5);
  opacity:0;transform:scaleY(.5);
  transition:opacity 160ms var(--ease),transform 180ms var(--ease);
}
.nav-item.active::before{opacity:1;transform:scaleY(1)}
.nav-item .nav-icon{
  width:28px;height:28px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  border-radius:var(--r3);
  color:var(--t3);transition:color var(--t-fast),background var(--t-fast);
}
.nav-item .nav-icon svg{width:18px;height:18px}
.nav-label{
  font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;
  line-height:1.3;color:inherit;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.nav-item:hover{color:var(--t1);background:rgba(255,255,255,.04)}
.nav-item:hover .nav-icon{color:var(--t2)}
.nav-item.active{
  color:var(--green);
  background:linear-gradient(90deg,rgba(45,212,191,.12),rgba(45,212,191,.03) 60%,transparent);
  box-shadow:none;
}
.nav-item.active .nav-icon{color:var(--green)}
.nav-item.active .nav-label{font-weight:600}

/* ── Market Snapshot panel ───────────────────────────────────────────────── */
.snap-panel{
  background:rgba(255,255,255,.022);border:1px solid var(--border);
  border-radius:var(--r4);padding:12px;
}
.snap-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.snap-title{font-size:9px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--t3)}
.snap-live{display:flex;align-items:center;gap:4px;font-size:8px;font-weight:800;letter-spacing:.06em;color:var(--green)}
.snap-list{display:flex;flex-direction:column;gap:9px;margin-bottom:11px}
.snap-row{display:grid;grid-template-columns:1fr auto;align-items:center;row-gap:1px;column-gap:6px}
.snap-name{font-size:10px;font-weight:600;color:var(--t2);grid-row:1}
.snap-val{font-size:11px;font-weight:700;color:var(--t1);font-variant-numeric:tabular-nums;grid-column:1;grid-row:2}
.snap-chg{font-size:10px;font-weight:700;grid-column:2;grid-row:2;text-align:right;font-variant-numeric:tabular-nums}
.snap-more{display:block;font-size:10px;font-weight:600;color:var(--green-text);padding-top:9px;border-top:1px solid var(--border)}
.snap-more:hover{opacity:.7}

/* ═══════════════════════════════════════════════════════════════════════════
   KPI STAT ROW — 5 compact metric cards
   ═══════════════════════════════════════════════════════════════════════════ */
.up{color:var(--green)}.dn{color:var(--red)}
.spark-svg{display:block;width:100%;height:100%}

.kpi-stat-grid{
  display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:16px;
}
@media(max-width:1200px){.kpi-stat-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.kpi-stat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.kpi-stat-grid{grid-template-columns:1fr}}

.kpi-stat{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r5);
  padding:16px 16px 0;display:flex;flex-direction:column;overflow:hidden;position:relative;
  transition:border-color var(--t-fast),transform var(--t-fast);
}
.kpi-stat:hover{border-color:var(--border-green);transform:translateY(-2px)}
.kpi-stat[data-kpi-nav]:hover{border-color:var(--green);box-shadow:0 4px 18px -6px rgba(53,220,110,.18)}
.kpi-stat[data-kpi-nav]::after{content:'↗';position:absolute;top:12px;right:12px;font-size:10px;color:var(--t3);opacity:0;transition:opacity var(--t-fast)}
.kpi-stat[data-kpi-nav]:hover::after{opacity:1}
.kpi-stat-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.kpi-stat-label{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--t3);line-height:1.3}
.kpi-stat-icon{
  width:30px;height:30px;border-radius:var(--r3);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.kpi-stat-icon-green{background:var(--green-dim);color:var(--green)}
.kpi-stat-icon-amber{background:var(--amber-dim);color:var(--amber)}
.kpi-stat-value{font-size:24px;font-weight:800;color:var(--t1);letter-spacing:-.5px;font-variant-numeric:tabular-nums;margin-top:10px;line-height:1.1}
.kpi-stat-sub{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:600;margin-top:4px}
.kpi-stat-sub-up{color:var(--green)}
.kpi-stat-sub-flat{color:var(--t3)}
.kpi-stat-spark{height:38px;margin:10px -16px 0}

/* ═══════════════════════════════════════════════════════════════════════════
   THEME TOGGLE · CUSTOMIZE PANEL · LIGHT MODE
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Theme toggle button ─────────────────────────────────────────────────── */
.tb-theme{
  width:34px;height:34px;border-radius:var(--r3);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;color:var(--t2);
  transition:color var(--t-fast),background var(--t-fast);
}
.tb-theme:hover{color:var(--t1);background:var(--bg-elevated)}
.tb-theme .ic-sun{display:none}
body.light .tb-theme .ic-moon{display:none}
body.light .tb-theme .ic-sun{display:block}

/* ── Customize Dashboard popover ─────────────────────────────────────────── */
.customize-wrap{position:relative}
.customize-panel{
  position:absolute;top:calc(100% + 8px);right:0;z-index:200;width:264px;
  background:var(--bg-sidebar);border:1px solid var(--border-hv);border-radius:var(--r4);
  padding:8px;box-shadow:0 16px 48px rgba(0,0,0,.45);
  animation:fadeUp 140ms var(--ease) forwards;
}
.cp-title{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--t3);padding:8px 10px 6px}
.cp-row{
  display:flex;align-items:center;gap:8px;
  padding:8px 10px;border-radius:var(--r2);font-size:12px;font-weight:500;color:var(--t1);
  transition:background var(--t-fast);
}
.cp-row:hover{background:var(--bg-elevated)}
.cp-row input{accent-color:var(--green);width:15px;height:15px;cursor:pointer;flex-shrink:0;margin-left:auto}
.cp-drag-row{cursor:default}
.cp-drag-handle{
  display:flex;align-items:center;flex-shrink:0;
  color:var(--t3);cursor:grab;padding:2px 2px;border-radius:4px;transition:color var(--t-fast);
}
.cp-drag-handle:active{cursor:grabbing}
.cp-drag-row:hover .cp-drag-handle{color:var(--t2)}
.cp-row-label{flex:1;min-width:0}
.cp-drag-row.cp-dragging{opacity:.4}
.cp-drag-row.cp-drag-over{background:var(--green-dim);outline:1px solid var(--border-green)}
.cp-reset{
  width:100%;margin-top:6px;padding:8px;border-radius:var(--r2);
  font-size:11px;font-weight:600;color:var(--green-text);
  border:1px solid var(--border);background:transparent;transition:all var(--t-fast);
}
.cp-reset:hover{background:var(--green-dim);border-color:var(--border-green)}

/* ── Section hide (from customize) ───────────────────────────────────────── */
[data-dash-section].section-hidden{display:none}

/* ── LIGHT MODE ──────────────────────────────────────────────────────────── */
body.light{
  --bg:#EEF1F7;
  --bg-sidebar:#FFFFFF;
  --bg-topbar:rgba(255,255,255,.85);
  --bg-card:#FFFFFF;
  --bg-card-hv:#F4F7FB;
  --bg-elevated:#EDF1F7;
  --bg-input:#EEF2F8;
  --bg-overlay:rgba(20,30,50,.45);
  --border:rgba(15,25,45,.1);
  --border-hv:rgba(15,25,45,.2);
  --green-dim:rgba(45,203,99,.12);
  --green-glow:rgba(45,203,99,.18);
  --t1:#0F1729;
  --t2:#475467;
  --t3:#8590A2;
  --t4:#B6BECC;
}
body.light::before{
  background:
    radial-gradient(ellipse 800px 600px at 20% 0%, rgba(45,212,191,.08) 0%, transparent 60%),
    radial-gradient(ellipse 600px 400px at 80% 100%, rgba(99,102,241,.05) 0%, transparent 60%);
}
/* light-mode fixes for elements that used white-on-dark assumptions */
body.light .nav-item:hover{background:rgba(15,25,45,.04)}
body.light .donut-track{stroke:rgba(15,25,45,.1)}
body.light .dco-logo.mono,
body.light .dco-logo{background:#F1F4F9}
body.light .snap-panel,
body.light .co-filter-row,
body.light .card-foot-row{background:rgba(15,25,45,.02)}
body.light .dvg-thumb{background:#E7ECF3}
body.light .sidebar::before{opacity:.5}
body.light .video-thumb img,
body.light .dvg-thumb img{filter:none}
body.light .dco-card{background:rgba(15,25,45,.02)}

/* ═══════════════════════════════════════════════════════════════════════════
   INFOGRAPHICS GRID · SUBMIT-A-QUESTION FORM
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Infographics ────────────────────────────────────────────────────────── */
.ig-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--s5);
  padding:var(--s4) var(--s5) var(--s5);
}
.ig-card{
  display:flex;flex-direction:column;border-radius:var(--r4);overflow:hidden;cursor:pointer;
  background:var(--bg-card);border:1px solid var(--border);
  transition:transform var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast);
}
.ig-card:hover{transform:translateY(-3px);border-color:var(--border-green);box-shadow:0 12px 30px rgba(0,0,0,.4)}
.ig-cover{
  aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;
  color:var(--green);position:relative;
}
.ig-cover svg{width:46px;height:46px;opacity:.9}
.ig-cover-0{background:linear-gradient(135deg,#0f2a1a,#0a1f10)}
.ig-cover-1{background:linear-gradient(135deg,#0a1428,#0e1a38)}
.ig-cover-2{background:linear-gradient(135deg,#1a1228,#241636)}
.ig-cover-3{background:linear-gradient(135deg,#0a1f24,#0e2a30)}
.ig-cover-4{background:linear-gradient(135deg,#1f1606,#2a1d08)}
.ig-cover-5{background:linear-gradient(135deg,#102015,#16301f)}
.ig-cover-1{color:var(--blue)}
.ig-cover-2{color:var(--purple)}
.ig-cover-4{color:var(--amber)}
.ig-body{padding:var(--s4) var(--s5)}
.ig-title{font-size:13px;font-weight:600;color:var(--t1);line-height:1.35;margin-bottom:4px}
.ig-card:hover .ig-title{color:var(--green-text)}
.ig-meta{font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.06em}

/* ── Submit a Question form ──────────────────────────────────────────────── */
.qa-form{padding:0 var(--s5) var(--s5);max-width:680px}
.qa-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);margin-bottom:var(--s4)}
@media(max-width:600px){.qa-row{grid-template-columns:1fr}}
.qa-form .form-field{margin-bottom:var(--s4)}
.qa-textarea{resize:vertical;min-height:96px;line-height:1.5}
.qa-result{margin-top:var(--s4);font-size:13px;font-weight:500;display:none}
.qa-result.qa-ok{display:block;color:var(--green-text)}
.qa-result.qa-err{display:block;color:var(--red)}

/* ═══════════════════════════════════════════════════════════════════════════
   DEPTH PASS — elevation, sheen, and hover lift (de-flatten)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Cards: subtle top sheen + soft drop shadow */
.card{
  background-image:linear-gradient(180deg, rgba(255,255,255,.025) 0%, rgba(255,255,255,0) 42%);
  box-shadow:0 14px 34px -18px rgba(0,0,0,.75), 0 1px 0 rgba(255,255,255,.03) inset;
}
.card:hover{
  box-shadow:0 20px 44px -18px rgba(0,0,0,.8), 0 1px 0 rgba(255,255,255,.05) inset;
}
body.light .card{
  background-image:linear-gradient(180deg, rgba(15,25,45,.015) 0%, rgba(15,25,45,0) 42%);
  box-shadow:0 6px 16px rgba(15,25,45,.12), 0 2px 6px rgba(15,25,45,.08), 0 1px 0 rgba(255,255,255,.7) inset;
}
body.light .card:hover{
  box-shadow:0 10px 26px rgba(15,25,45,.16), 0 3px 8px rgba(15,25,45,.10), 0 1px 0 rgba(255,255,255,.8) inset;
}

/* KPI stat + edu/trend cards: a touch more lift + hover raise */
.kpi-stat,.edu-card,.trend-card,.co-card,.ig-card{
  box-shadow:0 16px 38px -20px rgba(0,0,0,.8), 0 1px 0 rgba(255,255,255,.035) inset;
  transition:transform var(--t-base),border-color var(--t-fast),box-shadow var(--t-base);
}
.kpi-stat:hover{transform:translateY(-2px);border-color:var(--border-green);
  box-shadow:0 26px 50px -20px rgba(0,0,0,.85), 0 0 0 1px var(--border-green), 0 1px 0 rgba(255,255,255,.05) inset;}
body.light .kpi-stat,
body.light .edu-card,
body.light .trend-card,
body.light .co-card,
body.light .ig-card,
body.light .article-card,
body.light .bs-card,
body.light .ca-master-card,
body.light .dcfv4-chart-card,
body.light .dco-card,
body.light .irh-card,
body.light .kpi-card,
body.light .kpi-stat-card,
body.light .proj-card,
body.light .rp-card,
body.light .cmp-chart-card,
body.light .webinar-card,
body.light .dcf-result-card,
body.light .video-card,
body.light .seg-card,
body.light .isl-card,
body.light .th-card-row{box-shadow:0 8px 20px rgba(15,25,45,.14), 0 3px 8px rgba(15,25,45,.09), 0 1px 0 rgba(255,255,255,.7) inset}
body.light #coCardGrid .co-card{background:#fff;box-shadow:0 8px 20px rgba(15,25,45,.14), 0 3px 8px rgba(15,25,45,.09);border-color:#e5e7eb;}
body.light #coCardGrid .co-card:hover{border-color:#0d9488;box-shadow:0 12px 28px rgba(15,25,45,.18), 0 4px 10px rgba(15,25,45,.12);}

/* Card borders match the Dashboard Home nav pill's teal outline in light mode */
body.light .card,
body.light .kpi-stat,
body.light .edu-card,
body.light .trend-card,
body.light .co-card,
body.light .ig-card,
body.light .article-card,
body.light .bs-card,
body.light .ca-master-card,
body.light .dcfv4-chart-card,
body.light .dco-card,
body.light .irh-card,
body.light .kpi-card,
body.light .kpi-stat-card,
body.light .proj-card,
body.light .rp-card,
body.light .cmp-chart-card,
body.light .webinar-card,
body.light .dcf-result-card,
body.light .video-card,
body.light .seg-card,
body.light .isl-card,
body.light .th-card-row,
body.light .co-modal-card,
body.light #coCardGrid .co-card{border-color:var(--border-green)}

/* Card header gets a faint divider gradient for separation */
.card-hd{
  background:linear-gradient(180deg, rgba(255,255,255,.018), rgba(255,255,255,0));
}
body.light .card-hd{background:linear-gradient(180deg, rgba(15,25,45,.012), rgba(15,25,45,0))}

/* Sidebar + topbar: depth edges */
.sidebar{box-shadow:1px 0 0 rgba(255,255,255,.04), 8px 0 28px -12px rgba(0,0,0,.6)}
.topbar{box-shadow:0 6px 20px -14px rgba(0,0,0,.7)}
body.light .sidebar{box-shadow:1px 0 0 rgba(15,25,45,.06), 10px 0 30px -16px rgba(15,25,45,.12)}
body.light .topbar{box-shadow:0 6px 18px -14px rgba(15,25,45,.12)}

/* Active nav item: deeper, more dimensional */
.nav-item.active{
  box-shadow:inset 0 0 0 1px var(--border-green), 0 8px 22px -12px rgba(45,212,191,.4), 0 1px 0 rgba(255,255,255,.05) inset;
}

/* Avatars: small lifts for tactility */
.tb-av{box-shadow:0 4px 12px -4px rgba(45,212,191,.5)}

/* Section subtab bar: slight inset depth */
.subtab-bar{box-shadow:0 2px 8px -4px rgba(0,0,0,.5) inset, 0 1px 0 rgba(255,255,255,.025)}
body.light .subtab-bar{box-shadow:0 2px 8px -5px rgba(15,25,45,.12) inset}

/* ═══════════════════════════════════════════════════════════════════════════
   ACCOUNT DROPDOWN
   ═══════════════════════════════════════════════════════════════════════════ */
.acct-wrap{position:relative}
.acct-menu{
  position:absolute;top:calc(100% + 8px);right:0;z-index:200;width:236px;
  background:var(--bg-sidebar);border:1px solid var(--border-hv);border-radius:var(--r4);
  padding:6px;box-shadow:0 18px 50px -12px rgba(0,0,0,.6);
  animation:fadeUp 140ms var(--ease) forwards;
}
.acct-head{
  display:flex;align-items:center;gap:10px;padding:9px 10px 11px;margin-bottom:5px;
  border-bottom:1px solid var(--border);
}
.acct-name{font-size:13px;font-weight:700;color:var(--t1)}
.acct-sub{font-size:10px;font-weight:600;color:var(--green-text);text-transform:uppercase;letter-spacing:.05em;margin-top:1px}
.acct-item{
  display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r2);
  font-size:12px;font-weight:500;color:var(--t1);transition:background var(--t-fast);
}
.acct-item:hover{background:var(--bg-elevated)}
.acct-item svg{width:16px;height:16px;color:var(--t3);flex-shrink:0}
.acct-item:hover svg{color:var(--t2)}
.acct-div{height:1px;background:var(--border);margin:5px 4px}
.acct-logout{color:var(--red)}
.acct-logout svg{color:var(--red)!important}
.acct-logout:hover{background:var(--red-dim)}

/* ═══════════════════════════════════════════════════════════════════════════
   RESEARCH PAGES — filter sidebar + research-page cards (research-page CPT)
   ═══════════════════════════════════════════════════════════════════════════ */
.mb-6{margin-bottom:var(--s7)}

/* ── Layout: filter sidebar + results ────────────────────────────────────── */
.rp-layout{display:grid;grid-template-columns:236px minmax(0,1fr);gap:var(--s5);align-items:start}
@media(max-width:900px){.rp-layout{grid-template-columns:1fr}}

.rp-filters{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r5);
  padding:var(--s5);display:flex;flex-direction:column;gap:var(--s5);
  position:sticky;top:73px;
  box-shadow:0 14px 34px -18px rgba(0,0,0,.75),0 1px 0 rgba(255,255,255,.03) inset;
}
@media(max-width:900px){.rp-filters{position:static}}
.rp-filter-group{display:flex;flex-direction:column;gap:var(--s2)}
.rp-filter-label{
  font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--t3);
}
.rp-search-wrap{width:100%;height:36px}
.rp-select{
  width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r3);
  color:var(--t1);font-size:12px;padding:8px var(--s3);outline:none;cursor:pointer;
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 14 14' fill='none' stroke='%238894AA' stroke-width='1.8'%3E%3Cpath d='M3 5l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;padding-right:28px;
}
.rp-select:focus{border-color:var(--border-green);box-shadow:0 0 0 3px var(--green-dim)}
.rp-select option{background:var(--bg-sidebar);color:var(--t1)}

.rp-radio-list{display:flex;flex-direction:column;gap:1px}
.rp-radio{
  display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:var(--r2);
  font-size:12px;font-weight:500;color:var(--t2);cursor:pointer;
  transition:background var(--t-fast),color var(--t-fast);
}
.rp-radio:hover{background:rgba(255,255,255,.04);color:var(--t1)}
.rp-radio.active{background:var(--green-dim);color:var(--green)}
.rp-radio-dot{
  width:14px;height:14px;border-radius:50%;border:2px solid var(--border-hv);
  flex-shrink:0;position:relative;transition:border-color var(--t-fast);
}
.rp-radio.active .rp-radio-dot{border-color:var(--green)}
.rp-radio.active .rp-radio-dot::after{
  content:'';position:absolute;inset:2px;border-radius:50%;background:var(--green);
}
.rp-radio-name{flex:1;min-width:0}
.rp-radio-count{
  font-size:10px;font-weight:700;color:var(--t3);font-variant-numeric:tabular-nums;
  background:var(--bg-elevated);border-radius:var(--rpill);padding:1px 7px;
}
.rp-radio.active .rp-radio-count{background:rgba(45,212,191,.15);color:var(--green)}

/* ── Results column ──────────────────────────────────────────────────────── */
.rp-main{display:flex;flex-direction:column;gap:var(--s4);min-width:0}
.rp-result-bar{font-size:11px;font-weight:600;color:var(--t3);letter-spacing:.02em}
.rp-grid{
  display:flex;flex-wrap:wrap;gap:var(--s4);
}
.rp-grid .rp-card{flex:0 0 calc((100% - 64px)/5);min-width:0}
@media(max-width:1500px){.rp-grid .rp-card{flex-basis:calc((100% - 48px)/4)}}
@media(max-width:1150px){.rp-grid .rp-card{flex-basis:calc((100% - 32px)/3)}}
@media(max-width:820px){.rp-grid .rp-card{flex-basis:calc((100% - 16px)/2)}}
@media(max-width:480px){.rp-grid .rp-card{flex-basis:100%}}

/* ── Research-page card (screenshot design: image + title overlay) ───────── */
.rp-card{
  display:flex;flex-direction:column;
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r5);
  overflow:hidden;cursor:pointer;color:inherit;
  transition:transform var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast);
  box-shadow:0 14px 34px -18px rgba(0,0,0,.75),0 1px 0 rgba(255,255,255,.03) inset;
}
.rp-card:hover{
  transform:translateY(-2px);border-color:var(--border-green);
  box-shadow:0 22px 46px -20px rgba(0,0,0,.82),0 0 0 1px var(--border-green);
}

/* Image section with dark-tech gradient fallback */
.rp-card-img{
  position:relative;width:100%;height:165px;flex-shrink:0;
  background:linear-gradient(135deg,#050f1a 0%,#082035 45%,#041a12 100%);
  background-size:cover;background-position:center;overflow:hidden;
}
/* Cyan tint overlay on placeholder (no real image) */
.rp-card-img:not([style*="background-image"])::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 60% 40%,rgba(0,220,180,.13) 0%,transparent 70%),
             radial-gradient(ellipse at 20% 70%,rgba(0,120,255,.09) 0%,transparent 60%);
  pointer-events:none;
}

/* Top bar: category/FEATURED left · company name right */
.rp-card-topbar{
  position:absolute;top:0;left:0;right:0;z-index:3;
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:8px 12px;
  background:rgba(0,0,0,.48);backdrop-filter:blur(3px);
}
.rp-type{
  font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
  color:var(--green-text);line-height:1.3;
}
.rp-feat-badge{
  font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;
  color:#0a1a0f;background:var(--green-text);
  border-radius:3px;padding:2px 7px;line-height:1.4;
}
.rp-card-co{
  font-size:10px;font-weight:700;color:rgba(255,255,255,.82);
  letter-spacing:.01em;flex-shrink:0;
}

/* Title overlaid on dark gradient at bottom of image */
.rp-card-overlay{
  position:absolute;bottom:0;left:0;right:0;z-index:2;
  padding:48px 12px 11px;
  background:linear-gradient(to top,rgba(0,0,0,.92) 0%,rgba(0,0,0,.55) 55%,transparent 100%);
}
.rp-card-title{
  font-size:12px;font-weight:800;color:#fff;
  line-height:1.35;margin:0;letter-spacing:.03em;text-transform:uppercase;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.rp-card:hover .rp-card-title{color:var(--green-text)}

/* Body below image */
.rp-body{padding:var(--s3) var(--s4) var(--s4);display:flex;flex-direction:column;gap:var(--s3);flex:1}
.rp-tags{display:flex;flex-wrap:wrap;gap:4px}
.rp-tag{
  font-size:9px;font-weight:700;padding:2px 7px;border-radius:var(--rpill);
  background:var(--bg-elevated);border:1px solid var(--border);color:var(--t2);
  white-space:nowrap;
}
.rp-tag-more{color:var(--t3);background:transparent;border-color:transparent}
.rp-excerpt{
  font-size:11px;color:var(--t2);line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.rp-foot{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s3);
  margin-top:auto;padding-top:var(--s3);border-top:1px solid var(--border);
}
.rp-date{font-size:10px;color:var(--t3)}
.rp-foot-actions{display:flex;align-items:center;gap:10px}
.rp-foot-actions .save-art-btn{
  border-left:none;min-width:auto;padding:0;align-self:auto;
  width:24px;height:24px;border-radius:50%;
  background:var(--bg-elevated);border:1px solid var(--border);
}
.rp-foot-actions .save-art-btn:hover{background:var(--bg-card-hv)}
.rp-readlink{
  font-size:11px;font-weight:700;color:var(--green-text);
  display:flex;align-items:center;gap:4px;transition:gap var(--t-fast);
}
.rp-card:hover .rp-readlink{gap:7px}
.rp-readlink svg{width:11px;height:11px}
.rp-empty{
  grid-column:1/-1;text-align:center;color:var(--t3);font-size:13px;
  padding:var(--s9) var(--s5);
}


/* ── How CSI Invests — "Our Approach" heading ────────────────────────────── */
.invest-approach-hd{
  font-size:16px;font-weight:700;color:var(--t1);letter-spacing:-.2px;
  margin:0 0 var(--s5);
}

/* ═══════════════════════════════════════════════════════════════════════════
   FINANCIAL DASHBOARD — Fiscal.ai Svelte app mount (same bundle as live site)
   The bundle ships its own (dark) styles in index.css; we only size the mount.
   ═══════════════════════════════════════════════════════════════════════════ */
.fin-app-wrap{
  border:1px solid var(--border);border-radius:var(--r5);overflow:hidden;
  background:var(--bg-card);
}
#csi-financial-dashboard-app{width:100%;min-height:72vh;font-family:inherit}
@media(max-width:768px){#csi-financial-dashboard-app{min-height:unset}}

/* ═══════════════════════════════════════════════════════════════════════════
   ITC FRAME — iframe wrapper for the WordPress-rendered Investment Thesis Checklist
   ═══════════════════════════════════════════════════════════════════════════ */
.itc-frame-wrap{border-radius:var(--r5);overflow:hidden}
.itc-frame{width:100%;min-height:640px;border:none;display:block;background:transparent;transition:height .2s ease}

/* ═══════════════════════════════════════════════════════════════════════════
   COMPANY DETAIL MODAL
   ═══════════════════════════════════════════════════════════════════════════ */
/* ─── Company Detail Modal — 2-panel layout ─────────────────────────── */
.co-modal{
  position:fixed;inset:0;z-index:1200;
  display:flex;align-items:center;justify-content:center;
  padding:20px;
}
.co-modal[hidden]{display:none}
.co-modal-scrim{
  position:fixed;inset:0;background:rgba(0,0,0,.72);
  backdrop-filter:blur(4px);z-index:0;
}
.co-modal-card{
  position:relative;z-index:1;
  width:min(1200px, calc(100vw - var(--sidebar-w) - 40px));
  height:calc(100vh - 40px);
  background:#0d1220;
  border:1px solid var(--border);border-radius:var(--r6);
  display:flex;flex-direction:row; /* ← horizontal 2-panel */
  animation:coModalIn .18s ease;
  overflow:hidden;
}
@keyframes coModalIn{from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:translateY(0)}}

/* ── LEFT PANEL ──────────────────────────────────────────────────────── */
.co-modal-left{
  width:280px;flex-shrink:0;
  display:flex;flex-direction:column;
  border-right:1px solid var(--border);
  overflow:hidden;
}
.co-modal-left-head{
  display:flex;align-items:center;gap:12px;
  padding:16px 18px 14px;border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.co-modal-logo-wrap{
  width:44px;height:44px;border-radius:var(--r4);
  background:var(--bg-elevated);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;
}
.co-modal-logo{width:32px;height:32px;object-fit:contain}
.co-modal-name{font-size:15px;font-weight:800;color:var(--t1);margin:0;line-height:1.2}
.co-modal-ticker-price{font-size:12px;font-weight:600;color:var(--green);margin:2px 0 0}
.co-modal-profile-label{padding:12px 18px 0;flex-shrink:0}
.co-modal-desc-text{
  font-size:11.5px;line-height:1.7;color:var(--t2);margin:0;
  padding:8px 18px 12px;
  flex:1;overflow-y:auto;
  text-align:justify;
}
.co-modal-left-footer{
  display:flex;flex-direction:column;gap:8px;
  padding:12px 18px;border-top:1px solid var(--border);flex-shrink:0;
}

/* ── RIGHT PANEL ─────────────────────────────────────────────────────── */
.co-modal-right{
  flex:1;min-width:0;
  display:flex;flex-direction:column;
  position:relative;
}
.co-modal-close-btn{
  position:absolute;top:10px;right:12px;z-index:2;
  width:28px;height:28px;border-radius:var(--r3);
  display:flex;align-items:center;justify-content:center;
  color:var(--t3);background:none;border:none;cursor:pointer;
  transition:all var(--t-fast);
}
.co-modal-close-btn:hover{color:var(--t1);background:var(--bg-elevated)}

/* 3-column row: thesis | notes | dcf — compact, no scroll on the card */
.co-modal-cols{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;
  border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.co-modal-col{
  padding:12px 14px;display:flex;flex-direction:column;gap:5px;
  border-right:1px solid var(--border);
  overflow:hidden;
}
.co-modal-col:last-child{border-right:none}
.co-modal-col-head{
  font-size:9px;font-weight:800;letter-spacing:.1em;
  color:var(--t3);text-transform:uppercase;margin:0 0 4px;
}
.co-modal-col-top{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;
}
.co-modal-col-top .co-modal-col-head{margin:0}
.co-modal-cl-group{
  font-size:8.5px;font-weight:700;letter-spacing:.08em;
  color:var(--green);text-transform:uppercase;margin:5px 0 2px;
}
.co-modal-cl-item{font-size:11px;color:var(--t2);line-height:1.45;display:flex;gap:6px}
.co-modal-cl-marker{color:var(--green);font-weight:700;flex-shrink:0}
.co-modal-notes-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;overflow-y:auto;max-height:80px}
.co-modal-note-item{
  display:flex;align-items:flex-start;gap:8px;padding:6px 8px;
  background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r3);
}
.co-modal-note-text{flex:1;font-size:11.5px;line-height:1.4;color:var(--t2);word-break:break-word}
.co-modal-note-remove{
  background:none;border:none;cursor:pointer;color:var(--t3);
  padding:0;line-height:1;flex-shrink:0;transition:color var(--t-fast);
}
.co-modal-note-remove:hover{color:#f87171}
.co-modal-empty{font-size:11px;color:var(--t3);margin:0;font-style:italic}
.co-modal-textarea{
  width:100%;background:var(--bg-elevated);border:1px solid var(--border);
  border-radius:var(--r3);color:var(--t1);font-family:var(--font);
  font-size:11.5px;padding:6px 8px;resize:none;box-sizing:border-box;
  transition:border-color var(--t-fast);
}
.co-modal-textarea:focus{outline:none;border-color:var(--border-green)}
.co-modal-dcf-item{
  display:flex;align-items:flex-start;gap:8px;padding:6px 8px;
  background:var(--bg-elevated);border:1px solid var(--border);
  border-radius:var(--r3);margin-bottom:5px;
}
.co-modal-dcf-price{font-size:14px;font-weight:700;color:var(--green);margin-bottom:2px}
.co-modal-dcf-params{font-size:10px;color:var(--t3)}

/* Graph fills all remaining height of right panel */
.co-modal-graph-section{
  flex:1;display:flex;flex-direction:column;min-height:0;
  padding:10px 16px 6px;
}
.co-modal-graph-inner{flex:1;display:flex;flex-direction:column;min-height:0;margin-top:4px}
.co-modal-fiscal-powered{font-size:10px;color:var(--t3);margin:0 0 1px;flex-shrink:0}
.co-modal-fiscal-label{
  font-size:9px;font-weight:700;letter-spacing:.1em;
  color:var(--t3);text-transform:uppercase;margin:0 0 4px;flex-shrink:0;
}
.co-modal-chart{flex:1;width:100%;min-height:0}
.co-modal-chart svg{width:100%;height:100%;display:block}
.co-modal-chart-legend{display:flex;gap:16px;margin-top:4px;flex-shrink:0;padding-bottom:4px}
.co-modal-legend-item{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--t2)}
.co-modal-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}

/* Responsive */
@media(max-width:900px){
  .co-modal-card{flex-direction:column;width:calc(100vw - 32px)}
  .co-modal-left{width:100%;flex-shrink:0;max-height:38vh;border-right:none;border-bottom:1px solid var(--border)}
  .co-modal-desc-text{max-height:80px}
  .co-modal-cols{grid-template-columns:1fr 1fr}
  .co-modal-col:nth-child(2){border-right:none}
}
@media(max-width:560px){
  .co-modal{padding:8px}
  .co-modal-card{width:calc(100vw - 16px);height:calc(100vh - 16px)}
  .co-modal-cols{grid-template-columns:1fr}
  .co-modal-col{border-right:none !important}
}

/* ── Investment Research Hub ────────────────────────────────────────────── */
.irh-wrap{
  margin-top:var(--s7);
  padding-bottom:var(--s6);
}
.irh-hd{
  display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s5);
  margin-bottom:var(--s5);
}
.irh-title{
  font-size:1.15rem;font-weight:700;color:var(--t1);letter-spacing:-.01em;
}
.irh-sub{
  font-size:.8rem;color:var(--t2);margin-top:4px;
}
.irh-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:var(--s4);
}

/* IRH project card */
.irh-card{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--r5);
  padding:var(--s5);
  display:flex;flex-direction:column;gap:var(--s3);
  transition:border-color var(--t-base),background var(--t-base);
}
.irh-card:hover{ border-color:var(--border-hv); background:var(--bg-card-hv); }
.irh-card-head{
  display:flex;align-items:baseline;gap:var(--s2);flex-wrap:wrap;
}
.irh-ticker{
  font-size:.9rem;font-weight:700;color:var(--green);
  background:var(--green-dim);border:1px solid var(--border-green);
  padding:2px 8px;border-radius:var(--rpill);
}
.irh-company{
  font-size:.75rem;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* Step pills row */
.irh-steps{
  display:flex;gap:6px;flex-wrap:wrap;
}
.irh-step{
  display:flex;align-items:center;gap:4px;
  font-size:.68rem;color:var(--t3);
  padding:3px 7px;border-radius:var(--rpill);
  border:1px solid var(--border);
  background:rgba(255,255,255,.025);
  transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast);
}
.irh-step.done{
  color:var(--green);border-color:var(--border-green);background:var(--green-dim);
}
.irh-step-dot{
  width:5px;height:5px;border-radius:50%;
  background:currentColor;flex-shrink:0;
}

/* Progress bar */
.irh-bar-wrap{display:flex;align-items:center;gap:var(--s3);}
.irh-bar{
  flex:1;height:4px;border-radius:var(--rpill);
  background:rgba(255,255,255,.07);overflow:hidden;
}
.irh-bar-fill{
  height:100%;border-radius:var(--rpill);
  background:linear-gradient(90deg,var(--green),var(--green-bright));
  transition:width .4s var(--ease);
}
.irh-pct{font-size:.7rem;color:var(--t2);white-space:nowrap;}
.irh-continue{width:100%;justify-content:center;margin-top:2px;}

/* Empty state (shared) */
.irh-empty{
  display:flex;flex-direction:column;align-items:center;gap:var(--s4);
  padding:var(--s8) var(--s5);color:var(--t2);font-size:.875rem;text-align:center;
  grid-column:1/-1;
}
.irh-empty-lg{ padding:var(--s9) var(--s5); }

/* ── Research Projects Subtab ────────────────────────────────────────────── */
.proj-card{
  border:1px solid var(--border);border-radius:var(--r4);
  overflow:hidden;
  transition:border-color var(--t-base);
}
.proj-card.proj-highlight{
  border-color:var(--green);
  box-shadow:0 0 0 2px var(--green-glow);
  animation:projPulse .6s var(--ease);
}
@keyframes projPulse{
  0%{box-shadow:0 0 0 0 var(--green-glow)}
  50%{box-shadow:0 0 0 6px var(--green-glow)}
  100%{box-shadow:0 0 0 2px var(--green-glow)}
}
.proj-card-head{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s4);
  padding:var(--s4) var(--s5);
  border-bottom:1px solid var(--border);
  background:rgba(255,255,255,.018);
}
.proj-head-left{display:flex;align-items:baseline;gap:var(--s3);}
.proj-ticker{
  font-size:.9rem;font-weight:700;color:var(--green);
  background:var(--green-dim);border:1px solid var(--border-green);
  padding:2px 10px;border-radius:var(--rpill);
}
.proj-name{font-size:.8rem;color:var(--t2);}
.proj-head-right{display:flex;align-items:center;gap:var(--s4);}
.proj-progress-wrap{display:flex;align-items:center;gap:var(--s3);}
.proj-pbar{width:100px;height:5px;border-radius:var(--rpill);background:rgba(255,255,255,.08);overflow:hidden;}
.proj-pbar-fill{
  height:100%;border-radius:var(--rpill);
  background:linear-gradient(90deg,var(--green),var(--green-bright));
  transition:width .4s var(--ease);
}
.proj-pct{font-size:.72rem;color:var(--t2);white-space:nowrap;}
.proj-delete{color:var(--t3);padding:4px 6px;}
.proj-delete:hover{color:var(--red);}

.proj-steps{display:flex;flex-direction:column;}
.proj-step{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s4);
  padding:var(--s4) var(--s5);
  border-bottom:1px solid var(--border);
  transition:background var(--t-fast);
}
.proj-step:last-child{border-bottom:none;}
.proj-step:hover{background:rgba(255,255,255,.022);}
.proj-step.done .proj-step-name{color:var(--t2);}
.proj-step-left{display:flex;align-items:center;gap:var(--s4);flex:1;}
.proj-step-num{
  width:26px;height:26px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:.72rem;font-weight:700;
  border:1.5px solid var(--border);
  color:var(--t2);background:rgba(255,255,255,.04);
}
.proj-step-num.done{
  border-color:var(--green);color:var(--green);background:var(--green-dim);
}
.proj-step-name{font-size:.82rem;font-weight:500;color:var(--t1);}
.proj-step-actions{display:flex;align-items:center;gap:var(--s2);flex-shrink:0;}

/* ── Start a Project Wizard Modal ───────────────────────────────────────── */
.proj-wizard-backdrop{
  position:fixed;inset:0;z-index:300;
  background:var(--bg-overlay);
  display:flex;align-items:center;justify-content:center;
  padding:var(--s5);
}
.proj-wizard-backdrop[hidden]{ display:none; }
.proj-wizard{
  background:#0d1220;
  border:1px solid var(--border-hv);
  border-radius:var(--r6);
  width:100%;max-width:440px;
  padding:var(--s7);
  box-shadow:0 24px 80px rgba(0,0,0,.6);
}
.proj-wizard-title{
  font-size:1.1rem;font-weight:700;margin-bottom:6px;
}
.proj-wizard-desc{
  font-size:.82rem;color:var(--t2);margin-bottom:var(--s5);line-height:1.55;
}
.proj-wizard-label{
  display:block;font-size:.68rem;font-weight:600;letter-spacing:.06em;
  color:var(--t2);text-transform:uppercase;margin-bottom:6px;
}
.proj-wizard-optional{
  font-size:.7rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--t3);
}
.proj-wizard-input{
  width:100%;padding:9px 12px;
  background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r3);
  color:var(--t1);font-size:.875rem;margin-bottom:var(--s4);
  transition:border-color var(--t-fast);
}
.proj-wizard-input:focus{outline:none;border-color:var(--green);}

.proj-wizard-steps-preview{
  background:rgba(45,212,191,.04);border:1px solid var(--border-green);
  border-radius:var(--r4);padding:var(--s4) var(--s5);margin:var(--s4) 0;
}
.pwsp-hd{font-size:.72rem;font-weight:600;color:var(--t2);margin-bottom:var(--s3);text-transform:uppercase;letter-spacing:.05em;}
.pwsp-row{
  display:flex;align-items:center;gap:var(--s3);
  font-size:.8rem;color:var(--t1);padding:4px 0;
}
.pwsp-num{
  width:20px;height:20px;border-radius:50%;
  background:var(--green-dim);border:1px solid var(--border-green);
  color:var(--green);font-size:.65rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.proj-wizard-error{
  font-size:.8rem;color:var(--red);min-height:1.2em;margin-bottom:var(--s2);
}
.proj-wizard-btns{
  display:flex;gap:var(--s3);justify-content:flex-end;margin-top:var(--s4);
}

/* Responsive tweaks */
@media(max-width:640px){
  .irh-grid{grid-template-columns:1fr 1fr;}
  .proj-step{flex-wrap:wrap;gap:var(--s3);}
  .proj-step-actions{width:100%;justify-content:flex-end;}
  .proj-pbar{width:70px;}
}
@media(max-width:400px){
  .irh-grid{grid-template-columns:1fr;}
}

/* ── Sidebar accordion sub-nav (v4 layout) ──────────────────────────────── */
.sub-nav.open{max-height:360px}
.sub-nav-inner{
  margin:3px 0 5px 12px;
  border-left:1px solid var(--border);
  padding:2px 0 3px 0;
  display:flex;flex-direction:column;gap:1px;
}
.nav-group .sub-item{
  display:flex;align-items:flex-start;gap:8px;
  padding:6px 10px 6px 26px;
  font-size:13px;font-weight:500;color:var(--t3);
  background:none;border:none;text-align:left;width:100%;
  border-radius:var(--r2);cursor:pointer;
  transition:color var(--t-fast),background var(--t-fast);
  white-space:normal;line-height:1.35;
}
.nav-group .sub-item::before{display:none}
.sub-dot{
  width:6px;height:6px;border-radius:50%;
  background:currentColor;opacity:.4;flex-shrink:0;
  margin-top:4px;
  transition:opacity var(--t-fast),background var(--t-fast);
}
.nav-group .sub-item:hover{color:var(--t1);background:rgba(255,255,255,.03)}
.nav-group .sub-item:hover .sub-dot{opacity:.7}
.nav-group .sub-item.active{color:var(--green-text)}
.nav-group .sub-item.active .sub-dot{background:var(--green);opacity:1}
.sub-badge{
  margin-left:auto;padding:1px 6px;border-radius:99px;
  background:rgba(245,184,61,.15);font-size:9px;font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;color:#f5b83d;flex-shrink:0;
}
@media(max-width:1024px){
  .sub-nav-inner{display:none}
}

/* =========================================================================
   v5 DESIGN SYSTEM OVERRIDES — applied on top of v10 layout
   Matches Dashboard v5's visual language: solid surfaces, teal-brand, shadows,
   pill nav active, underline subtabs, v5 typography hierarchy.
   ========================================================================= */

/* ── Solid card surfaces + v5 shadow elevation ──────────────────────────── */
.card{
  background:var(--bg-card);   /* now #0f1623, solid navy */
  box-shadow:var(--shadow);
}
.card:hover{
  border-color:var(--border-hv);
  box-shadow:0 4px 16px rgba(0,0,0,.45);
}
.card.glow:hover{
  border-color:var(--border-green);
  box-shadow:0 0 0 1px var(--border-green),0 12px 36px rgba(0,0,0,.5);
}

/* ── Topbar — solid surface, no blur ────────────────────────────────────── */
.topbar{
  background:var(--bg-topbar);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.tb-search{
  background:var(--bg-elevated);
  border:1px solid var(--border);
}
.tb-search:focus-within{
  border-color:var(--border-green);
  box-shadow:0 0 0 3px var(--green-dim);
}

/* ── Sidebar — v5 style: same bg as page, no sidebar-specific dark ──────── */
.sidebar{
  background:var(--bg-sidebar);
  border-right:1px solid var(--border);
}
.sidebar-foot{
  border-top:1px solid var(--border);
}

/* ── Nav items — v5 pill active (filled teal-dim bg) ───────────────────── */
.nav-item{
  border-radius:var(--r3);
  color:var(--t2);
  transition:background var(--t-fast),color var(--t-fast);
}
.nav-item:hover{
  background:rgba(255,255,255,.045);
  color:var(--t1);
}
.nav-item.active{
  background:var(--green-dim);  /* teal tinted pill */
  color:var(--green);
  font-weight:600;
}
.nav-item.active svg{color:var(--green);}
/* remove left rail — v5 uses pill, not rail */
.nav-item.active::before{display:none;}

/* ── Subtab bar — v5 underline style ───────────────────────────────────── */
.subtab-bar{
  border-bottom:1px solid var(--border);
  background:transparent;
  gap:0;
  padding:0;
}
.subtab-btn{
  border-radius:0;
  padding:11px var(--s5);
  margin-bottom:-1px;
  border-bottom:2px solid transparent;
  background:transparent;
  color:var(--t2);
  font-size:13px;
  font-weight:500;
  transition:color var(--t-fast),border-color var(--t-fast);
}
.subtab-btn:hover{
  color:var(--t1);
  background:transparent;
}
.subtab-btn.active{
  color:var(--green);
  background:transparent;
  border-bottom-color:var(--green);
  font-weight:600;
}
/* Anchor variant (e.g. "Build Custom Supply Chain" → its own page) */
a.subtab-btn-link{
  text-decoration:none;
  display:inline-flex;
  align-items:center;
}

/* ── Card header + title — v5 style ────────────────────────────────────── */
.card-hd{
  padding:var(--s5) var(--s5) var(--s4);
  border-bottom:1px solid var(--border);
  background:rgba(255,255,255,.018);
}
.card-title{
  font-size:12px;
  font-weight:700;
  color:var(--t2);
  letter-spacing:.06em;
  text-transform:uppercase;
}

/* ── Section headers — v5 prominent style ───────────────────────────────── */
.section-title{
  font-size:24px;
  font-weight:700;
  color:var(--t1);
  letter-spacing:-.025em;
}
.section-sub{
  color:var(--t2);
  font-size:14px;
}

/* ── KPI stat cards — match v5 solid surface ───────────────────────────── */
.kpi-stat-card{
  background:var(--bg-card);
  border:1px solid var(--border);
  box-shadow:var(--shadow);
}
.kpi-stat-card:hover{
  border-color:var(--border-hv);
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(0,0,0,.45);
}

/* ── Dashboard greeting bar ─────────────────────────────────────────────── */
.dash-greet-bar{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--r5);
  box-shadow:var(--shadow);
}

/* ── Buttons — v5 style ─────────────────────────────────────────────────── */
.btn-primary{
  background:var(--green);
  color:#04140f;
  border-color:var(--green);
  font-weight:700;
}
.btn-primary:hover{
  background:var(--green-bright);
  border-color:var(--green-bright);
  transform:translateY(-1px);
  box-shadow:0 4px 14px var(--green-glow);
}
.btn-secondary{
  background:var(--bg-elevated);
  color:var(--t1);
  border-color:var(--border-hv);
}
.btn-secondary:hover{
  background:rgba(255,255,255,.09);
  border-color:var(--t3);
}
.btn-ghost{
  background:transparent;
  color:var(--green);
  border-color:var(--border);
}
.btn-ghost:hover{
  background:var(--green-dim);
  border-color:var(--border-green);
  color:var(--green);
}

/* ── Inputs — v5 solid surface ──────────────────────────────────────────── */
.search-wrap{
  background:var(--bg-elevated);
  border-color:var(--border);
}
.search-wrap:focus-within{
  border-color:var(--border-green);
  box-shadow:0 0 0 3px var(--green-dim);
}
.tb-search-input{color:var(--t1);}
.tb-search-input::placeholder{color:var(--t3);}

/* ── Badges ─────────────────────────────────────────────────────────────── */
.badge-green{
  background:var(--green-dim);
  color:var(--green);
  border:1px solid var(--border-green);
}

/* ── Dashboard article list rows ────────────────────────────────────────── */
.dar{background:transparent;}
.dar:hover{background:rgba(255,255,255,.03);}

/* ── Article cards ──────────────────────────────────────────────────────── */
.article-card{
  background:var(--bg-card);
  box-shadow:var(--shadow);
}
.article-card:hover{
  border-color:var(--border-hv);
  box-shadow:var(--shadow-md);
  transform:translateY(-2px);
}

/* ── Company cards ──────────────────────────────────────────────────────── */
.co-card{
  background:var(--bg-elevated);
  box-shadow:var(--shadow);
}
.co-card:hover{border-color:var(--border-hv);}

/* ── Supply chain layout — v7 style ─────────────────────────────────────── */
.sc-wrap{
  display:grid;
  grid-template-columns:1fr 288px;
  gap:var(--s5);
  align-items:start;
}
.sc-wrap > div{min-width:0}
/* Header: "SUPPLY CHAIN ANALYSIS •" + placeholder */
.sc-section-hd{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:14px;
}
.sc-section-title{
  display:flex;align-items:center;gap:8px;
  font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  color:var(--t1);
}
.sc-section-dot{
  width:11px;height:11px;border-radius:50%;
  background:var(--green);flex-shrink:0;
}
.sc-placeholder-text{
  font-size:11.5px;color:var(--t3);
}
.sc-custom-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 10px 4px 8px;border-radius:var(--r2);
  font-size:11px;font-weight:600;letter-spacing:.02em;
  color:var(--green);border:1px solid var(--border-green);
  background:var(--green-dim);
  text-decoration:none;white-space:nowrap;flex-shrink:0;
  transition:background var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast);
  position:relative;
}
.sc-custom-btn:hover{
  background:var(--green-glow);
  border-color:var(--green);
  box-shadow:0 0 10px var(--green-glow);
}
.sc-custom-btn::after{
  content:attr(data-tooltip);
  position:absolute;bottom:calc(100% + 7px);right:0;
  background:var(--bg-elevated);border:1px solid var(--border-hv);
  color:var(--t1);font-size:11px;font-weight:500;letter-spacing:.01em;
  padding:5px 9px;border-radius:var(--r2);white-space:nowrap;
  pointer-events:none;opacity:0;transform:translateY(4px);
  transition:opacity var(--t-fast),transform var(--t-fast);
  box-shadow:0 4px 12px rgba(0,0,0,.5);
}
.sc-custom-btn:hover::after{
  opacity:1;transform:translateY(0);
}
/* Segment grid — exact v7 */
.seg-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:6px;
}
/* Segment button — exact v7 clip-path arrow shape */
.seg-card{
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:7px;
  padding:14px 5px 12px;
  background:rgba(255,255,255,.05);
  border-radius:7px;
  border:none;
  cursor:pointer;
  text-align:center;
  transition:background var(--t-fast);
  user-select:none;
  clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%,10px 50%);
}
.seg-card.empty{visibility:hidden;pointer-events:none;}
/* Icon — real per-segment SVG (already colored internally), neutralized to
   gray by default via filter and revealed in its true color on hover/active
   so only the icon itself carries the accent, not the whole tile. */
.seg-icon{
  display:block;
  width:26px;height:26px;
  flex-shrink:0;
}
.seg-icon svg{
  display:block;width:100%;height:100%;
  filter:grayscale(1) brightness(1.5);
  transition:filter var(--t-fast);
}
.seg-card:hover .seg-icon svg{filter:none;}
.seg-card.active .seg-icon svg{filter:none;}
/* Light mode: brightness(1.5) washes the grayscale icons out to near-white on a
   light background — darken them instead so they stay legible (audit D2). */
body.light .seg-icon svg{filter:grayscale(1) brightness(.55);}
body.light .seg-card:hover .seg-icon svg{filter:none;}
body.light .seg-card.active .seg-icon svg{filter:none;}
/* Fallback path-only icons (no icon SVG on record) have no fill/stroke of
   their own and need CSS to supply both — real icons must never get these,
   since they'd inherit down onto paths with no local stroke and paint a
   colored outline over the icon's own baked-in fill. */
.seg-icon-fallback svg{
  stroke:rgba(200,210,200,.55);stroke-width:1.5;fill:none;
  transition:filter var(--t-fast),stroke var(--t-fast);
}
.seg-card:hover .seg-icon-fallback svg{stroke:rgba(200,210,200,.85);}
.seg-card.active .seg-icon-fallback svg{stroke:var(--green);}
body.light .seg-icon-fallback svg{stroke:#4b5563;}
body.light .seg-card:hover .seg-icon-fallback svg{stroke:#374151;}
body.light .seg-card.active .seg-icon-fallback svg{stroke:var(--green);}
/* Label — exact v7 */
.seg-title{
  font-size:10px;font-weight:600;
  color:var(--t2);
  line-height:1.3;
  transition:color var(--t-fast);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  height:calc(10px * 1.3 * 2);
  width:100%;
  text-align:center;
}
.seg-card:hover .seg-title{color:var(--t1);}
.seg-card.active .seg-title{color:var(--green-text);}

/* ── Segment detail panel ────────────────────────────────────────────────── */
.sc-detail-panel{
  background:rgba(255,255,255,.04);
  border:1px solid var(--seg-accent-border, rgba(45,212,191,.22));
  border-radius:var(--r4);padding:var(--s5) var(--s6);
  animation:fadeUp 180ms var(--ease) forwards;
  transition:border-color var(--t-fast);
}
.sc-detail-hd{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s4)}
.sc-detail-icon{
  display:block;width:22px;height:22px;flex-shrink:0;
}
.sc-detail-icon svg{
  display:block;width:100%;height:100%;
}
.sc-detail-title{font-size:14px;font-weight:700;color:var(--t1)}

/* ── Industry stock lists sidebar — v7 style ────────────────────────────── */
.isl-sidebar{
  display:flex;flex-direction:column;
  position:sticky;top:var(--s7);
}
.isl-sidebar-hd{
  font-size:10.5px;font-weight:800;color:var(--t1);
  letter-spacing:.09em;text-transform:uppercase;
  margin-bottom:10px;
}
.isl-card{
  display:block;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:8px;
  margin-bottom:7px;
  background:rgba(255,255,255,.05);
  cursor:pointer;text-decoration:none;
  transition:border-color var(--t-fast);
}
.isl-card:hover{border-color:rgba(45,212,191,.3);}
.isl-badge{
  font-size:8px;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;
  color:var(--green-text);
  margin-bottom:4px;
}
.isl-title{font-size:11px;font-weight:600;color:var(--t1);line-height:1.35;margin-bottom:3px}
.isl-ago{font-size:10px;color:var(--t3)}
@media(max-width:1100px){
  .sc-wrap{grid-template-columns:1fr}
  .isl-sidebar{position:static}
}
@media(max-width:768px){
  .sc-wrap{grid-template-columns:1fr}
  .seg-grid{grid-template-columns:repeat(3,1fr)}
}

/* ── Segment detail — description, sub-segments, key players ─────────────── */
.sc-detail-desc{
  font-size:12px;line-height:1.5;color:var(--t2);
  margin:0 0 var(--s4);
}
.sc-detail-subsegs{margin-bottom:var(--s4)}
.sc-detail-subsegs ul{list-style:none;display:flex;flex-direction:column;gap:4px;margin:0;padding:0}
.sc-detail-subseg-item{
  font-size:11.5px;color:var(--t2);
  padding-left:14px;position:relative;
}
.sc-detail-subseg-item::before{
  content:'';position:absolute;left:0;top:7px;
  width:4px;height:4px;border-radius:50%;
  background:var(--t3);
}
.sc-players-block{margin-top:var(--s5)}
.sc-players-hd{
  display:flex;align-items:center;gap:8px;
  font-size:10.5px;font-weight:800;color:var(--t1);
  letter-spacing:.09em;text-transform:uppercase;
  margin-bottom:8px;
}
.sc-players-toggle{
  width:16px;height:16px;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
  border:none;background:none;color:var(--t2);cursor:pointer;
  font-size:13px;font-weight:700;line-height:1;padding:0;
  transition:color var(--t-fast);
}
.sc-players-toggle:hover{color:var(--t1)}
.sc-players-rail{
  display:flex;flex-wrap:wrap;gap:8px;min-width:0;
}
.sc-players-rail.collapsed{display:none}
.sc-player-chip{
  flex-shrink:0;display:inline-flex;align-items:center;gap:7px;
  padding:5px 12px 5px 5px;border-radius:var(--rpill);
  border:1px solid var(--border);background:rgba(255,255,255,.04);
  text-decoration:none;
  transition:border-color var(--t-fast),background var(--t-fast);
}
.sc-player-chip:has(.sc-player-star){padding-left:9px}
.sc-player-star{color:var(--amber);font-size:11px;flex-shrink:0}
.sc-player-chip:hover{border-color:var(--border-green);background:var(--green-dim)}
.sc-player-logo{
  width:22px;height:22px;border-radius:50%;flex-shrink:0;
  background:#fff;border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.sc-player-logo img{width:100%;height:100%;object-fit:contain}
.sc-player-name{
  font-size:11.5px;font-weight:600;color:var(--t1);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.sc-expand-btn{
  display:inline-flex;align-items:center;
  margin-left:auto;flex-shrink:0;
  padding:4px 10px;border-radius:var(--r2);
  font-size:11px;font-weight:600;letter-spacing:.02em;
  color:var(--seg-accent, var(--green));
  border:1px solid var(--seg-accent-border, var(--border-green));
  background:var(--seg-accent-dim, var(--green-dim));cursor:pointer;white-space:nowrap;
  text-decoration:none;
  transition:background var(--t-fast),border-color var(--t-fast);
}
.sc-expand-btn:hover{box-shadow:0 0 8px currentColor}
.isl-filter-pill{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:6px 8px 6px 12px;margin-bottom:10px;
  border-radius:var(--rpill);
  border:1px solid var(--border-green);background:var(--green-dim);
  font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;
  color:var(--green);
}
.isl-filter-pill-x{
  width:18px;height:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  border-radius:var(--r2);color:var(--green);background:transparent;cursor:pointer;
  transition:color var(--t-fast),background var(--t-fast);
}
.isl-filter-pill-x:hover{color:var(--red);background:var(--red-dim)}

/* ── DCF panel ──────────────────────────────────────────────────────────── */
.dcfv2-card{
  background:var(--bg-card);
  box-shadow:var(--shadow);
}

/* ── Modal surfaces ─────────────────────────────────────────────────────── */
.dcf-modal{
  background:var(--bg-elevated);
  border-color:var(--border-green);
  box-shadow:var(--shadow-md);
}
.co-modal-card{
  background:var(--bg-card);
  box-shadow:var(--shadow-md);
}
.co-modal-left{
  background:var(--bg-elevated);
}

/* ── Webinar cards ──────────────────────────────────────────────────────── */
.webinar-card{
  background:var(--bg-card);
  box-shadow:var(--shadow);
}
.webinar-card:hover{border-color:var(--border-hv);}

/* ── Research project cards (IRH) ───────────────────────────────────────── */
.irh-card{
  background:var(--bg-card);
  box-shadow:var(--shadow);
}
.irh-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.45);}
.proj-card{
  background:var(--bg-card);
  box-shadow:var(--shadow);
}
.proj-card-head{
  background:rgba(255,255,255,.018);
}

/* ── Light theme token adjustments ──────────────────────────────────────── */
body.light{
  --bg:          #eef2f7;
  --bg-sidebar:  #ffffff;
  --bg-topbar:   rgba(255,255,255,.97);
  --bg-card:     #ffffff;
  --bg-card-hv:  #f3f6fb;
  --bg-elevated: #f3f6fb;
  --bg-input:    #f3f6fb;
  --border:      rgba(15,23,42,.10);
  --border-hv:   rgba(15,23,42,.18);
  --border-green:rgba(13,148,136,.30);
  --green:       #0d9488;
  --green-bright:#0b7d72;
  --green-dim:   rgba(13,148,136,.10);
  --green-glow:  rgba(13,148,136,.20);
  --green-text:  #0d9488;
  --red:         #dc2626;
  --red-dim:     rgba(220,38,38,.10);
  --t1:          #0f1828;
  --t2:          #56627a;
  --t3:          #8a96ab;
  --t4:          #d1d9e6;
  --shadow:      0 1px 2px rgba(15,23,42,.08);
  --shadow-md:   0 14px 34px -14px rgba(15,23,42,.20);
}

/* ── Add Reminder button ─────────────────────────────────────────────────── */
.btn-reminder{
  display:inline-flex;align-items:center;gap:5px;
  padding:6px 12px;border-radius:var(--r3);
  font-size:12px;font-weight:600;
  color:var(--t2);border:1px solid var(--border);background:transparent;
  cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast);
  white-space:nowrap;
}
.btn-reminder:hover{color:var(--green);border-color:var(--green);background:var(--green-dim)}
.webinar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* ── ITC Research Notes ──────────────────────────────────────────────────── */
.itc-notes-meta{display:flex;align-items:center;gap:8px;margin-left:auto}
.itc-notes-ticker{width:80px;text-transform:uppercase}
.itc-notes-textarea{
  width:100%;min-height:140px;resize:vertical;
  background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r3);
  padding:12px 14px;font-size:13px;font-family:inherit;color:var(--t1);line-height:1.6;
  transition:border-color var(--t-fast);outline:none;
}
.itc-notes-textarea:focus{border-color:var(--green)}
.itc-notes-textarea::placeholder{color:var(--t3)}
.itc-notes-saved{
  font-size:11px;font-weight:600;color:var(--green-text);
  opacity:0;transition:opacity 0.25s;pointer-events:none;
}
.itc-notes-saved.visible{opacity:1}

/* ── DCF upside/downside row ─────────────────────────────────────────────── */
.dcf-upside-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 14px;border-radius:var(--r3);
  background:var(--bg-elevated);border:1px solid var(--border);
  margin-top:6px;
}
.dcf-upside-value{font-size:18px;font-weight:700}
.dcf-upside-value.up{color:var(--green)}
.dcf-upside-value.down{color:var(--red,#f87171)}

/* ── DCF v4 layout ───────────────────────────────────────────────────────── */
.dcfv4-layout{
  display:grid;grid-template-columns:1fr 1.4fr;gap:20px;align-items:stretch;
}
@media(max-width:900px){.dcfv4-layout{grid-template-columns:1fr}}

/* Left panel */
.dcfv4-assumptions{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r4);
  padding:24px;display:flex;flex-direction:column;gap:18px;
}
.dcfv4-panel-hd{
  display:flex;align-items:center;gap:8px;
  font-size:14px;font-weight:700;color:var(--green);letter-spacing:.01em;
}
.dcfv4-label{font-size:11px;font-weight:600;color:var(--t3);letter-spacing:.04em;text-transform:uppercase;display:block;margin-bottom:6px}
.dcfv4-field{display:flex;flex-direction:column}
.dcfv4-field-full{width:100%}
.dcfv4-ticker-row{display:flex;gap:8px;align-items:stretch}
.dcfv4-ticker-row input{flex:1}
.dcfv4-ticker-input{
  font-size:15px;font-weight:600;
}
.dcfv4-input{
  background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r3);
  padding:10px 14px;font-size:14px;font-weight:500;color:var(--t1);font-family:inherit;
  outline:none;transition:border-color var(--t-fast);width:100%;
}
.dcfv4-input:focus{border-color:var(--green)}
.dcfv4-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dcfv4-stock-meta{display:flex;flex-direction:column;gap:3px}
.dcfv4-stock-meta span{font-size:11px;color:var(--t3)}
.dcfv4-save-btn{width:100%;justify-content:center;gap:7px;margin-top:4px;font-size:13px;font-weight:600}

/* Right results */
.dcfv4-results{display:flex;flex-direction:column;gap:16px;height:100%}
.dcfv4-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:700px){.dcfv4-stats{grid-template-columns:1fr}}
.dcfv4-stat{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r4);
  padding:18px 20px;
}
.dcfv4-stat-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--t3);margin-bottom:8px}
.dcfv4-stat-value{font-size:28px;font-weight:700;color:var(--t1);letter-spacing:-.5px}

/* Chart card */
.dcfv4-chart-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r4);padding:20px;flex:1;
}
.dcfv4-chart-hd{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.dcfv4-chart-hd .dcfv4-chart-title{margin-right:auto}
.dcfv4-share-btn{flex:none}
.dcfv4-chart-title{font-size:13px;font-weight:600;color:var(--t1)}
.dcfv4-verdict{font-size:11px;font-weight:700;padding:3px 10px;border-radius:99px;letter-spacing:.03em}
.dcfv4-verdict.undervalued{background:rgba(53,220,110,.15);color:var(--green)}
.dcfv4-verdict.overvalued{background:rgba(248,113,113,.15);color:#f87171}
.dcfv4-canvas{width:100%;height:260px;display:block;border-radius:var(--r2)}
.dcfv4-disclaimer{font-size:10px;color:var(--t3);margin-top:10px}

/* Override row inside v4 layout */
.dcfv4-assumptions .dcf-override-row{padding:0;border-bottom:none;align-items:flex-start}
.dcfv4-assumptions .dcf-chk-label{align-self:flex-start}
.dcfv4-assumptions .dcf-custom-weight-row{
  flex-direction:column;align-items:flex-start;gap:6px;
  padding-left:0;margin-top:8px;width:100%;
}
.dcfv4-assumptions .dcf-custom-weight-row .dcf-label{
  font-size:11px;font-weight:600;color:var(--t3);letter-spacing:.04em;
  text-transform:uppercase;width:auto;
}
.dcfv4-assumptions .dcf-custom-weight-row #dcfCustomWeight{
  width:100%;padding:10px 14px;font-size:14px;
}

/* ── Customize panel divider ─────────────────────────────────────────────── */
.cp-divider{height:1px;background:var(--border);margin:6px 0}

/* ── Drag-to-reorder home widgets ─────────────────────────────────────────── */
.dcard[draggable="true"]{cursor:grab}
.dcard.dragging{opacity:.32;outline:2px dashed var(--border-hv);outline-offset:-2px;cursor:grabbing}
.dcard.drag-over{
  outline:2px solid var(--green);outline-offset:-2px;
  box-shadow:0 0 0 4px var(--green-dim),var(--shadow-md);
  transition:outline var(--t-fast),box-shadow var(--t-fast);
}

/* ── Company Analysis layout ─────────────────────────────────────────────── */
.coa-layout{display:flex;gap:var(--s5);align-items:flex-start}
.coa-sidebar{
  width:200px;flex-shrink:0;position:sticky;top:var(--s6);
  display:flex;flex-direction:column;gap:var(--s4);
}
.coa-search-wrap{
  display:flex;align-items:center;gap:var(--s2);
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r4);
  padding:0 var(--s3);
}
.coa-search-wrap svg{color:var(--t3);flex-shrink:0}
.coa-search{
  flex:1;background:none;border:none;outline:none;
  font-size:13px;color:var(--t1);padding:8px 0;
  font-family:inherit;
}
.coa-search::placeholder{color:var(--t3)}
.coa-filter-group{display:flex;flex-direction:column;gap:var(--s2)}
.coa-filter-label{font-size:13px;font-weight:700;color:var(--t1);padding:0 2px}
.coa-industry-select{
  width:100%;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r3);
  color:var(--t1);font-size:12px;font-family:inherit;padding:7px 8px;outline:none;cursor:pointer;
  appearance:auto;
}
.coa-industry-select:focus{border-color:var(--border-green)}
.coa-country-list{display:flex;flex-direction:column;gap:0;max-height:440px;overflow-y:auto;position:relative;}
.coa-country-fade{
  position:sticky;bottom:0;left:0;right:0;height:28px;margin-top:-28px;
  pointer-events:none;background:linear-gradient(to bottom, transparent, var(--bg));
}
.coa-radio{
  display:flex;align-items:center;gap:8px;
  font-size:13px;color:var(--t2);padding:5px 4px;
  cursor:pointer;user-select:none;line-height:1.3;
}
.coa-radio input[type="radio"]{
  accent-color:var(--green);width:15px;height:15px;flex-shrink:0;cursor:pointer;margin:0;
}
.coa-radio.is-active{color:var(--t1);font-weight:700}
.coa-radio:hover{color:var(--t1)}
.coa-radio-count{color:var(--t2);font-size:13px}
.coa-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--s3)}
.coa-result-bar{font-size:12px;color:var(--t3);padding:0 2px}

/* ── Company cards (v10 directory style) ─────────────────────────────────── */
#coCardGrid.co-card-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;}
#coCardGrid .co-card{
  border:1px solid rgba(255,255,255,.08);border-radius:16px;overflow:hidden;cursor:default;
  transition:border-color var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast);
  display:flex;flex-direction:column;text-decoration:none;padding:18px;gap:0;
  background:rgba(28,34,28,.72);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:0 2px 10px rgba(0,0,0,.28);
}
#coCardGrid .co-card:hover{border-color:rgba(45,212,191,.4);transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.45);}
#coCardGrid .co-logo-area{
  flex:none;width:100%;height:104px;padding:8px 6px;
  display:flex;align-items:center;justify-content:center;background:transparent;
}
#coCardGrid .co-logo-img{max-width:80%;max-height:76px;width:auto;height:auto;object-fit:contain;display:block;}
/* Near-white logos (uploaded for the dark card) go invisible on the white
   light-mode card — flagged by markWashedCompanyLogos() in app.js via
   canvas pixel sampling; forced to a dark silhouette here so they read. */
body.light #coCardGrid .co-logo-img[data-csi-washed="1"]{filter:brightness(0) saturate(100%) contrast(1.1);}
#coCardGrid .co-body{
  display:flex;flex-direction:column;gap:3px;min-width:0;
  padding-top:14px;margin-top:2px;
}
#coCardGrid .co-name{font-size:15px;font-weight:700;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0;margin:0;}
#coCardGrid .co-ticker{font-size:12px;font-weight:600;color:var(--accent,#2dd4bf);}
#coCardGrid .co-foot{
  display:flex;justify-content:center;align-items:center;
  padding-top:13px;margin-top:13px;
  border-top:1px solid rgba(255,255,255,.08);
}
#coCardGrid .co-view-link{
  display:inline-flex;align-items:center;gap:5px;
  font-size:12px;font-weight:700;color:var(--accent,#2dd4bf);
  background:none;border:none;padding:0;margin:0;font-family:inherit;cursor:pointer;
}
#coCardGrid .co-view-arrow{width:13px;height:13px;flex:none;transition:transform var(--t-fast);}
#coCardGrid .co-card:hover .co-view-arrow{transform:translateX(3px);}

@media(max-width:1100px){#coCardGrid.co-card-grid{grid-template-columns:repeat(4,1fr);}}
@media(max-width:768px){
  .coa-layout{flex-direction:column}
  .coa-sidebar{width:100%;position:static}
  .coa-seg-list{flex-direction:row;flex-wrap:wrap}
  #coCardGrid.co-card-grid{grid-template-columns:repeat(2,1fr);}
}

/* ── Dedicated full-screen ARTICLE PAGE (separate page, staging content) ──── */
.article-page[hidden]{display:none!important;}
.article-page{
  position:fixed;inset:0;z-index:1000;
  display:flex;flex-direction:column;
  background:var(--bg,#080b14);
}
.article-page-frame{flex:1;width:100%;border:0;display:block;background:#fff;}
body.light .article-page{background:#f3f4f6;}

/* ═══ Company Analysis (unified ticker page) ═══════════════════════════════ */
.ca-wrap{display:flex;flex-direction:column;gap:var(--s5)}
.ca-search{position:relative;display:flex;align-items:center;gap:var(--s3)}
.ca-search-icon{position:absolute;left:14px;color:var(--t3);pointer-events:none}
.ca-search-input{
  flex:1;height:46px;padding:0 var(--s4) 0 40px;
  background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r4);
  color:var(--t1);font-size:15px;letter-spacing:.3px;outline:none;
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.ca-search-input:focus{border-color:var(--border-green);box-shadow:0 0 0 3px var(--green-dim)}
.ca-search-input::placeholder{color:var(--t3)}
.ca-search .btn{height:46px;padding:0 var(--s6);flex-shrink:0}
.ca-status{min-height:0}
.ca-loading{color:var(--t2);font-size:14px}
.ca-error{
  padding:var(--s4);border-radius:var(--r4);
  background:var(--red-dim);border:1px solid rgba(248,113,113,.3);color:var(--t1);font-size:14px;
}

/* ── Master card — one container for all CA sections ──────────────────────── */
#caBody{min-width:0} /* flex item of .ca-wrap — without this the statements table below forces it wide instead of scrolling */
.ca-master-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r5);
  overflow:hidden;display:flex;flex-direction:column;
}
.ca-section{border-bottom:1px solid var(--border);min-width:0} /* flex item of .ca-master-card — same reason */
.ca-section:last-child{border-bottom:none}

/* ── Section: header ────────────────────────────────────────────────────── */
.ca-header{
  padding:var(--s5) var(--s6);display:flex;flex-direction:column;gap:var(--s4);
}
.ca-hd-main{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4)}
.ca-hd-name{font-size:24px;font-weight:700;color:var(--t1);margin:0;line-height:1.2}
.ca-hd-ticker{display:inline-block;margin-top:4px;font-size:13px;color:var(--t2);letter-spacing:.4px}
.ca-hd-price{text-align:right;flex-shrink:0}
.ca-hd-price-val{font-size:26px;font-weight:700;color:var(--green)}
.ca-hd-price-cur{font-size:11px;color:var(--t3);letter-spacing:.5px}
.ca-hd-meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s6);
  padding-top:var(--s4);border-top:1px solid var(--border);font-size:13px;color:var(--t2);
}
.ca-hd-meta b{color:var(--t3);font-weight:600;margin-right:6px;font-size:11px;text-transform:uppercase;letter-spacing:.5px}
.ca-hd-ir{margin-left:auto;color:var(--green);font-weight:600;text-decoration:none}
.ca-hd-ir:hover{color:var(--green-bright)}

/* key metrics strip — bottom section of .ca-header-card */
.ca-metrics{display:flex;border-top:1px solid var(--border)}
.ca-metric{
  flex:1;padding:var(--s4) var(--s5);display:flex;flex-direction:column;gap:6px;
  border-right:1px solid var(--border);
}
.ca-metric:last-child{border-right:none}
.ca-metric-label{font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.ca-metric-val{font-size:20px;font-weight:700;color:var(--t1)}
.ca-metric-val.pos{color:var(--green)}
.ca-metric-val.neg{color:var(--red)}

/* ── Section: checklists ────────────────────────────────────────────────── */
.ca-section-checklists{display:flex;align-items:flex-start}
.ca-checklist-pane{flex:1;min-width:0;display:flex;flex-direction:column}
.ca-checklist-pane+.ca-checklist-pane{border-left:1px solid var(--border)}
.ca-pane-hd{display:flex;align-items:center;justify-content:space-between;padding:var(--s3) var(--s5);border-bottom:1px solid var(--border)}
.ca-chk-hint{font-size:11px;color:var(--t3)}
.ca-chk-list{padding:0 var(--s5)}
.ca-chk-item{
  padding:var(--s3) 0;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;
}
.ca-chk-item:last-child{border-bottom:none}
.ca-chk-main{display:flex;flex-direction:column;gap:1px;min-width:0}
.ca-chk-q{display:flex;align-items:center;gap:var(--s2)}
.ca-chk-qtext{font-size:13px;font-weight:600;color:var(--t1)}
.ca-chk-help{
  width:16px;height:16px;border-radius:50%;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--bg-elevated);border:1px solid var(--border);color:var(--t3);
  font-size:10px;font-weight:700;cursor:help;
}
.ca-chk-data{font-size:12px;color:var(--t2)}
.ca-chk-data b{color:var(--t1);font-weight:700}
.ca-chk-actions{display:flex;gap:var(--s2);flex-shrink:0}
.ca-chk-btn{
  padding:4px 12px;border-radius:var(--rpill);font-size:11px;font-weight:600;cursor:pointer;
  background:var(--bg-elevated);border:1px solid var(--border);color:var(--t2);
  transition:all var(--t-fast);
}
.ca-chk-btn:hover{border-color:var(--border-hv);color:var(--t1)}
.ca-chk-btn.confirm.on{background:var(--green-dim);border-color:var(--border-green);color:var(--green)}
.ca-chk-btn.flag.on{background:var(--amber-dim);border-color:rgba(251,191,36,.4);color:var(--amber)}

/* financial statements */
.ca-statements .card-hd{padding:var(--s4) var(--s5);border-bottom:1px solid var(--border)}
.ca-stmt-empty{padding:var(--s6);color:var(--t3);font-size:14px;text-align:center}

/* news placeholder */
.ca-news .card-hd{display:flex;align-items:center;gap:var(--s3);padding:var(--s4) var(--s5);border-bottom:1px solid var(--border)}
.ca-news .card-body-text{padding:var(--s5)}
.ca-soon-badge{
  padding:3px 10px;border-radius:var(--rpill);font-size:11px;font-weight:700;letter-spacing:.4px;
  background:var(--amber-dim);border:1px solid rgba(251,191,36,.35);color:var(--amber);
}


@media(max-width:980px){
  .ca-section-checklists{flex-direction:column}
  .ca-checklist-pane+.ca-checklist-pane{border-left:none;border-top:1px solid var(--border)}
}
@media(max-width:720px){
  .ca-metrics{flex-wrap:wrap}
  .ca-metric{flex:0 0 50%;box-sizing:border-box}
  .ca-metric:nth-child(even){border-right:none}
  .ca-metric:nth-child(n+3){border-top:1px solid var(--border)}
}
@media(max-width:560px){
  .ca-hd-main{flex-direction:column}
  .ca-hd-price{text-align:left}
  .ca-hd-ir{margin-left:0}
}

.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}

/* ═══ Investment Thesis stepper (Feature 2) ════════════════════════════════ */
.ca-hd-actions{margin-left:auto;display:flex;align-items:center;gap:var(--s4)}
.ca-hd-actions .ca-hd-ir{margin-left:0}
.btn-sm{padding:6px 14px;font-size:12px}

.ca-save-wrap{position:relative;display:inline-flex}
.ca-save-btn{display:flex;align-items:center;gap:6px}
.ca-save-btn.is-saved{color:var(--green);border-color:var(--border-green)}
.ca-save-menu{
  position:absolute;top:calc(100% + 5px);left:0;z-index:300;
  background:var(--bg-card);
  border:1px solid var(--border-green);
  border-radius:var(--r3);
  padding:4px;min-width:170px;
  box-shadow:0 8px 32px rgba(0,0,0,.45),0 0 0 1px var(--border-green);
  animation:ddIn .12s ease;
}
.ca-save-item{
  display:flex;align-items:center;gap:8px;width:100%;
  padding:8px 10px;border-radius:var(--r2);
  font-size:11.5px;font-weight:600;color:var(--t2);cursor:pointer;
  transition:background var(--t-fast);
}
.ca-save-item:hover{background:var(--green-dim);color:var(--t1)}
.ca-save-item input{accent-color:var(--green);cursor:pointer}

.th-wrap{display:flex;flex-direction:column;gap:var(--s5)}
.th-empty{max-width:560px;margin:var(--s8) auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--s3)}
.th-empty-icon{color:var(--green);opacity:.9}
.th-empty-title{font-size:22px;font-weight:700;color:var(--t1);margin:0}
.th-empty-sub{font-size:14px;color:var(--t2);margin:0;line-height:1.5}
.th-empty-search{display:flex;gap:var(--s3);width:100%;max-width:420px;margin-top:var(--s2)}
.th-empty-search .ca-search-input{padding-left:var(--s4)}
.th-inprogress{width:100%;max-width:480px;margin-top:var(--s5);text-align:left}
.th-ip-title{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--t3);font-weight:600;margin-bottom:var(--s2)}
.th-ip-row{display:flex;align-items:center;gap:var(--s3);width:100%;padding:var(--s3) var(--s4);margin-bottom:6px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r4);cursor:pointer;transition:border-color var(--t-fast)}
.th-ip-row:hover{border-color:var(--border-hv)}
.th-ip-tk{font-weight:700;color:var(--t1);font-size:14px}
.th-ip-date{margin-left:auto;font-size:12px;color:var(--t3)}
.th-badge{padding:2px 9px;border-radius:var(--rpill);font-size:10px;font-weight:700;letter-spacing:.4px;background:var(--bg-elevated);color:var(--t2);border:1px solid var(--border)}
.th-badge.buy{background:var(--green-dim);color:var(--green);border-color:var(--border-green)}
.th-badge.watchlist{background:var(--amber-dim);color:var(--amber);border-color:rgba(251,191,36,.4)}
.th-badge.pass{background:var(--red-dim);color:var(--red);border-color:rgba(248,113,113,.3)}
.th-badge.wip{background:var(--blue-dim);color:var(--blue);border-color:var(--border-blue)}

/* stepper head + indicator */
.th-head{display:flex;flex-direction:column;gap:var(--s4)}
.th-co{display:flex;align-items:baseline;gap:var(--s3)}
.th-co-name{font-size:20px;font-weight:700;color:var(--t1)}
.th-co-tk{font-size:13px;color:var(--t2);letter-spacing:.4px}
.th-steps{display:flex;list-style:none;padding:0;margin:0;gap:var(--s2);counter-reset:none;flex-wrap:wrap}
.th-step{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--rpill);background:var(--bg-card);border:1px solid var(--border);cursor:pointer;transition:all var(--t-fast)}
.th-step:hover{border-color:var(--border-hv)}
.th-step-num{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;background:var(--bg-elevated);color:var(--t3);border:1px solid var(--border)}
.th-step-name{font-size:12.5px;font-weight:600;color:var(--t2);white-space:nowrap}
.th-step.active{border-color:var(--border-green);background:var(--green-dim)}
.th-step.active .th-step-num{background:var(--green);color:#04201c;border-color:var(--green)}
.th-step.active .th-step-name{color:var(--green)}
.th-step.done .th-step-num{background:var(--green-dim);color:var(--green);border-color:var(--border-green)}
.th-step.done .th-step-name{color:var(--t1)}

/* step body */
.th-body{padding:var(--s6);display:flex;flex-direction:column;gap:var(--s4)}
.th-step-hd{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--s2)}
.th-step-title{font-size:17px;font-weight:700;color:var(--t1);margin:0}
.th-step-sub{font-size:13px;color:var(--t2)}
.th-field{display:flex;flex-direction:column;gap:var(--s2)}
.th-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--t3);font-weight:600}
.th-textarea{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r4);color:var(--t1);font-size:14px;padding:var(--s3) var(--s4);font-family:inherit;resize:vertical;outline:none}
.th-textarea:focus{border-color:var(--border-green);box-shadow:0 0 0 3px var(--green-dim)}
.th-help-link{font-size:12.5px;color:var(--t3)}
.th-help-link a{color:var(--green);text-decoration:none}
.th-chk{padding:0}
.th-decision{display:flex;gap:var(--s2)}
.th-dec-btn{flex:1;padding:12px;border-radius:var(--r4);font-size:14px;font-weight:600;cursor:pointer;background:var(--bg-elevated);border:1px solid var(--border);color:var(--t2);transition:all var(--t-fast)}
.th-dec-btn:hover{border-color:var(--border-hv);color:var(--t1)}
.th-dec-btn.on.buy{background:var(--green-dim);border-color:var(--border-green);color:var(--green)}
.th-dec-btn.on.watchlist{background:var(--amber-dim);border-color:rgba(251,191,36,.4);color:var(--amber)}
.th-dec-btn.on.pass{background:var(--red-dim);border-color:rgba(248,113,113,.3);color:var(--red)}
.th-saved-note{font-size:12px;color:var(--t3);margin-left:var(--s3)}

/* nav */
.th-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}
.th-nav-right{display:flex;gap:var(--s3);margin-left:auto}

/* toast */
.th-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--bg-elevated);border:1px solid var(--border-green);color:var(--t1);padding:10px 20px;border-radius:var(--rpill);font-size:13px;font-weight:600;box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transition:all var(--t-base);z-index:9999}
.th-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

@media(max-width:640px){
  .th-steps{gap:6px}
  .th-step{padding:6px 10px}
  .th-step-name{display:none}
  .th-step.active .th-step-name{display:inline}
}

/* ═══ Dashboard Home: Investment Theses cards (Feature 5) ══════════════════ */
.dash-theses-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);margin-top:var(--s5)}
.th-card-row{display:flex;align-items:center;gap:var(--s3);width:100%;padding:var(--s3) var(--s4);margin-bottom:6px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r4);cursor:pointer;text-align:left;transition:border-color var(--t-fast)}
.th-card-row:last-child{margin-bottom:0}
.th-card-row:hover{border-color:var(--border-hv)}
.th-cr-id{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.th-cr-name{font-size:13.5px;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.th-cr-tk{font-size:11px;color:var(--t3);letter-spacing:.3px}
.th-cr-date{font-size:11px;color:var(--t3);flex-shrink:0}
.th-card-empty{padding:var(--s5) var(--s4);text-align:center;font-size:13px;color:var(--t3)}
@media(max-width:900px){ .dash-theses-grid{grid-template-columns:1fr} }

/* ═══ Multi-company comparison (Market Analysis — Feature 3) ═══════════════ */
.cmp-wrap{display:flex;flex-direction:column;gap:var(--s4)}
.cmp-add{position:relative;display:flex;align-items:center;gap:var(--s3)}
.cmp-add .ca-search-icon{position:absolute;left:14px;color:var(--t3);pointer-events:none}
.cmp-add .ca-search-input{flex:1;padding-left:40px}
.cmp-add .btn{height:46px;padding:0 var(--s6);flex-shrink:0}
.cmp-empty{padding:var(--s9) var(--s4);text-align:center;font-size:14px;color:var(--t3);background:var(--bg-card);border:1px dashed var(--border);border-radius:var(--r5)}
.cmp-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r5);background:var(--bg-card)}
.cmp-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:560px}
.cmp-table th,.cmp-table td{padding:12px 16px;text-align:right;border-bottom:1px solid var(--border)}
.cmp-table thead th{vertical-align:top;background:var(--bg-elevated);border-bottom:1px solid var(--border)}
.cmp-rowlabel{text-align:left;color:var(--t2);font-weight:500;position:sticky;left:0;background:var(--bg-card);z-index:1}
.cmp-table thead .cmp-rowlabel{background:var(--bg-elevated)}
.cmp-co{min-width:170px}
.cmp-co-name{font-size:14px;font-weight:700;color:var(--t1);text-align:left;line-height:1.25}
.cmp-co-tk{font-size:11px;color:var(--t3);text-align:left;margin-top:2px;letter-spacing:.3px}
.cmp-co-actions{display:flex;align-items:center;gap:var(--s2);margin-top:var(--s3);justify-content:flex-start}
.cmp-remove{width:24px;height:24px;border-radius:50%;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1;background:var(--bg-card);border:1px solid var(--border);color:var(--t3);cursor:pointer;transition:all var(--t-fast)}
.cmp-remove:hover{border-color:rgba(248,113,113,.4);color:var(--red)}
.cmp-val{color:var(--t1);font-variant-numeric:tabular-nums}
.cmp-val.best{color:var(--green);font-weight:700;background:var(--green-dim)}
.cmp-table tbody tr:hover td{background:var(--bg-card-hv)}
.cmp-table tbody tr:hover .cmp-rowlabel{background:var(--bg-card-hv)}
.cmp-table tbody tr:hover .cmp-val.best{background:var(--green-dim)}

/* ═══ Alert system (Feature 4) ═════════════════════════════════════════════ */
.tb-bell{position:relative;width:36px;height:36px;border-radius:var(--r4);display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;color:var(--t2);cursor:pointer;transition:all var(--t-fast)}
.tb-bell:hover{background:var(--bg-card-hv);color:var(--t1)}
.tb-bell-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--red);color:#fff;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1}

/* alert modal extras (reuses .dcf-modal*) */
.alert-modal-price{font-size:13px;color:var(--t2);margin:-4px 0 var(--s4)}
.alert-modal-price strong{color:var(--green)}
.alert-type-toggle{display:flex;gap:var(--s2);margin-bottom:var(--s4)}
.alert-type-btn{flex:1;padding:9px;border-radius:var(--r3);font-size:13px;font-weight:600;cursor:pointer;background:var(--bg-elevated);border:1px solid var(--border);color:var(--t2);transition:all var(--t-fast)}
.alert-type-btn:hover{border-color:var(--border-hv);color:var(--t1)}
.alert-type-btn.active{background:var(--green-dim);border-color:var(--border-green);color:var(--green)}
.rem-datetime{display:flex;gap:var(--s3)}
.rem-datetime>div{flex:1}
.alert-row-reminder .alert-row-tk{color:var(--t1)}

/* dashboard active-alerts card */
.dash-alerts-wrap{margin-top:var(--s5)}
.dash-alerts-count{font-size:11px;color:var(--t3);font-weight:600}
.alert-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);margin-bottom:6px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r4);cursor:pointer;transition:border-color var(--t-fast)}
.alert-row:last-child{margin-bottom:0}
.alert-row:hover{border-color:var(--border-hv)}
.alert-row.triggered{border-color:var(--border-green);background:var(--green-dim)}
.alert-row-id{display:flex;align-items:center;gap:var(--s2);min-width:120px}
.alert-row-tk{font-size:13.5px;font-weight:700;color:var(--t1)}
.alert-flag{font-size:9px;font-weight:700;letter-spacing:.4px;padding:2px 6px;border-radius:999px;background:var(--green);color:#04201c}
.alert-thesis-link{font-size:11px;color:var(--green);cursor:pointer}
.alert-row-cond{flex:1;font-size:12.5px;color:var(--t2)}
.alert-row-price{font-size:13px;font-weight:600;color:var(--t1);font-variant-numeric:tabular-nums}
.alert-row-x{width:24px;height:24px;border-radius:50%;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;background:transparent;border:1px solid var(--border);color:var(--t3);cursor:pointer;transition:all var(--t-fast)}
.alert-row-x:hover{border-color:rgba(248,113,113,.4);color:var(--red)}

/* ══ Staging Audit V1 additions ═══════════════════════════════════════════ */
/* Sidebar sub-item rendered as a link (Build Custom Supply Chain — D7) */
.sub-item-link{text-decoration:none}

/* Company Analysis — fiscal.ai description moved up under the header (E6) */
/* Full card width — the old max-width:78ch column read as broken (audit E2) */
.ca-hd-desc{margin:var(--s3) 0 0;font-size:13.5px;line-height:1.6;color:var(--t2)}

/* Company Analysis — embedded Financial Dashboard section (E5) */
.ca-fin-dash .fin-app-wrap{margin-top:var(--s3)}

/* Investment Thesis — Step 4 inline Reverse DCF calculator (audit E3) */
.th-dcf-calc{
  display:grid;grid-template-columns:1fr 1.3fr;gap:var(--s5);
  background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r4);
  padding:var(--s5);margin-bottom:var(--s4);
}
@media(max-width:1000px){.th-dcf-calc{grid-template-columns:1fr}}
.th-dcf-fund{font-size:12px;color:var(--t3);margin-bottom:var(--s4)}
.th-dcf-inputs .dcfv4-field{gap:5px}
.th-dcf-inputs #thDcfSave{margin-top:var(--s4)}
.th-dcf-inputs .dcf-override-row{padding:0 0 4px;border-bottom:none;align-items:flex-start}
.th-dcf-out{display:flex;flex-direction:column;gap:10px}
.th-dcf-out .dcfv4-stat{padding:12px 14px}
.th-dcf-out .dcfv4-stat-value{font-size:20px}
.th-dcf-out .dcfv4-stats{grid-template-columns:repeat(3,1fr)}
@media(max-width:560px){.th-dcf-out .dcfv4-stats{grid-template-columns:1fr}}

/* Dashboard Home — per-widget show/hide (B) */
.dcard.widget-hidden{display:none}
.cp-row-label-sub{font-weight:500;color:var(--t2)}

/* ═══ v1.68 additions ═══════════════════════════════════════════════════════
   Fuzzy-search autocomplete · portfolio shares · KPI info · Compare charts · saved-only preset */

/* Research-article ticker chip */
.rp-tag-tk{font-weight:700;letter-spacing:.2px}

/* Company autocomplete dropdown (Compare + Company Analysis search) */
.csi-ac-menu{position:absolute;z-index:2147483000;max-height:288px;overflow-y:auto;
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r4);
  box-shadow:0 12px 34px rgba(0,0,0,.35);padding:4px}
.csi-ac-item{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;
  padding:7px 10px;border:0;background:transparent;border-radius:var(--r3);cursor:pointer;
  color:var(--t1);font-family:var(--font);font-size:13px}
.csi-ac-item:hover,.csi-ac-item.active{background:rgba(45,212,191,.12)}
.csi-ac-tk{font-weight:700;color:var(--green);min-width:52px;font-size:12px}
.csi-ac-nm{color:var(--t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Portfolio shares input on saved-company cards */
.dco-shares{display:flex;align-items:center;gap:6px;margin-top:8px;padding-top:8px;
  border-top:1px dashed var(--border)}
.dco-shares-lbl{font-size:11px;color:var(--t3);font-weight:600}
.dco-shares-input{width:64px;padding:3px 6px;font-size:12px;font-family:var(--font);
  background:transparent;border:1px solid var(--border);border-radius:var(--r2);color:var(--t1)}
.dco-shares-input:focus{outline:none;border-color:var(--green)}
.dco-shares-val{margin-left:auto;font-size:12px;font-weight:700;color:var(--green)}

/* KPI info marker */
.kpi-info{font-size:10px;color:var(--t3);cursor:help;vertical-align:top}

/* Saved-only preset button in customize panel */
.cp-preset{width:100%;margin-top:6px;padding:7px 10px;font-size:12px;font-weight:600;
  font-family:var(--font);background:rgba(45,212,191,.10);color:var(--green);
  border:1px solid rgba(45,212,191,.3);border-radius:var(--r3);cursor:pointer}
.cp-preset:hover{background:rgba(45,212,191,.18)}

/* Compare charts */
.cmp-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:16px}
.cmp-chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r4);padding:14px}
.cmp-chart-hd{font-size:12px;font-weight:700;color:var(--t1);margin-bottom:10px;display:flex;
  align-items:baseline;gap:8px;flex-wrap:wrap}
.cmp-chart-hint{font-size:10px;font-weight:500;color:var(--t3)}
.cmp-donut-wrap{display:flex;align-items:center;gap:12px}
.cmp-donut{width:104px;height:104px;flex-shrink:0}
.cmp-legend{display:flex;flex-direction:column;gap:5px}
.cmp-leg{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--t2)}
.cmp-leg i{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.cmp-bar-row{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:8px;margin-bottom:7px}
.cmp-bar-lbl{font-size:11px;font-weight:700;color:var(--t2)}
.cmp-bar-track{height:10px;background:rgba(140,150,170,.14);border-radius:6px;overflow:hidden}
.cmp-bar-fill{display:block;height:100%;border-radius:6px;min-width:2px}
.cmp-bar-fill.neg{opacity:.55}
.cmp-bar-val{font-size:11px;font-weight:600;color:var(--t1);text-align:right}
.cmp5{display:flex;gap:14px;align-items:flex-end;justify-content:space-around;min-height:96px}
.cmp5-group{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1}
.cmp5-bars{display:flex;align-items:flex-end;gap:3px;height:74px}
.cmp5-bar{width:8px;border-radius:2px 2px 0 0;min-height:2px}
.cmp5-lbl{font-size:11px;font-weight:700;color:var(--t2)}
/* Clickable metric rows */
.cmp-rowlabel-click{cursor:pointer}
.cmp-rowlabel-click:hover{color:var(--green)}
.cmp-rowlabel-click.active{color:var(--green);font-weight:700}
