.chat-page{min-height:100vh;display:flex;flex-direction:column;background:var(--paper)}
.chat-page .nav{background:var(--glass)}
.prog{flex:1;max-width:420px;height:3px;background:var(--line);overflow:hidden;margin:0 16px}
.prog i{display:block;height:100%;width:0;background:var(--acc);transition:width .4s ease}
.chat-wrap{flex:1;width:100%;max-width:860px;margin:0 auto;padding:28px 16px 160px;display:flex;flex-direction:column}
.chat-intro{margin:0 0 22px}
.chat-intro h1{font-size:clamp(1.6rem,3.4vw,2.3rem);margin:0 0 6px}
.chat-intro p{margin:0;color:var(--mut);font-size:.92rem}
.log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.msg{max-width:86%;padding:12px 16px;border-radius:12px;line-height:1.8;animation:pop .25s ease;white-space:pre-line;font-size:.97rem}
@keyframes pop{from{opacity:0;transform:translateY(6px)}}
.bot{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-start-start-radius:3px}
.me{align-self:flex-end;background:var(--ink);color:var(--on-ink);border-start-end-radius:3px}
.err{align-self:flex-start;background:var(--err-l);border:1px solid var(--err-b);color:var(--err)}
.typing{align-self:flex-start;color:var(--mut);font-size:.9rem}
.typing span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--acc);margin:0 2px;animation:b 1s infinite}
.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}
@keyframes b{50%{transform:translateY(-4px);opacity:.4}}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0}
.chip{min-height:42px;padding:0 16px;border-radius:4px;border:1px solid var(--line2);background:var(--surface);color:var(--ink);font:inherit;font-size:.92rem;cursor:pointer;transition:border-color .2s,background .2s}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed=true]{background:var(--acc-l);border-color:var(--acc)}
.chip.done{background:var(--acc);color:#1a1206;font-weight:600;border-color:var(--acc)}
.composer{position:fixed;inset-inline:0;bottom:0;display:flex;gap:8px;align-items:center;padding:12px max(16px,calc((100vw - 860px)/2 + 16px));background:var(--glass);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
.composer input{flex:1;min-width:0;min-height:50px;border-radius:4px;border:1px solid var(--line2);background:var(--surface);color:var(--ink);padding:0 16px;font:inherit}
.composer input:focus{outline:2px solid var(--acc);outline-offset:1px;border-color:var(--acc)}
.mic{width:50px;height:50px;border-radius:50%;border:1px solid var(--ink);background:var(--surface);color:var(--ink);cursor:pointer;flex:none;display:grid;place-items:center}
.mic svg{width:22px;height:22px}
.mic[aria-pressed=true]{background:#c0392b;border-color:#c0392b;color:#fff;box-shadow:0 0 0 6px rgba(192,57,43,.2);animation:rec 1.2s infinite}
@keyframes rec{50%{box-shadow:0 0 0 12px rgba(192,57,43,0)}}
.note{color:var(--mut);font-size:.8rem;text-align:center;margin:8px 0 0}
.contact{display:grid;gap:10px;margin:16px 0 0;padding:18px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.contact label{display:grid;gap:6px;color:var(--mut);font-size:.85rem}
.contact input:not([type=checkbox]){min-height:44px;border-radius:4px;border:1px solid var(--line2);background:var(--surface);color:var(--ink);padding:0 12px;font:inherit}
.contact .consent{display:flex;gap:8px;align-items:flex-start;color:var(--ink2)}
.contact .row{display:flex;gap:8px;flex-wrap:wrap}
.summary{align-self:stretch;max-width:100%;background:var(--surface);border:1px solid var(--acc)}
.summary table{width:100%;border-collapse:collapse;font-size:.9rem;margin:8px 0}
.summary td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.summary td:first-child{color:var(--mut);width:45%}
.summary .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
