:root{--bg:#0f0f10;--card:#18181b;--line:#2a2a2e;--text:#f2f2f3;--muted:#9a9aa2;--accent:#3ddc84;--me:#25352b}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;-webkit-text-size-adjust:100%}
main{max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}
.pad{padding:20px}.center{text-align:center}.muted{color:var(--muted)}.small{font-size:13px}
h1{font-size:28px;line-height:1.2;margin:8px 0 12px}h2{font-size:22px;line-height:1.25;margin:0 0 14px}
.screen{padding:28px 20px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px;flex:1}
.brand{display:flex;align-items:center;gap:10px;font-weight:600}
.dot{width:26px;height:26px;border-radius:9px;background:var(--accent);position:relative}
.dot:before,.dot:after{content:"";position:absolute;top:9px;width:5px;height:7px;border-radius:3px;background:#0f0f10}.dot:before{left:7px}.dot:after{right:7px}
button,.btn{appearance:none;border:0;border-radius:14px;padding:15px 18px;font-family:inherit;font-size:16px;line-height:1.2;font-weight:600;background:var(--accent);color:#08140d;cursor:pointer;text-align:center;text-decoration:none;display:block;width:100%}
button.ghost,.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
button.link{background:none;color:var(--muted);padding:6px;font-weight:400;text-decoration:underline;width:auto;margin:0 auto}
button:disabled{opacity:.5}
input,textarea{width:100%;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:14px;padding:14px;font-family:inherit;font-size:16px;line-height:1.4;outline:none}
input:focus,textarea:focus{border-color:var(--accent)}
.opts{display:flex;flex-direction:column;gap:10px}
.opts button{background:var(--card);color:var(--text);border:1px solid var(--line);font-weight:500;text-align:left}
.opts button.on{border-color:var(--accent)}
.progress{height:4px;background:var(--line);border-radius:2px;overflow:hidden}.progress i{display:block;height:100%;background:var(--accent)}
.trust{border-top:1px solid var(--line);padding-top:14px;margin-top:auto;font-size:13px;color:var(--muted)}
.trust a{color:var(--muted)}
.err{color:#ff7a7a;font-size:14px;min-height:1em}
.code{font:700 30px/1 ui-monospace,Menlo,monospace;letter-spacing:6px;text-align:center;background:var(--card);border-radius:14px;padding:18px}
label.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--muted)}label.check input{width:20px;height:20px;margin-top:2px;flex:none}
.top{position:sticky;top:0;background:var(--bg);border-bottom:1px solid var(--line);padding:12px 16px;display:flex;align-items:center;gap:10px;z-index:2}
.top .grow{flex:1;min-width:0}.top select{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:6px}
.top button{width:auto;padding:8px 10px;font-size:13px}
.msgs{flex:1;padding:16px;display:flex;flex-direction:column;gap:10px}
.msg{max-width:88%;padding:11px 14px;border-radius:16px;background:var(--card);white-space:normal;word-wrap:break-word}
.msg.me{align-self:flex-end;background:var(--me)}
.msg p{margin:0 0 8px}.msg p:last-child{margin:0}.msg ol,.msg ul{margin:4px 0 8px;padding-left:22px}
.typing{color:var(--muted);font-size:14px;padding:0 16px 8px}
.composer{position:sticky;bottom:0;background:var(--bg);border-top:1px solid var(--line);padding:10px 12px calc(10px + env(safe-area-inset-bottom));display:flex;gap:8px;align-items:flex-end}
.composer textarea{resize:none;max-height:140px;padding:12px}.composer button{width:auto;padding:13px 16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:10px}
