:root{color:#e8eefc;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 0 0,#1d4ed8 0%,#0000 35%),radial-gradient(circle at 100% 0,#7c3aed 0%,#0000 28%),#070b16;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}button,input{font:inherit}code{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em}.truncate{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.eyebrow{color:#93c5fd;letter-spacing:.08em;text-transform:uppercase;margin:0 0 .35rem;font-size:.75rem;font-weight:700}.muted{color:#9aa8c7}.auth-shell,.app-shell{width:min(960px,100% - 2rem);margin:0 auto;padding:2.5rem 0 3rem}.auth-shell{place-items:center;width:min(440px,100% - 2rem);min-height:100vh;display:grid}.auth-card,.panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0c1222e0;border:1px solid #94a3b82e;border-radius:20px;width:100%;box-shadow:0 24px 60px #00000059}.auth-card{gap:1rem;min-width:0;max-width:100%;padding:1.75rem;display:grid}.auth-header h1,.topbar h1,.panel h2{margin:0}.auth-header h1{font-size:1.85rem}.auth-header .muted{margin:.55rem 0 0}.field{gap:.4rem;display:grid}.field span,.label{color:#cbd5e1;font-size:.9rem;font-weight:600}.field input{color:#f8fafc;background:#0f172ae6;border:1px solid #94a3b847;border-radius:12px;outline:none;width:100%;padding:.8rem .95rem}.field input:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa33}.device-box{background:#1e293ba6;border:1px solid #94a3b824;border-radius:14px;gap:.75rem;min-width:0;padding:.9rem 1rem;display:grid;overflow:hidden}.token-break{overflow-wrap:anywhere;word-break:break-all;white-space:normal;max-width:100%;display:block}.device-box .label{color:#94a3b8;margin-bottom:.2rem;font-size:.75rem;display:block}.btn-primary,.btn-secondary{cursor:pointer;border:0;border-radius:12px;padding:.85rem 1.1rem;font-weight:700;transition:transform .15s,opacity .15s}.btn-primary{color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed)}.btn-secondary{color:#e2e8f0;background:#1e293be6;border:1px solid #94a3b840}.btn-primary:hover:not(:disabled),.btn-secondary:hover{transform:translateY(-1px)}.btn-primary:disabled{opacity:.65;cursor:not-allowed}.alert{border-radius:12px;padding:.75rem .9rem;font-size:.92rem}.alert-error{color:#fecaca;background:#7f1d1d59;border:1px solid #f8717173}.topbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.panel{margin-bottom:1rem;padding:1.25rem 1.35rem}.grid-2{gap:1.25rem;display:grid}@media (width>=800px){.grid-2{grid-template-columns:1fr 1fr}}.meta-list{margin:1rem 0 0}.meta-list>div{border-top:1px solid #94a3b81f;gap:.2rem;padding:.7rem 0;display:grid}.meta-list dt{color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;font-size:.78rem}.meta-list dd{margin:0}.section-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.75rem;display:flex}.empty{color:#94a3b8;margin:0}.notif-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.notif-list li{background:#1e293bb3;border:1px solid #94a3b824;border-radius:14px;justify-content:space-between;gap:1rem;padding:.9rem 1rem;display:flex}.notif-list p{color:#cbd5e1;margin:.35rem 0 0}.notif-list time{color:#94a3b8;white-space:nowrap;font-size:.8rem}.topbar-actions{flex-wrap:wrap;gap:.6rem;display:flex}.listener-status{margin:0 0 1rem;font-size:.9rem}.listener-status.warn{color:#fbbf24}.token-full{white-space:pre-wrap;word-break:break-all;background:#0f172ae6;border:1px solid #94a3b833;border-radius:12px;width:100%;padding:.85rem 1rem;font-size:.78rem;line-height:1.45;display:block}.hint{margin:.65rem 0 0;font-size:.85rem}.toast{z-index:50;background:linear-gradient(135deg,#1e3a8a,#312e81);border:1px solid #93c5fd59;border-radius:14px;width:min(360px,100vw - 2rem);padding:1rem 2.25rem 1rem 1rem;animation:.25s toast-in;position:fixed;top:1.25rem;right:1.25rem;box-shadow:0 18px 40px #00000059}.toast strong{display:block}.toast p{color:#dbeafe;margin:.35rem 0 0}.toast button{color:#bfdbfe;cursor:pointer;background:0 0;border:0;font-size:1.25rem;line-height:1;position:absolute;top:.45rem;right:.55rem}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
