:root{
  --bg:#0a0609; --bg2:#0f0a0e; --panel:#140d13; --panel2:#1a1119;
  --line:rgba(255,255,255,.07); --line2:rgba(255,255,255,.12);
  --magenta:#ff2d6b; --hot:#ff5c8a; --deep:#e50b5e; --magglow:rgba(255,45,107,.5);
  --text:#f4ecef; --muted:#a99ba3; --dim:#6b5c64;
  --str:#6fe0bd; --num:#ffc46b; --key:#ff8fb4;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg); color:var(--text); font-family:'Chivo',system-ui,sans-serif; line-height:1.55;
  -webkit-font-smoothing:antialiased; min-height:100vh}
a{color:inherit; text-decoration:none}
code,.mono{font-family:'JetBrains Mono',monospace}

.aurora{position:fixed; z-index:-1; pointer-events:none; width:900px; height:900px; left:60%; top:-520px;
  background:radial-gradient(circle,var(--magglow),transparent 62%); filter:blur(26px); opacity:.3}

/* nav */
nav{position:sticky; top:0; z-index:50; height:60px; display:flex; align-items:center; justify-content:space-between;
  padding:0 26px; border-bottom:1px solid var(--line); background:rgba(10,6,9,.86); backdrop-filter:blur(14px)}
.brand{display:flex; align-items:center; gap:9px; font-family:'Bricolage Grotesque'; font-weight:800; font-size:1.12rem; letter-spacing:-.02em}
.brand .dot{width:8px; height:8px; border-radius:50%; background:var(--magenta); box-shadow:0 0 12px 2px var(--magglow)}
.brand-mark{width:23px; height:23px; filter:drop-shadow(0 0 8px var(--magglow)); flex:none}
.brand span{color:var(--muted); font-weight:500}
.nav-r{display:flex; gap:20px; align-items:center; font-size:.9rem; color:var(--muted)}
.nav-r a:hover{color:var(--text)}
.pill{font-family:'JetBrains Mono'; font-size:.68rem; color:var(--muted); border:1px solid var(--line2); padding:4px 10px; border-radius:100px}

/* buttons + forms */
.btn{font-family:'Chivo'; font-weight:600; font-size:.88rem; border:none; cursor:pointer; padding:9px 16px; border-radius:9px;
  display:inline-flex; align-items:center; gap:8px; transition:.2s}
.btn-primary{background:var(--magenta); color:#fff; box-shadow:0 6px 22px -8px var(--magglow),inset 0 1px 0 rgba(255,255,255,.22)}
.btn-primary:hover{background:var(--hot); transform:translateY(-1px)}
.btn-ghost{background:rgba(255,255,255,.04); color:var(--text); border:1px solid var(--line2)}
.btn-ghost:hover{border-color:var(--magenta)}
.btn-sm{padding:6px 12px; font-size:.8rem}
.btn-danger{background:rgba(255,45,107,.1); color:var(--hot); border:1px solid rgba(255,45,107,.3)}
.btn-danger:hover{background:rgba(255,45,107,.18)}
label{display:block; font-size:.82rem; color:var(--muted); margin-bottom:6px}
input[type=text],input[type=email],input[type=password],input[type=url]{
  width:100%; background:#0c0709; border:1px solid var(--line2); color:var(--text); font-family:'Chivo';
  font-size:.94rem; padding:11px 13px; border-radius:9px; transition:.18s}
input:focus{outline:none; border-color:var(--magenta); box-shadow:0 0 0 3px rgba(255,45,107,.12)}
.field{margin-bottom:16px}
.row{display:flex; gap:12px; flex-wrap:wrap}
.row .field{flex:1; min-width:180px}

/* auth card */
.auth-wrap{min-height:calc(100vh - 60px); display:grid; place-items:center; padding:40px 20px}
.card{background:linear-gradient(180deg,var(--panel2),var(--panel)); border:1px solid var(--line2); border-radius:16px;
  box-shadow:0 40px 90px -40px rgba(0,0,0,.9),0 0 60px -30px var(--magglow)}
.auth-card{width:100%; max-width:400px; padding:34px}
.auth-card h1{font-family:'Bricolage Grotesque'; font-weight:800; font-size:1.6rem; letter-spacing:-.02em; margin-bottom:6px}
.auth-card .sub{color:var(--muted); font-size:.92rem; margin-bottom:24px}
.auth-card .btn-primary{width:100%; justify-content:center; padding:12px; margin-top:4px}
.auth-alt{text-align:center; color:var(--muted); font-size:.88rem; margin-top:18px}
.auth-alt a{color:var(--hot)}

/* dashboard layout */
.wrap{max-width:1060px; margin:0 auto; padding:34px 26px 100px}
.page-head{margin-bottom:26px}
.page-head h1{font-family:'Bricolage Grotesque'; font-weight:800; font-size:1.9rem; letter-spacing:-.03em}
.page-head p{color:var(--muted); font-size:.95rem; margin-top:2px}

.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:30px}
.stat{background:linear-gradient(180deg,rgba(255,255,255,.02),transparent); border:1px solid var(--line); border-radius:13px; padding:18px}
.stat .lbl{font-family:'JetBrains Mono'; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--dim); margin-bottom:8px}
.stat .val{font-family:'Bricolage Grotesque'; font-weight:700; font-size:1.7rem; letter-spacing:-.02em}
.stat .val.mag{color:var(--hot)}

.panelbox{border:1px solid var(--line); border-radius:14px; margin-bottom:22px; overflow:hidden; background:var(--panel)}
.panelbox > header{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 20px; border-bottom:1px solid var(--line)}
.panelbox > header h2{font-family:'Bricolage Grotesque'; font-weight:700; font-size:1.12rem; letter-spacing:-.01em; display:flex; align-items:center; gap:9px}
.panelbox > header .ic{color:var(--hot)}
.panelbox .body{padding:18px 20px}
.muted{color:var(--muted); font-size:.9rem}
.empty{color:var(--dim); font-size:.9rem; padding:6px 0}

/* tables */
table{width:100%; border-collapse:collapse; font-size:.9rem}
th,td{text-align:left; padding:10px 8px; border-bottom:1px solid var(--line); vertical-align:middle}
th{font-family:'JetBrains Mono'; font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dim); font-weight:500}
tr:last-child td{border-bottom:none}
td.mono{font-family:'JetBrains Mono'; font-size:.82rem; color:var(--muted)}
.tag{font-family:'JetBrains Mono'; font-size:.68rem; padding:3px 9px; border-radius:100px; display:inline-block}
.tag.active{background:rgba(111,224,189,.12); color:var(--str)}
.tag.expired{background:rgba(255,196,107,.14); color:var(--num)}
.tag.error{background:rgba(255,45,107,.14); color:var(--hot)}
.tag.revoked{background:rgba(255,255,255,.06); color:var(--dim)}

/* forms inside panels */
.inline-form{margin-top:16px; padding-top:16px; border-top:1px dashed var(--line)}
.inline-form h3{font-size:.84rem; color:var(--muted); font-weight:500; margin-bottom:12px; text-transform:uppercase; letter-spacing:.08em; font-family:'JetBrains Mono'; font-size:.68rem}

/* flash + secret reveal */
.flash{border-radius:11px; padding:13px 16px; margin-bottom:18px; font-size:.92rem; display:flex; gap:10px; align-items:flex-start}
.flash.ok{background:rgba(111,224,189,.08); border:1px solid rgba(111,224,189,.28); color:#bff3e2}
.flash.err{background:rgba(255,45,107,.08); border:1px solid rgba(255,45,107,.3); color:#ffc2d5}
.flash i{margin-top:2px}
.secret{background:#0c0709; border:1px solid rgba(255,45,107,.35); border-radius:11px; padding:14px 16px; margin-bottom:18px}
.secret .k{font-family:'JetBrains Mono'; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--hot); margin-bottom:8px}
.secret code{display:block; font-size:.88rem; color:var(--text); word-break:break-all; background:rgba(255,255,255,.03); padding:10px 12px; border-radius:8px; border:1px solid var(--line)}
.secret .warn{color:var(--dim); font-size:.78rem; margin-top:8px}

.errbox{background:rgba(255,45,107,.08); border:1px solid rgba(255,45,107,.3); border-radius:10px; padding:10px 14px; margin-bottom:16px; font-size:.85rem; color:#ffc2d5}
.errbox ul{margin:0; padding-left:18px}

@media(max-width:720px){ .stats{grid-template-columns:1fr 1fr} .wrap{padding:24px 16px 70px} }
