:root{--bg:#f5f7f9;--surface:#fff;--surface-2:#eaeef2;--ink:#131820;--ink-2:#48525f;--ink-3:#78838f;--line:#d8dee5;--accent:#a85b0c;--accent-ink:#fff;--accent-wash:#f6e9d8;--good:#0f6647;--crit:#a0281c;--bubble-in:#fff;--bubble-out:#f6e9d8;--radius:4px;--shadow:0 1px 2px #1318200f, 0 8px 24px -16px #1318203d}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0c0f14;--surface:#12171f;--surface-2:#1a212b;--ink:#e7ecf3;--ink-2:#a0aab8;--ink-3:#6b7684;--line:#232b36;--accent:#e9a44e;--accent-ink:#14181f;--accent-wash:#2a1f11;--good:#4fc894;--crit:#ee7261;--bubble-in:#1a212b;--bubble-out:#2a1f11;--shadow:0 1px 2px #0006, 0 8px 24px -16px #000000b3}}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior:none;font-family:Archivo,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5}.mono,.ttl,.tick,time,.addr{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace}button{font:inherit;cursor:pointer;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:9px 14px;transition:border-color .15s,background .15s}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}button.primary:disabled{opacity:.5;cursor:not-allowed}button.quiet{color:var(--ink-2);background:0 0;border-color:#0000;padding:6px 8px}button.quiet:hover{color:var(--ink);background:var(--surface-2);border-color:#0000}button.danger{color:var(--crit)}button.danger:hover{border-color:var(--crit)}input,select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;padding:10px 12px}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}#app{height:100%}.boot{height:100%;color:var(--ink-3);place-items:center;display:grid}.onboard{place-items:center;height:100%;padding:24px;display:grid}.onboard-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:min(420px,100%);box-shadow:var(--shadow);padding:32px}.wordmark{font-variation-settings:"wdth" 118;letter-spacing:-.03em;margin:0;font-size:30px;font-weight:700}.tagline{color:var(--ink-2);margin:6px 0 26px}.field-label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;font-family:IBM Plex Mono,monospace;font-size:11px;display:block}.hint{color:var(--ink-3);margin:10px 0 0;font-size:13px}.error{color:var(--crit);min-height:1.2em;margin:12px 0 0;font-size:13.5px}.onboard form{gap:14px;display:grid}.shell{grid-template-columns:300px minmax(0,1fr);height:100%;display:grid}@media (max-width:760px){.shell{grid-template-columns:minmax(0,1fr)}.shell[data-pane=thread] .sidebar,.shell[data-pane=list] .thread{display:none}}.sidebar{border-right:1px solid var(--line);background:var(--surface);grid-template-rows:auto auto minmax(0,1fr) auto;min-height:0;display:grid}.sidebar header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:16px;display:flex}.me{min-width:0}.me .handle{font-weight:650}.me .addr{color:var(--ink-3);font-size:11px}.conn{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;align-items:center;gap:6px;font-family:IBM Plex Mono,monospace;font-size:11px;display:inline-flex}.dot{background:var(--ink-3);border-radius:50%;width:7px;height:7px}.conn[data-state=online] .dot{background:var(--good)}.conn[data-state=connecting] .dot{background:var(--accent)}.conn[data-state=offline] .dot{background:var(--crit)}.new-chat{border-bottom:1px solid var(--line);gap:8px;padding:12px 16px;display:flex}.new-chat input{flex:1}.convs{margin:0;padding:6px;list-style:none;overflow-y:auto}.convs li{margin:0}.conv{text-align:left;background:0 0;border:1px solid #0000;gap:3px;width:100%;padding:11px 12px;display:grid}.conv:hover{background:var(--surface-2);border-color:#0000}.conv[aria-current=true]{background:var(--accent-wash)}.conv .title{font-weight:600}.conv .preview{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.empty{color:var(--ink-3);text-align:center;padding:28px 18px;font-size:14px}.sidebar footer{border-top:1px solid var(--line);gap:8px;padding:12px 16px;display:flex}.thread{background:var(--bg);grid-template-rows:auto minmax(0,1fr) auto;min-height:0;display:grid}.thread>header{border-bottom:1px solid var(--line);background:var(--surface);align-items:center;gap:12px;padding:12px 18px;display:flex}.thread h2{margin:0;font-size:16px;font-weight:650}.thread .sub{color:var(--ink-3);font-family:IBM Plex Mono,monospace;font-size:11px}.spacer{flex:1}.messages{flex-direction:column;gap:8px;padding:20px 18px;display:flex;overflow-y:auto}.msg{gap:3px;max-width:min(560px,78%);display:grid}.msg.out{align-self:flex-end;justify-items:end}.bubble{background:var(--bubble-in);border:1px solid var(--line);overflow-wrap:anywhere;white-space:pre-wrap;border-radius:10px;padding:9px 13px}.msg.out .bubble{background:var(--bubble-out);border-color:#0000}.meta{color:var(--ink-3);align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:10.5px;display:flex}.tick[data-state=read]{color:var(--accent)}.composer{border-top:1px solid var(--line);background:var(--surface);padding:12px 16px;padding-bottom:max(12px, env(safe-area-inset-bottom));flex-wrap:wrap;align-items:center;gap:10px;display:flex}.composer>*{min-width:0}.composer input{flex:12ch}.ttl-dial{flex:0 auto;width:auto;min-width:0;font-family:IBM Plex Mono,monospace;font-size:12.5px}html,body{max-width:100%;overflow-x:hidden}.thread,.messages,.sidebar{min-width:0}.placeholder{text-align:center;place-items:center;padding:40px;display:grid}.placeholder p{color:var(--ink-3);max-width:42ch}.notices{z-index:10;gap:8px;max-width:min(380px,100vw - 32px);display:grid;position:fixed;inset:auto 16px 16px auto}.notice{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow);padding:11px 14px;font-size:14px}.notice[data-kind=error]{border-left-color:var(--crit)}@media (prefers-reduced-motion:no-preference){.notice{animation:.18s ease-out rise}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}}.call{background:color-mix(in srgb, var(--ink) 55%, transparent);z-index:20;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.call-card{background:var(--surface);border:1px solid var(--line);width:min(560px,100%);box-shadow:var(--shadow);text-align:center;border-radius:6px;justify-items:center;gap:14px;padding:24px;display:grid}.call-state{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0;font-family:IBM Plex Mono,monospace;font-size:11px}.call-card h2{margin:0;font-size:22px}.call-media{gap:8px;width:100%;min-height:0;display:grid;position:relative}.call-video{background:var(--surface-2);aspect-ratio:4/3;object-fit:cover;border-radius:4px;width:100%}.call-video.local{aspect-ratio:4/3;border:1px solid var(--line);width:27%;position:absolute;bottom:10px;right:10px}.call-controls{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}button.danger-solid{background:var(--crit);border-color:var(--crit);color:#fff;font-weight:600}.call-note{color:var(--ink-3);margin:0;font-size:12.5px}.new-group-row{border-bottom:1px solid var(--line);padding:0 16px 10px}.group-form{border-bottom:1px solid var(--line);background:var(--surface-2);gap:8px;padding:12px 16px;display:grid}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.bubble .caption{display:block}.bubble img+.caption{margin-top:7px}.attach-image{background:var(--surface-2);border-radius:6px;max-width:100%;max-height:320px;display:block}.attach-file{color:var(--ink);border:1px solid var(--line);background:var(--surface);border-radius:4px;align-items:baseline;gap:10px;padding:9px 12px;text-decoration:none;display:flex}.attach-file:hover{border-color:var(--accent)}.attach-name{overflow-wrap:anywhere;font-weight:550}.attach-size{color:var(--ink-3);white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:11px}
