:root{--ink:#1c1a17;--ink-2:#2b2824;--clay:#ad5135;--bone:#f1ece3;--paper:#faf8f4;--line:#d9d3c8;--muted:#6b6f69;--text:#1c1a17;--radius:14px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font:16px/1.5 var(--font);color:var(--text);background:var(--paper);-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}a{color:var(--ink);-webkit-text-decoration-color:var(--clay);text-decoration-color:var(--clay);text-underline-offset:2px}.app{flex-direction:column;max-width:820px;height:100%;margin:0 auto;display:flex}.top{background:var(--ink);color:var(--bone);z-index:2;padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top));justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;display:flex}.mark{background:var(--clay);color:#fff;letter-spacing:.02em;border-radius:8px;place-items:center;width:30px;height:30px;font-weight:800;display:inline-grid}.word{letter-spacing:.01em;font-size:18px;font-weight:700}.dot{background:#8d8a84;border-radius:50%;width:8px;height:8px}.dot.ready{background:#9fd3a6}.dot.streaming,.dot.submitted{background:#e6b450}.dot.error{background:#d9534f}.top-actions{align-items:center;gap:8px;display:flex}.who{color:#bdb8b0;font-size:12px}.menu-btn{width:38px;height:38px;color:var(--bone);background:0 0;border:1px solid #f1ece34d;border-radius:10px;place-items:center;font-size:18px;display:grid}.sheet-backdrop{z-index:20;background:#1c1a1773;position:fixed;inset:0}.sheet{background:var(--paper);z-index:21;flex-direction:column;width:min(440px,100%);display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 30px #0000002e}.sheet-head{padding:14px 16px;padding-top:calc(14px + env(safe-area-inset-top));background:var(--ink);color:var(--bone);justify-content:space-between;align-items:center;display:flex}.sheet-head h2{margin:0;font-size:18px}.sheet-body{padding:8px 16px calc(24px + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.sec{border-bottom:1px solid var(--line);padding:14px 0}.sec h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:13px}.sec label{color:var(--muted);margin:8px 0 4px;font-size:13px;display:block}.sec input,.sec select{width:100%;font:inherit;border:1px solid var(--line);color:var(--text);background:#fff;border-radius:10px;padding:10px 12px}.sec input:focus,.sec select:focus{border-color:var(--ink);outline:none}.sec .row{align-items:center;gap:8px;margin-top:10px;display:flex}.btn{font:inherit;border:1px solid var(--ink);background:var(--ink);color:var(--bone);cursor:pointer;border-radius:10px;padding:9px 14px}.btn.quiet{color:var(--ink);background:0 0}.btn.danger{border-color:var(--clay);color:var(--clay);background:0 0}.btn:disabled{opacity:.5;cursor:default}.list{margin:0;padding:0;list-style:none}.list li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:9px 0;font-size:14px;display:flex}.list li:first-child{border-top:none}.list .meta{color:var(--muted);font-size:12.5px}.pill{background:var(--bone);color:var(--muted);white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:11.5px}.pill.on{color:#1f6a35;background:#e4f0e6}.voice{align-items:center;gap:10px;padding:8px 0;display:flex}.voice input{width:auto}.voice .play{border:1px solid var(--line);background:#fff;border-radius:8px;padding:4px 10px;font-size:13px}.saved{color:#1f6a35;margin-left:8px;font-size:13px}.ghost{color:var(--bone);background:0 0;border:1px solid #f1ece359;border-radius:8px;padding:5px 10px;font-size:13px}.ghost:disabled{opacity:.5;cursor:default}.thread{flex-direction:column;flex:1;gap:14px;padding:16px 14px 8px;display:flex;overflow-y:auto}.empty{margin:auto 0;padding:24px 6px}.empty h1{color:var(--ink);margin:0 0 6px;font-size:24px}.empty p{color:var(--muted);margin:0 0 18px}.starters{gap:8px;display:grid}.starters button{text-align:left;border:1px solid var(--line);color:var(--text);background:#fff;border-radius:12px;padding:12px 14px;line-height:1.35}.starters button:hover{border-color:var(--ink)}.msg{display:flex}.msg.user{justify-content:flex-end}.bubble{border-radius:var(--radius);max-width:92%;padding:10px 14px}.msg.user .bubble{background:var(--ink);color:var(--bone);white-space:pre-wrap;border-bottom-right-radius:4px}.msg.user .bubble a{color:var(--bone);text-decoration-color:#f1ece399}.msg.assistant .bubble{border:1px solid var(--line);border-left:3px solid var(--ink);background:#fff;border-bottom-left-radius:4px;padding-bottom:28px;position:relative}.speak{color:var(--muted);background:0 0;border:none;border-radius:6px;padding:2px 6px;font-size:14px;position:absolute;bottom:6px;right:8px}.speak:hover,.speak.playing{color:var(--clay)}.bubble.thinking{color:var(--muted);letter-spacing:.2em}.msg.assistant .bubble.error-bubble{border-left-color:var(--clay);color:var(--clay);padding-bottom:10px}.attachments{flex-wrap:wrap;gap:6px;margin:0 0 6px;display:flex}.attachments img{border-radius:8px;max-width:220px;max-height:220px;display:block}.attachments .chip{background:#ffffff1f;border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;display:inline-flex}.msg.assistant .attachments .chip{background:var(--bone)}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 10px}.md h1,.md h2,.md h3{margin:14px 0 6px;line-height:1.25}.md h1{font-size:20px}.md h2{font-size:17px}.md h3{font-size:16px}.md ul,.md ol{margin:0 0 10px 20px;padding:0}.md li{margin:2px 0}.md table{border-collapse:collapse;width:100%;margin:6px 0 12px;font-size:14px;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 8px}.md th{background:var(--bone)}.md code{background:var(--bone);border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13.5px}.md pre{background:var(--ink);color:var(--bone);border-radius:10px;padding:12px;overflow-x:auto}.md pre code{color:inherit;background:0 0;padding:0}.md blockquote{border-left:3px solid var(--clay);color:var(--muted);margin:0 0 10px;padding:2px 12px}.tool{color:var(--muted);padding:4px 0;font-size:13px}.tool.error{color:var(--clay)}.sources{margin:2px 0 8px}.sources summary{color:var(--muted);cursor:pointer;font-size:13px}.sources ol{margin:6px 0 0 18px;padding:0;font-size:13px}.sources li{margin:2px 0}.file{border:1px solid var(--line);background:var(--bone);color:var(--ink);border-radius:10px;align-items:center;gap:10px;margin:6px 0;padding:10px 14px;font-weight:600;text-decoration:none;display:inline-flex}.file-icon{background:var(--clay);color:#fff;letter-spacing:.04em;border-radius:4px;place-items:center;padding:2px 6px;font-size:11px;font-weight:800;display:inline-grid}.file-icon.xlsx{background:var(--ink-2)}.gen-image{margin:6px 0;display:block}.gen-image img{border:1px solid var(--line);border-radius:10px;max-width:100%;display:block}.approval{border:1px solid var(--clay);background:#fff7f3;border-radius:10px;margin:8px 0;padding:10px 12px;font-size:14px}.approval .row{gap:8px;margin-top:8px;display:flex}.approval button{border:1px solid var(--ink);background:var(--ink);color:var(--bone);border-radius:8px;padding:6px 12px}.approval button.no{color:var(--ink);background:0 0}.approval pre{white-space:pre-wrap;font:13px/1.4 var(--font);color:var(--text);margin:6px 0 0}.composer{padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--paper);align-items:flex-end;gap:8px;display:flex;position:sticky;bottom:0}.composer textarea{resize:none;font:inherit;border:1px solid var(--line);color:var(--text);background:#fff;border-radius:22px;outline:none;flex:1;max-height:180px;padding:11px 14px;line-height:1.4}.composer textarea:focus{border-color:var(--ink)}.icon-btn{border:1px solid var(--line);width:42px;height:42px;color:var(--ink);background:#fff;border-radius:50%;place-items:center;font-size:18px;display:grid}.icon-btn.active{background:var(--clay);color:#fff;border-color:var(--clay)}.icon-btn:disabled{opacity:.5;cursor:default}.send{background:var(--ink);width:42px;height:42px;color:var(--bone);border:none;border-radius:50%;font-size:18px;font-weight:700}.send:disabled{cursor:default;background:#b8bdb8}.send.stop{background:var(--clay);font-size:14px}.pending{flex-wrap:wrap;gap:6px;padding:6px 14px 0;display:flex}.pending .chip{background:var(--bone);border:1px solid var(--line);border-radius:8px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;display:inline-flex}.pending .chip button{color:var(--muted);background:0 0;border:none;padding:0 2px;font-size:14px}.login{max-width:380px;margin:auto;padding:24px}.login h1{color:var(--ink);margin:0 0 6px;font-size:24px}.login p{color:var(--muted);margin:0 0 16px}.login input{width:100%;font:inherit;border:1px solid var(--line);background:#fff;border-radius:10px;margin:0 0 10px;padding:12px 14px}.login input:focus{border-color:var(--ink);outline:none}.login button{background:var(--ink);width:100%;color:var(--bone);border:none;border-radius:10px;padding:12px;font-weight:600}.login .err{color:var(--clay);margin:6px 0 0;font-size:14px}
