:root{
  --bg:#0F1614; --surface:#16211D; --surface-2:#1C2924; --line:#2A3830;
  --text:#EDEFE9; --text-dim:#9DAAA1; --text-faint:#6B7A72;
  --amber:#E8A33D; --amber-dim:#8A6528; --teal:#4FB3A9; --teal-dim:#2E655F; --red:#C96A4E;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:
    radial-gradient(ellipse 900px 500px at 15% -10%, rgba(232,163,61,0.06), transparent),
    radial-gradient(ellipse 900px 600px at 100% 10%, rgba(79,179,169,0.06), transparent),
    var(--bg);
  color:var(--text); font-family:'IBM Plex Sans', sans-serif; line-height:1.5; min-height:100vh;
}
@media (prefers-reduced-motion: reduce){ *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;} }
.mono{font-family:'IBM Plex Mono', monospace;}
.wrap{max-width:1080px; margin:0 auto; padding:0 28px;}
a{color:inherit; text-decoration:none;}

/* top bar */
.topbar{border-bottom:1px solid var(--line); padding:18px 0; position:sticky; top:0; z-index:20;
  background:rgba(15,22,20,0.85); backdrop-filter:blur(8px);}
.topbar-inner{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;}
.brand{display:flex; align-items:center; gap:10px;}
.brand-mark{width:26px; height:26px; border:1.5px solid var(--amber); display:flex; align-items:center;
  justify-content:center; font-family:'IBM Plex Mono'; font-size:12px; color:var(--amber); font-weight:700; transform:rotate(45deg);}
.brand-mark span{transform:rotate(-45deg);}
.brand-name{font-family:'IBM Plex Mono'; font-size:13px; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-dim);}
.report-id{font-family:'IBM Plex Mono'; font-size:11px; color:var(--text-faint); letter-spacing:0.05em;}
.backlink{font-family:'IBM Plex Mono'; font-size:11px; color:var(--teal); letter-spacing:0.05em;}
.backlink:hover{color:var(--text);}

/* hero */
.hero{padding:52px 0 36px; border-bottom:1px solid var(--line);}
.eyebrow{font-family:'IBM Plex Mono'; font-size:11px; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--teal); margin-bottom:16px; display:flex; align-items:center; gap:10px;}
.eyebrow::before{content:''; width:7px; height:7px; background:var(--teal); border-radius:50%; box-shadow:0 0 8px var(--teal); flex-shrink:0;}
.hero h1{font-size:clamp(28px, 5vw, 46px); font-weight:600; letter-spacing:-0.02em; line-height:1.1; max-width:820px; color:#fff;}
.hero h1 em{font-style:normal; color:var(--amber);}
.hero-sub{margin-top:14px; color:var(--text-dim); max-width:640px; font-size:15.5px;}
.hero-meta{display:flex; gap:32px; margin-top:30px; flex-wrap:wrap;}
.meta-item .k{font-family:'IBM Plex Mono'; font-size:10.5px; text-transform:uppercase; letter-spacing:0.12em; color:var(--text-faint); margin-bottom:6px;}
.meta-item .v{font-family:'IBM Plex Mono'; font-size:15px; color:var(--text);}

/* score row */
.scorerow{display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:1px;
  background:var(--line); border:1px solid var(--line); margin:40px 0 0;}
.score-card{background:var(--surface); padding:24px 22px;}
.score-card .label{font-family:'IBM Plex Mono'; font-size:10.5px; text-transform:uppercase; letter-spacing:0.1em; color:var(--text-faint);}
.score-card .num{font-family:'IBM Plex Mono'; font-size:32px; font-weight:600; margin-top:10px; color:var(--text);}
.score-card .num small{font-size:17px; color:var(--text-faint);}
.score-card .delta{font-family:'IBM Plex Mono'; font-size:12px; margin-top:8px;}
.delta.up{color:var(--teal);} .delta.neutral{color:var(--text-faint);} .delta.warn{color:var(--amber);}

/* section shell */
section{padding:48px 0;}
section + section{border-top:1px solid var(--line);}
.sec-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:24px; flex-wrap:wrap; gap:12px;}
.sec-head h2{font-size:21px; font-weight:600; color:#fff; letter-spacing:-0.01em;}
.sec-head .tag{font-family:'IBM Plex Mono'; font-size:11px; padding:5px 10px; border:1px solid var(--line); color:var(--text-dim); letter-spacing:0.05em;}
.sec-desc{color:var(--text-dim); max-width:660px; font-size:14.5px; margin-bottom:24px;}

/* report cards (admin home) */
.cards{display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:16px;}
.card{background:var(--surface); border:1px solid var(--line); padding:22px 22px 20px; display:flex; flex-direction:column; gap:10px;
  transition:border-color .15s, transform .15s;}
.card.live:hover{border-color:var(--amber); transform:translateY(-2px);}
.card .card-top{display:flex; justify-content:space-between; align-items:center; gap:10px;}
.card .ctag{font-family:'IBM Plex Mono'; font-size:9.5px; letter-spacing:0.1em; color:var(--text-faint); text-transform:uppercase;}
.card h3{font-size:16.5px; color:#fff; font-weight:600;}
.card p{font-size:13px; color:var(--text-dim); flex:1;}
.card .card-foot{display:flex; justify-content:space-between; align-items:center; margin-top:6px;}
.status{font-family:'IBM Plex Mono'; font-size:10.5px; padding:3px 8px; border-radius:2px; letter-spacing:0.06em; text-transform:uppercase;}
.status.live{color:var(--teal); border:1px solid var(--teal-dim); background:rgba(79,179,169,0.08);}
.status.planned{color:var(--text-faint); border:1px solid var(--line);}
.status.draft{color:var(--amber); border:1px solid var(--amber-dim);}
.open-arrow{font-family:'IBM Plex Mono'; font-size:12px; color:var(--amber);}
.card.disabled{opacity:0.62;}
.card.disabled:hover{transform:none; border-color:var(--line);}

/* panels / charts */
.panel{background:var(--surface); border:1px solid var(--line); padding:24px;}
.chart-box{height:300px; position:relative;}
.callout{background:var(--surface); border:1px solid var(--line); border-left:2px solid var(--amber); padding:22px 26px;}
.callout.teal{border-left-color:var(--teal);}
.callout h3{font-size:15px; color:#fff; margin-bottom:8px; font-weight:600;}
.callout p{font-size:13.5px; color:var(--text-dim);} .callout p + p{margin-top:10px;} .callout strong{color:var(--text);}

/* ledger */
.ledger{background:var(--surface); border:1px solid var(--line);}
.ledger-head,.ledger-row{display:grid; grid-template-columns:1fr 150px 130px 90px; align-items:center;}
.ledger-head{padding:12px 20px; border-bottom:1px solid var(--line); font-family:'IBM Plex Mono'; font-size:10px; text-transform:uppercase; letter-spacing:0.1em; color:var(--text-faint);}
.ledger-row{padding:14px 20px; border-bottom:1px solid var(--line); font-size:13.5px; animation:fadeIn .5s ease both;}
.ledger-row:last-child{border-bottom:none;} .ledger-row:hover{background:var(--surface-2);}
@keyframes fadeIn{from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:translateY(0);}}
.lr-event{display:flex; align-items:center; gap:10px;}
.bot-dot{width:7px; height:7px; border-radius:50%; flex-shrink:0; background:var(--teal); box-shadow:0 0 6px var(--teal);}
.lr-metric{font-family:'IBM Plex Mono'; font-size:12.5px; color:var(--text);}
.lr-status{font-family:'IBM Plex Mono'; font-size:11px; color:var(--teal);}
.lr-hash{font-family:'IBM Plex Mono'; font-size:11px; color:var(--text-faint);}

/* tables */
.kw-table{width:100%; border-collapse:collapse;}
.kw-table th{text-align:left; font-family:'IBM Plex Mono'; font-size:10.5px; text-transform:uppercase; letter-spacing:0.08em; color:var(--text-faint); padding:10px 16px; border-bottom:1px solid var(--line);}
.kw-table td{padding:13px 16px; border-bottom:1px solid var(--line); font-size:13.5px;}
.kw-table tr:last-child td{border-bottom:none;} .kw-table tr:hover td{background:var(--surface-2);}
.cov-badge{font-family:'IBM Plex Mono'; font-size:12px; font-weight:600; padding:3px 9px; background:var(--surface-2); border:1px solid var(--line); display:inline-block; min-width:64px; text-align:center;}
.pass{font-family:'IBM Plex Mono'; font-size:12px; color:var(--teal);}

/* wins */
.wins{display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:1px; background:var(--line); border:1px solid var(--line);}
.win-card{background:var(--surface); padding:22px 22px 24px;}
.win-num{font-family:'IBM Plex Mono'; font-size:11px; color:var(--amber); letter-spacing:0.08em;}
.win-card h3{font-size:15.5px; margin:10px 0 8px; color:#fff; font-weight:600;}
.win-card p{font-size:13px; color:var(--text-dim);} .win-card p strong{color:var(--text);}

/* footer */
footer{padding:32px 0 48px; border-top:1px solid var(--line);}
.verify-strip{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; font-family:'IBM Plex Mono'; font-size:11px; color:var(--text-faint);}
.verify-strip .ok{color:var(--teal);}
.stale{font-family:'IBM Plex Mono'; font-size:11px; color:var(--text-faint);}

/* loading / error */
.loading{padding:60px 0; text-align:center; color:var(--text-faint); font-family:'IBM Plex Mono'; font-size:13px;}
.errbox{background:var(--surface); border:1px solid var(--amber-dim); border-left:2px solid var(--amber); padding:18px 22px; font-size:13.5px; color:var(--text-dim);}
.errbox code{font-family:'IBM Plex Mono'; color:var(--amber); font-size:12.5px;}

@media (max-width:640px){
  .ledger-head,.ledger-row{grid-template-columns:1fr 70px;}
  .ledger-head span:nth-child(2),.ledger-head span:nth-child(4),.ledger-row .lr-metric,.ledger-row .lr-hash{display:none;}
  .kw-table{font-size:12px;}
}
