:root{
  --paper:#f7f8fa;--panel:#fff;--ink:#1a2230;--slate:#545e6d;--faint:#7c8698;
  --rule:#e3e7ec;--rule-strong:#ccd2da;--accent:#35618e;--accent-ink:#274b6f;--accent-wash:#eef2f7;
  --pos:#2f7d5b;--flag:#a8621c;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
.muted{color:var(--slate)}.small{font-size:13px}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:8px}
.error{color:#b3261e;font-size:13.5px;margin:10px 0 0}
/* topbar */
.topbar{display:flex;align-items:center;justify-content:space-between;height:60px;padding:0 24px;background:rgba(247,248,250,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:10}
.brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:17px}
.brand .mark{width:20px;height:20px}
.brand .env{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);border:1px solid var(--rule-strong);border-radius:2px;padding:2px 6px;font-weight:600}
.topbar-right{display:flex;align-items:center;gap:14px}
.who{font-size:13.5px;color:var(--slate)}
/* layout */
.wrap{max-width:1000px;margin:0 auto;padding:28px 24px 60px}
.view{animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.view{animation:none}}
.card{background:var(--panel);border:1px solid var(--rule);border-radius:6px;padding:22px 24px;margin-bottom:18px}
.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
h1{font-size:26px;letter-spacing:-.01em;margin:0 0 8px}
h2{font-size:17px;margin:0}
/* auth */
.auth{max-width:440px;margin:6vh auto 0}
.auth-tabs{display:flex;border-bottom:1px solid var(--rule);margin:20px 0 2px}
.auth-tab{flex:1;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--slate);font:600 13px var(--sans);padding:10px 8px;cursor:pointer}
.auth-tab.active{border-bottom-color:var(--accent);color:var(--accent-ink)}
form label{display:block;font-size:13px;font-weight:600;color:var(--slate);margin:14px 0 0}
form input,form select{width:100%;margin-top:6px;padding:11px 12px;border:1px solid var(--rule-strong);border-radius:4px;font:15px var(--sans);background:#fff;color:var(--ink)}
form input:focus,form select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:3px;font:600 14px var(--sans);padding:11px 18px;cursor:pointer;transition:.15s}
.btn.small{padding:8px 13px;font-size:13px}
.btn-p{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-p:hover{background:var(--accent-ink)}
.btn-p:disabled{opacity:.55;cursor:default}
.btn-o{background:transparent;color:var(--ink);border-color:var(--rule-strong)}.btn-o:hover{border-color:var(--ink)}
.auth-submit{margin-top:20px;width:100%;justify-content:center}
.consent{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:9px;line-height:1.45}
form .consent input{width:auto;margin:3px 0 0}
.signup-status{border-left:3px solid var(--pos);background:#eef7f2;color:#245f47;padding:10px 12px;font-size:13px;margin:14px 0 0}
/* dashboard */
.grid-top{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:720px){.grid-top,.grid-2{grid-template-columns:1fr}}
.stat .big{font-size:38px;font-weight:680;letter-spacing:-.02em;margin:2px 0 4px}
.kv{display:flex;justify-content:space-between;padding:7px 0;border-top:1px solid var(--rule);font-size:14px}
.kv:first-of-type{border-top:0}
.kv span{color:var(--slate)}
/* lists */
.list{display:flex;flex-direction:column}
.li{display:grid;grid-template-columns:1fr auto;gap:10px;padding:11px 0;border-top:1px solid var(--rule);font-size:14px;align-items:center}
.li:first-child{border-top:0}
.li .l1{font-weight:600}
.li .l2{color:var(--faint);font-size:12.5px;font-family:var(--mono)}
.li .amt{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600}
.li .amt.pos{color:var(--pos)}.li .amt.neg{color:var(--flag)}
.empty{color:var(--faint);font-size:13.5px;padding:12px 0}
.badge{display:inline-block;font-family:var(--mono);font-size:11px;padding:2px 7px;border-radius:2px;background:var(--accent-wash);color:var(--accent-ink);margin-left:6px}
.badge.revoked{background:#f6ede2;color:var(--flag)}
/* key form + reveal */
.key-form{border:1px dashed var(--rule-strong);border-radius:4px;padding:16px 18px;margin-bottom:14px}
.scopes{border:1px solid var(--rule);border-radius:4px;padding:8px 12px;margin:14px 0 0}
.scopes legend{font-size:12px;color:var(--slate);padding:0 4px}
.chk{display:inline-flex;align-items:center;gap:6px;margin-right:16px;font-weight:500;font-size:14px}
.chk input{width:auto;margin:0}
.row{display:flex;gap:10px;margin-top:16px}
.reveal{background:var(--accent-wash);border:1px solid var(--accent);border-radius:4px;padding:14px 16px;margin-bottom:14px}
.reveal-key{display:flex;gap:10px;align-items:center;margin-top:8px}
.reveal-key code{flex:1;font-family:var(--mono);font-size:13px;background:#fff;border:1px solid var(--rule);border-radius:3px;padding:9px 11px;overflow-x:auto;word-break:break-all}
/* datasets + API code */
.head-actions{display:flex;gap:8px;align-items:center}
.dataset-form{border-top:1px solid var(--rule);padding:2px 0 18px;margin-bottom:4px}
.dataset-options{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.file-meta{align-self:center;color:var(--faint);font:12px var(--mono)}
.code-tool{border:1px solid var(--rule-strong);border-radius:4px;margin:2px 0 18px;overflow:hidden;background:#f9fafb}
.code-head{min-height:44px;padding:6px 8px 6px 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--rule);background:#fff}
.code-tabs{display:flex;align-items:center;gap:2px}
.code-tab{border:0;background:transparent;color:var(--slate);font:600 12px var(--mono);padding:7px 9px;border-bottom:2px solid transparent;cursor:pointer}
.code-tab.active{color:var(--accent-ink);border-bottom-color:var(--accent)}
.code-tool pre{margin:0;padding:15px 17px;overflow:auto;max-height:320px;color:#263244;font:12px/1.6 var(--mono);white-space:pre;tab-size:2}
.dataset-result{margin:0 0 12px;padding:10px 12px;border-left:3px solid var(--pos);background:#eef7f2;color:#245f47;font-size:13px}
.dataset-list{display:flex;flex-direction:column}
.dataset-item{padding:14px 0;border-top:1px solid var(--rule)}
.dataset-item:first-child{border-top:0}
.dataset-main{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px}
.dataset-title{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-weight:650;font-size:14px}
.dataset-title .badge{margin-left:0}
.dataset-meta{color:var(--faint);font:12px/1.6 var(--mono);margin-top:4px;overflow-wrap:anywhere}
.dataset-actions{display:flex;gap:7px}
.verdict-ready{background:#e9f5ee;color:#28694f}
.verdict-warning{background:#fff4df;color:#8a5718}
.verdict-blocked{background:#faeaea;color:#9b2f29}
.checks{margin:9px 0 0;padding:0;list-style:none;display:grid;gap:5px}
.check{font-size:12.5px;color:var(--slate);display:grid;grid-template-columns:74px 1fr;gap:7px}
.check-severity{font:10px var(--mono);text-transform:uppercase;color:var(--faint);padding-top:2px}
@media(max-width:720px){
  .head-actions{width:100%;justify-content:flex-end}
  .dataset-panel .card-head{align-items:flex-start;gap:12px;flex-wrap:wrap}
  .dataset-options{grid-template-columns:1fr}
  .dataset-main{grid-template-columns:1fr}
  .dataset-actions{justify-content:flex-start}
  .code-head{align-items:flex-start;gap:8px;flex-wrap:wrap}
  .code-tool pre{font-size:11px}
}
