.chat-page{color:var(--ink-950);font-family:var(--font-sans);word-break:keep-all;overflow-wrap:break-word;flex-direction:column;display:flex}.chat-page *,.chat-page :before,.chat-page :after{box-sizing:border-box}.chat-remaining{color:var(--ink-500);font-size:var(--meta);font-variant-numeric:tabular-nums;margin:0}.chat-main{padding:var(--space-4) var(--frame-pad) var(--space-5);flex:1}.chat-log{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.chat-row{align-items:flex-end;gap:var(--space-2);display:flex}.chat-row[data-role=user]{justify-content:flex-end}.chat-row[data-role=assistant]{align-items:flex-start}.chat-row .chat-avatar{width:var(--space-8);flex:none}.chat-avatar .character-media__art{aspect-ratio:1;border-radius:var(--radius-pill)}.chat-avatar .character-media__art img{object-fit:cover;object-position:top}.chat-stack{gap:var(--space-1);min-width:0;max-width:82%;display:grid}.chat-name{color:var(--ink-700);font-size:var(--meta);font-weight:600}.chat-line{align-items:flex-end;gap:var(--space-1);display:flex}.chat-bubble{min-width:0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--paper-card);font-size:var(--body);white-space:pre-wrap;margin:0;line-height:1.55}.chat-row[data-role=assistant] .chat-bubble{border-top-left-radius:var(--radius-sm)}.chat-row[data-role=user] .chat-bubble{border-bottom-right-radius:var(--radius-sm);background:var(--cinnabar);max-width:78%;color:var(--ink-inverse)}.chat-time{color:var(--ink-500);font-size:var(--meta);font-variant-numeric:tabular-nums;flex:none}.chat-typing{align-items:center;gap:var(--space-1);height:1lh;display:inline-flex}.chat-typing i{width:var(--space-2);height:var(--space-2);border-radius:var(--radius-pill);background:var(--ink-500);animation:.9s ease-in-out infinite chat-typing}.chat-typing i:nth-child(2){animation-delay:.15s}.chat-typing i:nth-child(3){animation-delay:.3s}@keyframes chat-typing{0%,80%,to{opacity:.4;transform:translateY(0)}40%{transform:translateY(calc(var(--space-1) * -1));opacity:1}}.chat-chips{gap:var(--space-2);margin:var(--space-5) 0 0;padding:0 0 0 calc(var(--space-8) + var(--space-2));flex-wrap:wrap;list-style:none;display:flex}.chat-chips button{min-height:var(--touch-target);padding:var(--space-2) var(--space-4);border:var(--hairline) solid var(--line-strong);border-radius:var(--radius-md);background:var(--paper-1);color:var(--cinnabar-dark);font:inherit;font-size:var(--body-sm);text-align:left;cursor:pointer;transition:transform var(--motion-control) ease;font-weight:600}.chat-chips button:active,.chat-composer button:active{transform:scale(.97)}.chat-dock{z-index:30;padding:var(--space-3) var(--frame-pad) calc(var(--space-3) + env(safe-area-inset-bottom));border-top:var(--hairline) solid var(--line);background:var(--nav-surface);position:sticky;bottom:0}.chat-composer{align-items:flex-end;gap:var(--space-2);display:flex}.chat-composer textarea{min-width:0;min-height:var(--touch-target);max-height:calc(var(--space-10) * 2.5);padding:calc(var(--space-2) + var(--focus-width)) var(--space-4);border:var(--hairline) solid var(--line);border-radius:var(--radius-lg);background:var(--paper-1);color:var(--ink-950);font:inherit;font-size:var(--body);resize:none;field-sizing:content;flex:1;line-height:1.4}.chat-composer textarea::placeholder{color:var(--ink-500)}.chat-composer textarea:focus-visible{border-color:var(--cinnabar);outline:var(--focus-width) solid var(--focus-ring);outline-offset:var(--focus-width)}.chat-composer textarea:disabled{color:var(--ink-500)}.chat-composer button{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-md);background:var(--cinnabar);color:var(--ink-inverse);cursor:pointer;transition:transform var(--motion-control) ease;border:0;flex:none;place-items:center;display:grid}.chat-composer button:disabled{background:var(--paper-2);color:var(--ink-500);cursor:default}.chat-composer svg{width:var(--icon-md);height:var(--icon-md);fill:none;stroke:currentColor;stroke-width:2px}.chat-gate{gap:var(--space-3);display:grid}.chat-gate p{color:var(--ink-700);font-size:var(--body-sm);text-align:center;margin:0}@media (prefers-reduced-motion:reduce){.chat-typing i{animation:none}}
