:root{--paper:#eceee8;--surface:#fff;--surface-2:#f6f7f3;--surface-focus:#fff;--ink:#15181a;--ink-2:#5b6367;--ink-3:#8b9196;--line:#dbdfd5;--line-2:#c6cbbe;--accent:#0b6b62;--accent-hover:#095852;--accent-soft:#dcebe8;--accent-border:#b9d8d2;--amber:#9a5a06;--amber-border:#e6d5b4;--tick:#2f80ed;--amber-soft:#f6ecd9;--green:#1c7c4a;--red:#a92e22;--on-accent:#fff;--avatar-bg:#15181a;--avatar-fg:#fff;--err-bg:#fbeeec;--err-text:#7c2419;--notice-bg:#fbeeec;--notice-border:#edd6d2;--notice-text:#7c2419;--gradient-spot:#f6f8f3;--side-bg:#fff;--thread-bg:#eceee8;--log-bg:#15181a;--log-fg:#c9cfd2;--log-line:#2a2f33;--log-muted:#7c868c;--log-hover:#1d2226;--log-time:#5f696e;--log-key:#7fd1c4;--log-key-bad:#e28b7f;--log-key-warn:#dcae6b;--log-val:#aeb6ba;--log-btn-border:#3a4044;--log-btn-fg:#8b9599;--radius:4px;--radius-lg:8px;--shadow-sm:0 1px 2px #15181a0d;--shadow-md:0 1px 3px #15181a0f, 0 6px 20px -8px #15181a24;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--paper:#1e2328;--surface:#2a3038;--surface-2:#343b44;--surface-focus:#3d4550;--ink:#e4e8eb;--ink-2:#b0b8bf;--ink-3:#7a848d;--line:#3a424c;--line-2:#4a5360;--accent:#3dbfb3;--accent-hover:#35aea3;--accent-soft:#243836;--accent-border:#3a6b64;--amber:#e0b060;--amber-border:#5a4a30;--tick:#4da3ff;--amber-soft:#3a3224;--green:#4ecf8a;--red:#f07068;--avatar-bg:#3d4550;--avatar-fg:#e4e8eb;--err-bg:#3a2826;--err-text:#f0a8a0;--notice-bg:#3a2826;--notice-border:#5a4038;--notice-text:#f0a8a0;--gradient-spot:#252b32;--side-bg:#2a3038;--thread-bg:#1e2328;--log-bg:#0a0c0d;--log-fg:#c9cfd2;--log-line:#1a1e22;--log-muted:#6e757b;--log-hover:#14181b;--shadow-sm:0 1px 2px #00000040;--shadow-md:0 1px 3px #0000004d, 0 6px 20px -8px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;min-height:100vh}#root{flex-direction:column;display:flex}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}body.chat-active{overflow:hidden}html.chat-active{height:100%}.theme-toggle{z-index:100;position:fixed;top:12px;right:12px}.theme-slider{font-family:var(--mono);color:var(--ink-3);align-items:center;gap:8px;font-size:10px;display:inline-flex}.theme-slider.compact{gap:6px;font-size:9.5px}.theme-slider-side{transition:color .12s}.theme-slider-side.active{color:var(--ink);font-weight:600}.theme-switch{cursor:pointer;background:0 0;border:none;padding:0;line-height:0}.theme-switch-track{background:var(--line-2);border:1px solid var(--line);border-radius:999px;width:34px;height:18px;transition:background .15s,border-color .15s;display:block;position:relative}.theme-slider.compact .theme-switch-track{width:30px;height:16px}.theme-switch[aria-checked=true] .theme-switch-track{background:var(--accent-soft);border-color:var(--accent)}.theme-switch-thumb{background:var(--surface);border-radius:50%;width:12px;height:12px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0000002e}.theme-slider.compact .theme-switch-thumb{width:10px;height:10px}.theme-switch[aria-checked=true] .theme-switch-thumb{background:var(--accent);transform:translate(16px)}.theme-slider.compact .theme-switch[aria-checked=true] .theme-switch-thumb{transform:translate(14px)}.topbar-menu{margin-left:4px;position:relative}.kebab-btn{border:1px solid var(--line-2);border-radius:var(--radius);width:28px;height:28px;color:var(--ink-2);background:0 0;justify-content:center;align-items:center;padding:0;transition:border-color .12s,color .12s,background .12s;display:inline-flex}.kebab-btn:hover,.kebab-btn[aria-expanded=true]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.kebab-dots{flex-direction:column;align-items:center;gap:3px;display:flex}.kebab-dots span{background:currentColor;border-radius:50%;width:3px;height:3px;display:block}.topbar-dropdown{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:190px;box-shadow:var(--shadow-md);z-index:120;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.menu-row{border-radius:calc(var(--radius) - 2px);width:100%;color:var(--ink);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;font-size:12px;display:flex}.menu-row.menu-theme{padding:8px 10px 10px}.menu-row.menu-action{cursor:pointer;font-family:var(--mono);font-size:11px}.menu-row.menu-action:hover{background:var(--surface-2)}.menu-row.menu-action.active{color:var(--accent);background:var(--accent-soft)}.menu-label{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:10px}.menu-hint{color:var(--ink-3);font-size:10px}.wire-user .wire-name{color:var(--ink);font-weight:600}.wire-user .statedot{flex-shrink:0}.wire-user .wire-status{color:var(--ink-3);text-transform:lowercase}.copy-user-btn{font-family:var(--mono);border:1px solid var(--line);background:var(--surface-2);color:var(--ink-3);border-radius:3px;padding:2px 6px;font-size:10px;line-height:1;transition:color .12s,border-color .12s,background .12s}.copy-user-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.copy-user-btn.copied{color:var(--green);border-color:var(--green);background:0 0}.screen-login,.screen-connect{background:radial-gradient(120% 90% at 50% -10%, var(--gradient-spot) 0%, transparent 62%), var(--paper);flex:1}button{font:inherit;color:inherit;cursor:pointer}input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hidden{display:none!important}.eyebrow{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-size:10px}.screen-login{flex:1;place-items:center;min-height:100vh;padding:32px 20px;display:grid}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;max-width:540px;box-shadow:var(--shadow-md);overflow:hidden}.login-head{border-bottom:1px solid var(--line);padding:26px 28px 20px}.login-head h1{letter-spacing:-.02em;margin:8px 0 4px;font-size:26px;font-weight:600}.login-head p{color:var(--ink-2);margin:0;font-size:13px}.login-body{padding:22px 28px 26px}.field{margin-bottom:16px}.field label{color:var(--ink-2);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.field input{background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius);width:100%;font-family:var(--mono);padding:9px 11px;font-size:13px;transition:background .12s,border-color .12s,box-shadow .12s}.field input:focus{background:var(--surface-focus);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field select{background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius);width:100%;padding:9px 11px;font-size:13px}.hint{color:var(--ink-3);margin-top:6px;font-size:11.5px}.who-list{flex-direction:column;gap:4px;max-height:170px;margin-top:8px;display:flex;overflow-y:auto}.who{background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius);text-align:left;align-items:center;gap:8px;padding:5px 9px 5px 6px;font-size:12.5px;display:flex}.who:hover,.who[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.who .idtag{font-family:var(--mono);color:var(--ink-3);white-space:nowrap;margin-left:auto;font-size:10.5px}.who .cached{font-family:var(--mono);color:var(--accent);border:1px solid var(--accent);border-radius:2px;padding:0 3px;font-size:9.5px}.who .who-nm{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.who .who-nm.unnamed{color:var(--ink-3);font-style:italic;font-weight:400}.sbadge{font-family:var(--mono);letter-spacing:.02em;color:var(--amber);background:var(--amber-soft);vertical-align:1px;border-radius:8px;margin-left:6px;padding:1px 6px;font-size:9.5px;font-weight:500}.settings-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:12px;display:flex}.settings-foot .btn-tiny:disabled{opacity:.4;cursor:default}.idchip{font-family:var(--mono);color:var(--ink-3);background:var(--surface-2);border:1px solid var(--line);vertical-align:baseline;border-radius:3px;padding:0 5px;font-size:10.5px;font-weight:400;line-height:1.6;transition:color .12s,border-color .12s,background .12s}.idchip:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.idchip.copied{color:var(--green);border-color:var(--green);background:0 0}.idchip.quiet{background:0 0;border-color:#0000}.idchip.quiet:hover{border-color:var(--accent)}.wire .idchip{padding:0 4px;font-size:10px}.btn{border-radius:var(--radius);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:13.5px;font-weight:600;transition:background .12s,border-color .12s,color .12s,box-shadow .12s;display:inline-flex}.btn-primary{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{background:var(--line-2);color:var(--on-accent);cursor:not-allowed;box-shadow:none}.btn-quiet{border-color:var(--line-2);color:var(--ink-2);background:0 0}.btn-quiet:hover{border-color:var(--ink-3);color:var(--ink)}.btn-block{width:100%}details.adv{border-top:1px solid var(--line);margin:2px 0 18px;padding-top:14px}details.adv summary{cursor:pointer;color:var(--ink-2);align-items:center;gap:6px;font-size:12px;font-weight:600;list-style:none;display:flex}details.adv summary::-webkit-details-marker{display:none}details.adv summary:before{content:"+";font-family:var(--mono);color:var(--ink-3)}details.adv[open] summary:before{content:"âˆ’"}details.adv .adv-body{padding-top:14px}.check{color:var(--ink-2);align-items:center;gap:8px;font-size:12.5px;display:flex}.err{border-left:2px solid var(--red);background:var(--err-bg);color:var(--err-text);margin-top:14px;padding:10px 12px;font-size:12.5px}.err code{font-family:var(--mono);font-size:11.5px}.screen-connect{flex:1;place-items:center;min-height:100vh;padding:40px 20px;display:grid}.connect-card{text-align:left;width:100%;max-width:480px}.spinner{border:2px solid var(--line-2);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;margin-bottom:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.connect-state{letter-spacing:-.01em;margin:0 0 4px;font-size:22px;font-weight:600}.connect-detail{color:var(--ink-2);font-size:13px;font-family:var(--mono);word-break:break-all;margin:0 0 14px}.connect-endpoints{border:1px solid var(--line);background:var(--surface-2);font-family:var(--mono);color:var(--ink-2);word-break:break-all;border-radius:8px;margin:0 0 18px;padding:10px 12px;font-size:12px}.connect-endpoints .k{color:var(--ink-3)}.connect-endpoints>div+div{margin-top:6px}.trace{border-top:1px solid var(--line);padding-top:12px}.trace-row{font-family:var(--mono);color:var(--ink-2);word-break:break-all;grid-template-columns:64px 12px 1fr;align-items:baseline;gap:10px;padding:4px 0;font-size:11.5px;display:grid}.trace-row .t{color:var(--ink-3)}.trace-row .dot{background:var(--ink-3);border-radius:50%;width:6px;height:6px;transform:translateY(-1px)}.trace-row.ok .dot{background:var(--green)}.trace-row.warn .dot{background:var(--amber)}.trace-row.bad .dot{background:var(--red)}.trace-row.bad{color:var(--red)}.screen-chat{flex-direction:column;flex:1;height:100%;min-height:100vh;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:14px;height:46px;padding:0 16px;display:flex}.brand{letter-spacing:-.01em;font-size:14px;font-weight:700}.wire{font-family:var(--mono);color:var(--ink-2);align-items:center;gap:16px;margin-left:auto;font-size:11px;display:flex}.wire .cell{white-space:nowrap;align-items:center;gap:6px;display:flex}.wire .k{color:var(--ink-3)}.statedot{background:var(--ink-3);border-radius:50%;width:7px;height:7px}.statedot.connected{background:var(--green)}.statedot.connecting{background:var(--amber);animation:1.1s ease-in-out infinite pulse}.statedot.disconnected{background:var(--red)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.icon-btn{border:1px solid var(--line-2);border-radius:var(--radius);font-family:var(--mono);color:var(--ink-2);background:0 0;padding:4px 9px;font-size:11px}.icon-btn:hover{border-color:var(--accent);color:var(--accent)}.icon-btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.workspace{flex:1;min-height:0;display:flex}.contacts{width:var(--side-w,286px);background:var(--side-bg);border-right:1px solid var(--line);flex-direction:column;flex:none;min-height:0;display:flex;position:relative}.side-grip{z-index:4;cursor:col-resize;background:0 0;width:7px;position:absolute;top:0;bottom:0;right:-3px}.side-grip:after{content:"";background:0 0;width:1px;position:absolute;top:0;bottom:0;left:3px}.side-grip:hover:after,.side-grip.dragging:after{background:var(--accent)}.contacts-scroll{flex:1;min-height:0;padding-bottom:10px;overflow-y:auto}.sec-head{align-items:baseline;gap:8px;padding:14px 14px 6px;display:flex}.sec-head .count{font-family:var(--mono);color:var(--ink-3);margin-left:auto;font-size:10px}.sec-note{color:var(--ink-3);padding:0 14px 6px;font-size:11px;line-height:1.35}.sec-rule{background:var(--line);height:1px;margin:8px 0 0}.sec-body{padding:2px 8px 4px}.contact{border-radius:var(--radius);text-align:left;background:0 0;border:1px solid #0000;grid-template-columns:40px 1fr auto;align-items:center;column-gap:10px;width:100%;padding:8px;transition:background .15s,border-color .15s,transform .12s;display:grid;position:relative}.row-wrap{transition:opacity .15s}.row-wrap.suggested-row .contact{border-style:dashed;border-color:var(--line-2)}.row-wrap.suggested-row .contact:hover{border-color:var(--amber);background:var(--amber-soft)}.row-wrap.expired-row .contact{opacity:.6}.row-wrap:hover .contact{background:var(--surface-2)}.row-wrap .contact.active{transform:translate(2px)}.row-wrap+.row-wrap{margin-top:1px}.row-actions{justify-content:flex-end;gap:5px;padding:1px 8px 3px;display:flex}.btn-tiny{border:1px solid var(--line-2);border-radius:var(--radius);font-family:var(--mono);color:var(--ink-2);background:0 0;padding:2px 8px;font-size:10px;transition:border-color .12s,color .12s,background .12s}.btn-tiny.copied{border-color:var(--green);color:var(--green)}.btn-tiny:hover{border-color:var(--accent);color:var(--accent)}.btn-tiny:disabled{opacity:.5;cursor:default;border-color:var(--line-2);color:var(--ink-3)}.contact:hover{background:var(--surface-2)}.contact.active{background:var(--accent-soft);border-color:var(--accent-border)}.contact.active:before{content:"";background:var(--accent);border-radius:2px;width:2px;position:absolute;top:7px;bottom:7px;left:-1px}.row-actions{opacity:0;transition:opacity .12s}.row-wrap:hover .row-actions,.row-wrap:focus-within .row-actions{opacity:1}.row-wrap:has(.contact.active) .row-actions{opacity:1}.avatar-wrap{flex:none;width:34px;height:34px;position:relative}.avatar-wrap.sm{width:28px;height:28px}.avatar-wrap.lg{width:48px;height:48px}.avatar-wrap .avatar{border-radius:var(--radius);width:100%;height:100%;font-family:var(--mono);text-transform:uppercase;border:2px solid #0000;place-items:center;font-size:11px;font-weight:600;transition:transform .12s,box-shadow .12s;display:grid}.avatar-wrap.lg .avatar{border-radius:12px;font-size:14px}.avatar-wrap.sm .avatar{border-radius:8px;font-size:9px}.contact:hover .avatar-wrap .avatar{transform:scale(1.03)}.contact.active .avatar-wrap .avatar{box-shadow:0 0 0 2px var(--accent-soft)}.avatar-wrap.suggested .avatar{color:var(--amber);border:2px dashed var(--line-2);background:0 0}.avatar-wrap.expired .avatar{background:var(--line-2);color:var(--ink-3);border-color:var(--line-2)}.avatar{background:var(--avatar-bg);width:34px;height:34px;color:var(--avatar-fg);border-radius:var(--radius);font-family:var(--mono);text-transform:uppercase;flex:none;place-items:center;font-size:11px;font-weight:600;display:grid}.contact.active .avatar{background:var(--accent)}.contact.suggested .avatar{color:var(--amber);border:1px dashed var(--line-2);background:0 0}.contact.suggested.active .avatar{background:var(--amber-soft);border-style:solid;border-color:var(--amber)}.contact .meta{min-width:0}.contact .line{align-items:baseline;gap:5px;min-width:0;display:flex}.contact .nm{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.contact .uid{font-family:var(--mono);color:var(--ink-3);opacity:.85;flex:none;font-size:10px}.contact.active .uid{color:var(--accent)}.contact .sub{min-width:0;color:var(--ink-2);align-items:center;gap:4px;margin-top:1px;font-size:11.5px;display:flex}.contact .sub .txt{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.contact .sub.typing{color:var(--accent);font-style:italic}.contact .sub.unseen .txt{color:var(--ink);font-weight:600}.contact .right{flex-direction:column;justify-self:end;align-items:flex-end;gap:4px;padding-left:2px;display:flex}.contact .when{font-family:var(--mono);color:var(--ink-3);white-space:nowrap;font-size:9.5px}.badge{background:var(--accent);min-width:20px;height:20px;color:var(--on-accent);font-family:var(--mono);border-radius:999px;place-items:center;padding:0 6px;font-size:10px;font-weight:700;animation:.2s ease-out badge-pop;display:grid;box-shadow:0 1px 4px #0b6b6240}@keyframes badge-pop{0%{opacity:.5;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.presence{width:9px;height:9px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;bottom:-1px;right:-1px}.presence.on{background:var(--green)}.presence.off{background:var(--ink-3);opacity:.5}.avatar-wrap.lg .presence{width:11px;height:11px}.contact.active .presence{box-shadow:0 0 0 2px var(--accent-soft)}.timer{font-family:var(--mono);color:var(--ink-2);flex:none;margin-left:auto;padding-left:6px;font-size:10px}.timer-progress{min-width:72px;height:16px;font-family:var(--mono);color:var(--ink-2);flex:none;align-items:center;gap:6px;margin-left:auto;font-size:9.5px;display:flex;position:relative}.timer-progress.compact{min-width:64px;height:14px;font-size:9px}.timer-progress:before{content:"";background:var(--line);border-radius:999px;height:3px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.timer-progress-bar{background:var(--accent);border-radius:999px;max-width:100%;height:3px;transition:width .8s linear;position:absolute;top:50%;left:0;transform:translateY(-50%)}.timer-progress.warn .timer-progress-bar{background:var(--amber)}.timer-progress.dead .timer-progress-bar{background:var(--red);width:0!important}.timer-progress.urgent .timer-progress-label{animation:1s ease-in-out infinite timer-pulse}.timer-progress-label{z-index:1;background:var(--side-bg);margin-left:auto;padding-left:4px;position:relative}.contact .timer-progress-label{background:0 0}.timer-progress.compact .timer-progress-label{font-size:8.5px}@keyframes timer-pulse{0%,to{opacity:1;color:var(--ink-2)}50%{opacity:.7;color:var(--red)}}.lock-icon{opacity:.7;flex:none;font-size:10px}.extend-cta{border-color:var(--accent)!important;color:var(--accent)!important}.sec-expired .sec-head .eyebrow{color:var(--ink-3)}.timer.warn{color:var(--amber)}.timer.dead{color:var(--red)}.sec-next{font-family:var(--mono);color:var(--ink-3);align-items:baseline;gap:6px;padding:4px 14px 2px;font-size:10px;display:flex}.sec-next .v{color:var(--ink-2)}.sec-next.due{color:var(--accent)}.score{font-family:var(--mono);color:var(--amber);background:var(--amber-soft);white-space:nowrap;border-radius:8px;flex:none;padding:1px 5px;font-size:9.5px;font-weight:600}.contact.expired .score{color:var(--ink-3);background:0 0}.contact.expired{opacity:.55}.contact.expired .avatar{background:var(--line-2);border-color:var(--line-2);color:var(--surface)}.contact.expired .nm,.contact.expired .sub .txt{color:var(--ink-3)}.contact.expired.active{opacity:.75}.thread{background:var(--thread-bg);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.thread-head{background:var(--surface);border-bottom:1px solid var(--line);flex:none;padding:11px 18px}.thread-head-rich{align-items:center;gap:14px;padding:12px 18px;display:flex}.thread-head-main{flex:1;min-width:0}.thread-head-empty .nm{font-size:14px;font-weight:600;display:block}.thread-head-empty .ch{font-family:var(--mono);color:var(--ink-3);margin-top:4px;font-size:11px;display:block}.thread-timer-chip{font-family:var(--mono);color:var(--ink-3);border:1px solid var(--line);background:var(--surface-2);border-radius:999px;padding:2px 8px;font-size:11px}.thread-timer-chip.warn{color:var(--amber);border-color:var(--amber-border);background:var(--amber-soft)}.thread-timer-chip.dead{color:var(--red);border-color:var(--notice-border);background:var(--notice-bg)}.thread-head .nm-row{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.thread-head .nm{align-items:center;gap:7px;font-size:14px;font-weight:600;display:inline-flex}.thread-head .ch .idchip{margin-left:2px}.thread-head .status{font-family:var(--mono);color:var(--ink-3);align-items:center;gap:5px;font-size:10.5px;display:flex}.thread-head .status .dot{background:var(--ink-3);border-radius:50%;width:6px;height:6px}.thread-head .status.online{color:var(--green)}.thread-head .status.online .dot{background:var(--green)}.thread-head .status.offline{color:var(--ink-2)}.thread-head .status.offline .dot{background:var(--ink-3)}.thread-head .status.unknown{color:var(--amber)}.thread-head .status.unknown .dot{background:var(--amber)}.thread-head .status.new{color:var(--amber)}.thread-head .status.new .dot{background:var(--amber)}.thread-head .status.typing{color:var(--accent);font-style:italic}.thread-head .status.typing .typing-dots i{background:var(--accent)}.thread-head .thread-timer{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);border-radius:999px;align-items:center;gap:7px;margin-left:2px;padding:3px 8px 3px 7px;font-size:11px;transition:background .2s,border-color .2s;display:inline-flex}.thread-head .thread-timer .eyebrow{margin:0;font-size:9px}.thread-head .thread-timer .timer{font-family:var(--mono);margin:0;padding:0;font-size:11px;font-weight:600}.thread-head .thread-timer.urgent .timer{color:var(--amber)}.thread-head .thread-timer.dead{background:var(--amber-soft);color:var(--amber);border-color:#e6d5b4}.thread-head .thread-timer.dead .timer{color:var(--amber)}.thread-head .thread-timer.success{background:var(--accent-soft);border-color:var(--accent-border)}.thread-head .thread-timer.success .timer-status.ok{color:var(--accent);font-weight:600}.thread-head .thread-timer.pending{opacity:.85}.thread-head .thread-timer .timer-status{font-family:var(--mono);font-size:11px;font-weight:600}.thread-head .thread-timer .extend-cta{margin-left:2px}.thread-head .ch{font-family:var(--mono);color:var(--ink-3);word-break:break-all;font-size:11px}.messages{background:var(--thread-bg);flex-direction:column;flex:1;gap:12px;padding:20px 18px;display:flex;overflow-y:auto}.msg{align-items:flex-end;gap:8px;max-width:min(560px,82%);animation:.2s ease-out msg-in;display:flex}@keyframes msg-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.msg.in{align-self:flex-start}.msg.out{flex-direction:row-reverse;align-self:flex-end}.msg-body{flex-direction:column;gap:3px;min-width:0;display:flex}.msg.out .msg-body{align-items:flex-end}.bubble{background:var(--surface);border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;border-radius:16px;padding:10px 14px;transition:transform .12s;box-shadow:0 1px 3px #15181a0f}.msg.in .bubble{border-bottom-left-radius:4px}.msg.out .bubble{background:var(--accent);border-color:var(--accent);color:var(--on-accent);border-bottom-right-radius:4px;box-shadow:0 2px 8px #0b6b6233}.msg.pending .bubble{opacity:.6}.msg.pending .stamp{color:var(--amber)}.msg.typing-msg{align-self:flex-start}.bubble.typing-bubble{justify-content:center;align-items:center;min-width:52px;padding:12px 16px;display:flex}.typing-bubble .typing-dots i{background:var(--ink-3);width:6px;height:6px}.msg .stamp{font-family:var(--mono);color:var(--ink-3);font-size:10px}.debug-meta{font-family:var(--mono);color:var(--ink-3);opacity:.85;padding:0 4px;font-size:9px}.ticks{letter-spacing:-3px;flex:none;margin-right:3px;transition:color .25s,transform .2s;display:inline-block}.ticks.tick-animate.read{animation:.35s ease-out tick-read}@keyframes tick-read{0%{color:var(--ink-3);transform:scale(.85)}to{color:var(--tick);transform:scale(1)}}.ticks.sent{color:var(--ink-3)}.ticks.read{color:var(--tick);font-weight:600}.contact .sub .ticks.read,.msg .ticks.read{color:var(--tick)}.ticks.pending{letter-spacing:0;color:var(--amber)}.divider{font-family:var(--mono);color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;align-self:center;font-size:10px}.earlier{border:1px solid var(--line-2);background:var(--surface);border-radius:var(--radius);font-family:var(--mono);color:var(--ink-2);align-self:center;padding:5px 12px;font-size:11px}.earlier:hover{border-color:var(--accent);color:var(--accent)}.empty{text-align:center;color:var(--ink-3);max-width:340px;margin:auto}.empty .big{color:var(--ink-2);margin-bottom:4px;font-size:15px;font-weight:600}.empty-state{text-align:center;max-width:300px;margin:auto;padding:24px 16px;animation:.3s ease-out msg-in}.empty-icon{background:var(--surface);border:1px solid var(--line);width:56px;height:56px;box-shadow:var(--shadow-sm);border-radius:16px;place-items:center;margin:0 auto 14px;font-size:26px;display:grid}.empty-title{color:var(--ink);margin-bottom:6px;font-size:16px;font-weight:600}.empty-hint{color:var(--ink-3);font-size:13px;line-height:1.45}.composer{background:var(--surface);border-top:1px solid var(--line);flex:none;gap:10px;padding:12px 18px;display:flex}.composer input{background:var(--surface-2);border:1px solid var(--line-2);border-radius:999px;flex:1;padding:11px 16px;font-size:13.5px;transition:background .12s,border-color .12s,box-shadow .12s}.composer.has-text input{border-color:var(--accent-border);background:var(--surface-focus)}.composer input:focus{background:var(--surface-focus);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.composer input:disabled{background:var(--surface-2);color:var(--ink-3)}.btn-send{border-radius:999px;min-width:72px;padding:10px 18px;transition:transform .12s,opacity .12s,box-shadow .12s}.composer.has-text .btn-send:not(:disabled){transform:scale(1.02);box-shadow:0 2px 10px #0b6b6240}.btn-send:disabled{opacity:.45}.notice{background:var(--notice-bg);border-top:1px solid var(--notice-border);color:var(--notice-text);padding:8px 18px;font-size:12px}.notice code{font-family:var(--mono);font-size:11.5px}.typing-bar{background:var(--surface-2);border-top:1px solid var(--line);color:var(--ink-2);flex:none;align-items:center;gap:8px;padding:6px 18px;font-size:12px;display:flex}.timer-bar{background:var(--surface);border-top:1px solid var(--line);color:var(--ink-2);flex:none;align-items:center;gap:10px;padding:7px 18px;font-size:12px;transition:background .2s,border-color .2s;display:flex}.timer-bar .eyebrow{margin:0}.timer-bar.pending{opacity:.85}.timer-bar.success{background:var(--accent-soft);border-top-color:var(--accent-border)}.timer-bar.success .timer-status.ok{color:var(--accent);font-weight:600}.timer-bar .timer-status{font-family:var(--mono);font-size:12px;font-weight:600}.timer-bar.urgent .timer:not(.timer-status){color:var(--amber);font-weight:600}.timer-bar .grow{flex:1}.timer-bar .timer{margin-left:0;padding-left:0;font-size:12px;font-weight:600}.timer-bar.dead .timer,.timer-bar.dead .eyebrow{color:var(--red)}.contact .timer.warn{color:var(--amber)}.contact .timer:not(.warn):not(.dead){color:var(--ink-3)}.typing-bar .dots{gap:3px;display:inline-flex}.typing-dots{align-items:center;gap:3px;display:inline-flex}.typing-dots.inline{margin-right:2px}.typing-bar .dots i,.typing-dots i{background:var(--accent);border-radius:50%;width:4px;height:4px;animation:1.1s ease-in-out infinite blip}.typing-bar .dots i:nth-child(2),.typing-dots i:nth-child(2){animation-delay:.18s}.typing-bar .dots i:nth-child(3),.typing-dots i:nth-child(3){animation-delay:.36s}@keyframes blip{0%,60%,to{opacity:.25}30%{opacity:1}}@media (prefers-reduced-motion:reduce){.typing-bar .dots i,.typing-dots i{opacity:.7;animation:none}.statedot.connecting{animation:none}.spinner{animation-duration:2.4s}.msg,.empty-state,.conn-banner,.timer-progress.urgent .timer-progress-label,.timer-bar.urgent .timer-progress-label,.ticks.tick-animate.read,.badge{animation:none}}.conn-banner{font-family:var(--mono);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 16px;font-size:11px;animation:.2s ease-out banner-in;display:flex}@keyframes banner-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.conn-banner.ok{background:var(--accent-soft);color:var(--accent)}.conn-banner.warn{background:var(--amber-soft);color:var(--amber)}.conn-banner.bad{background:var(--err-bg);color:var(--err-text)}.conn-banner-dot{background:currentColor;border-radius:50%;flex:none;width:7px;height:7px}.conn-banner-text{flex:1}.conn-banner-close{color:inherit;opacity:.7;cursor:pointer;border-radius:var(--radius);background:0 0;border:none;padding:2px 6px;font-size:18px;line-height:1}.conn-banner-close:hover{opacity:1;background:#0000000f}.workspace{flex:1;min-height:0;display:flex;overflow:hidden}.workspace.events-open .thread{min-width:0}.log{background:var(--log-bg);width:min(420px,36vw);min-height:0;color:var(--log-fg);border-left:1px solid var(--line);flex-direction:column;flex:none;animation:.16s ease-out log-in;display:flex;box-shadow:-4px 0 16px #0000000f}@keyframes log-in{0%{opacity:.85;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.log-head{border-bottom:1px solid var(--log-line);background:var(--log-bg);flex:none;justify-content:space-between;align-items:center;gap:12px;height:40px;padding:0 8px 0 14px;display:flex}.log-head .eyebrow{color:var(--log-muted);margin:0}.log-head-actions{align-items:center;gap:4px;display:flex}.log-close-btn{border-radius:var(--radius);width:28px;height:28px;color:var(--log-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:20px;line-height:1;transition:background .12s,color .12s;display:inline-flex}.log-close-btn:hover{background:var(--log-hover);color:var(--log-fg)}.log-body{font-family:var(--mono);flex:1;min-height:0;padding:8px 0;font-size:11px;overflow-y:auto}.log-row{grid-template-columns:56px 1fr;align-items:start;gap:8px;padding:4px 14px;display:grid}.log-main{align-items:flex-start;gap:8px;min-width:0;display:flex}.log-icon{text-align:center;opacity:.85;flex:none;width:18px;font-size:11px}.log-icon.tone-dm{color:var(--log-key)}.log-icon.tone-typing{color:var(--log-key-warn)}.log-icon.tone-read{color:#7eb8ff}.log-icon.tone-timer{color:var(--log-key-warn)}.log-icon.tone-connect{color:var(--log-key)}.log-icon.tone-bad{color:var(--log-key-bad)}.log-row:hover{background:var(--log-hover)}.log-row .t{color:var(--log-time)}.log-row .k{color:var(--log-key)}.log-row.bad .k{color:var(--log-key-bad)}.log-row.warn .k{color:var(--log-key-warn)}.log-row .v{color:var(--log-val);word-break:break-all}.log .icon-btn{border-color:var(--log-btn-border);color:var(--log-btn-fg)}.log .icon-btn:hover{border-color:var(--log-key);color:var(--log-key)}@media (width<=860px){.contacts{width:min(var(--side-w,286px), 42vw)}.workspace.events-open:before{content:"";z-index:4;background:#00000047;position:fixed;inset:46px 0 0}.log{z-index:5;width:min(420px,92vw);position:fixed;inset:46px 0 0 auto;box-shadow:-8px 0 24px #0000002e}.wire .cell.optional{display:none}}
