@charset "UTF-8";:root{--bg: #0b0d10;--bg-elev: #11141a;--bg-card: #14181f;--line: #1f242d;--line-strong: #2a3140;--fg: #e7ebf2;--fg-dim: #9aa4b2;--fg-mute: #5b6473;--accent: #2196f2;--accent-ink: #f6fbff;--danger: oklch(.7 .18 25);--radius: 10px;--scroll-max: calc(100vh - 280px) ;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--sans: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}:root[data-theme=light]{--bg: #f6f7f8;--bg-elev: #ffffff;--bg-card: #ffffff;--line: #e6e8eb;--line-strong: #d3d7dd;--fg: #0e1116;--fg-dim: #5a6472;--fg-mute: #9099a6}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow:hidden}a{color:inherit}button{font:inherit;color:inherit}.bg-grid{position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:56px 56px;background-position:-1px -1px;mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,#000 30%,transparent 80%);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,#000 30%,transparent 80%);opacity:.55}.topbar{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;font-family:var(--mono);font-size:11.5px;color:var(--fg-dim);z-index:5}.brand{display:flex;align-items:center;gap:10px}.brand-name{color:var(--fg);font-weight:600;letter-spacing:-.005em;white-space:nowrap;font-family:var(--sans);font-size:13.5px}.dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 var(--accent);animation:pulse 2.2s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 color-mix(in oklab,var(--accent) 50%,transparent)}70%{box-shadow:0 0 0 8px color-mix(in oklab,var(--accent) 0%,transparent)}to{box-shadow:0 0 color-mix(in oklab,var(--accent) 0%,transparent)}}.stage{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.card{background:var(--bg-card);border:1px solid var(--line);border-radius:12px;padding:32px 32px 26px;width:100%;max-width:420px;margin:0 auto;box-shadow:0 1px color-mix(in oklab,var(--fg) 4%,transparent) inset,0 24px 60px -28px #0f172a2e,0 4px 16px -10px #0f172a14}.card.dashboard{max-width:760px;padding:24px 28px 20px}.btn{appearance:none;border:0;cursor:pointer;width:100%;padding:12px 14px;border-radius:8px;font-family:var(--mono);font-size:12.5px;font-weight:500;letter-spacing:.04em;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .08s ease,background .15s,color .15s,border-color .15s}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 1px color-mix(in oklab,#fff 35%,transparent) inset,0 8px 20px -10px color-mix(in oklab,var(--accent) 70%,transparent)}.btn-primary:hover{filter:brightness(1.04)}.btn-primary:disabled{opacity:.6;filter:saturate(.4);cursor:default}.btn-ghost{background:transparent;color:var(--fg-dim);border:1px solid var(--line)}.btn-ghost:hover{border-color:var(--line-strong);color:var(--fg)}.arrow{width:14px;height:14px;transition:transform .15s ease}.btn-primary:hover .arrow{transform:translate(2px)}.dash-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:20px}.dash-head h1{font-size:20px;font-weight:600;margin:0;letter-spacing:-.01em}.dash-head .meta{font-family:var(--mono);font-size:11px;color:var(--fg-mute);margin:4px 0 0;letter-spacing:.02em;display:flex;align-items:center;gap:8px}.dash-head .meta b{color:var(--fg-dim);font-weight:500}.dash-head .meta .live{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 var(--accent);animation:pulse 2.2s ease-out infinite;display:inline-block}.dash-foot{display:flex;align-items:center;justify-content:flex-end;padding-top:14px;margin-top:6px;border-top:1px solid var(--line);font-family:var(--mono);font-size:10.5px;color:var(--fg-mute)}.back-btn{background:transparent;border:1px solid var(--line);color:var(--fg-dim);font-family:var(--mono);font-size:11px;letter-spacing:.04em;padding:7px 12px;border-radius:8px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:7px;transition:border-color .15s,color .15s}.back-btn:hover{border-color:var(--line-strong);color:var(--fg)}.back-btn svg{width:13px;height:13px}.err-log{border:1px solid var(--line);border-radius:10px;background:var(--bg-elev);max-height:var(--scroll-max);overflow-y:auto;overflow-x:hidden}.dev-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11px}.dev-row:last-child{border-bottom:0}.dev-status{width:7px;height:7px;border-radius:50%;flex:0 0 7px}.dev-status.online{background:var(--accent)}.dev-status.offline{background:var(--fg-mute);opacity:.5}.dev-info{min-width:0}.dev-model{color:var(--fg);font-weight:500}.dev-imei{color:var(--fg-mute);font-size:10px;margin-top:2px}.dev-seen{color:var(--fg-dim);text-align:right;white-space:nowrap;font-size:10px}.dev-seen.now{color:var(--accent)}.state-row{padding:14px;font-family:var(--mono);font-size:11px;color:var(--fg-mute)}.err-row{display:grid;grid-template-columns:80px 64px 1fr;align-items:start;gap:14px;padding:11px 14px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11px;line-height:1.5}.err-row:last-child{border-bottom:0}.err-row .t{color:var(--fg-mute)}.err-row .lvl{font-weight:600;text-transform:uppercase;font-size:9.5px;letter-spacing:.06em;padding:2px 6px;border-radius:4px;text-align:center}.err-row .lvl.error{color:#ff7a7a;background:color-mix(in oklab,#ff7a7a 12%,transparent);border:1px solid color-mix(in oklab,#ff7a7a 28%,transparent)}.err-row .lvl.warn{color:#ffb86b;background:color-mix(in oklab,#ffb86b 12%,transparent);border:1px solid color-mix(in oklab,#ffb86b 28%,transparent)}.err-row .body{color:var(--fg-dim);min-width:0}.err-row .body b{color:var(--fg);font-weight:500}.err-row .src{color:var(--fg-mute);font-size:10px;margin-top:2px}@media(max-width:680px){.err-row{grid-template-columns:64px 56px 1fr;gap:10px}}
