:root { --bg: #f6f4ef; --ink: #1c1b18; --muted: #6b675e; --card: #ffffff; --line: #d9d4c7; --accent: #1f6f4a; --user: #e8f1ea; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 16px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; }
main { max-width: 720px; margin: 0 auto; padding: 24px 16px 48px; }
h1 { font-size: 28px; margin: 0 0 4px; }
header p { margin: 0 0 20px; color: var(--muted); }
#log { display: flex; flex-direction: column; gap: 10px; min-height: 120px; margin-bottom: 16px; }
.msg { padding: 12px 14px; border-radius: 10px; background: var(--card); border: 1px solid var(--line); white-space: pre-wrap; }
.msg.user { background: var(--user); align-self: flex-end; max-width: 90%; }
.msg.bot { align-self: flex-start; max-width: 95%; }
.msg.bot a { color: var(--accent); }
form { display: flex; gap: 8px; }
input { flex: 1; padding: 12px; border: 1px solid var(--line); border-radius: 8px; font-size: 16px; background: var(--card); }
button { padding: 12px 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); font-size: 16px; cursor: pointer; }
button[type=submit] { background: var(--accent); color: #fff; border-color: var(--accent); }
#mic[aria-pressed=true] { background: #ffe9e6; border-color: #d84a3a; }
details { margin-top: 16px; color: var(--muted); }
pre { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 10px; overflow: auto; font-size: 13px; }
footer p { color: var(--muted); font-size: 13px; margin-top: 24px; }
@media (max-width: 480px) { form { flex-wrap: wrap; } input { width: 100%; flex: none; } }
