:root{--bg:#0b1020;--fg:#e7e9ee;--muted:#9aa3b2;--card:#0f1529;--accent:#22c55e;--accent2:#38bdf8;--warn:#f59e0b;--border:#1f2740}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:radial-gradient(1200px 600px at -10% -20%,#12203a,transparent),radial-gradient(1200px 600px at 110% -20%,#1c223a,transparent),var(--bg);color:var(--fg);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif}
.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:linear-gradient(90deg,#0c1326,#0a1223);border-bottom:1px solid var(--border);backdrop-filter:saturate(140%) blur(6px)}
.brand{font-weight:800;letter-spacing:.2px}
.btn{background:linear-gradient(180deg,#22c55e,#16a34a);border:none;color:#052e16;padding:10px 16px;border-radius:10px;font-weight:700;cursor:pointer;box-shadow:0 6px 16px rgba(34,197,94,.18);transition:transform .05s ease}
.btn-tab{background:linear-gradient(180deg,#38bdf8,#0ea5e9); color:#082f49}
.btn:disabled{opacity:.6;cursor:not-allowed}
.btn:active{transform:translateY(1px)}
.container{max-width:1200px;margin:20px auto;padding:0 16px}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.stats div{background:rgba(255,255,255,.03);border:1px solid var(--border);padding:8px 10px;border-radius:10px}
.status{margin:10px 0;color:var(--muted)}
.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--accent2);border-radius:50%;animation:spin .8s linear infinite;margin-right:8px;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}
.progress{height:6px;background:rgba(255,255,255,.08);border:1px solid var(--border);border-radius:999px;overflow:hidden}
.progress > div{height:100%;background:linear-gradient(90deg,var(--accent2),#5eead4);width:0%}
.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:12px;background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,.01))}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:12px 14px;border-bottom:1px solid var(--border);white-space:nowrap}
.table thead th{position:sticky;top:0;background:#0c1326;border-bottom:1px solid var(--border);text-align:left}
.table tbody tr{transition:background .12s ease}
.table tbody tr:hover{background:#0f1a2e}
.chip{display:inline-block;font-size:12px;padding:2px 8px;background:rgba(255,255,255,.06);border:1px solid var(--border);border-radius:999px;margin-right:6px}
.exp-btn{background:transparent;border:1px solid var(--border);color:var(--fg);padding:6px 8px;border-radius:8px;cursor:pointer}
.exp{display:inline-block;width:1em;text-align:center}
.exp:before{content:'▸';display:inline-block;transition:transform .15s ease}
.exp.open:before{content:'▾'}
.details-row td{background:rgba(255,255,255,.03)}
a{color:var(--accent2);text-decoration:none}
@media(max-width:1024px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.stats{grid-template-columns:1fr}.table th,.table td{padding:10px 12px;}}

/* Login overlay */
.overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:1000;background:rgba(5,10,20,.45);backdrop-filter:blur(8px) saturate(120%)}
.overlay .card{width:320px;max-width:92vw;background:#111827;border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.35);padding:18px}
.overlay h1{margin:0 0 8px;font-size:18px}
.overlay .desc{color:var(--muted);font-size:12px;margin-bottom:10px}
.overlay .row{margin:10px 0}
.overlay input{width:100%;padding:10px;border-radius:8px;border:1px solid var(--border);background:#0b1224;color:var(--fg)}
.overlay button{width:100%;padding:10px;border-radius:8px;background:linear-gradient(180deg,#22c55e,#16a34a);border:none;color:#052e16;font-weight:700;cursor:pointer}
.overlay .msg{min-height:18px;font-size:12px;margin-top:8px}
