:root{
  --ink:#0A0E17;
  --panel:#111A2C;
  --panel-2:#0D1422;
  --line:#243149;
  --text:#E7E9F0;
  --muted:#7E8AA3;
  --gold:#D4A93E;
  --gold-dim:#8A742E;
  --retail:#E0596B;
  --retail-dim:#7A3540;
  --teal:#34D1B8;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:
    radial-gradient(ellipse 900px 500px at 15% -5%, rgba(212,169,62,0.08), transparent 60%),
    radial-gradient(ellipse 700px 500px at 100% 10%, rgba(52,209,184,0.06), transparent 55%),
    var(--ink);
  color:var(--text);
  font-family:'Plus Jakarta Sans', sans-serif;
  line-height:1.6;
  padding-bottom:80px;
}
.wrap{max-width:1080px; margin:0 auto; padding:0 20px;}

.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:11.5px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--teal);
  display:flex; align-items:center; gap:8px;
}
.eyebrow::before{content:''; width:16px; height:1px; background:var(--teal);}

.hero{padding:56px 0 32px; border-bottom:1px solid var(--line);}
h1{
  font-family:'Space Grotesk', sans-serif;
  font-weight:700;
  font-size:clamp(26px,5.4vw,38px);
  line-height:1.18;
  margin:14px 0 12px;
  letter-spacing:-0.01em;
}
h1 .accent{color:var(--gold);}
.lede{color:var(--muted); font-size:15.5px; max-width:62ch;}

.meta-row{display:flex; flex-wrap:wrap; gap:28px; margin-top:28px;}
.meta-item{display:flex; flex-direction:column; gap:4px;}
.meta-label{font-family:'IBM Plex Mono', monospace; font-size:10.5px; color:var(--muted); text-transform:uppercase; letter-spacing:0.06em;}
.meta-value{font-family:'Space Grotesk', sans-serif; font-size:17px; font-weight:600;}

.filters{
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  flex-wrap:wrap; padding:22px 0;
}
.filter-group{display:flex; flex-wrap:wrap; gap:8px;}
.chip{
  font-family:'IBM Plex Mono', monospace; font-size:12px;
  background:var(--panel); border:1px solid var(--line); color:var(--muted);
  padding:7px 12px; border-radius:20px; cursor:pointer; transition:all .15s ease;
}
.chip:hover{border-color:var(--teal); color:var(--text);}
.chip.active{background:var(--teal); border-color:var(--teal); color:var(--ink); font-weight:600;}

.search-input{
  background:var(--panel); border:1px solid var(--line); color:var(--text);
  padding:8px 14px; border-radius:8px; font-family:'Plus Jakarta Sans'; font-size:13.5px;
  min-width:180px;
}
.search-input:focus{outline:none; border-color:var(--teal);}

.table-section{
  background:var(--panel); border:1px solid var(--line); border-radius:14px;
  overflow:hidden; margin-bottom:32px;
}
table{width:100%; border-collapse:collapse;}
thead th{
  text-align:left; font-family:'IBM Plex Mono', monospace; font-size:11px;
  text-transform:uppercase; letter-spacing:0.06em; color:var(--muted);
  padding:14px 16px; border-bottom:1px solid var(--line); cursor:pointer; user-select:none;
  white-space:nowrap;
}
thead th:hover{color:var(--text);}
thead th.num{text-align:right;}
tbody td{padding:13px 16px; border-bottom:1px solid var(--line); font-size:14px;}
tbody td.num{text-align:right; font-family:'IBM Plex Mono', monospace;}
tbody tr:last-child td{border-bottom:none;}
tbody tr{cursor:pointer; transition:background .12s ease;}
tbody tr:hover{background:var(--panel-2);}
.loading-row{text-align:center; color:var(--muted); padding:32px !important;}

.ticker-cell{font-family:'Space Grotesk', sans-serif; font-weight:600; letter-spacing:0.01em;}
.signal-badge{
  display:inline-flex; align-items:center; gap:6px;
  font-family:'IBM Plex Mono', monospace; font-size:12px;
  padding:4px 10px; border-radius:6px; border:1px solid var(--line);
}
.signal-RETAIL_SELL_SMART_ABSORB, .signal-ACCUMULATION_CONTINUATION{color:var(--teal); border-color:var(--teal);}
.signal-HIDDEN_DISTRIBUTION, .signal-PLAIN_DOWNTREND{color:var(--retail); border-color:var(--retail);}
.signal-NEUTRAL{color:var(--muted);}

.score-bar-wrap{display:flex; align-items:center; justify-content:flex-end; gap:8px;}
.score-num{min-width:44px; text-align:right;}
.score-track{width:60px; height:5px; background:var(--line); border-radius:3px; position:relative; overflow:hidden;}
.score-fill{position:absolute; top:0; bottom:0; border-radius:3px;}
.score-fill.pos{background:var(--gold); left:50%;}
.score-fill.neg{background:var(--retail); right:50%;}

.detail-panel{
  position:fixed; inset:0; background:rgba(10,14,23,0.72); backdrop-filter:blur(3px);
  display:flex; align-items:center; justify-content:center; padding:20px; z-index:50;
}
/* the author display:flex above beats the UA stylesheet's [hidden]{display:none},
   so restate it explicitly - without this the overlay is permanently visible */
.detail-panel[hidden]{display:none;}
.detail-inner{
  background:var(--panel); border:1px solid var(--line); border-radius:16px;
  max-width:520px; width:100%; padding:26px 24px; position:relative; max-height:82vh; overflow-y:auto;
}
.detail-close{
  position:absolute; top:16px; right:16px; background:none; border:none; color:var(--muted);
  font-size:16px; cursor:pointer;
}
.detail-close:hover{color:var(--text);}
.detail-inner h3{font-family:'Space Grotesk'; font-size:20px; margin-bottom:4px;}
.detail-inner .sig-note{color:var(--muted); font-size:13.5px; margin:10px 0 20px;}
.detail-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.detail-block{background:var(--panel-2); border:1px solid var(--line); border-radius:10px; padding:12px 14px;}
.detail-block .k{font-family:'IBM Plex Mono', monospace; font-size:10.5px; color:var(--muted); text-transform:uppercase;}
.detail-block .v{font-family:'Space Grotesk'; font-size:18px; font-weight:600; margin-top:4px;}

.caveat{
  margin-top:44px;
  background:var(--panel-2); border:1px solid var(--line); border-radius:12px;
  padding:16px 18px; font-size:13px; color:var(--muted);
}
.caveat b{color:var(--text);}

footer{
  text-align:center; padding-top:36px; font-family:'IBM Plex Mono', monospace;
  font-size:11px; color:var(--muted); letter-spacing:0.04em;
}

@media (prefers-reduced-motion: reduce){
  *{transition:none !important;}
}
