:root{color:#eef2ff;font-synthesis:none;text-rendering:optimizelegibility;--background:#070a12;--surface:#0d1220e0;--surface-raised:#12192cf0;--line:#b1bee821;--line-strong:#b1bee83b;--text:#eef2ff;--muted:#98a4bf;--subtle:#68748f;--blue:#8fa7ff;--blue-strong:#6684ff;--green:#4ed6a3;--amber:#efbd66;--red:#f4828c;--shadow:0 24px 70px #0000004d;background:#070a12;font-family:Inter,PingFang SC,Microsoft YaHei UI,Microsoft YaHei,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html{background:var(--background);min-width:320px;min-height:100%}body{background:radial-gradient(circle at 86% 2%, #5270ef33, transparent 31rem), radial-gradient(circle at 4% 72%, #22c08f14, transparent 30rem), var(--background);min-width:320px;min-height:100vh;color:var(--text);margin:0}body:before{pointer-events:none;content:"";opacity:.2;background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:42px 42px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 82%);mask-image:linear-gradient(#000,#0000 82%)}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #8fa7ff57}.skip-link{z-index:100;background:var(--text);color:var(--background);border-radius:8px;padding:9px 13px;text-decoration:none;transition:transform .16s;position:fixed;top:12px;left:12px;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.shell{width:min(1440px,100% - 48px);min-height:100vh;margin:0 auto;padding-bottom:30px;position:relative}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;min-height:92px;display:flex}.brand,.topbar-actions,.device-item-topline,.device-item-meta,.selected-device-line,.thread-flags,.filter-group{align-items:center;display:flex}.brand{gap:12px}.brand-mark{color:#dce4ff;letter-spacing:.08em;background:linear-gradient(145deg,#6684ff47,#6684ff0f);border:1px solid #8fa7ff7a;border-radius:12px;flex:none;place-items:center;width:42px;height:42px;font-family:Cascadia Code,Consolas,monospace;font-size:12px;font-weight:800;display:grid;box-shadow:inset 0 0 22px #6684ff14}.brand strong,.brand small{display:block}.brand strong{letter-spacing:.01em}.brand small{color:var(--subtle);margin-top:3px;font-size:11px}.topbar-actions{gap:12px}.status-pill,.state-badge,.meta-badge,.approval-badge,.count-badge{white-space:nowrap;border-radius:999px;align-items:center;display:inline-flex}.status-pill{border:1px solid var(--line);color:#bec8df;background:#101627c7;gap:8px;padding:8px 12px;font-size:12px}.status-pill i,.status-dot{background:var(--amber);border-radius:50%;flex:none;width:8px;height:8px;box-shadow:0 0 12px}.status-online i,.status-dot.tone-good{background:var(--green)}.status-offline i,.status-dot.tone-bad{background:var(--red)}.status-dot.tone-warn{background:var(--amber)}.quiet-button,.primary-button,.filter-group button{border:1px solid var(--line);cursor:pointer;border-radius:9px;outline:none;transition:border-color .15s,background .15s,color .15s,transform .15s}.quiet-button{color:#c8d1e4;background:#ffffff06;min-height:38px;padding:8px 13px;font-size:12px}.quiet-button:hover,.filter-group button:hover{border-color:var(--line-strong);background:#ffffff0e}.primary-button:hover:not(:disabled),.quiet-button:hover{transform:translateY(-1px)}.boundary-banner{background:#556ed80f;border:1px solid #8fa7ff30;border-radius:12px;align-items:center;gap:15px;margin-top:22px;padding:13px 16px;display:flex}.boundary-label{color:var(--blue);letter-spacing:.1em;background:#8fa7ff21;border-radius:6px;flex:none;padding:5px 8px;font-family:Cascadia Code,Consolas,monospace;font-size:9px;font-weight:800}.boundary-banner strong{color:#e1e7fa;margin-bottom:2px;font-size:12px;display:block}.boundary-banner p{color:var(--muted);margin:0;font-size:11px;line-height:1.55}.overview{grid-template-columns:minmax(0,1fr) minmax(440px,.8fr);align-items:end;gap:54px;padding:clamp(42px,6vw,76px) 0 38px;display:grid}.eyebrow,.panel-kicker{color:var(--blue);letter-spacing:.14em;text-transform:uppercase;margin:0 0 9px;font-family:Cascadia Code,Consolas,monospace;font-size:10px;font-weight:700}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.05em;margin-bottom:14px;font-size:clamp(38px,5vw,60px);font-weight:640;line-height:1.04}.overview-copy{max-width:670px;color:var(--muted);margin-bottom:0;font-size:14px;line-height:1.75}.overview-metrics{border:1px solid var(--line);background:#0d1220a8;border-radius:15px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid;overflow:hidden}.overview-metrics>div{border-right:1px solid var(--line);min-width:0;padding:17px}.overview-metrics>div:last-child{border-right:0}.overview-metrics dt,.overview-metrics dd{margin:0}.overview-metrics dt{color:var(--subtle);margin-bottom:12px;font-size:10px}.overview-metrics dd{color:var(--blue);letter-spacing:-.04em;font-size:28px;font-weight:650}.overview-metrics dd small{color:var(--subtle);font-size:12px;font-weight:500}.overview-metrics .metric-code{letter-spacing:0;font-family:Cascadia Code,Consolas,monospace;font-size:18px}.overview-metrics .metric-time{color:#c3cee6;letter-spacing:0;font-size:11px;font-weight:600;line-height:1.5}.error-banner,.inline-error,.form-error{color:#ffcbd0;background:#f4828c14;border:1px solid #f4828c40}.service-worker-guard{color:#fde68a;background:#78350f47;border:1px solid #f59e0b59;border-radius:.7rem;margin:0;padding:.75rem .9rem;font-size:.84rem;line-height:1.55}.error-banner{border-radius:10px;gap:10px;margin-bottom:15px;padding:12px 15px;font-size:12px;line-height:1.55;display:flex}.workspace{border:1px solid var(--line);background:var(--surface);min-height:610px;box-shadow:var(--shadow);border-radius:18px;grid-template-columns:minmax(270px,320px) minmax(0,1fr);display:grid;overflow:hidden}.device-panel,.thread-panel{min-width:0}.device-panel{border-right:1px solid var(--line);background:#080d1870;padding:22px 14px 18px}.panel-heading{justify-content:space-between;align-items:center;gap:12px;padding:0 8px 16px;display:flex}.panel-heading h2,.thread-header h2{letter-spacing:-.025em;margin:0;font-size:20px;font-weight:650}.panel-kicker{color:var(--subtle);margin-bottom:5px;font-size:9px}.count-badge{border:1px solid var(--line);min-width:28px;min-height:24px;color:var(--muted);justify-content:center;padding:3px 8px;font-size:10px}.device-list{gap:7px;display:grid}.device-item{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:11px;width:100%;min-width:0;padding:14px;transition:border-color .15s,background .15s}.device-item:hover{background:#ffffff09}.device-item.is-selected{background:linear-gradient(120deg,#6684ff21,#6684ff09);border-color:#8fa7ff38}.device-item-topline{justify-content:space-between;gap:8px}.device-item-topline strong{color:#e7ecf9;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.state-badge,.meta-badge,.approval-badge{border:1px solid var(--line);color:var(--muted);letter-spacing:.02em;background:#ffffff06;padding:4px 7px;font-size:9px;font-weight:700}.state-badge.tone-good{color:var(--green);background:#4ed6a314;border-color:#4ed6a333}.state-badge.tone-warn,.approval-badge{color:var(--amber);background:#efbd6614;border-color:#efbd6638}.state-badge.tone-bad{color:var(--red);background:#f4828c14;border-color:#f4828c33}.device-id{color:var(--subtle);text-overflow:ellipsis;white-space:nowrap;margin-top:7px;font-family:Cascadia Code,Consolas,monospace;font-size:9px;display:block;overflow:hidden}.device-item-meta{color:var(--muted);justify-content:space-between;gap:10px;margin-top:11px;font-size:9px}.panel-empty{min-height:180px;color:var(--muted);text-align:center;place-content:center;justify-items:center;gap:9px;padding:20px;font-size:11px;line-height:1.6;display:grid}.panel-empty strong{color:#d6deef;font-size:13px}.panel-empty span:not(.loading-orb){max-width:210px}.loading-orb{border:2px solid #8fa7ff2e;border-top-color:var(--blue);border-radius:50%;width:18px;height:18px;animation:.85s linear infinite spin;display:inline-block}.thread-panel{padding:clamp(22px,3vw,34px)}.thread-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:28px;padding-bottom:22px;display:flex}.selected-device-line{gap:8px}.selected-device-line .panel-kicker{margin:0}.device-summary{color:var(--muted);margin:9px 0 0;font-size:11px;line-height:1.55}.snapshot-state{text-align:right;flex:none}.snapshot-state span,.snapshot-state strong{display:block}.snapshot-state span{color:var(--blue);letter-spacing:.09em;margin-bottom:5px;font-size:9px;font-weight:700}.snapshot-state strong{color:var(--muted);font-size:10px;font-weight:500}.thread-toolbar{justify-content:space-between;align-items:center;gap:16px;padding:18px 0;display:flex}.filter-group{gap:5px}.filter-group button{min-height:32px;color:var(--muted);background:0 0;padding:6px 11px;font-size:10px}.filter-group button.is-active{color:#dbe3ff;background:#8fa7ff1a;border-color:#8fa7ff3d}.thread-toolbar>span{color:var(--subtle);font-size:10px}.inline-error{border-radius:9px;margin-bottom:14px;padding:10px 12px;font-size:11px;line-height:1.55}.thread-list{gap:10px;display:grid}.thread-item{border:1px solid var(--line);background:#0c1220b3;border-radius:12px;min-width:0;padding:18px;transition:border-color .15s,background .15s}.thread-item:hover{background:#101728d1;border-color:#b1bee833}.thread-title-row{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.thread-title-row>div{min-width:0}.thread-flags{flex-wrap:wrap;gap:6px;margin-bottom:10px}.thread-title-row h3{overflow-wrap:anywhere;color:#e5eaf7;margin-bottom:0;font-size:14px;font-weight:620;line-height:1.45}.thread-title-row time{color:var(--subtle);flex:none;font-size:9px}.thread-meta{border-top:1px solid #b1bee814;grid-template-columns:minmax(0,1.5fr) minmax(90px,.5fr) minmax(150px,.8fr);gap:16px;margin:16px 0 0;padding-top:13px;display:grid}.thread-meta>div{min-width:0}.thread-meta dt,.thread-meta dd{margin:0;font-size:9px;line-height:1.5}.thread-meta dt{color:var(--subtle);margin-bottom:3px}.thread-meta dd{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-family:Cascadia Code,Consolas,monospace;overflow:hidden}.thread-empty{min-height:370px;color:var(--muted);text-align:center;place-content:center;justify-items:center;padding:30px;display:grid}.thread-empty .loading-orb{margin-bottom:12px}.thread-empty h2,.thread-empty h3{color:#dbe2f1;margin:0 0 9px;font-size:17px}.thread-empty p{max-width:360px;margin:0;font-size:11px;line-height:1.7}.empty-mark{border:1px solid var(--line);width:48px;height:48px;color:var(--subtle);border-radius:14px;place-items:center;margin-bottom:16px;font-family:Cascadia Code,Consolas,monospace;font-size:10px;display:grid}footer{color:var(--subtle);justify-content:space-between;gap:18px;padding:20px 2px 0;font-size:10px;display:flex}.auth-shell{place-items:center;width:100%;min-height:100vh;padding:28px;display:grid}.auth-panel{border:1px solid var(--line);width:min(100%,510px);box-shadow:var(--shadow);background:linear-gradient(135deg,#6684ff14,#0000 42%),#0c111ef0;border-radius:22px;padding:clamp(28px,6vw,48px)}.auth-brand{margin-bottom:54px}.auth-panel h1{margin-bottom:17px;font-size:clamp(34px,8vw,48px)}.auth-copy{color:var(--muted);margin-bottom:28px;font-size:13px;line-height:1.75}.auth-form{gap:10px;display:grid}.auth-form label{color:#d8dfef;font-size:11px;font-weight:650}.auth-form input{border:1px solid var(--line-strong);width:100%;min-height:48px;color:var(--text);background:#040810a8;border-radius:10px;outline:none;padding:11px 13px}.auth-form input:focus{border-color:#8fa7ff8f}.field-help{color:var(--subtle);font-size:10px;line-height:1.55}.form-error{border-radius:8px;margin:2px 0 0;padding:9px 11px;font-size:11px;line-height:1.5}.primary-button{background:var(--blue);color:#07102e;border-color:#0000;min-height:46px;margin-top:10px;font-size:12px;font-weight:750}.primary-button:hover:not(:disabled){background:#a6b8ff}.primary-button:disabled,.auth-form input:disabled{cursor:wait;opacity:.58}.security-note{border-top:1px solid var(--line);color:var(--muted);gap:5px;margin-top:28px;padding-top:20px;font-size:10px;line-height:1.55;display:grid}.security-note strong{color:var(--blue);letter-spacing:.08em;font-size:9px}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1060px){.overview{grid-template-columns:1fr;gap:28px}.overview-metrics{width:min(100%,620px)}.workspace{grid-template-columns:minmax(245px,285px) minmax(0,1fr)}.thread-meta{grid-template-columns:1fr 1fr}.thread-meta>div:first-child{grid-column:1/-1}}@media (width<=760px){.shell{width:min(100% - 28px,680px);padding-bottom:22px}.topbar{align-items:flex-start;padding:18px 0}.topbar,.topbar-actions{flex-direction:column}.topbar-actions{align-items:stretch;width:100%}.status-pill{justify-content:center}.boundary-banner{align-items:flex-start}.overview{padding:48px 0 28px}.overview-metrics{grid-template-columns:1fr 1fr}.overview-metrics>div:nth-child(2){border-right:0}.overview-metrics>div:last-child{border-top:1px solid var(--line);grid-column:1/-1}.workspace{grid-template-columns:1fr}.device-panel{border-right:0;border-bottom:1px solid var(--line)}.device-list{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));max-height:350px;overflow-y:auto}.thread-header{flex-direction:column;align-items:flex-start;gap:14px}.snapshot-state{text-align:left}.thread-title-row{flex-direction:column;gap:10px}.thread-meta{grid-template-columns:1fr}.thread-meta>div:first-child{grid-column:1}footer{flex-direction:column;gap:6px}}@media (width<=480px){.auth-shell{padding:14px}.auth-panel{border-radius:17px;padding:27px 22px}.auth-brand{margin-bottom:42px}.brand small{display:none}.boundary-banner{flex-direction:column}.overview-metrics{grid-template-columns:1fr}.overview-metrics>div,.overview-metrics>div:nth-child(2){border-right:0;border-bottom:1px solid var(--line)}.overview-metrics>div:last-child{border-top:0;border-bottom:0;grid-column:1}.thread-panel{padding:19px}.thread-toolbar{flex-direction:column;align-items:flex-start}.filter-group{width:100%}.filter-group button{flex:1}.error-banner{flex-direction:column;gap:3px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
