/* OwnerLedger — Midnight Poster (see DESIGN.md; V2 approved 2026-08-25) */
:root{
  --bg:#0f1420;
  --surface:#131926;
  --border:#1d2434;
  --border-gold:rgba(212,175,106,.30);
  --text:#e8e3d8;
  --text-hi:#f4f0e6;
  --text-muted:#a8a294;
  --text-faint:#5d6473;
  --accent:#d4af6a;
  --pos:#69b98a;
  --neg:#d96c5f;
  --tip-bg:#1d2434;
  --serif:'Fraunces',Georgia,serif;
  --sans:'Geist',system-ui,sans-serif;
  --mono:'Geist Mono',Menlo,monospace;
}
[data-theme="light"]{
  --bg:#f5f4f0;
  --surface:#fdfcfa;
  --border:#e3e1d8;
  --border-gold:rgba(26,24,20,.30);
  --text:#26231e;
  --text-hi:#111;
  --text-muted:#57534a;
  --text-faint:#8f8b80;
  --accent:#1a1814;
  --pos:#1e7a4f;
  --neg:#b3382e;
  --tip-bg:#26231e;
}
*{box-sizing:border-box;margin:0}
body{background:var(--bg);color:var(--text);font:15px/1.65 var(--sans);
  padding:0 24px 60px}
a{color:inherit}
.frame{max-width:1060px;margin:0 auto}

/* chrome */
header.site{display:flex;align-items:center;gap:34px;padding:26px 0;
  border-bottom:1px solid var(--border-gold)}
.logo{font:900 22px var(--serif);color:var(--text);text-decoration:none}
.logo span{color:var(--accent)}
nav.site{display:flex;gap:22px;font:600 12px var(--sans);letter-spacing:.04em}
nav.site a{color:var(--text-faint);text-decoration:none;text-transform:uppercase}
nav.site a.act{color:var(--accent)}
.regime{margin-left:auto;font:600 11px var(--mono);color:var(--pos);
  border:1px solid rgba(105,185,138,.35);padding:5px 11px;border-radius:20px}
.regime.off{color:var(--neg);border-color:rgba(217,108,95,.35)}
.acct{font:600 11px var(--mono)}
.acct a{color:var(--text-faint);text-decoration:none;border:1px solid var(--border);
  padding:5px 11px;border-radius:20px}
.acct a:hover{color:var(--accent);border-color:var(--border-gold)}
header.site .acct{margin-left:auto}
.authwrap{max-width:420px;margin:40px auto 0}
.authcard label{display:block;font:700 10px var(--mono);letter-spacing:.16em;
  color:var(--text-faint);text-transform:uppercase;margin-bottom:12px}
.authcard input{display:block;width:100%;margin-top:6px;border:1px solid var(--border);
  border-radius:4px;background:var(--bg);color:var(--text);
  font:500 15px var(--sans);padding:12px 14px;outline:0}
.authcard input:focus{border-color:var(--border-gold)}
.autherr{color:var(--neg);font-size:13px;margin-bottom:12px}
.authswap{margin-top:14px;font-size:13px;color:var(--text-faint)}
.authswap a{color:var(--accent)}
.kicker{font:700 10px var(--mono);letter-spacing:.3em;color:var(--text-faint);
  text-transform:uppercase;margin:34px 0 14px}
.kicker-sub{font:400 13px var(--sans);color:var(--text-muted);
  max-width:560px;margin:-6px 0 14px}

/* funnel strip */
.funnel{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap;
  border:1px solid var(--border);border-radius:4px;background:var(--surface);
  padding:16px 18px}
.funnel i{align-self:center;color:var(--text-faint);font-style:normal;
  font-family:var(--mono)}
.funnel .step{min-width:96px}
.funnel .regime{align-self:center}
.funnel .step b{font:800 26px var(--serif);color:var(--text-hi);display:block}
.funnel .step.drop b{color:var(--text-faint)}
.funnel .step.keep b{color:var(--accent)}
.funnel .step span{font:600 9px var(--mono);letter-spacing:.1em;color:var(--text-faint);
  text-transform:uppercase}

/* subscribe box */
.subbox{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:16px;
  border:1px dashed var(--border-gold);border-radius:4px;padding:14px 18px;
  background:var(--surface)}
.subbox span{font:500 13.5px var(--sans);color:var(--text-muted);flex:1;min-width:220px}
.subbox .preview{font:600 12px var(--mono);color:var(--text-faint)}

/* lens champion card (equal weight per lens) */
.champcard{border:1px solid var(--border-gold);border-radius:4px;
  background:var(--surface);padding:22px 24px;margin-bottom:14px}
.champcard .head{display:flex;align-items:center;justify-content:space-between;
  gap:16px;flex-wrap:wrap}
.champcard .lens{font:700 10px var(--mono);letter-spacing:.24em;color:var(--accent)}
.champcard .tk{font:900 52px var(--serif);line-height:1;letter-spacing:-.02em;
  color:var(--text-hi);margin-top:4px}
.gates{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
@media(max-width:640px){.gates{grid-template-columns:1fr}}
.gate{display:flex;gap:10px;border:1px solid var(--border);border-radius:4px;
  padding:10px 12px;background:var(--bg)}
.gate i{font-style:normal;font-family:var(--mono);font-weight:700;color:var(--neg)}
.gate.ok i{color:var(--pos)}
.gate b{display:block;font:600 12px var(--sans);color:var(--text)}
.gate span{font:500 11px var(--mono);color:var(--text-faint)}

/* champion poster */
.bigchamp{position:relative;padding:38px 40px;border:1px solid var(--border-gold);
  background:linear-gradient(160deg,#151b2b 0%,#10151f 70%);border-radius:4px}
.bigchamp .lens{font:700 11px var(--mono);letter-spacing:.28em;color:var(--accent)}
.bigchamp .tk{font:900 clamp(64px,12vw,120px) var(--serif);line-height:.95;
  letter-spacing:-.03em;color:var(--text-hi);margin:6px 0 0}
.bigchamp .score{position:absolute;top:34px;right:40px;text-align:right}
.bigchamp .score b{font:900 clamp(52px,9vw,96px) var(--serif);color:var(--accent);line-height:.9}
.bigchamp .score span{display:block;font:700 10px var(--mono);
  color:var(--text-faint);letter-spacing:.2em;margin-top:6px}
.why{max-width:460px;font-size:15px;line-height:1.65;color:var(--text-muted);margin-top:16px}
.why b{color:var(--text)}
.bigmetrics{display:flex;flex-wrap:wrap;gap:36px;margin-top:24px;padding-top:20px;
  border-top:1px solid rgba(212,175,106,.18);font:600 17px var(--mono)}
.bigmetrics div span{display:block;font-size:10px;color:var(--text-faint);
  letter-spacing:.12em;margin-top:3px}

/* second champion row */
.second{display:flex;align-items:center;gap:20px;padding:18px 24px;margin-top:14px;
  border:1px solid var(--border);border-radius:4px;background:var(--surface)}
.second .tk{font:900 34px var(--serif);color:var(--text-hi);width:120px}
.second .lens{font:700 9px var(--mono);letter-spacing:.2em;color:var(--text-faint)}
.second .m{margin-left:auto;display:flex;gap:20px;font:600 13px var(--mono)}
.second .m div span{display:block;font-size:9px;color:var(--text-faint)}
.second .score b{font:900 34px var(--serif);color:var(--accent)}

.pos{color:var(--pos)}
.neg{color:var(--neg)}

/* collapsed pool */
details.pool{margin-top:20px}
details.pool summary{cursor:pointer;font:700 10px var(--mono);letter-spacing:.28em;
  color:var(--text-faint);text-transform:uppercase;list-style:none;padding:12px 0;
  border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
details.pool summary::-webkit-details-marker{display:none}
details.pool summary:before{content:"▸ "}
details.pool[open] summary:before{content:"▾ "}
table{width:100%;border-collapse:collapse;font:500 13px var(--mono);margin-top:10px}
th{font-size:9px;letter-spacing:.18em;color:var(--text-faint);text-transform:uppercase;
  border-bottom:1px solid var(--border);padding:9px 12px;text-align:right}
th:nth-child(-n+3),td:nth-child(-n+3){text-align:left}
td{padding:9px 12px;border-bottom:1px solid var(--border);text-align:right;
  color:var(--text-muted);font-variant-numeric:tabular-nums}
td.tk{color:var(--text-hi);font:700 14px var(--sans)}
td.tk a{text-decoration:none}
tr:hover td{background:var(--surface)}
tr.prow{cursor:pointer}
tr.prow .chev{font-style:normal;color:var(--text-faint);margin-left:6px}
tr.gaterow{display:none}
tr.gaterow.open{display:table-row}
tr.gaterow td{text-align:left;background:var(--surface);padding:12px 14px 14px}
.rowwhy{font:400 12.5px var(--sans);color:var(--text-muted);margin-bottom:10px}
.gates.mini{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:0}
@media(max-width:900px){.gates.mini{grid-template-columns:1fr 1fr}}
.secondwhy{font:400 13px var(--sans);color:var(--text-faint);margin:8px 4px 0}

/* analyze bar */
.analyze{margin-top:28px;display:flex;border:1px solid var(--border-gold);
  border-radius:4px;overflow:hidden;background:var(--surface)}
.analyze input{flex:1;border:0;outline:0;padding:17px 20px;background:transparent;
  color:var(--text);font:500 15px var(--sans)}
.analyze input::placeholder{color:var(--text-faint)}
.analyze button{border:0;background:var(--accent);color:var(--bg);
  font:700 14px var(--sans);padding:0 28px;cursor:pointer}
.analyze button:hover{filter:brightness(1.08)}

/* analysis report */
.scoreband{display:flex;flex-wrap:wrap;gap:2px;margin-top:14px;border:1px solid var(--border);
  border-radius:4px;overflow:hidden}
.scoreband div{flex:1;min-width:120px;background:var(--surface);padding:16px 18px;
  border-right:1px solid var(--border)}
.scoreband div:last-child{border-right:0}
.scoreband b{font:900 44px var(--serif);color:var(--accent);line-height:1}
.scoreband span{display:block;font:700 9px var(--mono);color:var(--text-faint);
  letter-spacing:.16em;margin-top:6px;text-transform:uppercase}
.card{border:1px solid var(--border);border-radius:4px;background:var(--surface);
  padding:24px 26px;margin-top:14px}
.card h3{font:700 11px var(--mono);letter-spacing:.26em;color:var(--accent);
  text-transform:uppercase;margin-bottom:12px}
.card p,.card li{color:var(--text-muted);font-size:14.5px}
.card p+p{margin-top:10px}
.card ul{padding-left:1.2em;display:grid;gap:6px}
.card.against{border-color:rgba(217,108,95,.4)}
.card.against h3{color:var(--neg)}
.ivband{margin-top:16px;position:relative;height:64px}
.ivband .track{position:absolute;left:0;right:0;top:28px;height:6px;
  background:linear-gradient(90deg,rgba(217,108,95,.5),rgba(212,175,106,.6),rgba(105,185,138,.5));
  border-radius:3px}
.ivband .tick{position:absolute;top:14px;transform:translateX(-50%);text-align:center;
  font:700 12px var(--mono)}
.ivband .tick i{display:block;width:2px;height:34px;background:var(--text-faint);
  margin:4px auto 0;font-style:normal}
.ivband .tick.now i{background:var(--text-hi)}
.ivband .tick span{display:block;font-size:9px;color:var(--text-faint);letter-spacing:.1em}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.spin{margin:80px auto;text-align:center;color:var(--text-muted)}
.spin b{font:900 34px var(--serif);color:var(--text-hi);display:block;margin-bottom:10px}
.spin .dot{color:var(--accent);animation:pulse 1.2s infinite}
@keyframes pulse{0%,100%{opacity:.2}50%{opacity:1}}
.errbox{margin-top:30px;border:1px solid rgba(217,108,95,.4);border-radius:4px;
  padding:20px 24px;color:var(--neg);font-family:var(--mono);font-size:13px}
.btn{display:inline-block;background:var(--accent);color:var(--bg);border:0;
  border-radius:4px;font:700 14px var(--sans);padding:12px 24px;cursor:pointer;
  text-decoration:none}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border-gold)}
.empty{margin:70px auto;text-align:center;color:var(--text-muted)}
.empty b{font:900 30px var(--serif);color:var(--text-hi);display:block;margin-bottom:8px}
footer.site{margin-top:48px;font:500 10px var(--mono);color:var(--text-faint);
  border-top:1px solid var(--border);padding-top:16px;display:flex;
  justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
@media(max-width:760px){
  nav.site{display:none}
  .bigchamp{padding:26px 22px}
  .bigchamp .score{position:static;text-align:left;margin-top:10px}
  .second{flex-wrap:wrap}
  .grid2{grid-template-columns:1fr}
}
.legend{font:400 12px var(--sans);color:var(--text-faint);max-width:640px;
  margin:-8px 0 12px}
.legend b{color:var(--text-muted);font-weight:600}
.tip{border-bottom:1px dotted var(--text-faint);cursor:help}
.scoremini{display:flex;gap:2px;border:1px solid var(--border);border-radius:4px;
  overflow:hidden}
.scoremini div{background:var(--bg);padding:10px 16px;text-align:center;
  border-right:1px solid var(--border)}
.scoremini div:last-child{border-right:0}
.scoremini b{font:900 26px var(--serif);color:var(--accent)}
.scoremini span{display:block;font:700 8px var(--mono);color:var(--text-faint);
  letter-spacing:.14em;text-transform:uppercase;margin-top:2px}
.verdictline{font:500 14px var(--sans);color:var(--text-muted);margin-top:14px;
  border-top:1px solid var(--border);padding-top:12px}
details.wp{border:1px solid var(--border);border-radius:4px;background:var(--surface);
  margin-bottom:10px}
details.wp summary{cursor:pointer;list-style:none;padding:14px 18px;
  font:600 13.5px var(--sans);color:var(--text)}
details.wp summary::-webkit-details-marker{display:none}
details.wp summary:before{content:"▸ ";color:var(--text-faint);font-family:var(--mono)}
details.wp[open] summary:before{content:"▾ "}
details.wp .body{padding:2px 18px 16px;border-top:1px dashed var(--border)}
details.wp .body h4{font:700 10px var(--mono);letter-spacing:.2em;color:var(--text-faint);
  text-transform:uppercase;margin:14px 0 6px}
details.wp .body p,details.wp .body li{color:var(--text-muted);font-size:14px}
details.wp .body ul{padding-left:1.2em;display:grid;gap:5px}
.tip{position:relative}
.tip:hover::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 10px);
  left:50%;transform:translateX(-50%);width:250px;z-index:20;
  background:var(--tip-bg);color:#f2f1ea;border:1px solid var(--border-gold);
  border-radius:4px;padding:10px 12px;font:400 12px/1.5 var(--sans);
  letter-spacing:0;text-transform:none;text-align:left;white-space:normal;
  box-shadow:0 6px 18px rgba(0,0,0,.4);pointer-events:none}
.tip:hover::before{content:"";position:absolute;bottom:calc(100% + 4px);
  left:50%;transform:translateX(-50%);border:6px solid transparent;
  border-top-color:var(--tip-bg);z-index:21;pointer-events:none}
th:last-child .tip:hover::after{left:auto;right:0;transform:none}
.regime.tip{cursor:help}
.regime.tip:hover::after{bottom:auto;top:calc(100% + 10px);left:auto;right:0;
  transform:none;width:280px}
.regime.tip:hover::before{bottom:auto;top:calc(100% + 4px);
  border-top-color:transparent;border-bottom-color:var(--tip-bg)}

.themebtn{border:1px solid var(--border);background:transparent;color:var(--text-faint);
  border-radius:20px;padding:5px 11px;cursor:pointer;font:600 11px var(--mono)}
.themebtn:hover{color:var(--text);border-color:var(--border-gold)}
