:root{
  --bg:#0a0a0f; --panel:#12131c; --panel2:#171927; --border:#262a3d;
  --txt:#e8eaf2; --muted:#8b90a6; --accent:#5b8cff; --accent2:#37d29d;
  --danger:#ff6b6b; --radius:14px; --maxw:1080px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg); color:var(--txt); line-height:1.5; min-height:100vh;
}
a{color:inherit;text-decoration:none;}
.hidden{display:none !important;}
.bg-glow{position:fixed;inset:0;z-index:-1;
  background:radial-gradient(900px 500px at 15% -10%,rgba(91,140,255,.18),transparent 60%),
             radial-gradient(700px 500px at 110% 10%,rgba(55,210,157,.12),transparent 60%);}

.site-header{display:flex;align-items:center;justify-content:space-between;
  padding:16px 22px;border-bottom:1px solid var(--border);
  position:sticky;top:0;background:rgba(10,10,15,.75);backdrop-filter:blur(10px);z-index:20;}
.logo{font-weight:800;font-size:19px;letter-spacing:.2px;display:flex;gap:8px;align-items:center;}
.mark{color:var(--accent);}
.nav{display:flex;gap:18px;}
.nav a{color:var(--muted);font-size:14px;transition:color .15s;cursor:pointer;}
.nav a:hover{color:var(--txt);}

.container{max-width:var(--maxw);margin:0 auto;padding:26px 18px 80px;}
.view{display:none;}
.view.active{display:block;animation:fade .25s ease;}
@keyframes fade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);
  padding:24px;margin-bottom:18px;box-shadow:0 10px 40px rgba(0,0,0,.25);}
.hero h1{margin:0 0 10px;font-size:clamp(24px,4vw,34px);}
.hero .sub,.sub{color:var(--muted);margin:0 0 14px;font-size:15px;}
.warn{background:rgba(55,210,157,.1);border:1px solid rgba(55,210,157,.3);
  border-radius:10px;padding:12px 14px;font-size:14px;color:#c9f3e2;}

.lbl{display:block;font-size:13px;color:var(--muted);margin:16px 0 8px;font-weight:600;}
.req{color:var(--danger);}
textarea,input,select{
  width:100%;background:var(--panel2);border:1px solid var(--border);color:var(--txt);
  border-radius:10px;padding:12px 13px;font-size:14px;font-family:inherit;outline:none;
  transition:border-color .15s,box-shadow .15s;
}
textarea{resize:vertical;word-break:break-all;line-height:1.7;}
textarea:focus,input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(91,140,255,.15);}
.row{display:flex;gap:10px;margin-top:10px;}
.big{width:100%;margin-top:18px;padding:15px;font-size:15px;font-weight:700;}
.sm{padding:8px 12px;font-size:13px;}

.btn{background:var(--panel2);border:1px solid var(--border);color:var(--txt);
  border-radius:10px;padding:11px 16px;font-size:14px;font-weight:600;cursor:pointer;
  transition:transform .08s,filter .15s,border-color .15s;}
.btn:hover{filter:brightness(1.08);}
.btn:active{transform:translateY(1px);}
.btn.primary{background:linear-gradient(180deg,#5b8cff,#3f6fe0);border-color:transparent;color:#fff;}
.btn.ghost{background:transparent;}
.btn.danger{border-color:rgba(255,107,107,.5);color:#ffbcbc;}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;}

.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{background:var(--panel2);border:1px solid var(--border);border-radius:999px;
  padding:8px 14px;font-size:13px;color:var(--muted);cursor:pointer;transition:.15s;}
.chip:hover{border-color:var(--accent);color:var(--txt);}
.chip.sel{background:rgba(91,140,255,.15);border-color:var(--accent);color:#cfe0ff;}

.form-msg{margin-top:12px;font-size:14px;min-height:18px;}
.form-msg.err{color:var(--danger);}
.form-msg.ok{color:var(--accent2);}

.conn-panel{margin-top:20px;border-top:1px solid var(--border);padding-top:18px;}
.wallet-item{background:var(--panel2);border:1px solid var(--border);border-radius:12px;
  padding:14px;margin-top:12px;}
.wallet-item .addr{font-family:"SFMono-Regular",Consolas,monospace;font-size:13px;
  background:#0c0d15;padding:8px 10px;border-radius:8px;word-break:break-all;color:#bcd0ff;}
.wallet-item .amt{font-size:15px;font-weight:700;margin-top:8px;}
.wallet-item .amt.zero{color:var(--muted);font-weight:500;}
.wallet-item .tag{font-size:12px;color:var(--muted);margin-bottom:6px;}
.badge-ok{color:var(--accent2);font-size:13px;font-weight:600;}
.spin{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.25);
  border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px;margin-right:6px;}
@keyframes spin{to{transform:rotate(360deg);}}

/* admin */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
.topbar h2{margin:0;}
.topbar-actions{display:flex;gap:10px;align-items:center;}
#adminSearch{max-width:320px;}
.ticket{border:1px solid var(--border);border-radius:12px;margin-top:12px;overflow:hidden;background:var(--panel2);}
.ticket-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;
  padding:14px 16px;cursor:pointer;}
.ticket-head:hover{background:rgba(91,140,255,.06);}
.ticket-main{flex:1;min-width:0;}
.ticket-id{font-weight:700;font-size:15px;}
.ticket-meta{color:var(--muted);font-size:13px;margin-top:3px;word-break:break-word;}
.ticket-right{text-align:right;flex-shrink:0;}
.pill{font-size:12px;padding:4px 10px;border-radius:999px;background:rgba(91,140,255,.15);color:#cfe0ff;white-space:nowrap;}
.pill.open{background:rgba(255,107,107,.15);color:#ffc6c6;}
.ticket-body{display:none;border-top:1px solid var(--border);padding:16px;font-size:14px;}
.ticket.open .ticket-body{display:block;}
.ticket-body .k{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.4px;margin:12px 0 4px;}
.seed-box{background:#0c0d15;border-radius:8px;padding:12px;font-family:Consolas,monospace;
  font-size:13px;line-height:1.8;word-break:break-all;color:#cfe0ff;}
.ticket-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.empty{color:var(--muted);padding:26px;text-align:center;}

/* dev */
.grid-2{display:grid;grid-template-columns:1fr;gap:18px;}
@media(min-width:820px){.grid-2{grid-template-columns:1fr 1fr;}}
.card{background:var(--panel2);border:1px solid var(--border);border-radius:12px;padding:18px;}
.card h3{margin:0 0 14px;font-size:15px;}
.field{display:block;margin-bottom:12px;font-size:13px;color:var(--muted);}
.field span{display:block;margin-bottom:6px;}
.field.checkbox{display:flex;align-items:center;gap:10px;}
.field.checkbox input{width:auto;}
.vault{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow:auto;}
.vault-item{display:flex;justify-content:space-between;gap:10px;align-items:center;
  background:#0c0d15;border-radius:8px;padding:10px 12px;font-size:13px;}
.vault-item .v-addr{font-family:Consolas,monospace;color:#bcd0ff;overflow:hidden;text-overflow:ellipsis;}
.vault-item .v-meta{color:var(--muted);font-size:12px;white-space:nowrap;}

/* modal */
.modal{position:fixed;inset:0;background:rgba(4,5,10,.7);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;z-index:50;}
.modal-box{background:var(--panel);border:1px solid var(--border);border-radius:14px;
  padding:22px;width:min(90vw,360px);}
.modal-box h3{margin:0 0 14px;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px;}

.foot{text-align:center;color:var(--muted);font-size:12px;padding:20px 16px 30px;}
#bannerBar{display:none;}
.banner-on #bannerBar{display:block;background:linear-gradient(90deg,rgba(91,140,255,.2),rgba(55,210,157,.15));
  border:1px solid var(--border);border-radius:10px;padding:12px 16px;margin-bottom:18px;font-size:14px;}
