:root{color-scheme:light dark;--bg:#f6f7f9;--fg:#18202a;--muted:#5b6673;--card:#fff;--line:#d9dee5;--accent:#1f6feb;--danger:#b42318;--ok:#137333;--me:#1f6feb;--meText:#fff;--him:#fff}
@media (prefers-color-scheme:dark){:root{--bg:#11161d;--fg:#e7ecf2;--muted:#9aa6b2;--card:#19212b;--line:#2b3542;--accent:#5b9dff;--danger:#ff7b72;--ok:#57d38c;--me:#2f6fd6;--meText:#fff;--him:#19212b}}
*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
main{max-width:680px;margin:0 auto;padding:max(12px,env(safe-area-inset-top)) 14px calc(96px + env(safe-area-inset-bottom));min-height:100%}
header{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}h1{font-size:1.3rem;margin:.2rem 0;flex:1 1 auto}h2{font-size:1.1rem;margin:0 0 .5rem}
nav{display:flex;gap:6px;width:100%}.navb{flex:1;margin:0;min-height:40px;font-size:.92rem;background:var(--card);color:var(--fg);border:1px solid var(--line)}
.card,footer{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin:12px 0}
.pill{display:inline-block;margin:.2rem 0;padding:.2rem .6rem;border-radius:999px;border:1px solid var(--line);color:var(--muted);font-size:.8rem}.pill.auth{color:var(--ok);border-color:var(--ok)}
.banner{background:#fff4e5;color:#7a4a00;border-radius:10px;padding:8px 12px;margin:8px 0;font-size:.92rem}@media (prefers-color-scheme:dark){.banner{background:#3a2a10;color:#ffd89a}}
label{display:block;font-weight:600;margin:.6rem 0 .3rem}.sr{position:absolute;left:-9999px}
input{width:100%;font:inherit;font-size:1.2rem;letter-spacing:.12em;padding:.6rem;border:1px solid var(--line);border-radius:10px;background:transparent;color:inherit;text-transform:uppercase}
button{font:inherit;font-weight:600;margin-top:.8rem;width:100%;min-height:46px;border-radius:12px;border:0;background:var(--accent);color:#fff}
button.quiet{background:transparent;color:var(--fg);border:1px solid var(--line)}button.danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}button.small{min-height:34px;width:auto;padding:0 12px;margin:0;font-size:.85rem}
button:disabled{opacity:.5}
ol{padding-left:1.2rem}li{margin:.6rem 0}li .meta{display:block;color:var(--muted);font-size:.85rem}
.fp code{font-size:1.05rem;letter-spacing:.06em}.small{color:var(--muted);font-size:.85rem}#message{min-height:1.2em;color:var(--muted);font-size:.9rem;margin:.3rem 0}
#thread{list-style:none;padding:0;margin:8px 0}#thread li{display:flex;flex-direction:column;margin:10px 0}
.bubble{max-width:86%;padding:10px 13px;border-radius:18px;white-space:pre-wrap;word-wrap:break-word}
.me{align-items:flex-end}.me .bubble{background:var(--me);color:var(--meText);border-bottom-right-radius:6px}
.him{align-items:flex-start}.him .bubble{background:var(--him);border:1px solid var(--line);border-bottom-left-radius:6px}
.time{font-size:.72rem;color:var(--muted);margin:2px 6px}.redacted .bubble{font-style:italic;opacity:.7}
.chip{max-width:92%;margin:6px 0 0;padding:9px 11px;border-radius:12px;border:1px solid var(--line);background:var(--card);font-size:.92rem}
.chip .t{display:block}.chip .k{display:block;font-size:.76rem;color:var(--muted);margin-top:2px}.chip.ok{border-color:var(--ok)}.chip.warn{border-color:#c98a00}
.acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.acts button{width:auto;min-height:34px;margin:0;padding:0 12px;font-size:.85rem}
.acts button.quiet{border:1px solid var(--line)}
#composer{position:fixed;left:0;right:0;bottom:0;display:flex;gap:8px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line);max-width:680px;margin:0 auto}
#say{flex:1;font:inherit;font-size:16px;resize:none;max-height:140px;padding:10px 12px;border:1px solid var(--line);border-radius:18px;background:var(--card);color:inherit}
#sendBtn{width:auto;margin:0;padding:0 18px;min-height:44px;border-radius:22px}
.gotyou{position:fixed;left:14px;right:14px;top:calc(env(safe-area-inset-top) + 14px);max-width:640px;margin:0 auto;background:var(--ok);color:#fff;border-radius:16px;padding:16px 18px;font-size:1.05rem;box-shadow:0 8px 30px rgba(0,0,0,.25);z-index:5}
.gotyou strong{display:block;font-size:1.5rem}
.sheet{position:fixed;inset:0;background:var(--bg);overflow:auto;padding:max(12px,env(safe-area-inset-top)) 14px 40px;z-index:4}
.sheethead{display:flex;align-items:center;justify-content:space-between;max-width:680px;margin:0 auto 8px}.sheet>div{max-width:680px;margin:0 auto}
.group h3{font-size:.95rem;margin:16px 0 4px;color:var(--muted)}.item{padding:10px 0;border-bottom:1px solid var(--line)}.badge{display:inline-block;font-size:.72rem;padding:1px 7px;border-radius:999px;border:1px solid var(--line);color:var(--muted);margin-right:4px}
.toggle{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.toggle input{width:24px;height:24px;margin-top:3px;flex:none}
.toggle b{display:block}.danger-zone{margin-top:28px;padding:14px;border:1px solid var(--danger);border-radius:12px}.danger-zone p{margin:.2rem 0 .6rem}
textarea.edit{width:100%;font:inherit;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:inherit;min-height:70px}
#micBtn{width:44px;flex:none;margin:0;padding:0;min-height:44px;border-radius:22px;font-size:1.2rem;background:var(--card);border:1px solid var(--line);color:var(--fg)}
#micBtn.on{background:var(--danger);color:#fff;border-color:var(--danger)}
.voicebar,.speakbar{position:fixed;left:0;right:0;bottom:calc(66px + env(safe-area-inset-bottom));max-width:680px;margin:0 auto;display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--card);border-top:1px solid var(--line);font-size:.9rem;z-index:3}
.voicebar .vp{flex:1;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.speakbar span{flex:1;color:var(--muted)}
.navb.hush[aria-pressed="true"]{background:var(--fg);color:var(--bg)}
.tag{font-size:.72rem;color:var(--muted)}