/* Use the patient brand palette; the darker existing blue keeps white button text legible. */
.patient-avatar-entry,.patient-avatar-dialog{
  --avatar-blue:var(--color-brand-blue,#009ee0);
  --avatar-primary:#007bb0;
  --avatar-primary-hover:#006f9d;
  --avatar-text:var(--color-brand-text,#54595f);
  --avatar-muted:#445b6b;
  --avatar-line:var(--color-brand-line,#d9e5ec);
  --avatar-surface:var(--color-brand-surface,#f2f6f8);
  --avatar-soft:#eaf7fd;
}
.patient-avatar-entry{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:10px;width:min(100%,520px);margin:20px auto}
.patient-avatar-entry .patient-avatar-primary{min-height:56px;padding:14px 22px;border:1px solid var(--avatar-primary);background:var(--avatar-primary);color:#fff;font-size:16px;font-weight:700;box-shadow:0 6px 18px #009ee035;white-space:normal;line-height:1.4}
.patient-avatar-entry .patient-avatar-primary:hover{background:var(--avatar-primary-hover);border-color:var(--avatar-primary-hover);box-shadow:0 8px 22px #009ee045}
.patient-avatar-entry .patient-avatar-primary:focus-visible{outline:3px solid var(--avatar-blue);outline-offset:4px}
.patient-avatar-intro{margin:0;text-align:center;font-size:13px;line-height:1.6;color:var(--avatar-muted)}
.patient-assistant-hub{width:min(100%,740px);padding:22px;border:1px solid var(--avatar-line);border-radius:24px;background:#fff;box-shadow:0 8px 24px #009ee012}
.patient-assistant-hub h2{margin:0;font-size:20px;font-weight:700;color:var(--avatar-text)}
.patient-assistant-hub p{margin:0;font-size:14px;line-height:1.6;color:var(--avatar-muted)}
.patient-assistant-hub label{font-size:13px;color:var(--avatar-muted)}
.patient-assistant-hub select{display:block;width:100%;min-height:48px;margin:6px 0 0;padding:10px 12px;border:1px solid var(--avatar-line);border-radius:12px;background:#fff;color:var(--avatar-text);font:inherit;font-size:16px}
.patient-assistant-hub .patient-avatar-primary:disabled{opacity:.5;cursor:default}
.patient-avatar-mode-hint{margin:0;padding:0 18px 10px;text-align:center;font-size:12px;line-height:1.5;color:var(--avatar-muted);flex-shrink:0}
.patient-avatar-dialog{border:0;padding:0;width:100%;max-width:460px;height:100dvh;max-height:100dvh;background:var(--avatar-surface);color:var(--avatar-text);overflow:hidden;border-radius:20px}
.patient-avatar-dialog::backdrop{background:#0f2330b8;backdrop-filter:blur(5px)}
.patient-avatar-call{display:flex;flex-direction:column;height:100%;font-family:inherit}
.patient-avatar-call header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:18px 20px;font-size:12px;background:#fff}
.patient-avatar-ai{font-weight:700}.patient-avatar-call [data-clock]{font-variant-numeric:tabular-nums}
.patient-avatar-stage{position:relative;flex:1;min-height:230px;background:radial-gradient(ellipse at top,#f3f8fa,#cce8f5);overflow:hidden}
.patient-avatar-stage video{height:100%;width:100%;position:absolute;inset:0;object-fit:contain;opacity:0}
.patient-avatar-wait{position:absolute;inset:0;display:grid;place-items:center}
.patient-avatar-wait img{width:100%;height:100%;object-fit:contain;position:absolute;inset:0}
.patient-avatar-spinner{display:none;position:absolute;top:16px;right:16px;width:30px;height:30px;border:4px solid #fff;border-top-color:var(--avatar-primary);border-radius:50%;box-shadow:0 0 0 6px #ffffffb3;animation:patient-avatar-spin 1s linear infinite}
.patient-avatar-dialog[data-loading=true] .patient-avatar-spinner{display:block}
@keyframes patient-avatar-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.patient-avatar-spinner{animation:none;border-top-color:var(--avatar-primary)}}
.patient-avatar-caption{position:absolute;bottom:0;left:0;right:0;padding:44px 22px 24px;background:linear-gradient(transparent,#0f5168e6);color:white}
.patient-avatar-caption h2{font-size:24px;margin:0 0 8px;line-height:1.25}.patient-avatar-caption p{font-size:12px;margin:0;line-height:1.5}
.patient-avatar-controls{padding:20px 22px max(20px,env(safe-area-inset-bottom));text-align:center;background:#fff}
.patient-avatar-controls [data-preflight]>p{font-size:12px;margin:0 0 16px}.patient-avatar-controls details{font-size:11px;margin:12px 0;color:var(--avatar-muted);line-height:1.5}.patient-avatar-controls summary{cursor:pointer;padding:6px}
.patient-avatar-controls [data-start]{width:100%;min-height:52px;background:var(--avatar-primary);color:#fff}
.patient-avatar-actions{display:flex;justify-content:center;gap:28px}.patient-avatar-actions button{border:0;min-height:64px;min-width:112px;padding:12px;border-radius:40px;font-size:12px;background:var(--avatar-surface);color:var(--avatar-text)}
.patient-avatar-actions [data-end]{background:#d74c53;color:white}.patient-avatar-actions [aria-pressed=true]{background:var(--avatar-soft)}
.patient-avatar-disclaimer{font-size:10px;line-height:1.5;color:var(--avatar-muted);margin:16px 0 12px}.patient-avatar-back{background:none;border:0;min-height:44px;font-size:12px;text-decoration:underline;color:var(--avatar-primary-hover)}
.patient-avatar-dialog [hidden]{display:none!important}.patient-avatar-dialog button:focus-visible,.patient-avatar-dialog summary:focus-visible{outline:3px solid var(--avatar-blue);outline-offset:4px}
.patient-avatar-privacy-link{background:none;border:0;padding:0;font:inherit;font-weight:400;color:inherit;text-decoration:underline;text-underline-offset:3px;min-height:32px;cursor:pointer}
.patient-avatar-privacy-modal{border:0;border-radius:20px;padding:24px;width:calc(100% - 32px);max-width:420px;color:var(--avatar-text);background:#fff}.patient-avatar-privacy-modal::backdrop{background:#0f233080}.patient-avatar-privacy-modal h2{font-size:18px;margin:0 0 16px}.patient-avatar-privacy-modal p{font-size:13px;line-height:1.7}.patient-avatar-privacy-modal button{min-height:44px;width:100%}
@media(max-width:560px){.patient-avatar-dialog{margin:0;max-width:none;border-radius:0}}

.patient-avatar-dialog{position:fixed;top:var(--dialog-viewport-top,0px);bottom:auto;margin:0 auto;height:var(--dialog-viewport-height,100dvh);max-height:var(--dialog-viewport-height,100dvh)}
.patient-avatar-call{min-height:0}.patient-avatar-call header{flex-shrink:0}.patient-avatar-call header>div{flex:1;min-width:0}.patient-avatar-call header small{display:block;font-size:11px;color:var(--avatar-muted);margin-top:3px}.patient-avatar-call [data-close]{border:0;background:var(--avatar-surface);color:var(--avatar-text);border-radius:50%;min-width:36px;min-height:36px;font-size:24px;line-height:1}
.patient-avatar-modes{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:8px 18px 0;padding:4px;background:#e2f1f8;border-radius:14px;flex-shrink:0}.patient-avatar-modes button{border:0;border-radius:10px;background:transparent;min-height:42px;color:var(--avatar-muted);font-size:13px;font-weight:600}.patient-avatar-modes [aria-pressed=true]{background:#fff;color:var(--avatar-primary-hover);box-shadow:inset 0 0 0 1px var(--avatar-blue),0 2px 6px #0f516814}.patient-avatar-modes button:disabled{opacity:.55}
.patient-avatar-status{margin:8px 16px;font-size:11px;text-align:center;color:var(--avatar-muted);min-height:16px;flex-shrink:0}
.patient-avatar-chat{display:flex;flex:1;min-height:0;flex-direction:column;background:var(--avatar-surface);overflow:hidden}
.patient-chat-log{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 16px;scrollbar-width:thin}
.patient-chat-empty{text-align:center;color:var(--avatar-muted);font-size:13px;margin:36px 16px;line-height:1.6}
.patient-chat-message{max-width:88%;width:fit-content;margin:0 0 12px;padding:10px 13px;border-radius:16px 16px 16px 4px;background:#fff;box-shadow:0 1px 3px #0f516810;color:var(--avatar-text)}.patient-chat-message.user{margin-left:auto;background:var(--avatar-primary);color:#fff;border-radius:16px 16px 4px 16px}.patient-chat-sender{font-size:10px;font-weight:700;display:block;margin-bottom:4px}.patient-chat-message p{font-size:14px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.patient-chat-message[data-status=interrupted]{opacity:.75}
.patient-chat-typing{font-size:11px;color:var(--avatar-muted);margin:0;padding:0 20px 8px}.patient-chat-composer{display:flex;align-items:flex-end;gap:10px;padding:12px 14px;background:#f7fcff;border-top:1px solid var(--avatar-line);flex-shrink:0}
.patient-chat-composer textarea{flex:1;min-width:0;min-height:46px;max-height:120px;resize:none;border:1px solid var(--avatar-line);border-radius:20px;padding:11px 14px;font:inherit;font-size:16px;line-height:1.4;background:#fff;color:var(--avatar-text)}.patient-chat-composer textarea:focus{outline:2px solid var(--avatar-blue);outline-offset:1px}.patient-chat-send{flex-shrink:0;border:0;width:46px;height:46px;border-radius:50%;background:var(--avatar-primary);color:#fff;font-size:25px;font-weight:700}.patient-chat-send:disabled{background:var(--avatar-line);color:var(--avatar-muted)}
.patient-avatar-dialog[data-mode=chat] .patient-avatar-controls{padding:6px 16px max(8px,env(safe-area-inset-bottom))}.patient-avatar-dialog[data-mode=chat] .patient-avatar-disclaimer{margin:4px 0}.patient-avatar-dialog[data-mode=chat] .patient-avatar-back{min-height:30px}.patient-avatar-dialog[data-mode=chat] [data-preflight]{padding-top:10px}

.patient-avatar-controls [data-start]:not(:disabled):hover,.patient-chat-send:not(:disabled):hover{background:var(--avatar-primary-hover)}
.patient-avatar-back:hover,.patient-avatar-privacy-link:hover{color:var(--avatar-primary-hover)}
.patient-avatar-privacy-modal .patient-soft-button{background:var(--avatar-primary);border-color:var(--avatar-primary);color:#fff}
.patient-avatar-privacy-modal .patient-soft-button:hover{background:var(--avatar-primary-hover);border-color:var(--avatar-primary-hover)}
.patient-chat-message.assistant .patient-chat-sender{color:var(--avatar-primary-hover)}

/* Keep the entry quiet; the complete notice is available in a modal. */
.patient-assistant-notice{margin:12px 0 0;padding:0;border:0;background:none;text-align:center;font-size:13px;line-height:1.6;color:var(--avatar-muted)}
.patient-assistant-notice-link{border:0;background:none;padding:4px 2px;min-height:32px;font:inherit;color:var(--avatar-primary-hover);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.patient-assistant-notice-link:focus-visible,.patient-assistant-notice-modal button:focus-visible{outline:2px solid var(--avatar-blue);outline-offset:3px;border-radius:4px}
.patient-assistant-notice-modal{max-height:calc(100dvh - 32px);overflow-y:auto;text-align:start}
.patient-assistant-notice-modal p{font-size:14px;line-height:1.65;color:var(--avatar-text)}

/* Retain the existing small-screen bounds with the compact notice as well. */
.patient-avatar-controls{max-height:52dvh;overflow-y:auto;flex-shrink:0}
.patient-avatar-stage{min-height:min(230px,22dvh)}
