:root {
  --navy:       #0f1f35;
  --slate:      #1a2e47;
  --green:      #22c55e;
  --red:        #ef4444;
  --amber:      #f59e0b;
  --body:       #cbd5e1;
  --muted:      #94a3b8;
  --lgrey:      #1a2d42;
  --divider:    #243447;
  --white:      #f1f5f9;
  --pale-green: #86efac;
  --pale-blue:  #93c5fd;
  --bg:         #0a1628;
  --card:       #111f33;
  --radius:     10px;
  --shadow:     0 1px 6px rgba(0,0,0,0.4);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif; background: var(--bg); color: var(--body); font-size: 14px; display: flex; flex-direction: column; min-height: 100vh; }
#app { flex: 1; display: flex; flex-direction: column; }
.content { flex: 1; }

/* ── HEADER ── */
.header { background: var(--navy); color: white; padding: 16px 20px 12px; position: sticky; top: 0; z-index: 100; box-shadow: 0 2px 12px rgba(0,0,0,0.5); border-bottom: 1px solid var(--divider); transition: padding .2s, max-height .2s; overflow: hidden; }
.header.collapsed { padding: 0; max-height: 0; border-bottom: none; box-shadow: none; }
.header-top { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 8px; }
.header h1 { font-size: 15px; font-weight: 700; letter-spacing: .5px; color: var(--white); }
.header .meta { font-size: 11px; color: var(--pale-blue); margin-top: 3px; }
.header .bias-line { font-size: 12px; font-weight: 700; color: var(--pale-green); margin-top: 6px; }
.header-right { text-align: right; }
.header-right .tally { font-size: 11px; color: var(--pale-blue); }
.last-updated { font-size: 10px; color: var(--muted); margin-top: 2px; }

/* ── TABS ── */
.tabs { display: flex; overflow-x: auto; background: var(--slate); padding: 0 12px; gap: 2px; border-bottom: 1px solid var(--divider); position: sticky; top: 0; z-index: 99; }
.tabs button { background: none; border: none; border-bottom: 2px solid transparent; padding: 10px 14px; font-size: 12px; font-weight: 500; color: #94a3b8; cursor: pointer; white-space: nowrap; transition: color .15s, border-color .15s; }
.tabs button.active { color: var(--white); border-bottom-color: var(--pale-green); }
.tabs button:hover:not(.active) { color: var(--body); }

/* ── LAYOUT ── */
.content { max-width: 960px; margin: 0 auto; padding: 16px 12px 40px; }
.panel { display: none; }
.panel.active { display: block; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.grid3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; margin-bottom: 14px; }
.grid4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 14px; }
@media(max-width:600px) { .grid2,.grid3,.grid4 { grid-template-columns: 1fr 1fr; } }
@media(max-width:400px) { .grid2,.grid3,.grid4 { grid-template-columns: 1fr; } }

/* ── CARDS ── */
.card { background: var(--card); border: 1px solid var(--divider); border-radius: var(--radius); box-shadow: var(--shadow); padding: 14px 16px; margin-bottom: 14px; }
.card-title { font-size: 10px; font-weight: 700; color: #7dd3fc; text-transform: uppercase; letter-spacing: .8px; margin-bottom: 10px; }

/* ── METRIC TILES ── */
.metric { background: var(--lgrey); border: 1px solid var(--divider); border-radius: 8px; padding: 12px; }
.metric .sym { font-size: 11px; font-weight: 600; color: var(--muted); text-transform: uppercase; margin-bottom: 4px; }
.metric .price { font-size: 20px; font-weight: 700; color: var(--white); }
.metric .chg { font-size: 12px; margin-top: 3px; }
.metric .chg7 { font-size: 11px; color: var(--muted); margin-top: 1px; }

/* ── TABLE ROWS ── */
.row { display: flex; justify-content: space-between; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--divider); gap: 8px; font-size: 13px; flex-wrap: wrap; }
.row:last-child { border-bottom: none; }
.row .lbl { color: var(--muted); flex-shrink: 0; }
.row .val { font-weight: 600; color: var(--white); text-align: right; }
.row .note { font-size: 11px; color: var(--muted); width: 100%; margin-top: 2px; }

/* ── SIGNAL PILLS ── */
.pill { display: inline-block; padding: 2px 9px; border-radius: 20px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.bull { background: rgba(34,197,94,0.2);  color: #4ade80; }
.bear { background: rgba(239,68,68,0.2);  color: #f87171; }
.neu  { background: rgba(148,163,184,0.2);color: #cbd5e1; }
.gain { background: rgba(34,197,94,0.2);  color: #4ade80; }
.fade { background: rgba(245,158,11,0.2); color: #fbbf24; }
.unus { background: rgba(245,158,11,0.2); color: #fbbf24; }

/* ── KO BLOCK ── */
.ko { background: rgba(26,45,66,0.9); border-left: 3px solid #3b82f6; border-radius: 0 8px 8px 0; padding: 10px 14px; margin-top: 10px; }
.ko .ko-label { font-size: 10px; font-weight: 700; color: #7dd3fc; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 5px; }
.ko .ko-body { font-size: 12px; color: #cbd5e1; line-height: 1.7; font-style: italic; }
.ko .ko-bias { font-size: 12px; font-weight: 700; margin-top: 6px; }

/* ── FLAG ── */
.flag { background: rgba(245,158,11,0.12); border: 1px solid rgba(245,158,11,0.4); border-radius: 8px; padding: 8px 12px; font-size: 12px; color: #fcd34d; margin-bottom: 10px; display: flex; align-items: flex-start; gap: 8px; }
.flag svg { flex-shrink: 0; margin-top: 1px; }

/* ── NEWS ── */
.news-item { padding: 10px 0; border-bottom: 1px solid var(--divider); }
.news-item:last-child { border-bottom: none; }
.news-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; gap: 8px; }
.news-cat { font-size: 10px; font-weight: 600; padding: 2px 7px; border-radius: 4px; white-space: nowrap; }
.cat-reg { background: rgba(37,99,235,0.25);  color: #93c5fd; }
.cat-ins { background: rgba(124,58,237,0.25); color: #c4b5fd; }
.cat-mkt { background: rgba(245,158,11,0.25); color: #fcd34d; }
.cat-etf { background: rgba(239,68,68,0.25);  color: #fca5a5; }
.cat-oc  { background: rgba(34,197,94,0.2);   color: #86efac; }
.cat-mac { background: rgba(148,163,184,0.2); color: #cbd5e1; }
.cat-exc { background: rgba(236,72,153,0.25); color: #f9a8d4; }
.cat-pro { background: rgba(34,197,94,0.2);   color: #86efac; }
.news-headline { font-size: 13px; font-weight: 600; color: var(--white); margin-bottom: 3px; }
.news-impact { font-size: 11px; color: #94a3b8; line-height: 1.6; }
.news-source { font-size: 10px; color: #64748b; font-style: italic; margin-top: 3px; }

/* ── WATCHLIST ── */
.wl-row { padding: 8px 0; border-bottom: 1px solid var(--divider); }
.wl-row:last-child { border-bottom: none; }
.wl-top { display: flex; justify-content: space-between; align-items: center; gap: 6px; flex-wrap: wrap; }
.wl-sym { font-size: 13px; font-weight: 700; color: var(--pale-blue); text-transform: uppercase; min-width: 45px; }
.wl-price { font-size: 14px; font-weight: 600; color: var(--white); }
.wl-chg { font-size: 12px; font-weight: 600; }
.wl-note { font-size: 11px; color: #94a3b8; margin-top: 3px; line-height: 1.5; }

/* ── NARRATIVES ── */
.narr-row { padding: 8px 0; border-bottom: 1px solid var(--divider); }
.narr-row:last-child { border-bottom: none; }
.narr-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 3px; }
.narr-name { font-size: 13px; font-weight: 600; color: var(--white); }
.narr-note { font-size: 11px; color: #94a3b8; line-height: 1.5; }

/* ── ORDER FLOW TABLE ── */
.of-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.of-table th { background: var(--slate); color: #7dd3fc; padding: 7px 10px; text-align: left; font-size: 11px; font-weight: 600; border-bottom: 1px solid var(--divider); }
.of-table td { padding: 7px 10px; border-bottom: 1px solid var(--divider); vertical-align: top; color: var(--body); }
.of-table tr:last-child td { border-bottom: none; }
.of-table tr:hover td { background: rgba(26,45,66,0.6); }

/* ── CONVICTION TABLE ── */
.conv-row { display: flex; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--divider); gap: 8px; }
.conv-row:last-child { border-bottom: none; background: var(--lgrey); margin: 6px -16px -14px; padding: 8px 16px; border-radius: 0 0 var(--radius) var(--radius); }
.conv-section { font-size: 12px; font-weight: 600; color: var(--white); min-width: 120px; flex-shrink: 0; }
.conv-driver { font-size: 11px; color: #94a3b8; flex: 1; }
.conv-signal { flex-shrink: 0; }

/* ── TRADE BLOCK ── */
.trade { border-radius: var(--radius); overflow: hidden; margin-bottom: 16px; box-shadow: var(--shadow); border: 1px solid var(--divider); }
.trade-hdr { padding: 12px 16px; color: white; }
.trade-hdr .t-title { font-size: 14px; font-weight: 700; }
.trade-hdr .t-sub { font-size: 11px; color: var(--pale-blue); margin-top: 3px; }
.trade-hdr.long  { background: #0a2018; border-left: 4px solid var(--green); }
.trade-hdr.short { background: #200a0a; border-left: 4px solid var(--red); }
.trade-body { background: var(--card); border-top: 1px solid var(--divider); }
.trade-row { display: flex; padding: 7px 16px; border-bottom: 1px solid var(--divider); gap: 12px; }
.trade-row:last-child { border-bottom: none; }
.trade-lbl { font-size: 11px; font-weight: 700; color: #7dd3fc; min-width: 110px; flex-shrink: 0; text-transform: uppercase; padding-top: 1px; }
.trade-val { font-size: 12px; color: var(--body); line-height: 1.5; }
.trade-val.green { color: #4ade80; font-weight: 700; }
.trade-val.red   { color: #f87171; font-weight: 700; }
.trade-val.navy  { color: var(--pale-blue); font-weight: 700; }
.disclaimer { font-size: 11px; color: var(--muted); font-style: italic; text-align: center; margin-top: 8px; }

/* ── CHART ANALYSIS ── */
.chart-fw { padding: 10px 0; border-bottom: 1px solid var(--divider); }
.chart-fw:last-child { border-bottom: none; }
.chart-fw-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.chart-fw-name { font-size: 13px; font-weight: 700; color: var(--white); }
.chart-fw-read { font-size: 12px; color: var(--body); line-height: 1.6; }
.chart-fw-level { font-size: 11px; color: #94a3b8; font-style: italic; margin-top: 3px; }
.chart-fw.synthesis { background: var(--lgrey); margin: 8px 0 0 0; padding: 10px 12px; border-radius: 8px; border: 1px solid var(--divider); }

/* ── RISK TABLE ── */
.risk-row { padding: 8px 0; border-bottom: 1px solid var(--divider); }
.risk-row:last-child { border-bottom: none; }
.risk-num { font-size: 11px; font-weight: 700; color: var(--amber); margin-bottom: 2px; }
.risk-name { font-size: 13px; font-weight: 600; color: var(--white); margin-bottom: 3px; }
.risk-detail { font-size: 11px; color: #94a3b8; line-height: 1.6; }

/* ── KEY LEVELS ── */
.level-row { padding: 8px 0; border-bottom: 1px solid var(--divider); }
.level-row:last-child { border-bottom: none; }
.level-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 4px; }
.level-sym { font-size: 12px; font-weight: 700; color: var(--pale-blue); text-transform: uppercase; }
.level-reason { font-size: 10px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .4px; }
.level-data { display: flex; gap: 16px; flex-wrap: wrap; }
.level-sup { font-size: 12px; color: #4ade80; font-weight: 600; }
.level-res { font-size: 12px; color: #f87171; font-weight: 600; }
.level-note { font-size: 11px; color: #94a3b8; margin-top: 3px; }

/* ── CYCLE TAB ── */
.cycle-summary { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.cycle-summary-tile { flex: 1; min-width: 120px; background: var(--lgrey); border: 1px solid var(--divider); border-radius: 8px; padding: 10px 14px; text-align: center; }
.cycle-summary-tile .cs-label { font-size: 10px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .6px; margin-bottom: 4px; }
.cycle-summary-tile .cs-value { font-size: 14px; font-weight: 700; color: var(--white); }
.cycle-summary-tile .cs-sub { font-size: 10px; color: var(--muted); margin-top: 2px; }
.cycle-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.cycle-table th { background: var(--slate); color: #7dd3fc; padding: 8px 10px; text-align: left; font-size: 11px; font-weight: 600; border-bottom: 1px solid var(--divider); }
.cycle-table th:last-child { text-align: center; }
.cycle-table td { padding: 9px 10px; border-bottom: 1px solid var(--divider); vertical-align: middle; color: var(--body); }
.cycle-table tr:last-child td { border-bottom: none; }
.cycle-table tr:hover td { background: rgba(26,45,66,0.5); }
.cycle-metric-name { font-weight: 600; color: var(--white); font-size: 12px; }
.cycle-metric-desc { font-size: 10px; color: var(--muted); margin-top: 2px; }
.cycle-value { font-weight: 600; color: var(--white); font-size: 12px; }
.cycle-asof { font-size: 10px; color: var(--muted); margin-top: 2px; }
.cycle-asof.stale { color: #f59e0b; }
.cycle-zone { font-size: 11px; }
.cycle-source { font-size: 10px; color: #64748b; font-style: italic; }
.action-rare-buy  { display: inline-block; padding: 3px 10px; border-radius: 4px; font-size: 11px; font-weight: 700; background: rgba(34,197,94,0.25); color: #4ade80; white-space: nowrap; }
.action-entry     { display: inline-block; padding: 3px 10px; border-radius: 4px; font-size: 11px; font-weight: 700; background: rgba(99,202,183,0.2); color: #5eead4; white-space: nowrap; }
.action-hold      { display: inline-block; padding: 3px 10px; border-radius: 4px; font-size: 11px; font-weight: 700; background: rgba(245,158,11,0.2); color: #fbbf24; white-space: nowrap; }
.action-rare-sell { display: inline-block; padding: 3px 10px; border-radius: 4px; font-size: 11px; font-weight: 700; background: rgba(239,68,68,0.25); color: #f87171; white-space: nowrap; }
.action-unavail   { display: inline-block; padding: 3px 10px; border-radius: 4px; font-size: 11px; font-weight: 700; background: rgba(148,163,184,0.15); color: #64748b; white-space: nowrap; }
.cycle-context { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
@media(max-width:500px) { .cycle-context { grid-template-columns: 1fr; } }
.cycle-ctx-card { background: var(--lgrey); border: 1px solid var(--divider); border-radius: 8px; padding: 12px 14px; }
.cycle-ctx-title { font-size: 10px; font-weight: 700; color: #7dd3fc; text-transform: uppercase; letter-spacing: .6px; margin-bottom: 8px; }
.cycle-ctx-main { font-size: 18px; font-weight: 700; color: var(--white); margin-bottom: 3px; }
.cycle-ctx-sub { font-size: 11px; color: var(--muted); line-height: 1.5; }
.cycle-ko { background: rgba(26,45,66,0.9); border-left: 3px solid #8b5cf6; border-radius: 0 8px 8px 0; padding: 10px 14px; margin-top: 10px; }
.cycle-ko .ck-label { font-size: 10px; font-weight: 700; color: #c4b5fd; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 5px; }
.cycle-ko .ck-body { font-size: 12px; color: #cbd5e1; line-height: 1.7; font-style: italic; }
.cycle-ko .ck-overall { font-size: 12px; font-weight: 700; margin-top: 6px; color: var(--pale-green); }
.cycle-unavail-note { font-size: 11px; color: #64748b; font-style: italic; text-align: center; padding: 8px 0; }
.cycle-data-status { display: flex; gap: 12px; flex-wrap: wrap; padding: 8px 0 4px; font-size: 10px; color: var(--muted); align-items: center; }
.cycle-data-status .cds-item { display: flex; align-items: center; gap: 4px; }

/* ── FOOTER ── */
.footer { background: var(--navy); border-top: 1px solid var(--divider); padding: 12px 20px; font-size: 10px; color: #64748b; text-align: center; line-height: 1.6; margin-top: auto; }

/* ── LOADING / ERROR ── */
.loading { text-align: center; padding: 60px 20px; color: var(--muted); }
.loading .spinner { width: 32px; height: 32px; border: 3px solid var(--divider); border-top-color: var(--pale-blue); border-radius: 50%; animation: spin .7s linear infinite; margin: 0 auto 16px; }
@keyframes spin { to { transform: rotate(360deg); } }
.no-chart { text-align: center; padding: 40px 20px; color: var(--muted); font-style: italic; }

/* ── MOVERS ── */
.mover-row { display: flex; justify-content: space-between; align-items: flex-start; padding: 7px 0; border-bottom: 1px solid var(--divider); gap: 8px; }
.mover-row:last-child { border-bottom: none; }
.mover-asset { font-size: 13px; font-weight: 600; color: var(--white); min-width: 60px; }
.mover-catalyst { font-size: 11px; color: #94a3b8; flex: 1; line-height: 1.5; }
.mover-chg { font-size: 13px; font-weight: 700; white-space: nowrap; }

/* ── EDGE SCANNER ── */
.ew-card { background: var(--card); border: 1px solid var(--divider); border-radius: var(--radius); box-shadow: var(--shadow); margin-bottom: 14px; overflow: hidden; }
.ew-hdr { padding: 12px 16px; display: flex; justify-content: space-between; align-items: center; gap: 8px; border-bottom: 1px solid var(--divider); }
.ew-hdr.high  { border-left: 4px solid var(--green); background: #061a0e; }
.ew-hdr.medium{ border-left: 4px solid var(--amber); background: #1a1206; }
.ew-hdr.low   { border-left: 4px solid var(--red);   background: #1a0606; }
.ew-sym { font-size: 16px; font-weight: 700; color: var(--white); }
.ew-name { font-size: 11px; color: var(--muted); margin-top: 1px; }
.ew-price-block { text-align: right; }
.ew-price { font-size: 15px; font-weight: 700; color: var(--white); }
.ew-chg { font-size: 12px; font-weight: 600; margin-top: 2px; }
.ew-body { padding: 12px 16px; }
.ew-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.ew-badge { font-size: 10px; font-weight: 600; padding: 2px 8px; border-radius: 4px; white-space: nowrap; }
.ew-badge.chain  { background: rgba(147,197,253,0.15); color: #93c5fd; }
.ew-badge.rs     { background: rgba(34,197,94,0.15);   color: #4ade80; }
.ew-badge.oi     { background: rgba(148,163,184,0.15); color: #cbd5e1; }
.ew-badge.unlock { background: rgba(34,197,94,0.15);   color: #4ade80; }
.ew-badge.unlock.watch  { background: rgba(245,158,11,0.15); color: #fbbf24; }
.ew-badge.ct     { background: rgba(167,139,250,0.15); color: #c4b5fd; }
.ew-field { margin-bottom: 8px; }
.ew-field .ew-fl { font-size: 10px; font-weight: 700; color: #7dd3fc; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 3px; }
.ew-field .ew-fv { font-size: 12px; color: var(--body); line-height: 1.6; }
.ew-field .ew-fv.risk { color: #f87171; }
.ew-levels { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 8px; background: var(--lgrey); border-radius: 6px; padding: 10px 12px; margin-top: 10px; }
.ew-lv-item .ew-lv-lbl { font-size: 10px; color: var(--muted); margin-bottom: 2px; }
.ew-lv-item .ew-lv-val { font-size: 12px; font-weight: 600; }
.ew-lv-item .ew-lv-val.entry { color: var(--pale-blue); }
.ew-lv-item .ew-lv-val.inv   { color: #f87171; }
.ew-lv-item .ew-lv-val.tp    { color: #4ade80; }
.ew-lv-item .ew-lv-val.rr    { color: #fbbf24; }
@media(max-width:500px) { .ew-levels { grid-template-columns: 1fr 1fr; } }

.pool-table { width: 100%; border-collapse: collapse; font-size: 11px; }
.pool-table th { background: var(--slate); color: #7dd3fc; padding: 6px 8px; text-align: left; font-size: 10px; font-weight: 600; border-bottom: 1px solid var(--divider); white-space: nowrap; }
.pool-table td { padding: 6px 8px; border-bottom: 1px solid var(--divider); vertical-align: top; color: var(--body); }
.pool-table tr:last-child td { border-bottom: none; }
.pool-table tr:hover td { background: rgba(26,45,66,0.6); }
.pool-net { font-size: 10px; font-weight: 600; padding: 1px 6px; border-radius: 3px; white-space: nowrap; }
.pool-net.eth  { background: rgba(99,102,241,0.25); color: #a5b4fc; }
.pool-net.solana { background: rgba(139,92,246,0.25); color: #c4b5fd; }
.pool-net.base { background: rgba(37,99,235,0.25); color: #93c5fd; }
.pool-net.other { background: rgba(148,163,184,0.2); color: #cbd5e1; }
.q-clean { color: #4ade80; font-weight: 700; }
.q-watch { color: #fbbf24; font-weight: 700; }
.q-risk  { color: #f87171; font-weight: 700; }
.q-pre   { color: #7dd3fc; font-weight: 700; }

.sector-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }
@media(max-width:480px) { .sector-grid { grid-template-columns: 1fr; } }
.sector-row { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--divider); gap: 6px; font-size: 12px; }
.sector-row:last-child { border-bottom: none; }
.sector-name { color: var(--body); flex: 1; }
.sector-chg  { font-weight: 700; white-space: nowrap; }

.cat-unlock { background: rgba(245,158,11,0.25); color: #fcd34d; }
.cat-ipo    { background: rgba(167,139,250,0.25); color: #c4b5fd; }
.cat-upg    { background: rgba(34,197,94,0.2);   color: #86efac; }
.cat-aird   { background: rgba(99,102,241,0.25); color: #a5b4fc; }
.cat-tok    { background: rgba(236,72,153,0.25); color: #f9a8d4; }
.cat-hi     { background: rgba(239,68,68,0.25);  color: #fca5a5; }

.narr-badge.confirmed   { background: rgba(34,197,94,0.2);   color: #4ade80; }
.narr-badge.early       { background: rgba(245,158,11,0.2);  color: #fbbf24; }
.narr-badge.unconfirmed { background: rgba(148,163,184,0.2); color: #cbd5e1; }

.edge-meta-bar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; align-items: center; }
.edge-meta-item { font-size: 11px; color: var(--muted); }
.edge-meta-item strong { color: var(--white); }
.edge-scan-ko { background: rgba(26,45,66,0.9); border-left: 3px solid var(--amber); border-radius: 0 8px 8px 0; padding: 10px 14px; margin-top: 14px; }
.edge-scan-ko .ko-label { font-size: 10px; font-weight: 700; color: #fbbf24; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 5px; }
.edge-scan-ko .ko-body  { font-size: 12px; color: #cbd5e1; line-height: 1.7; font-style: italic; }
.edge-scan-ko .ko-bias  { font-size: 12px; font-weight: 700; margin-top: 6px; }

/* ── ABOUT ── */
.about-hero { background: linear-gradient(135deg, #0f1f35 0%, #1a2e47 100%); border: 1px solid var(--divider); border-radius: var(--radius); padding: 24px 20px 20px; margin-bottom: 16px; }
.about-hero h2 { font-size: 18px; font-weight: 700; color: var(--white); margin-bottom: 6px; }
.about-hero .sub { font-size: 12px; color: var(--pale-blue); margin-bottom: 14px; }
.about-hero p { font-size: 13px; color: #cbd5e1; line-height: 1.8; }
.about-section { margin-bottom: 20px; }
.about-section h3 { font-size: 11px; font-weight: 700; color: #7dd3fc; text-transform: uppercase; letter-spacing: .8px; margin-bottom: 10px; padding-bottom: 6px; border-bottom: 1px solid var(--divider); }
.about-tab-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media(max-width:500px){ .about-tab-grid { grid-template-columns: 1fr; } }
.about-tab-card { background: var(--lgrey); border: 1px solid var(--divider); border-radius: 8px; padding: 12px 14px; }
.about-tab-card .tab-name { font-size: 12px; font-weight: 700; color: var(--pale-green); margin-bottom: 4px; }
.about-tab-card .tab-desc { font-size: 11px; color: #94a3b8; line-height: 1.6; }
.about-source-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
@media(max-width:500px){ .about-source-grid { grid-template-columns: 1fr; } }
.about-source { background: var(--lgrey); border: 1px solid var(--divider); border-radius: 6px; padding: 9px 12px; }
.about-source .src-cat { font-size: 10px; font-weight: 700; color: #7dd3fc; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 5px; }
.about-source .src-item { font-size: 11px; color: #94a3b8; padding: 2px 0; display: flex; align-items: flex-start; gap: 6px; line-height: 1.5; }
.about-source .src-item::before { content: '\00b7'; color: var(--pale-blue); flex-shrink: 0; }
.about-source .src-name { color: var(--white); font-weight: 600; }
.about-pipeline { display: flex; flex-direction: column; gap: 0; }
.about-step { display: flex; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--divider); align-items: flex-start; }
.about-step:last-child { border-bottom: none; }
.about-step .step-num { background: var(--slate); color: var(--pale-blue); font-size: 11px; font-weight: 700; width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; }
.about-step .step-body .step-title { font-size: 12px; font-weight: 700; color: var(--white); margin-bottom: 2px; }
.about-step .step-body .step-desc { font-size: 11px; color: #94a3b8; line-height: 1.6; }
.about-disclaimer { background: rgba(245,158,11,0.08); border: 1px solid rgba(245,158,11,0.25); border-radius: 8px; padding: 12px 16px; font-size: 11px; color: #94a3b8; line-height: 1.7; }
.about-disclaimer strong { color: #fbbf24; }

/* ── SCROLLBAR ── */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--slate); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #2d4a6b; }
