:root{--bg:#EEF1F4;--ink:#14202B;--muted:#5C6B7A;--line:#D3DAE1;--accent:#0B7A75;--card:#FFFFFF;--err:#B3261E}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--bg);color:var(--ink);font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.app{max-width:760px;height:100%;margin:0 auto;display:flex;flex-direction:column;padding:0 16px}
header{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line)}
h1{margin:0;font:700 1.35rem "Bricolage Grotesque",system-ui,sans-serif;letter-spacing:-.01em}
#clear{background:none;border:1px solid var(--line);color:var(--muted);padding:6px 12px;border-radius:8px;cursor:pointer;font:inherit;font-size:.9rem}
#clear:hover{border-color:var(--ink);color:var(--ink)}
main{flex:1;overflow-y:auto;padding:20px 0}
.empty{margin-top:12vh;color:var(--muted)}
.empty .big{font:500 2rem/1.2 "Bricolage Grotesque",system-ui,sans-serif;color:var(--ink);margin:0 0 8px}
.msg{margin:0 0 20px;max-width:100%}
.msg.user{display:flex;justify-content:flex-end}
.msg.user .body{background:var(--ink);color:#fff;padding:10px 14px;border-radius:14px 14px 4px 14px;max-width:85%;white-space:pre-wrap;overflow-wrap:anywhere}
.msg.ai .body{border-left:3px solid var(--accent);padding:2px 0 2px 14px;overflow-wrap:anywhere}
.msg.ai.error .body{border-left-color:var(--err);color:var(--err)}
.msg.ai.typing .body{color:var(--muted)}
.body pre{background:var(--ink);color:#E8EEF3;padding:12px 14px;border-radius:8px;overflow-x:auto;font-size:.88rem;line-height:1.5}
.body code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9em}
.body :not(pre)>code{background:#DDE4EA;padding:1px 5px;border-radius:4px}
.body p{margin:0 0 .7em}.body p:last-child{margin:0}
form{display:flex;gap:10px;padding:12px 0 calc(16px + env(safe-area-inset-bottom,0px));align-items:flex-end}
textarea{flex:1;resize:none;max-height:180px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);font:inherit}
textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#send{background:var(--accent);color:#fff;border:0;border-radius:12px;padding:12px 20px;font:inherit;font-weight:600;cursor:pointer}
#send:disabled{opacity:.5;cursor:not-allowed}
@media (prefers-reduced-motion:no-preference){main{scroll-behavior:smooth}}
