:root{--bg:#05070d;--panel:#0a0f1c;--line:#14324a;--cyan:#00f0ff;--mag:#ff2bd6;--grn:#39ff88;--red:#ff3b5c;--amb:#ffc23d;--txt:#b9d7e8;--dim:#5b7a90}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--txt);font-family:"JetBrains Mono","Fira Code",ui-monospace,Menlo,Consolas,monospace;font-size:13px}
body{background:radial-gradient(1200px 600px at 70% -10%,#0b2440 0%,transparent 60%),radial-gradient(900px 500px at -10% 110%,#2a0b3a 0%,transparent 60%),var(--bg)}
a{color:var(--cyan)}
.banner{background:repeating-linear-gradient(45deg,#3a0a12,#3a0a12 12px,#24060c 12px,#24060c 24px);color:#ffd6dd;text-align:center;padding:6px;font-weight:700;letter-spacing:.12em;border-bottom:1px solid var(--red);text-shadow:0 0 6px var(--red)}
header.top{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;border-bottom:1px solid var(--line)}
.logo{font-weight:800;letter-spacing:.2em;color:var(--cyan);text-shadow:0 0 10px var(--cyan)}.logo span{color:var(--mag);text-shadow:0 0 10px var(--mag)}
nav a{margin-left:16px;text-decoration:none;color:var(--txt);border-bottom:1px dashed var(--dim)}nav a:hover{color:var(--cyan)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;padding:12px 18px}
.panel{background:linear-gradient(180deg,rgba(10,20,36,.92),rgba(6,10,20,.92));border:1px solid var(--line);border-radius:6px;padding:10px 12px;position:relative;box-shadow:0 0 0 1px rgba(0,240,255,.04),0 0 24px rgba(0,240,255,.05) inset}
.panel h3{margin:0 0 8px;font-size:11px;letter-spacing:.2em;color:var(--cyan);text-transform:uppercase}
.panel h3::before{content:"▌";color:var(--mag);margin-right:6px}
.big{font-size:26px;font-weight:800;color:#e9fbff}.pos{color:var(--grn)}.neg{color:var(--red)}.muted{color:var(--dim)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:3px 10px}.kv div:nth-child(odd){color:var(--dim)}
table{width:100%;border-collapse:collapse;font-size:12px}th,td{padding:4px 6px;border-bottom:1px solid #0f2233;text-align:left;white-space:nowrap}th{color:var(--dim);font-weight:500}
.addr{font-size:11px;word-break:break-all;color:#d6f6ff;background:#06121e;border:1px solid var(--line);padding:4px 6px;border-radius:4px;display:inline-block;max-width:100%}
button,.btn{background:transparent;border:1px solid var(--cyan);color:var(--cyan);padding:5px 10px;border-radius:4px;cursor:pointer;font-family:inherit;font-size:12px;text-decoration:none;display:inline-block}
button:hover,.btn:hover{background:rgba(0,240,255,.1);box-shadow:0 0 12px rgba(0,240,255,.4)}
.btn.primary{border-color:var(--mag);color:#fff;background:linear-gradient(90deg,rgba(255,43,214,.25),rgba(0,240,255,.2));font-weight:700;padding:10px 18px;font-size:14px}
#feed{height:230px;overflow:auto;background:#020509;border:1px solid #0d2030;padding:6px;font-size:11px;line-height:1.45}
#feed .l{white-space:pre-wrap}#feed .w{color:var(--amb)}#feed .e{color:var(--red)}#feed .k{color:var(--grn)}
.bar{height:6px;background:#0c1b2a;border-radius:3px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--mag),var(--cyan))}
.stages{display:flex;gap:6px;flex-wrap:wrap}.stage{border:1px solid var(--line);padding:3px 8px;border-radius:3px;color:var(--dim);font-size:11px;letter-spacing:.1em;transition:.3s}
.stage.on{color:#001;background:var(--cyan);box-shadow:0 0 14px var(--cyan)}
canvas{display:block;width:100%}
.scan{position:relative}
.scan::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0 1px,transparent 1px 3px)}
footer{padding:14px 18px;color:var(--dim);font-size:11px;border-top:1px solid var(--line)}
.hero{padding:40px 18px 10px;max-width:1100px;margin:0 auto}
.hero h1{font-size:40px;margin:0 0 8px;color:#eaffff;text-shadow:0 0 18px rgba(0,240,255,.5)}.hero h1 em{color:var(--mag);font-style:normal}
.wrap{max-width:1100px;margin:0 auto;padding:0 18px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:860px){.cols{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.grid>*{grid-column:1/-1!important}}
.warn{border-color:var(--amb)}.warn h3{color:var(--amb)}
ul.clean{margin:0;padding-left:18px}ul.clean li{margin:3px 0}
.tag{display:inline-block;border:1px solid var(--mag);color:var(--mag);padding:1px 6px;border-radius:3px;font-size:10px;letter-spacing:.15em}
#qr img{background:#fff;padding:6px;border-radius:6px;width:220px}
.status{padding:8px;border-radius:4px;margin-top:8px}.status.pending{border:1px solid var(--amb);color:var(--amb)}.status.ok{border:1px solid var(--grn);color:var(--grn)}
