/* ── Variables ── */
:root {
  --green:    #7BB290;
  --green2:   #4ab78f;
  --green-d:  rgba(123,178,144,.10);
  --green-b:  rgba(123,178,144,.28);
  --red:      #e05f5f;
  --amber:    #f0a054;
  --bg:       #0a0f0b;
  --hdr-bg:   #343a40;
  --glass:    rgba(255,255,255,.04);
  --glass-b:  rgba(255,255,255,.09);
  --text:     #e8f0eb;
  --muted:    rgba(232,240,235,.55);
  --dim:      rgba(232,240,235,.28);
  --r:        16px;
  --r-sm:     10px;
  --r-pill:   100px;
  --shadow:   0 8px 32px rgba(0,0,0,.36);
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:'Space Grotesk',system-ui,sans-serif;
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
  line-height:1.6;
  overflow-x:hidden;
}
a { color:inherit; text-decoration:none; }
strong { font-weight:600; }

/* ── Subtle grid background ── */
body::before {
  content:'';
  position:fixed;inset:0;z-index:0;
  background-image:
    linear-gradient(rgba(123,178,144,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(123,178,144,.025) 1px, transparent 1px);
  background-size:56px 56px;
  pointer-events:none;
}

/* ── Header — glassmorphism SaaS ── */
.hdr {
  background:rgba(10,15,11,.88);
  backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  padding:11px 28px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  position:sticky;top:0;z-index:200;
  border-bottom:1px solid rgba(123,178,144,.14);
  box-shadow:0 1px 40px rgba(0,0,0,.55), 0 0 0 0.5px rgba(123,178,144,.07),
             inset 0 1px 0 rgba(123,178,144,.06);
}
.hdr-brand {
  display:flex;align-items:center;gap:10px;
  text-decoration:none;flex-shrink:0;
  transition:opacity .18s;
}
.hdr-brand:hover { opacity:.85; }
.hdr-logo-img { height:32px;display:block;flex-shrink:0; }
.hdr-radar-sub {
  padding:2px 9px;border-radius:var(--r-pill);
  background:rgba(123,178,144,.09);border:1px solid rgba(123,178,144,.22);
  font-size:.57rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--green);white-space:nowrap;align-self:center;
}
.hdr-pill {
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 10px;border-radius:var(--r-pill);
  background:rgba(123,178,144,.07);border:1px solid rgba(123,178,144,.18);
  font-size:.6rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;
  color:rgba(123,178,144,.75);white-space:nowrap;
}
.hdr-pill::before {
  content:'';width:5px;height:5px;border-radius:50%;
  background:var(--green);flex-shrink:0;
  animation:blink 2.4s ease-in-out infinite;
}
.hdr-nav { display:flex;gap:8px;align-items:center; }
.hdr-btn {
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 18px;border-radius:var(--r-pill);
  font-family:inherit;font-size:.78rem;font-weight:600;
  cursor:pointer;transition:transform .18s,box-shadow .18s;
  text-decoration:none;border:none;
}
.hdr-btn.primary {
  background:var(--green);color:#0a1a10;
  box-shadow:0 4px 16px rgba(123,178,144,.28);
}
.hdr-btn.primary:hover { transform:translateY(-1px);box-shadow:0 6px 20px rgba(123,178,144,.45); }
.hdr-btn.ghost {
  background:rgba(255,255,255,.06);color:var(--text);
  border:1px solid rgba(255,255,255,.12);
}
.hdr-btn.ghost:hover { background:rgba(255,255,255,.10); }
@media (max-width:640px) {
  .hdr { padding:10px 16px; }
  .hdr-pill { display:none; }
  .hdr-logo-img { height:26px; }
}

/* ── Main layout ── */
.main { position:relative;z-index:1; }

/* ── Hero ── */
.hero {
  padding:72px 24px 64px;
  text-align:center;
  background:radial-gradient(ellipse 70% 50% at 50% 0%, rgba(74,183,143,.07) 0%, transparent 70%);
}
.hero-eyebrow {
  font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--green);margin-bottom:16px;
}
.hero h1 {
  font-size:clamp(2rem,5vw,3rem);font-weight:700;letter-spacing:-.03em;
  line-height:1.1;margin-bottom:14px;
  background:linear-gradient(135deg,var(--text) 0%,var(--green) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.hero-sub {
  font-size:1.05rem;color:var(--muted);max-width:480px;margin:0 auto 10px;line-height:1.7;
}
.hero-disclaimer {
  font-size:.72rem;color:var(--dim);margin-bottom:36px;
}
.hero-actions {
  display:flex;gap:12px;justify-content:center;flex-wrap:wrap;
}
.btn {
  display:inline-flex;align-items:center;gap:8px;
  border-radius:var(--r-pill);padding:12px 24px;
  font-family:inherit;font-size:.88rem;font-weight:600;
  cursor:pointer;transition:transform .18s,box-shadow .18s;
  text-decoration:none;border:none;
}
.btn-green {
  background:var(--green);color:#0a1a10;
  box-shadow:0 6px 20px rgba(123,178,144,.28);
}
.btn-green:hover { transform:translateY(-2px);box-shadow:0 10px 28px rgba(123,178,144,.42); }
.btn-ghost {
  background:var(--glass);color:var(--text);
  border:1px solid var(--glass-b);backdrop-filter:blur(8px);
}
.btn-ghost:hover { background:rgba(255,255,255,.07); }

/* ── Section ── */
.section { padding:64px 24px;max-width:900px;margin:0 auto; }
.section-hdr {
  display:flex;align-items:baseline;justify-content:space-between;
  flex-wrap:wrap;gap:12px;margin-bottom:8px;
}
.section-title { font-size:1.25rem;font-weight:600; }
.section-meta { font-size:.75rem;color:var(--dim); }
.section-sub { font-size:.83rem;color:var(--muted);margin-bottom:32px; }

/* ── Status bar ── */
.status-bar {
  background:var(--glass);border:1px solid var(--glass-b);border-radius:var(--r);
  padding:14px 20px;margin-bottom:28px;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  font-size:.78rem;color:var(--muted);
}
.status-dot { width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0;animation:blink 2.4s ease-in-out infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.25} }

/* ── Stock cards ── */
.cards { display:flex;flex-direction:column;gap:16px; }

.stock-card {
  background:var(--glass);border:1px solid var(--glass-b);border-radius:var(--r);
  padding:24px 26px;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  transition:border-color .2s,box-shadow .2s;
}
.stock-card:hover {
  border-color:var(--green-b);
  box-shadow:0 4px 24px rgba(123,178,144,.08);
}

.card-top {
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  margin-bottom:6px;
}
.card-identity { flex:1;min-width:0; }
.card-ticker {
  font-size:1.2rem;font-weight:700;letter-spacing:.04em;color:var(--text);
}
.card-name {
  font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  max-width:260px;margin-top:2px;
}
.card-score-wrap { text-align:right;flex-shrink:0; }
.card-score {
  font-size:2rem;font-weight:700;line-height:1;
  background:linear-gradient(135deg,var(--green) 0%,var(--green2) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.card-score-lbl { font-size:.62rem;color:var(--dim);letter-spacing:.08em;text-transform:uppercase;margin-top:1px; }

.verdict-pill {
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 12px;border-radius:var(--r-pill);
  font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  margin-bottom:10px;
}
.verdict-strong { background:rgba(74,183,143,.15);color:var(--green2);border:1px solid rgba(74,183,143,.3); }
.verdict-watch  { background:rgba(123,178,144,.10);color:var(--green);border:1px solid var(--green-b); }
.verdict-mixed  { background:rgba(240,160,84,.10);color:var(--amber);border:1px solid rgba(240,160,84,.28); }
.verdict-weak   { background:rgba(224,95,95,.08);color:var(--red);border:1px solid rgba(224,95,95,.22); }

.card-thesis {
  font-size:.81rem;color:var(--muted);line-height:1.65;margin-bottom:18px;
  font-style:italic;
}

/* ── Factor bars ── */
.factor-bars { display:flex;flex-direction:column;gap:7px;margin-bottom:20px; }
.fb-row { display:grid;grid-template-columns:110px 1fr 36px;align-items:center;gap:10px; }
.fb-label { font-size:.7rem;color:var(--muted);letter-spacing:.04em; }
.fb-track {
  height:5px;border-radius:3px;
  background:rgba(255,255,255,.06);overflow:hidden;
}
.fb-fill {
  height:100%;border-radius:3px;
  background:linear-gradient(90deg,var(--green) 0%,var(--green2) 100%);
  transition:width .6s cubic-bezier(.4,0,.2,1);
}
.fb-fill.medium { background:linear-gradient(90deg,var(--amber) 0%,#f5c875 100%); }
.fb-fill.low    { background:linear-gradient(90deg,var(--red) 0%,#e88080 100%); }
.fb-val { font-size:.7rem;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums; }

/* ── Key metrics ── */
.key-metrics {
  display:flex;flex-wrap:wrap;gap:8px 20px;
  margin-bottom:18px;
  padding:12px 0;
  border-top:1px solid var(--glass-b);
  border-bottom:1px solid var(--glass-b);
}
.km-item { font-size:.74rem; }
.km-label { color:var(--dim);margin-right:4px; }
.km-val { color:var(--text);font-weight:500; }
.km-val.up   { color:var(--green); }
.km-val.down { color:var(--red); }

/* ── Card footer ── */
.card-footer {
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:10px;
}
.card-source { font-size:.66rem;color:var(--dim); }
.card-actions { display:flex;gap:8px;flex-wrap:wrap; }

.card-btn {
  display:inline-flex;align-items:center;gap:5px;
  padding:6px 14px;border-radius:var(--r-pill);
  font-family:inherit;font-size:.74rem;font-weight:600;
  cursor:pointer;transition:background .18s,transform .18s;
  text-decoration:none;border:none;
}
.card-btn.details {
  background:var(--glass);color:var(--text);
  border:1px solid var(--glass-b);
}
.card-btn.details:hover { background:rgba(255,255,255,.09); }
.card-btn.fvc {
  background:var(--green-d);color:var(--green);
  border:1px solid var(--green-b);
}
.card-btn.fvc:hover { background:rgba(123,178,144,.18); }
.card-btn.coffee {
  background:rgba(240,160,84,.10);color:var(--amber);
  border:1px solid rgba(240,160,84,.25);
}
.card-btn.coffee:hover { background:rgba(240,160,84,.18); }

/* ── Confidence badge ── */
.conf-badge {
  display:inline-flex;align-items:center;gap:4px;
  font-size:.64rem;padding:2px 9px;border-radius:var(--r-pill);
  letter-spacing:.06em;text-transform:uppercase;
}
.conf-high   { background:rgba(123,178,144,.12);color:var(--green);border:1px solid var(--green-b); }
.conf-medium { background:rgba(240,160,84,.10);color:var(--amber);border:1px solid rgba(240,160,84,.25); }
.conf-low    { background:rgba(224,95,95,.08);color:var(--red);border:1px solid rgba(224,95,95,.2); }

/* ── Loading & empty states ── */
.state-box {
  text-align:center;padding:64px 24px;
  background:var(--glass);border:1px solid var(--glass-b);border-radius:var(--r);
}
.state-box p { color:var(--muted);font-size:.88rem;margin-top:12px;line-height:1.7; }
.spinner {
  width:36px;height:36px;border-radius:50%;
  border:3px solid var(--glass-b);border-top-color:var(--green);
  animation:spin .8s linear infinite;margin:0 auto 16px;
}
@keyframes spin { to { transform:rotate(360deg); } }

/* ── Modal ── */
.modal-overlay {
  position:fixed;inset:0;z-index:500;
  background:rgba(0,0,0,.7);backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;
  padding:20px;opacity:0;pointer-events:none;transition:opacity .25s;
}
.modal-overlay.open { opacity:1;pointer-events:all; }

.modal {
  background:#111a14;border:1px solid var(--glass-b);border-radius:var(--r);
  width:100%;max-width:640px;max-height:86vh;overflow-y:auto;
  padding:28px;position:relative;
  box-shadow:0 24px 80px rgba(0,0,0,.6);
  transform:translateY(12px);transition:transform .25s;
}
.modal-overlay.open .modal { transform:translateY(0); }

.modal-close {
  position:absolute;top:16px;right:16px;
  width:28px;height:28px;border-radius:50%;
  background:var(--glass);border:1px solid var(--glass-b);
  color:var(--muted);font-size:1rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.modal-close:hover { background:rgba(255,255,255,.10); }

.modal h2 { font-size:1.1rem;font-weight:700;margin-bottom:4px; }
.modal .modal-sub { font-size:.78rem;color:var(--muted);margin-bottom:20px; }

.modal-section { margin-bottom:20px; }
.modal-section-title {
  font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--green);margin-bottom:10px;padding-bottom:6px;
  border-bottom:1px solid var(--glass-b);
}
.modal-row {
  display:flex;justify-content:space-between;align-items:center;
  padding:5px 0;font-size:.8rem;color:var(--muted);
  border-bottom:1px solid rgba(255,255,255,.03);
}
.modal-row:last-child { border-bottom:none; }
.modal-row .mr-label { flex:1; }
.modal-row .mr-val { font-weight:500;color:var(--text);font-variant-numeric:tabular-nums;text-align:right; }
.modal-row .mr-score {
  width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.68rem;font-weight:700;margin-left:10px;flex-shrink:0;
}
.modal-warn {
  background:rgba(240,160,84,.08);border:1px solid rgba(240,160,84,.2);
  border-radius:var(--r-sm);padding:10px 14px;
  font-size:.78rem;color:var(--amber);margin-top:10px;line-height:1.55;
}
.modal-penalty {
  background:rgba(224,95,95,.07);border:1px solid rgba(224,95,95,.2);
  border-radius:var(--r-sm);padding:8px 12px;margin:4px 0;
  font-size:.78rem;color:var(--red);
}

/* ── Footer ── */
.footer {
  border-top:1px solid var(--glass-b);
  padding:32px 24px;margin-top:48px;
  background:rgba(10,15,11,.6);
}
.footer-inner {
  max-width:900px;margin:0 auto;
  display:flex;justify-content:space-between;align-items:flex-start;
  flex-wrap:wrap;gap:16px;
}
.footer-brand { font-size:.75rem;color:var(--dim);line-height:1.7; }
.footer-brand a { color:var(--green); }
.footer-right { font-size:.7rem;color:var(--dim);max-width:400px;line-height:1.7;text-align:right; }

/* ── Hero stats panel ── */
.hero-stats {
  display:flex;flex-wrap:wrap;gap:10px;justify-content:center;
  margin-top:36px;
}
.hero-stat {
  background:var(--glass);border:1px solid var(--glass-b);border-radius:var(--r);
  padding:14px 22px;min-width:130px;text-align:center;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.hero-stat-val {
  font-size:1.4rem;font-weight:700;line-height:1;margin-bottom:4px;
  background:linear-gradient(135deg,var(--text) 0%,var(--green) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.hero-stat-label {
  font-size:.64rem;color:var(--dim);letter-spacing:.1em;text-transform:uppercase;
}

/* ── How it works section ── */
.hiw-grid {
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:14px;margin-top:28px;
}
.hiw-card {
  background:var(--glass);border:1px solid var(--glass-b);border-radius:var(--r);
  padding:20px 22px;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  transition:border-color .2s;
}
.hiw-card:hover { border-color:var(--green-b); }
.hiw-icon {
  font-size:1.5rem;margin-bottom:10px;line-height:1;
}
.hiw-title {
  font-size:.85rem;font-weight:700;color:var(--green);margin-bottom:6px;
}
.hiw-weight {
  display:inline-block;font-size:.6rem;font-weight:600;
  background:var(--green-d);color:var(--green);border:1px solid var(--green-b);
  border-radius:var(--r-pill);padding:2px 8px;margin-bottom:8px;
  letter-spacing:.08em;text-transform:uppercase;
}
.hiw-desc {
  font-size:.77rem;color:var(--muted);line-height:1.6;
}
.hiw-note {
  margin-top:20px;text-align:center;font-size:.73rem;color:var(--dim);
}

/* ── Transparency panel ── */
.tp-panel {
  background:var(--glass);border:1px solid var(--glass-b);border-radius:var(--r);
  padding:24px 28px;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.tp-title {
  font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--green);margin-bottom:14px;padding-bottom:8px;
  border-bottom:1px solid var(--glass-b);
}
.tp-row {
  display:flex;gap:14px;align-items:flex-start;
  padding:7px 0;border-bottom:1px solid rgba(255,255,255,.03);
  font-size:.8rem;
}
.tp-row:last-child { border-bottom:none; }
.tp-dot {
  width:6px;height:6px;border-radius:50%;background:var(--green);
  flex-shrink:0;margin-top:6px;
}
.tp-text { color:var(--muted);line-height:1.6; }
.tp-text strong { color:var(--text);font-weight:600; }

/* ── Modal raw financials ── */
.fin-grid {
  display:grid;grid-template-columns:1fr 1fr;gap:4px 20px;margin-top:2px;
}
.fin-item {
  display:flex;justify-content:space-between;align-items:center;
  font-size:.77rem;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.03);
}
.fin-label { color:var(--dim); }
.fin-val { color:var(--text);font-weight:500;font-variant-numeric:tabular-nums; }

/* ── Modal warning / missing ── */
.modal-missing {
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-sm);padding:10px 14px;margin:4px 0;
  font-size:.78rem;color:var(--dim);
}

/* ── Filter bar ── */
.filter-bar {
  background:var(--glass);border:1px solid var(--glass-b);border-radius:var(--r);
  padding:16px 20px;margin-bottom:20px;
}
.filter-row {
  display:flex;flex-wrap:wrap;gap:10px;align-items:center;
}
.filter-select, .filter-input {
  background:rgba(255,255,255,.06);border:1px solid var(--glass-b);
  border-radius:var(--r-sm);color:var(--text);
  font-family:inherit;font-size:.78rem;padding:7px 12px;
  cursor:pointer;min-width:130px;
  appearance:none;-webkit-appearance:none;
}
.filter-select:focus, .filter-input:focus {
  outline:none;border-color:var(--green-b);
}
.filter-input { min-width:160px; }
.filter-input::placeholder { color:var(--dim); }
.filter-btn {
  display:inline-flex;align-items:center;gap:5px;
  padding:7px 16px;border-radius:var(--r-pill);
  font-family:inherit;font-size:.78rem;font-weight:600;
  cursor:pointer;border:none;transition:background .18s;
}
.filter-btn.apply {
  background:var(--green);color:#0a1a10;
}
.filter-btn.apply:hover { background:var(--green2); }
.filter-btn.universe {
  background:var(--glass);color:var(--muted);
  border:1px solid var(--glass-b);
}
.filter-btn.universe:hover { background:rgba(255,255,255,.09); }
.filter-label {
  font-size:.68rem;color:var(--dim);
  display:block;margin-bottom:2px;letter-spacing:.06em;text-transform:uppercase;
}
.filter-group { display:flex;flex-direction:column;gap:2px; }
.filter-row-sources {
  margin-top:10px;padding-top:10px;
  border-top:1px solid var(--glass-b);
}
.filter-hint {
  font-size:.66rem;color:var(--dim);margin-top:8px;
  font-style:italic;
}

/* ── Universe modal ── */
.univ-modal {
  background:#111a14;border:1px solid var(--glass-b);border-radius:var(--r);
  width:100%;max-width:680px;max-height:88vh;overflow-y:auto;
  padding:28px;position:relative;
  box-shadow:0 24px 80px rgba(0,0,0,.6);
  transform:translateY(12px);transition:transform .25s;
}
.modal-overlay.open .univ-modal { transform:translateY(0); }

.univ-stat-grid {
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:12px;margin:16px 0;
}
.univ-stat-card {
  background:var(--glass);border:1px solid var(--glass-b);border-radius:var(--r-sm);
  padding:14px 16px;
}
.univ-stat-val {
  font-size:1.3rem;font-weight:700;
  background:linear-gradient(135deg,var(--text) 0%,var(--green) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  margin-bottom:4px;
}
.univ-stat-label { font-size:.65rem;color:var(--dim);letter-spacing:.08em;text-transform:uppercase; }

.univ-progress-wrap { margin:16px 0; }
.univ-progress-label {
  display:flex;justify-content:space-between;
  font-size:.75rem;color:var(--muted);margin-bottom:6px;
}
.univ-progress-bar {
  height:8px;background:rgba(255,255,255,.06);border-radius:4px;overflow:hidden;
}
.univ-progress-fill {
  height:100%;border-radius:4px;
  background:linear-gradient(90deg,var(--green) 0%,var(--green2) 100%);
  transition:width .6s ease;
}

.univ-breakdown-grid {
  display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:12px 0;
}
.univ-breakdown-row {
  display:flex;justify-content:space-between;
  font-size:.78rem;padding:5px 10px;
  background:var(--glass);border-radius:6px;
}
.univ-breakdown-label { color:var(--muted); }
.univ-breakdown-val   { font-weight:600;color:var(--text); }

/* ── Badges ── */
.badge {
  display:inline-flex;align-items:center;gap:3px;
  padding:2px 8px;border-radius:var(--r-pill);
  font-size:.62rem;font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;
}
.badge-green  { background:rgba(123,178,144,.18);color:var(--green); border:1px solid var(--green-b); }
.badge-amber  { background:rgba(240,160,84,.12); color:var(--amber); border:1px solid rgba(240,160,84,.25); }
.badge-red    { background:rgba(224,95,95,.12);  color:var(--red);   border:1px solid rgba(224,95,95,.25); }
.badge-blue   { background:rgba(100,160,240,.10);color:#90b8f0;      border:1px solid rgba(100,160,240,.2); }
.badge-dim    { background:var(--glass);color:var(--dim);             border:1px solid var(--glass-b); }
.card-badges  { display:flex;flex-wrap:wrap;gap:4px;margin-top:6px; }

/* ── Factor family row ── */
.fam-grid { display:flex;flex-direction:column;gap:6px;margin-top:10px; }
.fam-row {
  display:grid;grid-template-columns:160px 1fr 42px;align-items:center;gap:8px;
  font-size:.73rem;
}
.fam-bar-wrap { background:rgba(255,255,255,.06);border-radius:100px;height:5px;overflow:hidden; }
.fam-bar-fill { height:100%;border-radius:100px;background:var(--green);transition:width .3s; }
.fam-score { text-align:right;font-weight:600;font-size:.73rem; }
.fam-missing { color:var(--dim);font-style:italic; }

/* ── Source confidence bar ── */
.src-conf-bar {
  display:flex;align-items:center;gap:8px;font-size:.72rem;margin-top:4px;
}
.src-conf-fill { flex:1;background:rgba(255,255,255,.06);border-radius:100px;height:4px;overflow:hidden; }
.src-conf-inner { height:100%;border-radius:100px;transition:width .3s; }

/* ── Alpha factor audit table ── */
.factor-audit { width:100%;border-collapse:collapse;font-size:.72rem;margin-top:8px; }
.factor-audit th {
  text-align:left;padding:4px 8px;color:var(--dim);
  font-weight:500;font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;
  border-bottom:1px solid var(--glass-b);
}
.factor-audit td { padding:5px 8px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:top; }
.factor-audit tr.factor-missing td { color:var(--dim);font-style:italic; }
.factor-audit tr.factor-ok td:first-child { color:var(--text); }
.factor-audit .fa-score { font-weight:700; }
.factor-audit .fa-basis { color:var(--dim);font-size:.65rem; }

/* ── Reconciliation event row ── */
.recon-events { display:flex;flex-direction:column;gap:4px;margin-top:6px; }
.recon-event {
  padding:6px 10px;border-radius:8px;font-size:.72rem;
  border-left:3px solid;
}
.recon-event.error   { background:rgba(224,95,95,.08); border-color:var(--red);   color:var(--text); }
.recon-event.warning { background:rgba(240,160,84,.08);border-color:var(--amber); color:var(--text); }
.recon-event.info    { background:var(--glass);         border-color:var(--green-b);color:var(--muted); }

/* ── Data mode badge on card ── */
.card-mode-evidence { color:var(--green);  font-size:.64rem;font-weight:600; }
.card-mode-momentum { color:var(--amber);  font-size:.64rem;font-weight:600; }

/* ── Stats panel – new layout ── */
.stats-panel {
  display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:12px;margin-top:24px;
}
.stat-card {
  background:var(--glass);border:1px solid var(--glass-b);border-radius:var(--r-sm);
  padding:14px 16px;text-align:center;
}
.stat-card-val   { font-size:1.5rem;font-weight:700;color:var(--green);line-height:1.1; }
.stat-card-label { font-size:.67rem;color:var(--dim);margin-top:3px;text-transform:uppercase;letter-spacing:.05em; }
.stat-card-note  { font-size:.62rem;color:var(--dim);margin-top:2px;font-style:italic; }

/* ── Responsive ── */
@media (max-width:640px) {
  .hero { padding:48px 16px 40px; }
  .section { padding:40px 16px; }
  .stock-card { padding:18px; }
  .card-top { flex-direction:column;gap:4px; }
  .card-score-wrap { display:flex;align-items:center;gap:10px; }
  .card-score { font-size:1.5rem; }
  .fb-row { grid-template-columns:90px 1fr 30px; }
  .footer-inner { flex-direction:column; }
  .footer-right { text-align:left; }
}

/* ── Fair Value Model Stack ── */
.fv-consensus {
  background:rgba(123,178,144,.08);border:1px solid rgba(123,178,144,.2);
  border-radius:8px;padding:12px 14px;margin:8px 0 12px;
}
.fv-range-row { display:flex;justify-content:space-between;font-size:.8rem;margin-bottom:4px; }
.fv-bear { color:var(--red); }
.fv-bull { color:var(--green); }
.fv-base { font-size:.9rem; }
.fv-meta { font-size:.72rem;color:var(--dim);margin-top:4px; }
.fv-note { font-size:.65rem;color:var(--dim);margin:6px 0 0;line-height:1.5; }
.fv-table { margin:8px 0; }
.fv-table-header,.fv-model-row {
  display:grid;grid-template-columns:1fr 160px 36px;align-items:center;
  gap:4px;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.04);
}
.fv-family-group { margin-bottom:8px; }
.fv-family-label { font-size:.65rem;text-transform:uppercase;letter-spacing:.07em;color:var(--dim);padding:6px 0 2px;border-bottom:1px solid rgba(255,255,255,.08); }
.fv-model-name  { font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.fv-model-vals  { display:flex;gap:6px;justify-content:flex-end;font-size:.72rem;font-family:monospace; }
.fv-bear-val    { color:var(--red);min-width:50px;text-align:right; }
.fv-base-val    { min-width:54px;text-align:right; }
.fv-bull-val    { color:var(--green);min-width:50px;text-align:right; }
.fv-conf        { font-size:.66rem;text-align:center;border-radius:4px;padding:1px 4px; }
.fv-conf-hi     { background:rgba(123,178,144,.18);color:var(--green); }
.fv-conf-med    { background:rgba(240,160,84,.15);color:var(--amber); }
.fv-conf-lo     { background:rgba(255,255,255,.07);color:var(--dim); }
.fv-skipped     { margin-top:8px;border-radius:6px;background:rgba(255,255,255,.04);padding:6px 8px; }

/* ══════════════════════════════════════════════════════════════════════════════
   DATA COMMAND CENTER
   ══════════════════════════════════════════════════════════════════════════════ */

/* ── Command Center shell ── */
.cc-section {
  background:rgba(255,255,255,.025);
  border:1px solid rgba(123,178,144,.15);
  border-radius:var(--r);
  padding:28px 28px 24px;
  margin:0 0 32px;
}
.cc-terminal-header {
  display:flex;align-items:center;gap:10px;
  font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--green);margin-bottom:22px;
}
.cc-terminal-header::before {
  content:'';display:inline-block;width:8px;height:8px;border-radius:50%;
  background:var(--green);box-shadow:0 0 6px var(--green);
  animation:ccBlink 2.4s ease-in-out infinite;
}
@keyframes ccBlink { 0%,100%{opacity:1} 50%{opacity:.3} }

/* ── 6-col metric grid ── */
.cc-metrics {
  display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:20px;
}
.cc-metric {
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-sm);padding:14px 16px;
}
.cc-metric-val   { font-size:1.4rem;font-weight:700;color:var(--green);line-height:1.1; }
.cc-metric-label { font-size:.62rem;color:var(--dim);margin-top:3px;text-transform:uppercase;letter-spacing:.06em; }
.cc-metric-note  { font-size:.6rem;color:var(--dim);margin-top:2px;font-style:italic;opacity:.75; }

/* ── Two-panel row (pipeline + activity) ── */
.cc-panels { display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:4px; }
.cc-panel {
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-sm);padding:14px 16px;
}
.cc-panel-title {
  font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;
  color:var(--muted);margin-bottom:10px;
}
.cc-row   { display:flex;justify-content:space-between;align-items:baseline;padding:3px 0;font-size:.78rem; }
.cc-row + .cc-row { border-top:1px solid rgba(255,255,255,.04); }
.cc-row-key { color:var(--muted);flex-shrink:0; }
.cc-row-val { color:var(--text);text-align:right;margin-left:8px;word-break:break-all; }

/* ── Progress bar ── */
.cc-progress-wrap  { margin:10px 0 12px; }
.cc-progress-track {
  background:rgba(255,255,255,.07);border-radius:4px;height:6px;
  overflow:hidden;position:relative;
}
.cc-progress-fill  {
  height:100%;border-radius:4px;background:var(--green);
  transition:width .6s ease;
}

/* ── Status chips ── */
.cc-chip {
  display:inline-block;font-size:.62rem;font-weight:600;
  padding:1px 6px;border-radius:4px;vertical-align:middle;
}
.cc-chip-green  { background:rgba(123,178,144,.18);color:var(--green); }
.cc-chip-amber  { background:rgba(240,160,84,.15);color:var(--amber); }
.cc-chip-red    { background:rgba(224,95,95,.12);color:var(--red); }
.cc-chip-blue   { background:rgba(100,160,220,.12);color:#7ab0e0; }
.cc-chip-dim    { background:rgba(255,255,255,.06);color:var(--dim); }

/* ── Inline status dot ── */
.cc-dot {
  display:inline-block;width:6px;height:6px;border-radius:50%;
  vertical-align:middle;margin-right:4px;
}
.cc-dot-green { background:var(--green); }
.cc-dot-amber { background:var(--amber); }
.cc-dot-red   { background:var(--red); }
.cc-dot-dim   { background:var(--dim); }

/* ══════════════════════════════════════════════════════════════════════════════
   SOURCE STATUS MATRIX
   ══════════════════════════════════════════════════════════════════════════════ */

.src-matrix-section {
  margin:0 0 32px;
}
.src-matrix-section .section-hdr { margin-bottom:4px; }

.src-group        { margin-bottom:20px; }
.src-group-header {
  display:flex;align-items:center;gap:10px;padding:8px 0;
  cursor:pointer;user-select:none;border-bottom:1px solid rgba(255,255,255,.07);
  margin-bottom:10px;
}
.src-group-header:hover .src-group-title { color:var(--text); }
.src-group-title  {
  font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;
  color:var(--muted);transition:color .15s;
}
.src-group-count  {
  font-size:.65rem;color:var(--dim);
  background:rgba(255,255,255,.06);border-radius:10px;padding:1px 7px;
}
.src-group-toggle { font-size:.75rem;color:var(--dim);margin-left:auto; }

.src-grid {
  display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;
}
.src-card {
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);
  border-left:3px solid transparent;border-radius:var(--r-sm);
  padding:10px 12px;position:relative;
}
.src-card-active         { border-left-color:var(--green); }
.src-card-discovery_ready{ border-left-color:var(--amber); }
.src-card-not_configured { border-left-color:rgba(255,255,255,.2); }
.src-card-cooldown       { border-left-color:var(--red); }
.src-card-planned        { border-left-color:rgba(255,255,255,.1); opacity:.6; }

.src-card-name   { font-size:.75rem;font-weight:600;color:var(--text);line-height:1.3; }
.src-card-key    { font-size:.6rem;color:var(--dim);font-family:monospace;margin-top:1px; }
.src-card-status {
  display:inline-block;font-size:.58rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;padding:1px 5px;border-radius:3px;margin-top:5px;
}
.src-status-active          { background:rgba(123,178,144,.15);color:var(--green); }
.src-status-discovery_ready { background:rgba(240,160,84,.13);color:var(--amber); }
.src-status-not_configured  { background:rgba(255,255,255,.07);color:var(--dim); }
.src-status-cooldown        { background:rgba(224,95,95,.12);color:var(--red); }
.src-status-planned         { background:rgba(255,255,255,.05);color:var(--dim); }

.src-role-pill {
  display:inline-block;font-size:.58rem;text-transform:uppercase;letter-spacing:.05em;
  padding:0px 5px;border-radius:3px;margin-left:4px;vertical-align:middle;
  border:1px solid rgba(255,255,255,.1);color:var(--dim);
}
.src-role-filing       { border-color:rgba(123,178,144,.3);color:rgba(123,178,144,.8); }
.src-role-prices       { border-color:rgba(100,180,240,.3);color:rgba(100,180,240,.8); }
.src-role-identity     { border-color:rgba(200,160,80,.3);color:rgba(200,160,80,.8); }
.src-role-universe     { border-color:rgba(160,120,220,.3);color:rgba(160,120,220,.8); }
.src-role-macro        { border-color:rgba(200,100,100,.3);color:rgba(200,100,100,.8); }
.src-role-validator    { border-color:rgba(180,180,180,.3);color:rgba(180,180,180,.8); }

/* ── Source group body collapse ── */
.src-group-body.collapsed { display:none; }

/* ══════════════════════════════════════════════════════════════════════════════
   CROSS-VALIDATION PANEL
   ══════════════════════════════════════════════════════════════════════════════ */

.val-section { margin:0 0 32px; }
.val-grid    { display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px; }
.val-card    {
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-sm);padding:12px 14px;
}
.val-num     { font-size:1.3rem;font-weight:700;color:var(--green); }
.val-label   { font-size:.63rem;color:var(--dim);margin-top:2px;text-transform:uppercase;letter-spacing:.06em; }
.val-bar-wrap { margin-top:7px;height:4px;background:rgba(255,255,255,.07);border-radius:2px;overflow:hidden; }
.val-bar-fill { height:100%;background:var(--green);border-radius:2px; }

/* ── Automatic updates + history panels ── */
.au-panel {
  display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:32px;
}
.au-card {
  background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-sm);padding:16px 18px;
}
.au-card-title {
  font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;
  color:var(--muted);margin-bottom:10px;
}

/* ── Responsive overrides ── */
@media (max-width:900px) {
  .cc-metrics { grid-template-columns:repeat(3,1fr); }
  .cc-panels  { grid-template-columns:1fr; }
  .au-panel   { grid-template-columns:1fr; }
}
@media (max-width:540px) {
  .cc-section { padding:18px 16px; }
  .cc-metrics { grid-template-columns:repeat(2,1fr); }
  .src-grid   { grid-template-columns:1fr 1fr; }
  .val-grid   { grid-template-columns:repeat(2,1fr); }
}

/* ══════════════════════════════════════════════════════════════════════════════
   API KEY CENTER
   ══════════════════════════════════════════════════════════════════════════════ */

.akc-table {
  width:100%;border-collapse:collapse;font-size:.78rem;
}
.akc-table th {
  text-align:left;font-size:.63rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;color:var(--dim);padding:6px 10px;
  border-bottom:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.03);
}
.akc-table td {
  padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.05);
  vertical-align:top;
}
.akc-table tr:hover td { background:rgba(255,255,255,.025); }

/* Key status badges */
.akc-badge {
  display:inline-flex;align-items:center;gap:4px;
  font-size:.62rem;font-weight:700;padding:2px 7px;border-radius:4px;
  white-space:nowrap;
}
.akc-badge-ok      { background:rgba(123,178,144,.18);color:var(--green); }
.akc-badge-missing { background:rgba(240,160,84,.15);color:var(--amber); }
.akc-badge-nokey   { background:rgba(123,178,144,.1);color:rgba(123,178,144,.7); }
.akc-badge-upgrade { background:rgba(100,160,220,.12);color:#7ab0e0; }
.akc-badge-notrecom{ background:rgba(255,255,255,.06);color:var(--dim); }
.akc-badge-free    { background:rgba(123,178,144,.1);color:rgba(123,178,144,.6);font-size:.58rem; }
.akc-badge-nofree  { background:rgba(224,95,95,.1);color:rgba(224,95,95,.7);font-size:.58rem; }

/* Priority indicator */
.akc-pri {
  display:inline-block;font-size:.6rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;padding:1px 5px;border-radius:3px;
}
.akc-pri-critical { background:rgba(224,95,95,.18);color:var(--red); }
.akc-pri-high     { background:rgba(123,178,144,.18);color:var(--green); }
.akc-pri-medium   { background:rgba(240,160,84,.15);color:var(--amber); }
.akc-pri-low      { background:rgba(255,255,255,.08);color:var(--muted); }
.akc-pri-optional { background:rgba(255,255,255,.05);color:var(--dim); }
.akc-pri-notrecom { background:rgba(255,255,255,.04);color:var(--dim); }

.akc-action-link {
  color:var(--green);text-decoration:none;font-size:.72rem;
}
.akc-action-link:hover { text-decoration:underline; }
.akc-source-name  { font-weight:600;color:var(--text); }
.akc-source-value { font-size:.7rem;color:var(--muted);margin-top:2px; }
.akc-limit-note   { font-size:.67rem;color:var(--dim); }
.akc-action-text  { font-size:.7rem;color:var(--muted);margin-top:3px; }

/* Group header inside AKC */
.akc-group-hdr td {
  padding:10px 10px 4px;font-size:.63rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.09em;color:var(--muted);border-bottom:none;
  background:rgba(255,255,255,.02);
}

/* ══════════════════════════════════════════════════════════════════════════════
   IMPROVED SOURCE STATUS MATRIX (status-grouped)
   ══════════════════════════════════════════════════════════════════════════════ */

.srm-summary {
  display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px;
}
.srm-summary-chip {
  display:flex;align-items:center;gap:6px;padding:6px 12px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-sm);font-size:.72rem;cursor:pointer;
  transition:border-color .15s;
}
.srm-summary-chip:hover { border-color:rgba(255,255,255,.2); }
.srm-summary-chip-n    { font-size:1.1rem;font-weight:700; }
.srm-summary-chip-label { color:var(--muted);font-size:.65rem; }
.srm-chip-active       .srm-summary-chip-n { color:var(--green); }
.srm-chip-discovery    .srm-summary-chip-n { color:var(--amber); }
.srm-chip-needs_key    .srm-summary-chip-n { color:#7ab0e0; }
.srm-chip-planned      .srm-summary-chip-n { color:var(--dim); }

.srm-status-group { margin-bottom:18px; }
.srm-status-hdr {
  display:flex;align-items:center;gap:8px;
  padding:8px 0;border-bottom:1px solid rgba(255,255,255,.07);
  margin-bottom:10px;cursor:pointer;user-select:none;
}
.srm-status-title {
  font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;
}
.srm-status-count {
  font-size:.65rem;background:rgba(255,255,255,.07);
  border-radius:10px;padding:1px 7px;color:var(--dim);
}
.srm-status-toggle { margin-left:auto;font-size:.75rem;color:var(--dim); }

.srm-cards {
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;
}
.srm-card {
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);
  border-left:3px solid transparent;border-radius:var(--r-sm);
  padding:10px 12px;
}
.srm-card-active         { border-left-color:var(--green); }
.srm-card-discovery_ready{ border-left-color:var(--amber); }
.srm-card-not_configured { border-left-color:#7ab0e0; }
.srm-card-planned        { border-left-color:rgba(255,255,255,.1);opacity:.65; }
.srm-card-cooldown       { border-left-color:var(--red); }

.srm-card-name  { font-size:.75rem;font-weight:600;color:var(--text);line-height:1.3; }
.srm-card-meta  { font-size:.62rem;color:var(--dim);margin-top:3px;line-height:1.5; }
.srm-card-key   { font-size:.6rem;color:var(--dim);font-family:monospace; }

.srm-body.collapsed { display:none; }

/* Role pill in SRM */
.srm-role {
  display:inline-block;font-size:.57rem;text-transform:uppercase;letter-spacing:.05em;
  padding:0px 4px;border-radius:3px;border:1px solid rgba(255,255,255,.1);
  color:var(--dim);vertical-align:middle;margin-top:2px;
}
.srm-role-filing   { border-color:rgba(123,178,144,.3);color:rgba(123,178,144,.75); }
.srm-role-prices   { border-color:rgba(100,180,240,.3);color:rgba(100,180,240,.75); }
.srm-role-identity { border-color:rgba(200,160,80,.3);color:rgba(200,160,80,.75); }
.srm-role-universe { border-color:rgba(160,120,220,.3);color:rgba(160,120,220,.75); }
.srm-role-macro    { border-color:rgba(200,100,100,.3);color:rgba(200,100,100,.75); }
.srm-role-optional { border-color:rgba(180,180,180,.2);color:rgba(180,180,180,.5); }

@media (max-width:640px) {
  .akc-table th:nth-child(4),
  .akc-table td:nth-child(4) { display:none; }
  .srm-cards { grid-template-columns:1fr 1fr; }
}

/* ── Source Ingestion Matrix (sim-*) ─────────────────────────────────────── */
.sim-exec-bar {
  display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.sim-exec-metric { text-align:center;padding:6px 14px; }
.sim-exec-n   { display:block;font-size:1.2rem;font-weight:700;line-height:1.2; }
.sim-exec-lbl { display:block;font-size:.6rem;color:var(--dim);text-transform:uppercase;letter-spacing:.06em;margin-top:2px; }

.sim-status-group { margin-bottom:6px;border-radius:8px;border:1px solid rgba(255,255,255,.05);overflow:hidden; }
.sim-status-hdr {
  display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;
  background:rgba(255,255,255,.03);user-select:none;
}
.sim-status-hdr:hover { background:rgba(255,255,255,.06); }
.sim-status-dot   { width:7px;height:7px;border-radius:50%;flex-shrink:0; }
.sim-status-title { font-size:.72rem;font-weight:600;flex:1; }
.sim-status-count { font-size:.65rem;color:var(--dim);background:rgba(255,255,255,.07);border-radius:99px;padding:1px 7px; }
.sim-status-toggle{ font-size:.65rem;color:var(--dim); }

.sim-body         { padding:10px; }
.sim-body.collapsed { display:none; }

.sim-cards {
  display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px;
}
.sim-card {
  background:rgba(255,255,255,.04);border-radius:7px;
  border-left:3px solid rgba(255,255,255,.08);padding:8px 10px;
}
.sim-card-used_in_scoring { border-left-color:var(--green); }
.sim-card-ingested        { border-left-color:#4caf8a; }
.sim-card-discovered      { border-left-color:var(--amber); }
.sim-card-discovery_ready { border-left-color:#e0b040; }
.sim-card-needs_api_key   { border-left-color:#7ab0e0; }
.sim-card-cooldown        { border-left-color:var(--red); }
.sim-card-discovery_failed,.sim-card-ingestion_failed { border-left-color:#c06060;opacity:.8; }
.sim-card-planned         { border-left-color:rgba(255,255,255,.1);opacity:.6; }

.sim-card-name    { font-size:.72rem;font-weight:600;color:var(--text);line-height:1.3;margin-bottom:3px; }
.sim-card-info    { font-size:.6rem;color:var(--dim);margin-bottom:3px; }
.sim-cat { display:inline-block;font-size:.55rem;padding:0px 4px;border-radius:3px;border:1px solid rgba(255,255,255,.08);margin-left:4px; }
.sim-cat-filing_fundamental { border-color:rgba(123,178,144,.25);color:rgba(123,178,144,.7); }
.sim-cat-exchange_universe  { border-color:rgba(160,120,220,.25);color:rgba(160,120,220,.7); }
.sim-cat-identity { border-color:rgba(200,160,80,.25);color:rgba(200,160,80,.7); }
.sim-cat-price    { border-color:rgba(100,180,240,.25);color:rgba(100,180,240,.7); }
.sim-cat-macro    { border-color:rgba(200,100,100,.25);color:rgba(200,100,100,.7); }
.sim-cat-validator{ border-color:rgba(180,180,180,.15);color:rgba(180,180,180,.5); }
.sim-region { margin-right:4px; }
.sim-card-metrics { font-size:.62rem;color:var(--muted);margin-top:4px;line-height:1.6; }
.sim-card-error   { font-size:.6rem;color:#c06060;margin-top:4px;line-height:1.4; }

/* ── Database Coverage (dc-*) ────────────────────────────────────────────── */
.dc-exec-row {
  display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px;
  padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.06);
}
.dc-exec-card {
  flex:1 1 120px;padding:10px 14px;background:rgba(255,255,255,.04);
  border-radius:8px;text-align:center;
}
.dc-exec-val  { font-size:1.15rem;font-weight:700;line-height:1.2; }
.dc-exec-lbl  { font-size:.6rem;color:var(--dim);text-transform:uppercase;letter-spacing:.05em;margin-top:3px; }

.dc-progress { margin-bottom:12px; }
.dc-progress-label { display:flex;justify-content:space-between;font-size:.68rem;margin-bottom:6px;color:var(--muted); }
.dc-bar-wrap  { height:6px;background:rgba(255,255,255,.07);border-radius:3px;overflow:hidden;position:relative; }
.dc-bar       { height:100%;border-radius:3px;transition:width .6s ease; }
.dc-bar-pending { position:absolute;top:0;right:0;height:100%;background:rgba(255,255,255,.04); }

.dc-multi-row { display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px; }
.dc-multi-item { text-align:center;padding:6px 12px; }
.dc-multi-n    { font-size:1rem;font-weight:700;line-height:1.2; }
.dc-multi-lbl  { font-size:.6rem;color:var(--dim);margin-top:2px; }

.dc-raw-section { margin-top:12px; }
.dc-raw-table {
  width:100%;border-collapse:collapse;font-size:.68rem;margin-top:6px;
}
.dc-raw-table th {
  padding:5px 8px;text-align:left;font-size:.6rem;text-transform:uppercase;letter-spacing:.05em;
  color:var(--dim);border-bottom:1px solid rgba(255,255,255,.06);
}
.dc-raw-table td { padding:4px 8px;border-bottom:1px solid rgba(255,255,255,.04); }
.dc-raw-table tr:hover td { background:rgba(255,255,255,.03); }

.dc-run-summary {
  display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px;padding:8px 10px;
  background:rgba(255,255,255,.04);border-radius:6px;font-size:.68rem;color:var(--muted);
  border-left:3px solid var(--green);
}
.dc-run-label { color:var(--dim);font-size:.6rem;text-transform:uppercase;letter-spacing:.05em; }
.dc-empty     { padding:16px;font-size:.8rem;color:var(--dim); }

@media (max-width:640px) {
  .sim-cards { grid-template-columns:1fr 1fr; }
  .dc-exec-row { gap:6px; }
  .dc-multi-row { gap:6px; }
}

/* ══════════════════════════════════════════════════════════════════════════════
   DATA COMMAND CENTER — new layout
   ══════════════════════════════════════════════════════════════════════════════ */

/* ── DCC grid + stat cards ── */
.dcc-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:10px;
  margin:12px 0;
}
.dcc-card {
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-sm);padding:12px 14px;
}
.dcc-val   { font-size:1.45rem;font-weight:700;color:var(--green);line-height:1.1; }
.dcc-label { font-size:.62rem;color:var(--dim);margin-top:3px;text-transform:uppercase;letter-spacing:.06em; }
.dcc-note  { font-size:.6rem;color:var(--dim);margin-top:2px;font-style:italic;opacity:.8; }

/* ── DCC progress bar ── */
.dcc-progress-wrap  { margin:10px 0; }
.dcc-progress-labels {
  display:flex;justify-content:space-between;
  font-size:.68rem;color:var(--muted);margin-bottom:4px;
}
.dcc-progress-track {
  height:6px;background:rgba(255,255,255,.07);border-radius:4px;overflow:hidden;
}
.dcc-progress-fill {
  height:100%;border-radius:4px;
  background:linear-gradient(90deg,var(--green) 0%,var(--green2) 100%);
  transition:width .6s ease;
}

/* ── DCC status line ── */
.dcc-status-line {
  display:flex;align-items:center;gap:6px;
  font-size:.75rem;margin-bottom:12px;
}

/* ── DCC warning banner ── */
.dcc-warning {
  font-size:.73rem;color:var(--amber);background:rgba(240,160,84,.07);
  border:1px solid rgba(240,160,84,.2);border-radius:var(--r-sm);
  padding:7px 12px;margin:6px 0;
}
.dcc-warning code { font-family:monospace;font-size:.7rem;opacity:.85; }

/* ── DCC next action panel ── */
.dcc-next-action {
  background:rgba(123,178,144,.06);border:1px solid rgba(123,178,144,.15);
  border-radius:var(--r-sm);padding:10px 14px;margin-top:10px;
}
.dcc-next-title    { font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin-bottom:5px; }
.dcc-next-primary  { font-size:.8rem;color:var(--text);font-weight:500; }
.dcc-next-secondary{ font-size:.72rem;color:var(--dim);margin-top:3px; }

/* ══════════════════════════════════════════════════════════════════════════════
   SOURCE BUCKETS
   ══════════════════════════════════════════════════════════════════════════════ */

/* ── Summary chip row ── */
.src-bkts-summary {
  display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;
}
.src-bkt-chip {
  display:flex;align-items:center;gap:5px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r-pill);padding:4px 12px;
  font-size:.72rem;cursor:pointer;transition:background .15s;
}
.src-bkt-chip:hover  { background:rgba(255,255,255,.09); }
.src-bkt-chip-n      { font-weight:700;font-size:.85rem; }
.src-bkt-chip-lbl    { color:var(--muted); }

/* ── Bucket group ── */
.src-bkt-group { margin-bottom:8px;border:1px solid rgba(255,255,255,.06);border-radius:var(--r-sm);overflow:hidden; }
.src-bkt-hdr {
  display:flex;align-items:center;gap:8px;
  padding:10px 14px;cursor:pointer;background:rgba(255,255,255,.03);
  transition:background .15s;
}
.src-bkt-hdr:hover     { background:rgba(255,255,255,.06); }
.src-bkt-dot           { width:7px;height:7px;border-radius:50%;flex-shrink:0; }
.src-bkt-title         { font-size:.82rem;font-weight:600;flex:1; }
.src-bkt-count         { font-size:.72rem;font-weight:600;color:var(--muted); }
.src-bkt-note          { font-size:.68rem;color:var(--dim);margin-left:4px; }
.src-bkt-toggle        { color:var(--dim);font-size:.75rem;margin-left:auto;flex-shrink:0; }

.src-bkt-body          { overflow:hidden;transition:max-height .25s ease; }
.src-bkt-body.collapsed{ display:none; }

.src-bkt-cards {
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:8px;padding:10px 12px;
}

/* ── Individual source card ── */
.src-card {
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);
  border-radius:8px;padding:10px 12px;font-size:.78rem;
}
.src-card-name  { font-weight:600;color:var(--text);margin-bottom:2px; }
.src-card-role  { font-size:.68rem;color:var(--muted);margin-bottom:5px;line-height:1.4; }
.src-card-meta  { display:flex;flex-wrap:wrap;gap:4px;margin-bottom:3px; }
.src-card-stats { font-size:.65rem;color:var(--dim);margin-top:3px; }
.src-card-error {
  font-size:.62rem;color:var(--red);margin-top:4px;
  background:rgba(224,95,95,.07);border-radius:4px;padding:3px 6px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

/* ── Source region + flags ── */
.src-region {
  font-size:.62rem;color:var(--dim);
  background:rgba(255,255,255,.05);border-radius:4px;padding:1px 5px;
}
.src-flag {
  font-size:.58rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  border-radius:4px;padding:1px 5px;
}
.src-flag-alpha { background:rgba(123,178,144,.15);color:var(--green);border:1px solid var(--green-b); }
.src-flag-fv    { background:rgba(100,160,240,.10);color:#90b8f0;border:1px solid rgba(100,160,240,.2); }

/* ══════════════════════════════════════════════════════════════════════════════
   METHOD DETAILS + DEV SECTION
   ══════════════════════════════════════════════════════════════════════════════ */

.method-details {
  margin-top:16px;
  border:1px solid rgba(255,255,255,.07);border-radius:var(--r-sm);
  overflow:hidden;
}
.method-details > summary {
  padding:10px 16px;cursor:pointer;font-size:.78rem;color:var(--muted);
  background:rgba(255,255,255,.03);
  list-style:none;
  display:flex;align-items:center;gap:6px;
}
.method-details > summary::before { content:'▸';color:var(--dim);font-size:.7rem; }
.method-details[open] > summary::before { content:'▾'; }
.method-details > summary:hover { background:rgba(255,255,255,.06); }
.method-details > *:not(summary) { padding:0 16px 16px; }

.dev-section { display:none; }
.dev-only    { display:none; }

/* ══════════════════════════════════════════════════════════════════════════════
   SEARCH BAR — v3
   ══════════════════════════════════════════════════════════════════════════════ */

.search-wrap {
  margin-bottom:20px;
}
.search-box-row {
  display:flex;align-items:center;gap:0;
  background:rgba(255,255,255,.06);border:1px solid var(--glass-b);
  border-radius:var(--r);padding:0 14px;
  transition:border-color .18s;
}
.search-box-row:focus-within { border-color:rgba(123,178,144,.5); }
.search-icon {
  flex-shrink:0;color:var(--dim);pointer-events:none;margin-right:10px;
}
.search-input {
  flex:1;background:transparent;border:none;outline:none;
  color:var(--text);font-family:inherit;font-size:.88rem;
  padding:13px 4px;
}
.search-input::placeholder { color:var(--dim); }
.search-clear {
  background:none;border:none;cursor:pointer;
  color:var(--dim);font-size:.9rem;padding:4px 6px;
  display:none;transition:color .15s;
}
.search-clear:hover { color:var(--muted); }
.search-hint {
  font-size:.72rem;color:var(--dim);margin-top:7px;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.adv-toggle {
  background:none;border:none;cursor:pointer;
  color:var(--green);font-size:.72rem;font-family:inherit;
  padding:0;text-decoration:underline;text-underline-offset:2px;
}
.adv-toggle:hover { color:var(--green2); }
.adv-filters {
  background:var(--glass);border:1px solid var(--glass-b);
  border-radius:var(--r);padding:16px 20px;margin-top:10px;
}
.adv-filters-inner {
  display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;
}

/* ══════════════════════════════════════════════════════════════════════════════
   ACTIVE SOURCES PANEL — v3
   ══════════════════════════════════════════════════════════════════════════════ */

.sources-panel {
  background:var(--glass);border:1px solid var(--glass-b);
  border-radius:var(--r);padding:18px 22px;
}
.sources-two-col {
  display:grid;grid-template-columns:1fr 1fr;gap:16px;
  margin-bottom:16px;
}
.sources-col-title {
  font-size:.64rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);margin-bottom:8px;
}
.sources-badges {
  display:flex;flex-wrap:wrap;gap:5px;
}

/* Source badges */
.src-badge {
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 10px;border-radius:var(--r-pill);
  font-size:.66rem;font-weight:600;letter-spacing:.03em;
}
.src-badge-green {
  background:rgba(123,178,144,.14);color:var(--green);border:1px solid rgba(123,178,144,.3);
}
.src-badge-green::before { content:'●';font-size:.55rem; }
.src-badge-blue {
  background:rgba(100,160,240,.10);color:#90b8f0;border:1px solid rgba(100,160,240,.25);
}
.src-badge-amber {
  background:rgba(240,160,84,.12);color:var(--amber);border:1px solid rgba(240,160,84,.28);
}
.src-badge-red {
  background:rgba(224,95,95,.10);color:var(--red);border:1px solid rgba(224,95,95,.25);
}
.src-badge-dim {
  background:rgba(255,255,255,.05);color:var(--dim);border:1px solid rgba(255,255,255,.09);
}

/* Stats row */
.sources-stats-row {
  display:flex;flex-wrap:wrap;gap:0;
  border-top:1px solid var(--glass-b);border-bottom:1px solid var(--glass-b);
  margin-bottom:14px;
}
.sources-stat {
  flex:1 1 100px;padding:10px 14px;text-align:center;
  border-right:1px solid var(--glass-b);
}
.sources-stat:last-child { border-right:none; }
.sources-stat-val {
  display:block;font-size:1.2rem;font-weight:700;color:var(--green);line-height:1.1;
}
.sources-stat-lbl {
  display:block;font-size:.6rem;color:var(--dim);margin-top:3px;
  text-transform:uppercase;letter-spacing:.06em;
}

/* Progress bars */
.sources-progress-row {
  display:grid;grid-template-columns:1fr 1fr;gap:14px;
  margin-bottom:12px;
}
.sources-progress-item {}
.sources-progress-label {
  display:flex;justify-content:space-between;
  font-size:.68rem;color:var(--muted);margin-bottom:5px;
}
.sources-prog-track {
  height:5px;background:rgba(255,255,255,.07);
  border-radius:3px;overflow:hidden;
}
.sources-prog-fill {
  height:100%;background:linear-gradient(90deg,var(--green) 0%,var(--green2) 100%);
  border-radius:3px;transition:width .6s ease;
}

/* Footer */
.sources-footer {
  display:flex;flex-wrap:wrap;gap:6px;padding-top:10px;
  border-top:1px solid var(--glass-b);
}

@media (max-width:640px) {
  .sources-two-col { grid-template-columns:1fr; }
  .sources-stats-row { gap:0; }
  .sources-stat { flex:1 1 80px; padding:8px 8px; }
  .sources-stat-val { font-size:1rem; }
  .sources-progress-row { grid-template-columns:1fr; }
}

/* ══════════════════════════════════════════════════════════════════════════════
   STOCK CARD — REDESIGNED v3
   ══════════════════════════════════════════════════════════════════════════════ */

/* Card header: ticker/name on left, confidence badge on right */
.card-header {
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:12px;margin-bottom:14px;
}
/* Override old card-identity width constraint */
.card-header .card-identity { flex:1;min-width:0; }
.card-header .card-ticker {
  font-size:1.15rem;font-weight:700;letter-spacing:.03em;
  display:flex;align-items:baseline;gap:6px;
}
.card-exchange {
  font-size:.65rem;color:var(--dim);font-weight:500;
  letter-spacing:.04em;
}
.card-conf-badge {
  flex-shrink:0;
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 10px;border-radius:var(--r-pill);
  font-size:.64rem;font-weight:700;letter-spacing:.06em;
  border:1px solid;text-transform:uppercase;white-space:nowrap;
}

/* FV row: price → arrow → FV → upside */
.card-fv-row {
  display:flex;align-items:center;justify-content:space-around;
  gap:8px;margin-bottom:12px;
  padding:10px 14px;
  background:rgba(255,255,255,.03);border-radius:var(--r-sm);
}
.card-fv-col {
  text-align:center;
}
.card-fv-main {
  padding:0 4px;
}
.card-fv-arrow {
  font-size:1.1rem;flex-shrink:0;opacity:.8;
}
.card-metric-lbl {
  font-size:.6rem;color:var(--dim);text-transform:uppercase;
  letter-spacing:.07em;margin-bottom:3px;
}
.card-metric-val {
  font-size:.95rem;font-weight:700;color:var(--text);
  font-variant-numeric:tabular-nums;
}
.card-fv-val {
  font-size:1.1rem;
}

/* FV Gauge */
.fv-gauge-wrap {
  margin-bottom:8px;
}
.fv-gauge-track {
  position:relative;height:6px;
  background:rgba(255,255,255,.07);border-radius:3px;
  overflow:visible;
}
.fv-gauge-band {
  position:absolute;top:0;height:100%;
  background:rgba(123,178,144,.18);border-radius:3px;
}
.fv-gauge-fv-marker {
  position:absolute;top:-3px;
  width:3px;height:12px;border-radius:2px;
  transform:translateX(-50%);
  box-shadow:0 0 6px currentColor;
}
.fv-gauge-price-marker {
  position:absolute;top:-4px;
  width:14px;height:14px;border-radius:50%;
  background:var(--amber);
  transform:translateX(-50%);
  border:2px solid var(--bg);
  box-shadow:0 0 6px rgba(240,160,84,.5);
}
.fv-gauge-labels {
  display:flex;justify-content:space-between;align-items:center;
  font-size:.63rem;margin-top:5px;
  padding:0 2px;
}

/* Position label + verdict */
.card-pos-label {
  text-align:center;
  font-size:.7rem;font-weight:600;
  margin-top:4px;min-height:14px;
}
.card-verdict {
  text-align:center;
  margin:8px 0 4px;
}

/* Meta chips row */
.card-meta-row {
  display:flex;flex-wrap:wrap;gap:5px;
  margin:8px 0 12px;
}
.card-meta-chip {
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);
  border-radius:var(--r-pill);padding:2px 9px;
  font-size:.63rem;color:var(--dim);
}

/* Share button */
.card-btn.share {
  background:rgba(100,160,240,.08);color:#90b8f0;
  border:1px solid rgba(100,160,240,.2);
}
.card-btn.share:hover { background:rgba(100,160,240,.15); }

/* ══════════════════════════════════════════════════════════════════════════════
   MODAL FAIR VALUE SECTION — v3
   ══════════════════════════════════════════════════════════════════════════════ */

.fv-public-block {
  background:rgba(123,178,144,.05);border:1px solid rgba(123,178,144,.15);
  border-radius:var(--r-sm);padding:14px 16px;
}
.fv-pub-row {
  display:flex;align-items:center;flex-wrap:wrap;gap:4px;
  margin-bottom:8px;
}
.fv-pub-sep {
  font-size:1rem;color:var(--dim);padding:0 4px;flex-shrink:0;
}
.fv-pub-item {
  text-align:center;flex:1;min-width:70px;
}
.fv-pub-main {
  flex:1.4;
}
.fv-pub-lbl {
  font-size:.62rem;color:var(--dim);text-transform:uppercase;
  letter-spacing:.07em;margin-bottom:3px;
}
.fv-pub-val {
  font-size:.95rem;font-weight:700;color:var(--text);
  font-variant-numeric:tabular-nums;
}
.fv-pub-val.up   { color:var(--green); }
.fv-pub-val.down { color:var(--red); }
.fv-pub-formula {
  display:flex;align-items:baseline;gap:6px;
  padding:6px 0;border-top:1px solid rgba(255,255,255,.06);
  margin-bottom:6px;
}
.fv-formula-note {
  font-size:.68rem;color:var(--dim);line-height:1.6;margin-top:2px;
  font-style:italic;
}

/* ══════════════════════════════════════════════════════════════════════════════
   DEEP DIVE SUMMARY — styled <summary> for modal collapsible sections
   ══════════════════════════════════════════════════════════════════════════════ */

.deep-dive-summary {
  display:flex;align-items:center;gap:6px;
  padding:8px 2px;cursor:pointer;list-style:none;
  font-size:.78rem;font-weight:600;color:var(--muted);
  transition:color .15s;user-select:none;
}
.deep-dive-summary::before { content:'▸';color:var(--dim);font-size:.7rem;flex-shrink:0; }
details[open] > .deep-dive-summary::before { content:'▾'; }
.deep-dive-summary:hover { color:var(--text); }

/* ══════════════════════════════════════════════════════════════════════════════
   SHARE CARD PREVIEW
   ══════════════════════════════════════════════════════════════════════════════ */

.share-preview-card {
  background:#0d1117;border:1px solid rgba(123,178,144,.3);
  border-radius:var(--r);padding:22px 24px;
  max-width:380px;margin:0 auto;
  font-family:'Space Grotesk',system-ui,sans-serif;
}
.spc-brand {
  font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--green);margin-bottom:8px;
  display:flex;align-items:center;gap:6px;
}
.spc-brand::before {
  content:'';display:inline-block;width:7px;height:7px;border-radius:50%;
  background:var(--green);box-shadow:0 0 6px var(--green);
}
.spc-ticker {
  font-size:2.2rem;font-weight:700;color:var(--green);
  letter-spacing:.04em;line-height:1;margin-bottom:4px;
}
.spc-name {
  font-size:.8rem;color:var(--muted);margin-bottom:14px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.spc-row {
  display:flex;justify-content:space-around;
  padding:12px 0;margin-bottom:12px;
  border-top:1px solid rgba(255,255,255,.07);
  border-bottom:1px solid rgba(255,255,255,.07);
}
.spc-metric { text-align:center; }
.spc-lbl { font-size:.58rem;color:var(--dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px; }
.spc-val { font-size:1rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums; }
.spc-fv  { color:var(--green); }
.spc-chips {
  display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px;
}
.spc-chip {
  background:rgba(255,255,255,.07);border-radius:var(--r-pill);
  padding:2px 9px;font-size:.63rem;color:var(--muted);
}
.spc-verdict {
  font-size:.72rem;color:var(--muted);font-style:italic;
  margin-bottom:8px;line-height:1.5;
}
.spc-disclaimer {
  font-size:.6rem;color:var(--dim);
  border-top:1px solid rgba(255,255,255,.06);
  padding-top:8px;margin-top:4px;line-height:1.6;
}

/* ── Valuation meter statement ── */
.val-meter-stmt {
  font-size:.72rem;color:var(--muted);text-align:center;
  margin-top:6px;line-height:1.5;font-style:italic;
}

/* ── Card ticker row (ticker + exchange on one line) ── */
.card-ticker-row {
  display:flex;align-items:baseline;gap:6px;
}

/* ── Card footer: buttons left / meta chips right ── */
.card-footer {
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:10px;margin-top:14px;
}
.card-meta-chips {
  display:flex;flex-wrap:wrap;gap:5px;align-items:center;justify-content:flex-end;
}

/* ── Results bar separator ── */
.results-bar-sep { color:var(--dim);margin:0 4px; }

/* ── Modal note (non-warn paragraph) ── */
.modal-note {
  font-size:.72rem;color:var(--dim);line-height:1.6;
  padding:6px 0;font-style:italic;
}

/* ══════════════════════════════════════════════════════════════════════════════
   STATUS TOP BAR — v4
   ══════════════════════════════════════════════════════════════════════════════ */

.status-top-inner {
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:20px;flex-wrap:wrap;
  background:var(--glass);border:1px solid var(--glass-b);
  border-radius:var(--r);padding:18px 22px;
}
.status-top-left {
  display:flex;align-items:flex-start;gap:14px;
  flex:1;min-width:220px;
}
.status-live-dot {
  width:10px;height:10px;border-radius:50%;
  background:var(--green);box-shadow:0 0 10px rgba(123,178,144,.7);
  flex-shrink:0;margin-top:4px;
  animation:blink 2.4s ease-in-out infinite;
}
.status-top-headline {
  font-size:.95rem;font-weight:700;color:var(--text);line-height:1.3;
}
.status-top-sub {
  font-size:.72rem;color:var(--muted);margin-top:3px;line-height:1.5;
  max-width:340px;
}
.status-top-right {
  flex:1;min-width:220px;
}
.status-badges {
  display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px;
}
.status-badge {
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 10px;border-radius:var(--r-pill);
  font-size:.64rem;font-weight:600;letter-spacing:.04em;
}
.status-badge-green {
  background:rgba(123,178,144,.13);color:var(--green);border:1px solid rgba(123,178,144,.3);
}
.status-badge-green::before { content:'●';font-size:.5rem; }
.status-badge-blue {
  background:rgba(100,160,240,.10);color:#90b8f0;border:1px solid rgba(100,160,240,.25);
}
.status-meta-row {
  display:flex;align-items:center;flex-wrap:wrap;gap:6px;
  font-size:.73rem;color:var(--muted);
}
.status-meta-item { display:inline-flex;align-items:center;gap:4px; }
.status-meta-sep  { color:var(--dim);font-size:.7rem; }
.status-prog-track {
  display:inline-block;width:52px;height:5px;
  background:rgba(255,255,255,.07);border-radius:3px;overflow:hidden;
  vertical-align:middle;
}
.status-prog-fill {
  height:100%;background:linear-gradient(90deg,var(--green) 0%,var(--green2) 100%);
  border-radius:3px;
}
.status-cron-ok  { color:var(--green);font-weight:600; }
.status-cron-off { color:var(--dim); }
.status-dim      { color:var(--dim); }

/* ══════════════════════════════════════════════════════════════════════════════
   RESULTS BAR — v4
   ══════════════════════════════════════════════════════════════════════════════ */

.results-bar {
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;
  gap:8px;margin-bottom:20px;
  font-size:.78rem;color:var(--muted);
  min-height:26px;
}
.results-bar-sort { color:var(--dim);font-size:.73rem; }

/* ══════════════════════════════════════════════════════════════════════════════
   SEARCH SUGGESTIONS — v4
   ══════════════════════════════════════════════════════════════════════════════ */

.search-suggestions {
  background:#111a14;border:1px solid rgba(123,178,144,.25);
  border-radius:var(--r-sm);
  margin-top:4px;overflow:hidden;
  box-shadow:0 8px 28px rgba(0,0,0,.45);
  position:relative;z-index:100;
}
.sugg-item {
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;cursor:pointer;
  border-bottom:1px solid rgba(255,255,255,.04);
  transition:background .12s;
}
.sugg-item:last-child { border-bottom:none; }
.sugg-item:hover { background:rgba(255,255,255,.05); }
.sugg-left  { display:flex;align-items:baseline;gap:8px; }
.sugg-right { display:flex;align-items:center;gap:6px;flex-shrink:0; }
.sugg-ticker { font-weight:700;font-size:.88rem;color:var(--text); }
.sugg-name   { font-size:.73rem;color:var(--dim);max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.sugg-upside { font-size:.73rem;font-weight:600; }
.sugg-conf   {
  font-size:.62rem;font-weight:600;padding:1px 7px;border-radius:var(--r-pill);
  letter-spacing:.04em;text-transform:uppercase;
}
.sugg-empty  { padding:12px 14px;font-size:.78rem;color:var(--dim);text-align:center; }

/* ══════════════════════════════════════════════════════════════════════════════
   STOCK CARD — v4 redesigned numbers layout
   ══════════════════════════════════════════════════════════════════════════════ */

.card-company {
  font-size:.78rem;color:var(--muted);margin-top:3px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px;
}
.card-exch {
  font-size:.63rem;color:var(--dim);font-weight:500;letter-spacing:.04em;
}
/* Confidence pill (clickable, replaces old conf-badge on card) */
.card-conf-pill {
  flex-shrink:0;display:inline-flex;align-items:center;
  padding:4px 12px;border-radius:var(--r-pill);
  font-size:.66rem;font-weight:700;letter-spacing:.05em;
  border:1px solid;cursor:pointer;white-space:nowrap;
  transition:opacity .15s;
}
.card-conf-pill:hover { opacity:.8; }

/* Numbers row: price / fv / upside — 3-column with dividers */
.card-numbers {
  display:flex;align-items:stretch;
  gap:0;margin-bottom:14px;
  padding:0;
  background:rgba(255,255,255,.03);border-radius:var(--r-sm);
  overflow:hidden;
}
.card-num-col {
  flex:1;text-align:center;padding:13px 10px;
}
.card-num-divider {
  width:1px;background:rgba(255,255,255,.08);
  flex-shrink:0;margin:10px 0;
}
.card-num-arrow { display:none; }
.card-num-fv, .card-num-upside { }
.card-num-lbl {
  font-size:.59rem;color:var(--dim);text-transform:uppercase;
  letter-spacing:.07em;margin-bottom:5px;
}
.card-num-val {
  font-size:1.05rem;font-weight:700;color:var(--text);
  font-variant-numeric:tabular-nums;
}
.card-val-pill { display:none; }

/* Valuation label beneath gauge */
.card-val-label {
  display:flex;align-items:center;gap:5px;
  font-size:.7rem;font-weight:600;margin:4px 0 8px;
  justify-content:center;
}
.card-val-dot {
  width:7px;height:7px;border-radius:50%;flex-shrink:0;
}

/* Chip row (models / factors / SEC) */
.card-chips {
  display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 14px;
}
.card-chip {
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);
  border-radius:var(--r-pill);padding:2px 9px;
  font-size:.62rem;color:var(--dim);
}

/* Card buttons v4 */
.card-btn.primary-btn {
  background:var(--green);color:#0a1a10;
  border:none;
}
.card-btn.primary-btn:hover { background:var(--green2); }
.card-btn.share-btn {
  background:rgba(100,160,240,.08);color:#90b8f0;
  border:1px solid rgba(100,160,240,.2);
}
.card-btn.share-btn:hover { background:rgba(100,160,240,.15); }
.card-btn.calc-btn {
  background:var(--green-d);color:var(--green);
  border:1px solid var(--green-b);
}
.card-btn.calc-btn:hover { background:rgba(123,178,144,.18); }

/* ══════════════════════════════════════════════════════════════════════════════
   VALUATION METER — v5  (smiley marker, anti-overlap labels)
   ══════════════════════════════════════════════════════════════════════════════ */

.val-meter {
  margin:0 0 8px;user-select:none;
  animation:fadeIn .35s ease;
}
@keyframes fadeIn { from{opacity:0;transform:translateY(3px)} to{opacity:1;transform:translateY(0)} }

/* Track: margin provides space for above/below labels */
.val-meter-track {
  position:relative;height:7px;
  background:rgba(255,255,255,.07);border-radius:4px;
  overflow:visible;
  margin:34px 0 38px;
}

/* Bear/bull band */
.val-meter-bear-bull-band {
  position:absolute;top:0;height:100%;
  background:rgba(255,255,255,.055);border-radius:3px;
  pointer-events:none;
}
/* Fair zone band */
.val-meter-fair-band {
  position:absolute;top:0;height:100%;
  background:rgba(123,178,144,.28);border-radius:3px;
  border:1px solid rgba(123,178,144,.32);
}

/* FV marker — green bar with pulse glow */
.val-meter-fv-marker {
  position:absolute;top:-4px;transform:translateX(-50%);
  width:3px;height:15px;border-radius:2px;
  background:var(--green);
  z-index:1;
  animation:fvPulse 2.6s ease-in-out infinite;
}
@keyframes fvPulse {
  0%,100%{box-shadow:0 0 5px rgba(123,178,144,.55)}
  50%    {box-shadow:0 0 14px rgba(123,178,144,1),0 0 22px rgba(123,178,144,.4)}
}

/* FV label — always ABOVE the track */
.vml-fv-label {
  position:absolute;bottom:calc(100% + 12px);
  transform:translateX(-50%);
  color:var(--green);white-space:nowrap;
  font-size:.6rem;font-weight:600;line-height:1;
  pointer-events:none;
  text-shadow:0 0 8px rgba(123,178,144,.5);
}

/* ── Emoji price marker ── */
.val-meter-smiley {
  position:absolute;top:-14px;
  width:35px;height:35px;border-radius:50%;
  transform:translateX(-50%);
  display:flex;align-items:center;justify-content:center;
  border:2px solid;
  cursor:pointer;z-index:3;
  transition:transform .22s cubic-bezier(.4,0,.2,1);
  animation:smileIn .45s cubic-bezier(.34,1.56,.64,1);
}
.val-meter-smiley:hover { transform:translateX(-50%) scale(1.18); }
.vml-emoji { font-size:20px;line-height:1;display:block; }

@keyframes smileIn {
  from{opacity:0;transform:translateX(-50%) scale(0.45)}
  to  {opacity:1;transform:translateX(-50%) scale(1)}
}

/* Smiley colour variants */
.val-meter-smiley.happy {
  background:rgba(18,36,22,.95);
  border-color:rgba(123,178,144,.72);
  box-shadow:0 0 10px rgba(123,178,144,.32);
}
.val-meter-smiley.neutral {
  background:rgba(18,20,18,.95);
  border-color:rgba(232,240,235,.25);
  box-shadow:none;
}
.val-meter-smiley.sad {
  background:rgba(38,16,16,.95);
  border-color:rgba(224,95,95,.62);
  box-shadow:0 0 8px rgba(224,95,95,.22);
}

/* Tooltip on hover */
.val-meter-smiley .vml-tooltip {
  display:none;
  position:absolute;bottom:calc(100% + 7px);left:50%;
  transform:translateX(-50%);
  background:rgba(12,20,14,.96);
  border:1px solid rgba(123,178,144,.2);
  border-radius:6px;padding:4px 10px;
  white-space:nowrap;font-size:.6rem;
  color:var(--text);z-index:10;
  pointer-events:none;
  box-shadow:0 4px 14px rgba(0,0,0,.45);
}
.val-meter-smiley:hover .vml-tooltip { display:block; }

/* Price label — BELOW the track */
.vml-price-label {
  position:absolute;top:calc(100% + 20px);
  transform:translateX(-50%);
  color:var(--muted);white-space:nowrap;
  font-size:.6rem;line-height:1;
  pointer-events:none;
}
.vml-price-label.hidden { display:none; }

/* Valuation status pill inside card numbers row */
.card-val-pill {
  font-size:.6rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;align-self:flex-end;
  margin-left:auto;padding-bottom:2px;
  white-space:nowrap;
}

/* ══════════════════════════════════════════════════════════════════════════════
   MODAL v4 — topbar, summary bar, tabs
   ══════════════════════════════════════════════════════════════════════════════ */

.modal-topbar {
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:12px;margin-bottom:14px;
}
.modal-ticker {
  font-size:1.3rem;font-weight:700;letter-spacing:.04em;color:var(--text);line-height:1.2;
}
.modal-company {
  font-size:.78rem;color:var(--muted);margin-top:2px;
  max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

.modal-summary-bar {
  display:flex;align-items:center;flex-wrap:wrap;gap:0;
  background:rgba(255,255,255,.03);border:1px solid var(--glass-b);
  border-radius:var(--r-sm);padding:10px 16px;margin-bottom:16px;
}
.msb-item { text-align:center;padding:0 10px; }
.msb-lbl  { font-size:.58rem;color:var(--dim);text-transform:uppercase;letter-spacing:.07em;margin-bottom:3px; }
.msb-val  { font-size:.9rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums; }
.msb-arrow  { font-size:1.1rem;padding:0 4px;flex-shrink:0; }
.msb-divider {
  width:1px;height:32px;background:var(--glass-b);
  flex-shrink:0;margin:0 4px;
}

/* Tab navigation */
.modal-tabs {
  display:flex;gap:2px;overflow-x:auto;
  margin-bottom:16px;
  border-bottom:1px solid var(--glass-b);
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.modal-tabs::-webkit-scrollbar { display:none; }
.modal-tab {
  background:none;border:none;border-bottom:2px solid transparent;
  padding:8px 14px;margin-bottom:-1px;
  font-family:inherit;font-size:.75rem;font-weight:600;
  color:var(--dim);cursor:pointer;white-space:nowrap;
  transition:color .15s,border-color .15s;
}
.modal-tab:hover  { color:var(--muted); }
.modal-tab.active { color:var(--green);border-bottom-color:var(--green); }

.tab-panel        { display:none; }
.tab-panel.active { display:block; }

/* ══════════════════════════════════════════════════════════════════════════════
   FV EXPLAIN BOX — v4
   ══════════════════════════════════════════════════════════════════════════════ */

.fv-explain-box {
  background:rgba(123,178,144,.05);border:1px solid rgba(123,178,144,.15);
  border-radius:var(--r-sm);padding:14px 16px;
}
.fv-explain-row {
  display:flex;align-items:center;flex-wrap:wrap;
  gap:4px;margin-bottom:10px;
}
.fv-explain-item {
  text-align:center;flex:1;min-width:68px;
}
.fv-explain-main { flex:1.3; }
.fv-explain-sep  {
  font-size:1.1rem;color:var(--dim);padding:0 4px;flex-shrink:0;
}
.fv-explain-lbl {
  font-size:.6rem;color:var(--dim);text-transform:uppercase;
  letter-spacing:.07em;margin-bottom:3px;
}
.fv-explain-val {
  font-size:.95rem;font-weight:700;color:var(--text);
  font-variant-numeric:tabular-nums;
}
.fv-explain-upside {
  display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;
  padding:8px 0;border-top:1px solid rgba(255,255,255,.06);
  margin-bottom:8px;
}
.fv-explain-note {
  font-size:.68rem;color:var(--dim);line-height:1.6;font-style:italic;
}
.pos-val { color:var(--green); }
.neg-val { color:var(--red); }

/* Factor family name */
.fam-name { color:var(--muted); }

/* ══════════════════════════════════════════════════════════════════════════════
   EVIDENCE TAB — v4
   ══════════════════════════════════════════════════════════════════════════════ */

.evidence-row {
  padding:10px 0;border-bottom:1px solid rgba(255,255,255,.04);
}
.evidence-row:last-child { border-bottom:none; }
.evidence-header {
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:4px;
}
.evidence-fam   { font-weight:600;font-size:.8rem;color:var(--text); }
.evidence-score { font-weight:700;font-size:.8rem;font-variant-numeric:tabular-nums; }
.evidence-citation { font-size:.71rem;color:var(--dim);line-height:1.55; }

/* ══════════════════════════════════════════════════════════════════════════════
   CONFIDENCE EXPLAIN — v4
   ══════════════════════════════════════════════════════════════════════════════ */

.conf-row {
  display:flex;align-items:baseline;gap:8px;
  padding:7px 0;border-bottom:1px solid rgba(255,255,255,.04);
  font-size:.78rem;
}
.conf-row:last-child { border-bottom:none; }
.conf-pass .conf-icon { color:var(--green);font-size:.75rem; }
.conf-miss .conf-icon { color:var(--dim);font-size:.75rem; }
.conf-pass .conf-label { color:var(--text); }
.conf-miss .conf-label { color:var(--muted); }
.conf-detail { color:var(--dim);font-size:.7rem;margin-left:auto;text-align:right; }

/* ══════════════════════════════════════════════════════════════════════════════
   SHARE MODAL — v4
   ══════════════════════════════════════════════════════════════════════════════ */

.spc-val-label {
  text-align:center;font-size:.8rem;font-weight:700;
  margin-bottom:8px;padding:4px 0;
}
.share-btn-row {
  display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;
}

/* ══════════════════════════════════════════════════════════════════════════════
   MODAL UTILITY — v4
   ══════════════════════════════════════════════════════════════════════════════ */

.modal-text {
  font-size:.78rem;color:var(--muted);line-height:1.65;margin-bottom:8px;
}
.modal-disclaimer {
  font-size:.66rem;color:var(--dim);line-height:1.6;margin-top:16px;
  padding-top:12px;border-top:1px solid var(--glass-b);
  font-style:italic;
}

/* ══════════════════════════════════════════════════════════════════════════════
   RESPONSIVE — v4 additions
   ══════════════════════════════════════════════════════════════════════════════ */

@media (max-width:640px) {
  .status-top-inner { flex-direction:column;gap:14px; }
  .card-numbers { padding:0; }
  .card-num-col { padding:10px 8px; }
  .card-num-val { font-size:.88rem; }
  .modal-summary-bar { padding:8px 10px; }
  .msb-item { padding:0 6px; }
  .msb-val  { font-size:.82rem; }
  .modal-tabs { gap:0; }
  .modal-tab  { padding:8px 10px;font-size:.7rem; }
  .val-meter-labels { font-size:.6rem; }
  .share-btn-row { flex-direction:column; }
}


/* ══════════════════════════════════════════════════════════════════════════════
   SHARE MODAL — v5 (platform workflow, caption, native + fallback)
   ══════════════════════════════════════════════════════════════════════════════ */

.sm-header {
  margin-bottom:14px;padding-bottom:12px;
  border-bottom:1px solid var(--glass-b);
}
.sm-ticker  { font-size:1.4rem;font-weight:700;color:var(--text);line-height:1.1; }
.sm-company { font-size:.77rem;color:var(--muted);margin-top:3px; }

.sm-preview-wrap {
  position:relative;
  background:#0a0f0b;
  border:1px solid rgba(123,178,144,.18);
  border-radius:var(--r-sm);overflow:hidden;
  margin-bottom:14px;text-align:center;min-height:60px;
}
.sm-preview-canvas { width:100%;height:auto;display:block; }

.sm-platform-row {
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
  margin-bottom:10px;
}
.sm-platform-btn {
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 12px;border-radius:var(--r-sm);
  font-family:inherit;font-size:.8rem;font-weight:600;
  cursor:pointer;border:1px solid;
  transition:background .18s,transform .12s,box-shadow .18s;
  white-space:nowrap;
}
.sm-platform-btn:hover { transform:translateY(-1px); }
.sm-instagram {
  background:linear-gradient(135deg,rgba(131,58,180,.13) 0%,rgba(193,53,132,.13) 50%,rgba(253,88,53,.13) 100%);
  border-color:rgba(193,53,132,.28);color:rgba(226,120,172,.9);
}
.sm-instagram:hover {
  background:linear-gradient(135deg,rgba(131,58,180,.2) 0%,rgba(193,53,132,.2) 50%,rgba(253,88,53,.2) 100%);
  box-shadow:0 4px 14px rgba(193,53,132,.15);
}
.sm-tiktok {
  background:rgba(0,0,0,.25);border-color:rgba(255,255,255,.14);
  color:rgba(232,240,235,.8);
}
.sm-tiktok:hover { background:rgba(255,255,255,.07); }

.sm-secondary-row {
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;
}
.sm-action-btn {
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 11px;border-radius:var(--r-pill);
  font-family:inherit;font-size:.73rem;font-weight:600;
  cursor:pointer;
  background:var(--glass);color:var(--muted);
  border:1px solid var(--glass-b);
  transition:background .18s;
}
.sm-action-btn:hover { background:rgba(255,255,255,.09); }

.sm-status {
  padding:7px 12px;border-radius:var(--r-sm);
  font-size:.76rem;line-height:1.55;margin-top:6px;
}
.sm-status.success{background:rgba(123,178,144,.09);border:1px solid rgba(123,178,144,.25);color:var(--green);}
.sm-status.info   {background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.09);color:var(--muted);}
.sm-status.error  {background:rgba(224,95,95,.07);border:1px solid rgba(224,95,95,.2);color:var(--red);}

.sm-caption-preview {
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);
  border-radius:var(--r-sm);padding:9px 12px;
  font-size:.7rem;color:var(--dim);line-height:1.7;
  white-space:pre-wrap;max-height:90px;overflow-y:auto;
  margin-bottom:8px;
}

@media (max-width:480px) {
  .sm-platform-row { grid-template-columns:1fr; }
  .sm-secondary-row { gap:5px; }
}
