:root{
  --void:#07090F; --panel:#0D1119; --raise:#121826; --line:#1D2638;
  --gold:#E8B34B; --gold-soft:#F5D78A; --gold-dim:rgba(232,179,75,.14);
  --base:#4A7CFF; --base-dim:rgba(74,124,255,.13);
  --txt:#E9EEF7; --mist:#9AA7BF; --dim:#5E6B83;
  --ok:#3DDC97; --bad:#FF5D6C; --warn:#FFB454;
  --mono:'JetBrains Mono',monospace; --body:'Space Grotesk',sans-serif; --disp:'Unbounded',sans-serif;
  --r:14px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--void);color:var(--txt);font-family:var(--body);min-height:100vh;overflow-x:hidden}
body::before{content:'';position:fixed;inset:0;background:
  radial-gradient(1100px 600px at 80% -10%, rgba(74,124,255,.07), transparent 60%),
  radial-gradient(900px 700px at 10% 110%, rgba(232,179,75,.06), transparent 60%);
  pointer-events:none;z-index:0}
#dust{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.7}
.wrap{position:relative;z-index:1;max-width:1240px;margin:0 auto;padding:0 20px 90px}

/* ---------- header ---------- */
header{display:flex;align-items:center;gap:16px;padding:22px 0;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:14px}
.sigil{width:46px;height:46px;position:relative;flex:none}
.sigil svg{width:100%;height:100%;animation:spin 24s linear infinite}
.brand h1{font-family:var(--disp);font-weight:700;font-size:1.05rem;letter-spacing:.14em}
.brand h1 em{font-style:normal;color:var(--gold)}
.brand small{display:block;font-family:var(--mono);font-size:.6rem;color:var(--dim);letter-spacing:.32em;margin-top:3px}
.netbadge{font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;color:var(--base);
  border:1px solid rgba(74,124,255,.35);background:var(--base-dim);padding:6px 12px;border-radius:99px;
  display:flex;align-items:center;gap:7px}
.netbadge .dot{width:7px;height:7px;border-radius:50%;background:var(--base);box-shadow:0 0 10px var(--base);animation:pulse 2.4s infinite}
.spacer{flex:1}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* ---------- buttons ---------- */
.btn{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;cursor:pointer;border:none;border-radius:10px;
  padding:11px 18px;transition:.22s;display:inline-flex;align-items:center;gap:8px;color:var(--txt);background:var(--raise);border:1px solid var(--line)}
.btn:hover{transform:translateY(-2px);border-color:var(--gold);box-shadow:0 6px 22px rgba(0,0,0,.45)}
.btn:active{transform:translateY(0)}
.btn.gold{background:linear-gradient(135deg,#E8B34B,#C98A1F);color:#1A1206;font-weight:700;border:none;box-shadow:0 4px 24px rgba(232,179,75,.25)}
.btn.gold:hover{box-shadow:0 8px 34px rgba(232,179,75,.45)}
.btn.ghost{background:transparent}
.btn.danger{border-color:rgba(255,93,108,.4);color:var(--bad)}
.btn.sm{padding:7px 12px;font-size:.64rem}
.btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}

/* ---------- wallet chip ---------- */
.chip{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:9px 14px;flex-wrap:wrap}
.chip .addr{font-family:var(--mono);font-size:.74rem;color:var(--gold-soft);cursor:pointer}
.chip .bal{font-family:var(--mono);font-size:.68rem;color:var(--mist)}
.chip .bal b{color:var(--txt)}
.role-tag{font-family:var(--mono);font-size:.56rem;letter-spacing:.2em;padding:4px 9px;border-radius:99px}
.role-super{background:var(--gold-dim);color:var(--gold);border:1px solid rgba(232,179,75,.4)}
.role-admin{background:var(--base-dim);color:var(--base);border:1px solid rgba(74,124,255,.4)}

/* ---------- panels ---------- */
.panel{background:linear-gradient(180deg,rgba(255,255,255,.025),transparent 30%),var(--panel);
  border:1px solid var(--line);border-radius:var(--r);padding:26px;position:relative;overflow:hidden}
.panel::after{content:'';position:absolute;top:0;left:24px;right:24px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(232,179,75,.35),transparent)}
.eyebrow{font-family:var(--mono);font-size:.6rem;letter-spacing:.34em;color:var(--dim);text-transform:uppercase;margin-bottom:8px}
h2{font-family:var(--disp);font-weight:500;font-size:1rem;letter-spacing:.06em;margin-bottom:4px}
.sub{color:var(--mist);font-size:.82rem}

/* ---------- view switch ---------- */
.viewswitch{display:flex;gap:8px;margin:8px 0 26px;flex-wrap:wrap}
.vbtn{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;padding:10px 20px;border-radius:99px;cursor:pointer;
  background:transparent;border:1px solid var(--line);color:var(--mist);transition:.2s}
.vbtn.on{border-color:var(--gold);color:var(--gold);background:var(--gold-dim)}
.vbtn:hover{color:var(--txt)}

/* ---------- hero / core ---------- */
.hero{display:grid;grid-template-columns:420px 1fr;gap:24px;align-items:stretch}
.core-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:34px 20px}
.core{position:relative;width:300px;height:300px}
.core svg{position:absolute;inset:0;overflow:visible}
.ring-o{animation:spin 40s linear infinite;transform-origin:center}
.ring-i{animation:spinrev 28s linear infinite;transform-origin:center}
@keyframes spinrev{to{transform:rotate(-360deg)}}
.core-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px}
.core-amt{font-family:var(--mono);font-size:2rem;font-weight:700;color:var(--gold-soft);text-shadow:0 0 30px rgba(232,179,75,.35)}
.core-lbl{font-family:var(--mono);font-size:.58rem;letter-spacing:.3em;color:var(--dim)}
.core-sym{font-family:var(--mono);font-size:.7rem;color:var(--gold);letter-spacing:.2em}
.elig{margin-top:22px;font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;padding:7px 16px;border-radius:99px}
.elig.yes{color:var(--ok);background:rgba(61,220,151,.1);border:1px solid rgba(61,220,151,.35)}
.elig.no{color:var(--bad);background:rgba(255,93,108,.08);border:1px solid rgba(255,93,108,.3)}
.elig.idle{color:var(--mist);background:var(--raise);border:1px solid var(--line)}
#claimBtn{margin-top:18px;padding:15px 42px;font-size:.8rem;border-radius:99px}

/* countdown */
.cd{display:flex;gap:10px;margin-top:8px}
.cd .cell{background:var(--raise);border:1px solid var(--line);border-radius:12px;padding:12px 0;width:72px;text-align:center;position:relative;overflow:hidden}
.cd .cell::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.5}
.cd b{font-family:var(--mono);font-size:1.35rem;color:var(--txt);display:block}
.cd span{font-family:var(--mono);font-size:.52rem;letter-spacing:.24em;color:var(--dim)}

/* timeline */
.timeline{display:flex;flex-direction:column;gap:10px;margin-top:18px;max-height:330px;overflow:auto;padding-right:6px}
.trow{display:flex;align-items:center;gap:14px;background:var(--raise);border:1px solid var(--line);border-radius:12px;padding:13px 16px;transition:.2s}
.trow:hover{border-color:rgba(232,179,75,.4)}
.tnode{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.6rem;flex:none}
.tnode.locked{border:1px dashed var(--dim);color:var(--dim)}
.tnode.open{border:1px solid var(--gold);color:var(--gold);box-shadow:0 0 14px rgba(232,179,75,.3);animation:pulse 2s infinite}
.tnode.done{background:rgba(61,220,151,.12);border:1px solid var(--ok);color:var(--ok)}
.trow .tmeta{flex:1}
.trow .tmon{font-size:.85rem;font-weight:600}
.trow .tdate{font-family:var(--mono);font-size:.62rem;color:var(--dim)}
.trow .tamt{font-family:var(--mono);font-size:.85rem;color:var(--gold-soft)}
.trow .tst{font-family:var(--mono);font-size:.56rem;letter-spacing:.18em;color:var(--mist)}

/* ---------- admin console ---------- */
.admin-grid{display:grid;grid-template-columns:200px 1fr;gap:22px}
.atabs{display:flex;flex-direction:column;gap:6px}
.atab{text-align:left;font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;padding:13px 16px;border-radius:11px;cursor:pointer;
  background:transparent;border:1px solid transparent;color:var(--mist);transition:.18s;display:flex;align-items:center;gap:10px}
.atab:hover{color:var(--txt);background:var(--raise)}
.atab.on{background:var(--gold-dim);border-color:rgba(232,179,75,.35);color:var(--gold)}
.atab .ic{opacity:.8}

/* tables */
.tbl-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;max-height:480px}
table{width:100%;border-collapse:collapse;font-size:.76rem;min-width:640px}
th{font-family:var(--mono);font-size:.58rem;letter-spacing:.2em;color:var(--dim);text-transform:uppercase;text-align:left;
  padding:12px 14px;background:var(--raise);position:sticky;top:0;z-index:2;border-bottom:1px solid var(--line)}
td{padding:11px 14px;border-bottom:1px solid rgba(29,38,56,.6);font-family:var(--mono);font-size:.7rem;color:var(--mist);white-space:nowrap}
tr:hover td{background:rgba(232,179,75,.03)}
td .w{color:var(--gold-soft)}
.badge{font-family:var(--mono);font-size:.54rem;letter-spacing:.14em;padding:3px 8px;border-radius:99px;display:inline-block}
.b-ok{color:var(--ok);background:rgba(61,220,151,.1);border:1px solid rgba(61,220,151,.3)}
.b-sim{color:var(--base);background:var(--base-dim);border:1px solid rgba(74,124,255,.3)}
.b-open{color:var(--gold);background:var(--gold-dim);border:1px solid rgba(232,179,75,.3)}
.b-lock{color:var(--dim);background:var(--raise);border:1px solid var(--line)}
.b-bad{color:var(--bad);background:rgba(255,93,108,.08);border:1px solid rgba(255,93,108,.3)}

/* controls */
.toolbar{display:flex;gap:10px;margin:16px 0;flex-wrap:wrap;align-items:center}
input,select,textarea{background:var(--raise);border:1px solid var(--line);border-radius:10px;color:var(--txt);
  font-family:var(--mono);font-size:.72rem;padding:10px 13px;outline:none;transition:.2s}
input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(232,179,75,.12)}
input::placeholder{color:var(--dim)}
.search{flex:1;min-width:180px}

/* stat cards */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin:16px 0}
.stat{background:var(--raise);border:1px solid var(--line);border-radius:12px;padding:16px;position:relative;overflow:hidden;transition:.2s}
.stat:hover{border-color:rgba(232,179,75,.4);transform:translateY(-2px)}
.stat .k{font-family:var(--mono);font-size:.56rem;letter-spacing:.22em;color:var(--dim);text-transform:uppercase}
.stat .v{font-family:var(--mono);font-size:1.3rem;font-weight:700;color:var(--gold-soft);margin-top:6px}
.stat .v.blue{color:var(--base)}
.stat .v.green{color:var(--ok)}
.stat .v.red{color:var(--bad)}
.stat .s{font-size:.66rem;color:var(--mist);margin-top:3px;font-family:var(--mono)}

/* tooltip warn */
.tipwrap{position:relative;display:inline-flex}
.tip{position:absolute;bottom:130%;left:50%;transform:translateX(-50%);background:#1A1206;border:1px solid var(--warn);
  color:var(--warn);font-family:var(--mono);font-size:.62rem;padding:9px 13px;border-radius:9px;white-space:nowrap;
  opacity:0;pointer-events:none;transition:.2s;z-index:50;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.tipwrap:hover .tip{opacity:1;bottom:140%}
.warn-ic{color:var(--warn);animation:pulse 1.6s infinite;cursor:help;font-size:1rem}

/* modal */
.modal-bg{position:fixed;inset:0;background:rgba(4,6,10,.78);backdrop-filter:blur(6px);z-index:100;display:none;align-items:center;justify-content:center;padding:20px}
.modal-bg.show{display:flex;animation:fadein .2s}
.modal{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px;width:100%;max-width:460px;animation:rise .25s}
.modal h3{font-family:var(--disp);font-size:.9rem;font-weight:500;margin-bottom:6px}
.modal .sub{margin-bottom:18px}
.modal .row{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.modal label{font-family:var(--mono);font-size:.58rem;letter-spacing:.2em;color:var(--dim);text-transform:uppercase}
.modal .acts{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}
@keyframes fadein{from{opacity:0}}
@keyframes rise{from{transform:translateY(16px);opacity:0}}

/* toast */
#toasts{position:fixed;bottom:22px;right:22px;z-index:200;display:flex;flex-direction:column;gap:10px}
.toast{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:11px;
  padding:13px 18px;font-family:var(--mono);font-size:.7rem;max-width:330px;animation:rise .25s;box-shadow:0 12px 40px rgba(0,0,0,.5)}
.toast.ok{border-left-color:var(--ok)} .toast.bad{border-left-color:var(--bad)} .toast.warn{border-left-color:var(--warn)}

/* misc */
.divider{height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent);margin:22px 0}
.muted{color:var(--dim);font-family:var(--mono);font-size:.64rem}
.linklike{color:var(--base);cursor:pointer;text-decoration:underline dotted}
.empty{padding:46px;text-align:center;color:var(--dim);font-family:var(--mono);font-size:.7rem;letter-spacing:.1em}
.reveal{opacity:0;transform:translateY(14px);animation:reveal .6s forwards}
@keyframes reveal{to{opacity:1;transform:none}}
.flash{animation:flash .8s}
@keyframes flash{0%{box-shadow:0 0 0 0 rgba(61,220,151,.6)}100%{box-shadow:0 0 0 28px transparent}}
::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--line);border-radius:9px}
::-webkit-scrollbar-thumb:hover{background:var(--gold)}::-webkit-scrollbar-track{background:transparent}

@media(max-width:960px){
  .hero{grid-template-columns:1fr}
  .admin-grid{grid-template-columns:1fr}
  .atabs{flex-direction:row;overflow-x:auto;padding-bottom:6px}
  .atab{flex:none}
}
@media(max-width:560px){
  .core{width:240px;height:240px}.core-amt{font-size:1.5rem}
  .cd .cell{width:60px}.chip{width:100%}
  .panel{padding:18px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;transition-duration:.001s!important}
}
