/* Text chat with the coach (v327). Shared --p-* theme tokens, both themes. */
#screen-menu .menu-secondary .chat-home-entry { grid-column:1 / -1; display:flex; align-items:center; gap:14px; padding:15px 17px; }
.chat-home-entry .card-body { display:flex; flex:1; flex-direction:column; gap:4px; min-width:0; text-align:left; }
.chat-home-entry .vc-entry-arrow { color:var(--p-accent); font-size:20px; }

#screen-chat { background:var(--p-bg); color:var(--p-ink); padding:0; }
#screen-chat.active { display:flex; }
#screen-chat .chat-shell { flex:1; }
.chat-shell { display:grid; grid-template-rows:auto 1fr auto; width:100%; max-width:640px; height:100%; min-height:0; margin-inline:auto; }
.chat-head { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; padding:max(12px, env(safe-area-inset-top)) 16px 12px; border-bottom:1px solid var(--p-line); background:var(--p-bg); }
#screen-chat .back-btn { position:static; margin:0; color:var(--p-ink); border:1px solid var(--p-line); background:var(--p-paper); box-shadow:none; min-height:44px; }
.chat-head-t { min-width:0; }
.chat-head h2 { margin:0; font:700 17px/1.4 var(--p-font); letter-spacing:-.01em; color:var(--p-ink); }
.chat-head p { margin:0; font-size:12px; line-height:1.6; color:var(--p-muted); }
.chat-reset { min-height:44px; padding:0 12px; border-radius:999px; border:1px solid var(--p-line); background:transparent; color:var(--p-ink); font:700 12px/1 var(--p-font); cursor:pointer; }
.chat-reset[hidden] { display:none !important; }

.chat-log { overflow-y:auto; overscroll-behavior:contain; padding:18px 16px 12px; display:flex; flex-direction:column; gap:12px; min-height:0; }
.chat-thread { display:flex; flex-direction:column; gap:12px; }
.chat-intro { display:grid; grid-template-columns:40px 1fr; gap:12px; align-items:start; }
.chat-intro img { width:40px; height:40px; border-radius:50%; background:var(--p-raised); object-fit:cover; }
.chat-bubble { max-width:86%; padding:10px 14px; border-radius:18px; font-size:15px; line-height:1.75; white-space:pre-wrap; overflow-wrap:anywhere; }
.chat-bubble.coach { align-self:flex-start; background:var(--p-paper); border:1px solid var(--p-line); border-top-left-radius:6px; color:var(--p-ink); }
.chat-intro .chat-bubble.coach { max-width:none; }
.chat-bubble.me { align-self:flex-end; background:var(--p-ink); color:var(--p-bg); border-top-right-radius:6px; }
.chat-suggest { display:flex; flex-wrap:wrap; gap:8px; }
.chat-suggest[hidden] { display:none !important; }
.chat-suggest button { min-height:44px; padding:0 14px; border-radius:999px; border:1px solid var(--p-line); background:var(--p-paper); color:var(--p-ink); font-size:14px; cursor:pointer; text-align:left; }
.chat-notice { margin:0; padding:12px 14px; border-radius:12px; border:1px solid var(--p-line); background:var(--p-paper); color:var(--p-muted); font-size:12px; line-height:1.7; }
.chat-notice > p, .chat-details p { margin:0; }
.chat-details { margin-top:6px; }
.chat-details summary { min-height:44px; display:list-item; align-content:center; color:var(--p-ink); cursor:pointer; font-weight:600; }
.chat-details summary:focus-visible { outline:2px solid var(--p-accent); outline-offset:3px; border-radius:4px; }
.chat-details[open] p { padding:4px 0 6px; }
.chat-typing { align-self:flex-start; display:inline-flex; align-items:center; gap:8px; padding:10px 14px; border-radius:18px; border:1px solid var(--p-line); background:var(--p-paper); color:var(--p-muted); font-size:13px; }
.chat-typing[hidden] { display:none !important; }
.chat-dots { display:inline-flex; gap:4px; }
.chat-dots i { width:6px; height:6px; border-radius:50%; background:var(--p-muted); animation:chat-dot 1.2s infinite ease-in-out; }
.chat-dots i:nth-child(2) { animation-delay:.15s; } .chat-dots i:nth-child(3) { animation-delay:.3s; }
@keyframes chat-dot { 0%, 80%, 100% { opacity:.3; } 40% { opacity:1; } }
.chat-error { margin:0; padding:10px 14px; border-radius:12px; border:1px solid var(--p-accent); background:var(--p-paper); color:var(--p-ink); font-size:13px; line-height:1.7; }
.chat-error[hidden], .chat-preview-note[hidden] { display:none !important; }
.chat-preview-note { margin:0 16px 8px; padding:10px 14px; border-radius:12px; border:1px solid var(--p-line); background:var(--p-paper); color:var(--p-muted); font-size:12px; line-height:1.7; }

.chat-composer { display:grid; grid-template-columns:1fr 48px; gap:6px 8px; align-items:end; padding:10px 12px max(10px, env(safe-area-inset-bottom)); border-top:1px solid var(--p-line); background:var(--p-paper); }
.chat-composer textarea { resize:none; min-height:48px; max-height:132px; padding:12px 14px; border-radius:24px; border:1px solid var(--p-line); background:var(--p-bg); color:var(--p-ink); font:16px/1.5 var(--p-font); }
.chat-composer textarea:focus-visible { outline:2px solid var(--p-ink); outline-offset:2px; }
.chat-send { width:48px; height:48px; border-radius:50%; border:0; background:var(--p-ink); color:var(--p-bg); display:grid; place-items:center; cursor:pointer; }
.chat-send:disabled { opacity:.35; cursor:default; }
.chat-send svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.chat-meta { grid-column:1 / -1; display:flex; justify-content:space-between; gap:12px; color:var(--p-muted); font-size:12px; line-height:1.5; padding-inline:4px; }
.chat-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
@media (prefers-reduced-motion: reduce) { .chat-dots i { animation:none; opacity:.7; } }
.chat-bubble.sys { align-self:center; max-width:100%; background:transparent; border:0; color:var(--p-muted); font-size:12px; text-align:center; padding:2px 8px; }
@media (max-height: 460px) { .chat-head p { display:none; } }
