:root{--bg:#f6f7f9;--panel:#fff;--text:#1c2430;--muted:#6b7684;--line:#e3e7ec;--accent:#1f6feb;--me:#e8f0fe;--code:#f1f3f5}@media (prefers-color-scheme:dark){:root{--bg:#14171c;--panel:#1c2027;--text:#e6e9ee;--muted:#9aa4b1;--line:#2c323b;--accent:#4c8dff;--me:#22324d;--code:#262b33}}*{box-sizing:border-box}body,html{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:Sarabun,Leelawadee UI,Segoe UI,system-ui,sans-serif;font-size:15px;line-height:1.6}.app{flex-direction:column;height:100vh;max-width:900px;margin:0 auto}.app,header{display:flex}header{align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}header h1{font-size:17px;margin:0}header button{background:none;border:1px solid var(--line);color:var(--text);border-radius:6px;padding:4px 10px;cursor:pointer}header .actions{display:flex;gap:8px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login{width:100%;max-width:360px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:28px 24px;display:flex;flex-direction:column;gap:14px}.login h1{margin:0;font-size:22px}.login .sub{margin:-8px 0 4px;color:var(--muted);font-size:13.5px}.login label{display:flex;flex-direction:column;gap:4px;font-size:13.5px}.login input{padding:9px 11px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--text);font:inherit}.chat{flex:1 1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px}.empty{color:var(--muted);text-align:center;margin-top:18vh}.msg{padding:10px 14px;border-radius:10px;max-width:100%;overflow-wrap:anywhere}.msg.user{background:var(--me);align-self:flex-end;max-width:85%;white-space:pre-wrap}.msg.bot{background:var(--panel);border:1px solid var(--line)}.msg img{max-width:220px;max-height:160px;border-radius:6px;display:block}.msg img,.tools{margin-bottom:6px}.tools{font-size:12.5px;color:var(--muted)}.tools summary{cursor:pointer}.tools ul{margin:4px 0 0;padding-left:18px;font-family:Consolas,monospace}.meta{font-size:12px;color:var(--muted);margin-top:6px}.md h3,.md h4{margin:10px 0 4px;font-size:15px}.md p{margin:6px 0}.md p.ref{font-size:12px;color:var(--muted);border-top:1px dashed var(--line);padding-top:6px;margin-top:10px}.md ol,.md ul{margin:4px 0;padding-left:22px}.md code{padding:1px 5px;border-radius:4px;font-family:Consolas,monospace;font-size:13px}.md code,.md pre{background:var(--code)}.md pre{padding:10px;border-radius:6px;overflow-x:auto}.md pre code{padding:0}.err{color:#d1242f}.composer{border-top:1px solid var(--line);padding:10px 16px 14px;background:var(--bg)}.thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.thumb{position:relative}.thumb img{height:64px;border-radius:6px;border:1px solid var(--line)}.thumb button{position:absolute;top:-6px;right:-6px;border:none;border-radius:50%;width:20px;height:20px;background:#444;color:#fff;cursor:pointer;font-size:12px;line-height:20px;padding:0}.row{display:flex;gap:8px;align-items:flex-end}textarea{flex:1 1;resize:none;min-height:44px;max-height:180px;padding:10px 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--text);font:inherit}.btn{border:none;border-radius:8px;padding:10px 16px;cursor:pointer;font:inherit}.btn.primary{background:var(--accent);color:#fff}.btn.ghost{background:var(--panel);color:var(--text);border:1px solid var(--line)}.btn:disabled{opacity:.5;cursor:default}.hint{font-size:12px;color:var(--muted);margin-top:6px}.dots:after{content:"…";animation:blink 1s infinite}@keyframes blink{50%{opacity:.2}}