:root {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #1e2524;
  background: #f7f5f2;
  color-scheme: light;
  --ink: #1e2524;
  --muted: #6d7774;
  --line: #e5e0da;
  --paper: #fff;
  --soft: #f2efeb;
  --brand: #173f38;
  --brand-soft: #e4efec;
  --danger: #a82e2e;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: #f7f5f2; }
body { min-height: 100vh; }
button, input, select { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }
.app-shell { width: min(100%, 720px); margin: 0 auto; min-height: 100vh; background: #f7f5f2; position: relative; }
.app-header { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: calc(14px + env(safe-area-inset-top)) 18px 12px; background: rgba(247,245,242,.94); backdrop-filter: blur(16px); border-bottom: 1px solid rgba(229,224,218,.7); }
.brand { font-weight: 900; font-size: 18px; letter-spacing: -.02em; }
.header-subtitle { color: var(--muted); font-size: 12px; margin-top: 1px; }
.pill, .secure-chip, .coming-badge { border-radius: 999px; padding: 7px 10px; font-size: 11px; font-weight: 800; }
.pill { background: #ebe8e3; color: #66706e; }
.secure-chip { background: var(--brand-soft); color: var(--brand); }
.coming-badge { display: inline-block; width: fit-content; margin-top: 10px; background: #f0ece6; color: #776d62; padding: 5px 8px; }
.app-main { padding: 18px 18px calc(96px + env(safe-area-inset-bottom)); }
.screen { display: none; }
.screen.active { display: block; animation: fadeIn .18s ease-out; }
@keyframes fadeIn { from { opacity: .4; transform: translateY(3px); } to { opacity: 1; transform: none; } }
.eyebrow { font-size: 11px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; color: #667873; }
h1 { margin: 4px 0 0; font-size: 28px; line-height: 1.08; letter-spacing: -.035em; }
h2 { margin: 0; font-size: 18px; letter-spacing: -.02em; }
p { line-height: 1.5; }
.hero-card { display: flex; justify-content: space-between; gap: 16px; align-items: flex-end; padding: 22px; border-radius: 24px; background: var(--brand); color: #fff; box-shadow: 0 12px 36px rgba(23,63,56,.16); }
.hero-card .eyebrow { color: #c6d9d4; }
.hero-card h1 { font-size: 30px; }
.hero-card p { margin: 8px 0 0; color: #d8e6e2; font-size: 14px; }
.hero-stat { min-width: 88px; text-align: center; background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.16); padding: 12px; border-radius: 18px; }
.hero-stat strong { display: block; font-size: 30px; }
.hero-stat span { font-size: 10px; color: #d8e6e2; }
.section-block { margin-top: 24px; }
.compact-bottom { margin-bottom: 8px; }
.section-heading, .screen-title-row, .session-live-head, .dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.section-heading { margin-bottom: 10px; }
.screen-title-row { margin-bottom: 18px; }
.session-heading { align-items: flex-start; }
.card { background: var(--paper); border: 1px solid var(--line); border-radius: 20px; padding: 17px; box-shadow: 0 8px 26px rgba(45,42,37,.04); }
.stack { display: grid; gap: 10px; }
.empty-state { color: var(--muted); text-align: center; }
.empty-state p { margin: 4px 0; font-size: 14px; }
.text-btn, .back-btn { border: 0; background: transparent; color: var(--brand); font-weight: 800; padding: 8px 0; }
.back-btn { margin: -4px 0 12px; }
.icon-btn { width: 42px; height: 42px; border-radius: 14px; border: 0; background: var(--brand); color: #fff; font-size: 24px; line-height: 1; }
.appointment-card { display: grid; grid-template-columns: 58px 1fr auto; gap: 12px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 14px; }
.appointment-time { font-size: 18px; font-weight: 900; font-variant-numeric: tabular-nums; }
.appointment-main strong { display: block; font-size: 15px; }
.appointment-main small { display: block; margin-top: 4px; color: var(--muted); }
.mode-chip { padding: 6px 8px; border-radius: 999px; background: #f1eeea; color: #6c655d; font-size: 10px; font-weight: 800; white-space: nowrap; }
.appointment-card.next { border-color: #b9d1ca; background: #f9fcfb; }
.appointment-card button { grid-column: 2 / -1; min-height: 42px; }
.quick-grid, .mode-grid, .action-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.quick-card, .mode-card { text-align: left; min-height: 126px; border-radius: 20px; border: 1px solid var(--line); background: #fff; padding: 16px; color: var(--ink); }
.quick-card > span, .mode-icon { display: block; font-size: 24px; margin-bottom: 14px; }
.quick-card strong, .mode-card strong { display: block; }
.quick-card small, .mode-card small { display: block; color: var(--muted); margin-top: 5px; line-height: 1.35; }
.mode-card { min-height: 170px; }
.mode-card:active { transform: scale(.99); }
.date-strip { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 7px; margin-bottom: 16px; }
.date-btn { border: 1px solid var(--line); background: #fff; border-radius: 16px; padding: 10px 4px; color: var(--ink); }
.date-btn span, .date-btn small { display: block; }
.date-btn span { font-size: 16px; font-weight: 900; }
.date-btn small { margin-top: 3px; color: var(--muted); font-size: 10px; text-transform: uppercase; }
.date-btn.active { background: var(--brand); color: #fff; border-color: var(--brand); }
.date-btn.active small { color: #d5e5e1; }
.search-box { display: flex; align-items: center; gap: 9px; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 0 14px; margin-bottom: 14px; }
.search-box input { width: 100%; border: 0; outline: 0; background: transparent; padding: 13px 0; }
.patient-card { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 14px; color: var(--ink); }
.avatar { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: var(--brand-soft); color: var(--brand); font-weight: 900; }
.avatar.large { width: 64px; height: 64px; font-size: 22px; }
.patient-card-main { flex: 1; min-width: 0; }
.patient-card-main strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.patient-card-main small { display: block; color: var(--muted); margin-top: 4px; }
.patient-detail-head { display: flex; gap: 14px; align-items: center; margin: 8px 0 20px; }
.muted-copy { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
button { min-height: 50px; border-radius: 15px; border: 0; font-weight: 800; cursor: pointer; }
button:disabled { opacity: .45; cursor: default; }
.primary { background: var(--brand); color: #fff; }
.secondary { background: var(--brand-soft); color: var(--brand); }
.danger { background: var(--danger); color: #fff; }
.ghost { background: #f1efec; color: #4e5856; }
.button-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.top-gap { margin-top: 10px; width: 100%; }
.form-card, .session-card { display: grid; gap: 14px; }
label { font-size: 13px; font-weight: 700; }
input[type="text"], input[type="tel"], input[type="date"], input[type="time"], select { width: 100%; border: 1px solid #d9d5cf; border-radius: 14px; padding: 13px; background: #fcfbfa; outline: none; margin-top: 7px; }
select { appearance: auto; }
input:focus, select:focus { border-color: #849a94; box-shadow: 0 0 0 3px rgba(132,154,148,.15); }
.field-row { display: grid; grid-template-columns: 1.2fr .8fr; gap: 10px; }
.online-preview { margin-top: 12px; }
.online-preview p { color: var(--muted); font-size: 14px; }
.settings-card { padding: 6px 17px; }
.setting-line { display: flex; justify-content: space-between; gap: 14px; padding: 15px 0; border-bottom: 1px solid #eeeae5; font-size: 13px; }
.setting-line:last-child { border-bottom: 0; }
.setting-line strong { text-align: right; }
.muted-text { color: var(--muted); }
.notice-card { margin-top: 12px; }
.notice-card p { margin-bottom: 0; color: var(--muted); font-size: 14px; }
.session-live-head { margin-bottom: 16px; }
.status-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-bottom: 12px; }
.status-card { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 12px 10px; min-width: 0; }
.status-card span { display: block; color: #79817f; font-size: 10px; margin-bottom: 5px; }
.status-card strong { display: block; font-size: 12px; overflow-wrap: anywhere; }
.consent-row { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; color: #4f5957; }
.consent-row input { margin-top: 2px; width: 19px; height: 19px; }
.recording-panel { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 20px; border-radius: 18px; background: #f3f1ee; min-height: 116px; }
.recording-panel.active { background: #fff0f0; }
.recording-panel.paused { background: #fff8e9; }
.recording-dot { width: 14px; height: 14px; border-radius: 50%; background: #aaa; flex: none; }
.recording-panel.active .recording-dot { background: #d83c3c; animation: pulse 1.2s infinite; }
.recording-panel.paused .recording-dot { background: #d89d2c; }
@keyframes pulse { 0%,100% { transform: scale(1); opacity: 1; } 50% { transform: scale(.72); opacity: .55; } }
.recording-label { font-size: 12px; font-weight: 900; color: #59615f; }
.timer { margin-top: 4px; font-size: 32px; font-variant-numeric: tabular-nums; font-weight: 900; letter-spacing: .02em; }
.warning { padding: 12px 14px; border-radius: 14px; background: #fff1d9; border: 1px solid #f1d296; color: #76551d; font-size: 13px; font-weight: 700; }
.hidden { display: none !important; }
.recovery-card, .result-card { margin-top: 12px; }
.result-card { text-align: center; }
.success-mark { width: 44px; height: 44px; display: grid; place-items: center; margin: 0 auto 10px; border-radius: 50%; background: var(--brand-soft); color: var(--brand); font-size: 24px; font-weight: 900; }
.result-meta { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin: 9px 0 14px; color: var(--muted); font-size: 12px; }
audio { width: 100%; margin-bottom: 14px; }
.privacy-note { margin: 14px 0 0; color: var(--muted); font-size: 12px; text-align: left; }
.bottom-nav { position: fixed; left: 50%; bottom: 0; transform: translateX(-50%); z-index: 30; width: min(100%,720px); display: grid; grid-template-columns: repeat(4,1fr); padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.96); backdrop-filter: blur(18px); border-top: 1px solid var(--line); }
.nav-item { min-height: 54px; border: 0; border-radius: 14px; background: transparent; color: #78807e; padding: 6px; }
.nav-item span, .nav-item small { display: block; }
.nav-item span { font-size: 20px; line-height: 1; }
.nav-item small { margin-top: 5px; font-size: 10px; font-weight: 800; }
.nav-item.active { color: var(--brand); background: #edf3f1; }
.app-dialog { width: min(calc(100% - 24px), 520px); border: 0; border-radius: 24px; padding: 0; background: #fff; color: var(--ink); box-shadow: 0 24px 70px rgba(0,0,0,.22); }
.app-dialog::backdrop { background: rgba(20,30,28,.42); backdrop-filter: blur(4px); }
.dialog-body { display: grid; gap: 14px; padding: 20px; }
.dialog-close { width: 38px; min-height: 38px; border-radius: 50%; background: #f1efec; color: #5c6462; font-size: 22px; }
@media (max-width: 390px) {
  .app-main { padding-left: 14px; padding-right: 14px; }
  .app-header { padding-left: 14px; padding-right: 14px; }
  .hero-card { padding: 18px; }
  .hero-stat { min-width: 78px; }
  .appointment-card { grid-template-columns: 52px 1fr; }
  .mode-chip { grid-column: 2; width: fit-content; }
  .status-grid { grid-template-columns: 1fr; }
  .status-card { display: flex; justify-content: space-between; gap: 12px; }
  .status-card span { margin: 0; }
}
.auth-gate { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: #f7f5f2; }
.auth-card { width: min(100%, 420px); display: grid; gap: 14px; background: #fff; border: 1px solid var(--line); border-radius: 24px; padding: 24px; box-shadow: 0 18px 50px rgba(45,42,37,.08); }
.auth-card h1 { margin-bottom: 0; }
.auth-card p { margin: 0; color: var(--muted); font-size: 14px; }
.auth-card input[type="email"], .auth-card input[type="password"] { width: 100%; border: 1px solid #d9d5cf; border-radius: 14px; padding: 13px; background: #fcfbfa; outline: none; margin-top: 7px; }
.auth-brand { margin-bottom: 4px; }

/* V0.4 — sala online */
.online-link-card { margin-bottom: 12px; }
.online-link-card p { color: var(--muted); font-size: 14px; }
.share-link-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; }
.share-link-row input { min-width: 0; margin: 0; border: 1px solid #d9d5cf; border-radius: 14px; padding: 13px; background: #fcfbfa; color: #59615f; }
.share-link-row button { min-width: 82px; }
.video-grid { display: grid; grid-template-columns: 1fr; gap: 10px; margin: 12px 0; }
.video-card { position: relative; overflow: hidden; border-radius: 20px; background: #1e2423; aspect-ratio: 4 / 3; border: 1px solid rgba(0,0,0,.08); }
.video-card video { width: 100%; height: 100%; object-fit: cover; display: block; background: #1e2423; }
.video-card.local { position: absolute; width: 31%; max-width: 150px; aspect-ratio: 3 / 4; right: 24px; margin-top: 14px; z-index: 4; border: 2px solid rgba(255,255,255,.92); box-shadow: 0 10px 28px rgba(0,0,0,.22); }
.video-label { position: absolute; left: 10px; bottom: 10px; padding: 5px 8px; border-radius: 999px; background: rgba(20,25,24,.68); color: #fff; font-size: 10px; font-weight: 800; backdrop-filter: blur(7px); }
.call-controls-card { display: grid; gap: 10px; margin-top: 12px; }
.call-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.online-consent-status { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid #eeeae5; font-size: 12px; }
.online-consent-status strong { text-align: right; }
.patient-room-body { min-height: 100vh; margin: 0; background: #f7f5f2; color: var(--ink); font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.patient-room-shell { width: min(100%,720px); margin: 0 auto; padding: max(24px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom)); }
.patient-join-card { display: grid; gap: 15px; margin: 5vh auto 0; max-width: 520px; }
.patient-join-card h1, .patient-call-head h1 { margin: 3px 0 0; }
.patient-join-card > p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.patient-call-wrap { position: relative; }
.patient-call-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 12px; }
.patient-video-grid { position: relative; }
.patient-video-grid .video-card.local { right: 12px; top: 76px; margin: 0; }
@media (min-width: 700px) {
  .video-grid { grid-template-columns: 1fr; }
  .video-card.remote { aspect-ratio: 16/9; }
}

.top-gap-small { margin-top: 8px; }

/* V0.4.3 — tela cheia, chat e pós-sessão */
.call-stage { position: relative; border-radius: 22px; overflow: hidden; background: #171d1c; }
.call-stage .video-grid { margin: 0; }
.stage-action { position: absolute; z-index: 8; right: 10px; top: 10px; min-height: 38px; padding: 0 12px; border-radius: 999px; background: rgba(17,24,23,.72); color: #fff; border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(8px); }
.call-stage:fullscreen, .call-stage:-webkit-full-screen { width: 100vw; height: 100vh; border-radius: 0; background: #000; }
.call-stage:fullscreen .video-grid, .call-stage:-webkit-full-screen .video-grid { height: 100%; }
.call-stage:fullscreen .video-card.remote, .call-stage:-webkit-full-screen .video-card.remote { height: 100%; aspect-ratio: auto; border-radius: 0; border: 0; }
.call-stage:fullscreen .video-card.local, .call-stage:-webkit-full-screen .video-card.local { position: absolute; right: max(16px,env(safe-area-inset-right)); bottom: max(24px,env(safe-area-inset-bottom)); top: auto; width: min(25vw,180px); }
.chat-card { display: grid; gap: 12px; margin-top: 12px; text-align: left; }
.chat-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.chat-head h2 { margin: 2px 0 0; }
.chat-badge { padding: 5px 8px; border-radius: 999px; background: var(--brand); color: #fff; font-size: 10px; font-weight: 900; }
.chat-messages { height: 190px; overflow-y: auto; background: #f7f6f4; border: 1px solid var(--line); border-radius: 16px; padding: 10px; display: flex; flex-direction: column; gap: 8px; }
.chat-empty { margin: auto; max-width: 260px; color: var(--muted); font-size: 12px; text-align: center; }
.chat-message { max-width: 86%; padding: 9px 11px; border-radius: 14px; display: grid; gap: 3px; font-size: 13px; overflow-wrap: anywhere; }
.chat-message strong { font-size: 10px; opacity: .68; }
.chat-message.own { align-self: flex-end; background: var(--brand); color: #fff; border-bottom-right-radius: 5px; }
.chat-message.remote { align-self: flex-start; background: #fff; border: 1px solid var(--line); border-bottom-left-radius: 5px; }
.chat-form { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.chat-form input { margin: 0; min-width: 0; }
.chat-form button { min-width: 82px; }
.post-session-card { margin-top: 8px; text-align: center; }
.post-session-card h2 { margin: 4px 0 16px; }
.post-session-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 14px; }
.post-session-stats > div { background: #f7f6f4; border: 1px solid var(--line); border-radius: 16px; padding: 13px 10px; }
.post-session-stats span, .post-session-stats strong { display: block; }
.post-session-stats span { color: var(--muted); font-size: 11px; margin-bottom: 5px; }
.post-session-stats strong { font-size: 14px; }
.patient-ended-card { max-width: 520px; margin: 10vh auto 0; text-align: center; }
.patient-ended-card p { color: var(--muted); line-height: 1.5; }
.session-history-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; padding: 12px 0; border-bottom: 1px solid #eeeae5; }
.session-history-row:last-child { border-bottom: 0; }
.session-history-meta span, .session-history-meta small { display: block; }
.session-history-meta small { color: var(--muted); margin-top: 4px; }
.session-history-row button { min-height: 38px; padding: 0 11px; }
@media (max-width: 440px) { .post-session-stats { grid-template-columns: 1fr; } .chat-messages { height: 160px; } }

/* Clinical focus V0.5 */
.clinical-nav { grid-template-columns: repeat(3,1fr); }
.clinical-overview-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.metric-card { background:#fff; border:1px solid var(--line); border-radius:18px; padding:14px; min-height:92px; display:flex; flex-direction:column; justify-content:space-between; }
.metric-card span { color:var(--muted); font-size:12px; font-weight:700; }
.metric-card strong { font-size:22px; line-height:1.1; }
.full-width { width:100%; }
.small-btn { min-height:38px; padding:8px 12px; }
.clinical-tabs { display:flex; gap:8px; overflow-x:auto; padding:16px 0 6px; scrollbar-width:none; }
.clinical-tabs::-webkit-scrollbar { display:none; }
.clinical-tab { min-height:40px; white-space:nowrap; padding:8px 12px; border:1px solid var(--line); background:#fff; color:var(--muted); border-radius:999px; font-weight:800; }
.clinical-tab.active { background:var(--brand); color:#fff; border-color:var(--brand); }
.clinical-panel { display:none; }
.clinical-panel.active { display:block; }
.clinical-document { display:grid; gap:14px; }
.clinical-field { padding-bottom:12px; border-bottom:1px solid var(--line); }
.clinical-field:last-child { border-bottom:0; padding-bottom:0; }
.clinical-field strong { display:block; font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin-bottom:5px; }
.clinical-field p { margin:0; white-space:pre-wrap; line-height:1.55; }
.timeline { display:grid; gap:12px; }
.timeline-item { background:#fff; border:1px solid var(--line); border-radius:18px; padding:15px; }
.timeline-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; margin-bottom:10px; }
.timeline-head strong { display:block; }
.timeline-head small { color:var(--muted); }
.ai-badge { display:inline-flex; font-size:10px; font-weight:900; border-radius:999px; padding:5px 8px; background:#eeeaf8; color:#63517e; }
.timeline-section { margin-top:10px; }
.timeline-section strong { font-size:11px; text-transform:uppercase; color:var(--muted); letter-spacing:.05em; }
.timeline-section p { margin:4px 0 0; white-space:pre-wrap; line-height:1.5; }
.clinical-dialog { max-height:92vh; overflow:auto; }
.clinical-form-grid { display:grid; gap:12px; }
.clinical-dialog textarea { resize:vertical; min-height:72px; }
.session-summary-card { background:#fff; border:1px solid var(--line); border-radius:18px; padding:14px; }
.session-summary-card .session-title-row { display:flex; justify-content:space-between; gap:10px; }
.session-summary-card p { white-space:pre-wrap; line-height:1.5; }
@media(max-width:520px){.clinical-overview-grid{grid-template-columns:1fr 1fr}.clinical-overview-grid .metric-card:last-child{grid-column:1/-1}.clinical-dialog{width:calc(100% - 14px)}}

/* V0.5 — anamnese livre + transcrição/relatório IA */
.anamnesis-fields { display:grid; gap:12px; }
.anamnesis-editor-row { border:1px solid var(--line); border-radius:16px; padding:12px; background:#fbfaf8; display:grid; gap:9px; }
.anamnesis-editor-head { display:grid; grid-template-columns:1fr auto; gap:8px; align-items:center; }
.anamnesis-editor-head input { margin:0; font-weight:800; }
.anamnesis-editor-row textarea { margin:0; min-height:96px; }
.anamnesis-editor-row .anam-remove { min-height:38px; padding:8px 10px; }
.timeline-actions { display:flex; gap:7px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.timeline-actions .review-evolution-btn { min-height:34px; padding:6px 9px; font-size:11px; }
.report-dialog { width:min(94vw,760px); }
.ai-progress { display:flex; gap:13px; align-items:center; padding:15px; border:1px solid var(--line); border-radius:16px; background:#f8f6f2; }
.ai-progress strong { display:block; margin-bottom:3px; }
.ai-progress p { margin:0; color:var(--muted); line-height:1.45; font-size:13px; }
.ai-spinner { width:28px; height:28px; border-radius:50%; border:3px solid #e4ddd4; border-top-color:var(--brand); animation:aiSpin .85s linear infinite; flex:0 0 auto; }
@keyframes aiSpin { to { transform:rotate(360deg); } }
.report-content { display:grid; gap:12px; }
.report-field { padding:13px 0; border-bottom:1px solid var(--line); }
.report-field:last-child { border-bottom:0; }
.report-field strong { display:block; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; font-size:11px; margin-bottom:5px; }
.report-field p { margin:0; white-space:pre-wrap; line-height:1.58; }
.transcript-details { margin-top:14px; border:1px solid var(--line); border-radius:14px; padding:11px 13px; background:#fbfaf8; }
.transcript-details summary { cursor:pointer; font-weight:800; }
.transcript-text { white-space:pre-wrap; margin-top:12px; line-height:1.58; font-size:13px; max-height:42vh; overflow:auto; }
@media(max-width:520px){.anamnesis-editor-head{grid-template-columns:1fr}.anamnesis-editor-row .anam-remove{justify-self:start}.report-dialog{width:calc(100% - 12px)}}


/* V0.5.25 — clinical continuity + responsive workspace */
.app-shell { width:min(100%,1180px); }
.app-main { width:100%; }
.bottom-nav { width:min(100%,1180px); }
textarea { width:100%; border:1px solid #d9d5cf; border-radius:14px; padding:13px; background:#fcfbfa; outline:none; margin-top:7px; font:inherit; color:var(--ink); }
textarea:focus { border-color:#849a94; box-shadow:0 0 0 3px rgba(132,154,148,.15); }
.patient-insight-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.insight-card { background:#fff; border:1px solid var(--line); border-radius:20px; padding:16px; display:flex; gap:12px; align-items:flex-start; box-shadow:0 8px 26px rgba(45,42,37,.035); }
.insight-card:nth-child(3) { grid-column:1/-1; }
.insight-icon { width:42px; height:42px; border-radius:14px; background:var(--brand-soft); display:grid; place-items:center; flex:0 0 auto; font-size:20px; }
.insight-card strong { display:block; margin-bottom:5px; }
.insight-card p { margin:0; color:#4f5957; white-space:pre-wrap; line-height:1.5; }
.mood-large { font-size:25px; }
.mood-fieldset { border:1px solid var(--line); border-radius:16px; padding:12px; margin:0; background:#fbfaf8; }
.mood-fieldset legend { padding:0 5px; font-size:12px; font-weight:900; color:var(--muted); }
.mood-fieldset input { margin-top:10px; }
.mood-picker { display:flex; flex-wrap:wrap; gap:8px; }
.mood-option { width:46px; min-height:46px; padding:0; border-radius:14px; border:1px solid var(--line); background:#fff; font-size:24px; line-height:1; transition:transform .12s ease,border-color .12s ease,background .12s ease; }
.mood-option:hover { transform:translateY(-1px); }
.mood-option.selected { border-color:var(--brand); background:var(--brand-soft); box-shadow:0 0 0 2px rgba(23,63,56,.12); }
.mood-picker.compact { justify-content:center; gap:6px; }
.mood-picker.compact .mood-option { width:40px; min-height:40px; font-size:21px; border-radius:12px; }
.quick-mood-block { margin:4px 0 14px; padding:12px; border:1px solid var(--line); border-radius:16px; background:#fbfaf8; }
.quick-mood-block > span { display:block; color:var(--muted); font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.05em; margin-bottom:9px; }
.mood-inline { font-size:22px; margin-right:6px; vertical-align:-2px; }
.timeline-actions .edit-evolution-btn, .session-history-actions .edit-session-btn { min-height:34px; padding:6px 9px; font-size:11px; }
.session-history-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; flex-wrap:wrap; }
.session-history-meta p { margin:7px 0 0; color:#4f5957; }
.session-plan-snippet { margin-top:8px; padding-top:8px; border-top:1px dashed var(--line); font-size:12px; color:var(--muted); }
.session-plan-snippet strong { color:var(--ink); }
@media (min-width: 860px) {
  .app-header { padding-left:30px; padding-right:30px; }
  .app-main { padding:28px 30px 112px; }
  .hero-card { padding:30px; }
  .hero-card h1 { font-size:clamp(32px,4vw,44px); }
  .quick-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .clinical-overview-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .patient-detail-head { padding:18px 20px; background:#fff; border:1px solid var(--line); border-radius:22px; box-shadow:0 8px 26px rgba(45,42,37,.035); }
  #patientStartSessionBtn { width:auto; min-width:230px; margin-left:auto; display:block; }
  .clinical-tabs { position:sticky; top:82px; z-index:12; background:rgba(247,245,242,.94); backdrop-filter:blur(12px); padding:12px 0; }
  .clinical-panel { max-width:1000px; margin:0 auto; }
  .patient-insight-grid { grid-template-columns:1fr 1fr 0.72fr; }
  .insight-card:nth-child(3) { grid-column:auto; }
  .timeline { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
  .clinical-document { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .clinical-field { border:1px solid var(--line); border-radius:16px; padding:14px; background:#fff; }
  .clinical-field:last-child { padding-bottom:14px; }
  .app-dialog { max-width:680px; }
  .report-dialog { max-width:920px; }
}
@media (max-width: 620px) {
  .app-main { padding-left:14px; padding-right:14px; }
  .hero-card { padding:18px; border-radius:20px; align-items:stretch; }
  .hero-card h1 { font-size:28px; }
  .hero-stat { min-width:78px; }
  .patient-detail-head { margin-bottom:14px; }
  .patient-insight-grid { grid-template-columns:1fr; }
  .insight-card:nth-child(3) { grid-column:auto; }
  .clinical-tabs { margin-left:-14px; margin-right:-14px; padding-left:14px; padding-right:14px; }
  .section-block { margin-top:20px; }
  .card, .timeline-item, .metric-card { border-radius:17px; }
  .session-history-row { grid-template-columns:1fr; }
  .session-history-actions { justify-content:flex-start; }
  .mood-option { width:43px; min-height:43px; }
}


/* V0.5.25 — identidade aquarela, girassol e cores da Isadora */

:root {
  --ink: #26463b;
  --muted: #6f7c74;
  --line: rgba(124, 126, 92, .18);
  --paper: rgba(255,255,255,.78);
  --soft: #fbf7ef;
  --brand: #2f7e62;
  --brand-soft: #ecf7ef;
  --accent-gold: #f5b84c;
  --accent-peach: #f6d6c7;
  --accent-rose: #f1d5dd;
  --accent-mint: #d8efe4;
  --accent-sky: #dfeeed;
  --shadow-soft: 0 16px 40px rgba(73, 68, 40, .08);
}
html, body { background: linear-gradient(180deg, #fbf5eb 0%, #f8f1e5 55%, #f4efe7 100%); }
body {
  position: relative;
  color: var(--ink);
  font-family: "Avenir Next", "Segoe UI", system-ui, sans-serif;
}
body::before,
body::after {
  content: "";
  position: fixed;
  inset: auto;
  pointer-events: none;
  z-index: 0;
  filter: blur(0.2px);
}
body::before {
  width: 420px;
  height: 420px;
  left: -110px;
  top: -70px;
  background:
    radial-gradient(circle at 30% 32%, rgba(245, 184, 76, .28), transparent 0 22%),
    radial-gradient(circle at 67% 44%, rgba(127, 187, 144, .24), transparent 0 18%),
    radial-gradient(circle at 52% 67%, rgba(244, 149, 124, .12), transparent 0 22%);
}
body::after {
  width: 380px;
  height: 380px;
  right: -120px;
  bottom: 40px;
  background:
    radial-gradient(circle at 45% 40%, rgba(245, 184, 76, .18), transparent 0 24%),
    radial-gradient(circle at 58% 62%, rgba(127, 187, 144, .20), transparent 0 18%),
    radial-gradient(circle at 28% 68%, rgba(232, 181, 205, .16), transparent 0 18%);
}
.app-shell,
.patient-room-shell {
  position: relative;
  z-index: 1;
}
.app-shell {
  width: min(100%, 1240px);
  background: transparent;
}
.app-header {
  background: rgba(251, 248, 242, .78);
  border-bottom: 1px solid rgba(137, 150, 124, .16);
  backdrop-filter: blur(16px);
  box-shadow: 0 10px 24px rgba(127, 102, 54, .04);
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
  font-size: clamp(22px, 3vw, 34px);
  letter-spacing: -.04em;
  color: #20463a;
}
.brand::before {
  content: "";
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: url('icon.svg') center/contain no-repeat;
  flex: none;
  filter: drop-shadow(0 6px 10px rgba(227, 165, 53, .20));
}
.auth-brand { margin-bottom: 0; }
.auth-tagline {
  margin-top: -4px;
  color: #b06d38;
  font-size: 14px;
  line-height: 1.45;
}
h1, h2 {
  font-family: Georgia, "Times New Roman", serif;
  color: #26463b;
}
.eyebrow {
  color: #7e9f6f;
  letter-spacing: .18em;
}
.header-subtitle,
.muted-copy,
.notice-card p,
.patient-card-main small,
.hero-card p,
.online-link-card p,
.empty-state,
.setting-line,
.auth-card p {
  color: #65736d;
}
.card,
.quick-card,
.mode-card,
.metric-card,
.patient-card,
.search-box,
.auth-card,
.app-dialog,
.status-card,
.session-history-row,
.timeline-item,
.online-link-card,
.video-card,
.chat-card,
.call-controls-card,
.post-session-card {
  background:
    radial-gradient(circle at 90% 16%, rgba(248, 211, 109, .10), transparent 0 20%),
    radial-gradient(circle at 15% 85%, rgba(162, 210, 180, .11), transparent 0 18%),
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,252,248,.90));
  border: 1px solid rgba(144, 140, 102, .16);
  box-shadow: var(--shadow-soft);
}
.app-dialog::backdrop { background: rgba(75, 89, 79, .28); }
.hero-card {
  position: relative;
  overflow: hidden;
  color: var(--ink);
  background:
    radial-gradient(circle at 14% 16%, rgba(245, 184, 76, .25), transparent 0 16%),
    radial-gradient(circle at 88% 22%, rgba(127, 187, 144, .20), transparent 0 17%),
    radial-gradient(circle at 78% 82%, rgba(238, 196, 168, .22), transparent 0 16%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(250,244,234,.98));
  border: 1px solid rgba(144, 140, 102, .18);
  box-shadow: 0 20px 42px rgba(140, 112, 58, .10);
}
.hero-card::before {
  position: absolute;
  right: 20px;
  top: 18px;
  font-size: clamp(30px, 5vw, 46px);
  opacity: .92;
}
.hero-card .eyebrow,
.hero-card p { color: #587063; }
.hero-card h1 { font-size: clamp(30px, 4.2vw, 46px); }
.hero-stat {
  background: rgba(255,255,255,.62);
  color: #2f7e62;
  border: 1px solid rgba(112, 148, 112, .18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55);
}
.hero-stat span { color: #6b7e75; }
.metric-card { border-radius: 22px; }
.clinical-overview-grid .metric-card:nth-child(1) { background: linear-gradient(180deg, rgba(255,226,168,.52), rgba(255,255,255,.92)); }
.clinical-overview-grid .metric-card:nth-child(2) { background: linear-gradient(180deg, rgba(214,240,226,.58), rgba(255,255,255,.92)); }
.clinical-overview-grid .metric-card:nth-child(3) { background: linear-gradient(180deg, rgba(243,213,221,.50), rgba(255,255,255,.92)); }
.quick-card, .mode-card {
  border-radius: 24px;
  transition: transform .18s ease, box-shadow .18s ease;
}
.quick-card:hover, .mode-card:hover, .patient-card:hover { transform: translateY(-1px); box-shadow: 0 18px 34px rgba(123, 107, 56, .12); }
.quick-card:nth-child(1) { background: linear-gradient(180deg, rgba(255,236,188,.55), rgba(255,255,255,.92)); }
.quick-card:nth-child(2) { background: linear-gradient(180deg, rgba(221,241,231,.58), rgba(255,255,255,.92)); }
.quick-card > span, .mode-icon { font-size: 28px; }
.patient-card,
.timeline-item,
.session-history-row,
.clinical-document,
.online-link-card,
.chat-card,
.call-controls-card,
.post-session-card {
  border-radius: 22px;
}
.avatar {
  background: linear-gradient(180deg, #fff0c9, #f8c45f);
  color: #6d4a19;
  box-shadow: inset 0 2px 0 rgba(255,255,255,.56);
}
.avatar.large {
  border: 4px solid rgba(255,255,255,.75);
  box-shadow: 0 12px 20px rgba(176, 120, 42, .12);
}
button {
  border-radius: 16px;
  transition: transform .16s ease, box-shadow .16s ease, opacity .16s ease;
}
button:not(:disabled):active { transform: scale(.985); }
.primary {
  background: linear-gradient(135deg, #327f66, #2e6f57);
  box-shadow: 0 10px 22px rgba(47, 126, 98, .22);
}
.secondary {
  background: linear-gradient(180deg, #fff6da, #fce9b7);
  color: #71541b;
  box-shadow: 0 8px 18px rgba(223, 168, 57, .14);
}
.ghost { background: linear-gradient(180deg, #fff8f2, #f5eee6); color: #5d655e; }
.danger { background: linear-gradient(135deg, #d56d67, #bd4f48); }
.icon-btn {
  background: linear-gradient(135deg, #f7cb63, #ef9f31);
  color: #654310;
  box-shadow: 0 10px 18px rgba(239, 159, 49, .20);
}
.search-box {
  background: rgba(255,255,255,.82);
  border-radius: 18px;
}
.search-box input,
input[type="text"], input[type="tel"], input[type="date"], input[type="time"],
input[type="email"], input[type="password"], input[type="search"], select, textarea {
  background: rgba(255, 252, 248, .90);
  border: 1px solid rgba(166, 160, 120, .28);
  border-radius: 16px;
}
input:focus, select:focus, textarea:focus {
  border-color: rgba(59, 135, 104, .45);
  box-shadow: 0 0 0 4px rgba(82, 164, 127, .10);
}
.clinical-tab {
  background: rgba(255,255,255,.85);
  border-color: rgba(136, 137, 98, .20);
  color: #62726a;
}
.clinical-tab.active {
  background: linear-gradient(135deg, #2f7e62, #3b8e71);
  border-color: transparent;
}
.insight-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: start;
  padding: 18px;
  border-radius: 22px;
  border: 1px solid rgba(144, 140, 102, .16);
  background:
    radial-gradient(circle at 12% 15%, rgba(255, 216, 109, .18), transparent 0 18%),
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(251,248,241,.93));
  box-shadow: var(--shadow-soft);
}
.patient-insight-grid {
  display: grid;
  gap: 12px;
}
.insight-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(180deg, #fff4cb, #f6c24d);
  color: #6f4c14;
  font-size: 23px;
  box-shadow: inset 0 2px 0 rgba(255,255,255,.58);
}
.mood-card .insight-icon {
  background: linear-gradient(180deg, #dff0e4, #a8dbb4);
  color: #2f7e62;
}
.timeline-head,
.section-heading,
.screen-title-row,
.session-live-head,
.dialog-head { align-items: center; }
.ai-badge {
  background: #eef0ff;
  color: #5f599a;
}
.call-stage {
  background: linear-gradient(135deg, #24473c, #365f4d);
  box-shadow: 0 18px 34px rgba(48, 62, 56, .18);
}
.stage-action {
  background: rgba(255,255,255,.18);
  border-color: rgba(255,255,255,.24);
}
.video-label {
  background: rgba(27, 44, 38, .70);
}
.chat-messages {
  background: rgba(251,249,244,.82);
}
.chat-message.own { background: linear-gradient(135deg, #2f7e62, #3b8e71); }
.chat-message.remote { background: rgba(255,255,255,.92); }
.post-session-stats > div,
.status-card { background: rgba(255,255,255,.68); }
.bottom-nav { background: rgba(250,247,241,.90); }
.auth-gate,
.patient-room-body {
  background:
    radial-gradient(circle at 10% 8%, rgba(245,184,76,.18), transparent 0 18%),
    radial-gradient(circle at 90% 10%, rgba(164,210,182,.18), transparent 0 15%),
    linear-gradient(180deg, #fbf5eb, #f5efe3);
}
.auth-card,
.patient-join-card,
.patient-ended-card {
  background:
    radial-gradient(circle at 88% 14%, rgba(255,214,121,.18), transparent 0 18%),
    radial-gradient(circle at 14% 90%, rgba(176, 219, 192, .16), transparent 0 20%),
    linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,252,247,.92));
}
.notice-card h2::after,
.section-heading h2::after,
.screen-title-row h1::after,
.patient-call-head h1::after,
.patient-join-card h1::after { display:none!important; content:none!important; }
@media (min-width: 860px) {
  .app-main { padding: 28px 28px calc(96px + env(safe-area-inset-bottom)); }
  .screen[data-screen="home"].active {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 24px;
  }
  .screen[data-screen="home"] > .hero-card { grid-column: 1 / -1; }
  .screen[data-screen="home"] > .section-block:nth-of-type(1) { grid-column: 1; }
  .screen[data-screen="home"] > .section-block:nth-of-type(2) { grid-column: 2; align-self: start; }
  .screen[data-screen="home"] > .section-block:nth-of-type(3) { grid-column: 1 / -1; }
  #patientList {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .patient-insight-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .clinical-overview-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .screen[data-screen="patients"],
  .screen[data-screen="patient-detail"],
  .screen[data-screen="more"],
  .screen[data-screen="session-setup"],
  .screen[data-screen="online-room"] {
    max-width: 1120px;
  }
}
@media (max-width: 700px) {
  .brand { font-size: 24px; }
  .brand::before { width: 30px; height: 30px; }
  .hero-card { padding: 20px; }
  .hero-card::before { right: 14px; top: 12px; font-size: 34px; }
  .patient-insight-grid,
  .clinical-overview-grid { grid-template-columns: 1fr; }
}


/* V0.5.25 — layout fiel ao mockup botânico com sidebar e topbar */

.workspace-shell {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 24px;
  padding: 26px;
  align-items: start;
}
.workspace-sidebar {
  position: sticky;
  top: 20px;
  display: grid;
  gap: 18px;
  padding: 18px;
  border-radius: 28px;
  background:
    radial-gradient(circle at 14% 14%, rgba(255, 210, 107, .22), transparent 0 22%),
    radial-gradient(circle at 85% 84%, rgba(144, 198, 153, .18), transparent 0 20%),
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(254,250,244,.92));
  border: 1px solid rgba(147, 141, 106, .16);
  box-shadow: 0 18px 38px rgba(121, 99, 55, .09);
}
.sidebar-brand-wrap { padding: 8px 6px 4px; }
.sidebar-brand { font-size: 30px; }
.brand-subtitle {
  margin-top: 4px;
  margin-left: 46px;
  color: #5e786b;
  font-size: 12px;
  letter-spacing: .26em;
}
.sidebar-nav { display: grid; gap: 8px; }
.sidebar-link {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border-radius: 16px;
  color: #3b544b;
  background: rgba(255,255,255,.64);
  border: 1px solid rgba(146, 140, 103, .12);
  text-align: left;
  font-weight: 700;
}
.sidebar-link span {
  width: 24px;
  text-align: center;
  font-size: 16px;
  color: #8f6f2a;
}
.sidebar-link.active {
  background: linear-gradient(180deg, rgba(236, 240, 222, .98), rgba(230, 235, 216, .95));
  color: #1f4c3b;
}
.decorative-link {
  opacity: .82;
  cursor: default;
}
.sidebar-quote {
  margin-top: 10px;
  min-height: 230px;
  display: flex;
  align-items: end;
  justify-content: center;
  text-align: center;
  background:
    radial-gradient(circle at 15% 88%, rgba(255, 210, 107, .18), transparent 0 18%),
    radial-gradient(circle at 82% 16%, rgba(150, 200, 162, .18), transparent 0 18%),
    linear-gradient(180deg, rgba(255,250,243,.96), rgba(253,246,236,.92));
}
.sidebar-quote-text {
  max-width: 180px;
  font-family: Georgia, serif;
  font-style: italic;
  font-size: 24px;
  line-height: 1.35;
  color: #bb7a41;
}
.workspace-main {
  min-width: 0;
}
.app-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 16px 20px;
  border-radius: 24px;
  margin-bottom: 16px;
}
.header-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}
.workspace-search {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: min(420px, 42vw);
  padding: 0 14px;
  border-radius: 18px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(151, 146, 111, .14);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6);
}
.workspace-search span { color: #7d8e85; }
.workspace-search input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  padding: 13px 0;
}
.profile-pill {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 18px;
  background: rgba(255,255,255,.76);
  border: 1px solid rgba(146, 140, 103, .14);
}
.profile-avatar {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(180deg, #fff2cb, #f4bb48);
  color: #634112;
  font-weight: 800;
}
.profile-pill strong, .profile-pill small { display: block; }
.profile-pill strong { font-size: 14px; color: #28443a; }
.profile-pill small { color: #6f7c74; font-size: 12px; }
.mock-shortcuts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
  margin-bottom: 8px;
}
.mock-shortcut {
  min-height: 98px;
  display: grid;
  place-items: center;
  gap: 6px;
  text-align: center;
  border-radius: 24px;
  padding: 12px;
  background: rgba(255,255,255,.85);
  border: 1px solid rgba(146,140,103,.14);
  box-shadow: 0 14px 30px rgba(124,109,73,.08);
}
.mock-shortcut span { font-size: 28px; }
.mock-shortcut strong { font-size: 14px; color: #28443a; }
.mock-shortcut.warm { background: linear-gradient(180deg, rgba(255,232,176,.88), rgba(255,255,255,.92)); }
.mock-shortcut.mint { background: linear-gradient(180deg, rgba(221,241,231,.88), rgba(255,255,255,.92)); }
.mock-shortcut.peach { background: linear-gradient(180deg, rgba(249,221,212,.84), rgba(255,255,255,.92)); }
.mock-shortcut.cream { background: linear-gradient(180deg, rgba(250,243,222,.9), rgba(255,255,255,.92)); }
.mock-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.mock-metrics .metric-card small {
  color: #7a857d;
  font-size: 12px;
}
.section-link {
  color: #c07c43;
  font-weight: 700;
  cursor: pointer;
}
.focus-grid {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 16px;
}
.highlight-patient-card,
.highlight-plan-card {
  min-height: 220px;
}
.mini-patient-row {
  display: flex;
  align-items: center;
  gap: 14px;
}
.avatar.warm {
  background: linear-gradient(180deg, #ffeeb9, #efb23b);
}
.focus-list {
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}
.focus-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #5d6c64;
}
.focus-list li::before {
  content: "✓";
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eaf4e9;
  color: #2f7e62;
  font-weight: 900;
}
.recent-session {
  padding: 16px 18px;
}
.section-block .section-heading h2,
.screen-title-row h1,
.patient-detail-head h1,
.dialog-head h2,
.session-live-head h1 {
  font-size: clamp(24px, 2.6vw, 38px);
}
.screen[data-screen="home"] .section-block:nth-of-type(1) {
  margin-top: 18px;
}
.screen[data-screen="patients"] .search-box {
  max-width: 420px;
}
.patient-detail-head,
.screen-title-row,
.section-heading {
  gap: 16px;
}
#patientList {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.timeline {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.report-content {
  column-gap: 18px;
}
.floral-room .patient-join-card::before,
.floral-room .patient-call-wrap::before {
  content: "";
  position: absolute;
  inset: -8px;
  z-index: -1;
  background:
    radial-gradient(circle at 9% 18%, rgba(255, 211, 120, .20), transparent 0 18%),
    radial-gradient(circle at 88% 82%, rgba(146, 199, 157, .18), transparent 0 18%);
}
@media (max-width: 1100px) {
  .workspace-shell { grid-template-columns: 1fr; padding: 16px; }
  .workspace-sidebar { display: none; }
  .app-header { grid-template-columns: 1fr; }
  .header-toolbar { width: 100%; flex-wrap: wrap; }
  .workspace-search { min-width: 0; width: 100%; }
  .mock-shortcuts, .mock-metrics, #patientList, .timeline, .focus-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .workspace-shell { padding: 0; gap: 0; }
  .app-header { border-radius: 0 0 24px 24px; margin-bottom: 8px; padding-top: calc(14px + env(safe-area-inset-top)); }
  .header-toolbar { gap: 10px; }
  .mobile-hide, .workspace-search, .profile-pill { display: none; }
  .mock-shortcuts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .mock-shortcut { min-height: 84px; padding: 10px 8px; border-radius: 18px; }
  .mock-shortcut strong { font-size: 12px; }
  .mock-metrics, .focus-grid, #patientList, .timeline { grid-template-columns: 1fr; }
  .section-block { margin-top: 18px; }
  .bottom-nav { display: grid; }
}


/* V0.5.25 — responsividade e áreas clicáveis */
html { overflow-x: hidden; }
body { overflow-x: hidden; }
.app-shell { width: min(100%, 1500px); }
.workspace-shell { width: 100%; max-width: 1500px; margin: 0 auto; }
.workspace-main { width: 100%; min-width: 0; position: relative; }
.app-main { width: 100%; min-width: 0; }

/* Nenhuma tela inativa pode ficar por cima de outra e capturar cliques. */
.screen:not(.active) { display: none !important; pointer-events: none !important; }
.screen.active { position: relative; z-index: 1; pointer-events: auto; }
@media (min-width: 860px) {
  .screen[data-screen="home"].active {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: 22px;
  }
}

/* Áreas interativas sempre acima dos ornamentos. */
button,
[role="button"],
[data-nav-target],
input,
select,
textarea,
summary,
a {
  position: relative;
  z-index: 3;
  pointer-events: auto;
}
button,
[data-nav-target],
summary {
  touch-action: manipulation;
  -webkit-user-select: none;
  user-select: none;
}
button { min-width: 44px; min-height: 44px; }
button:focus-visible,
[data-nav-target]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid rgba(245, 184, 76, .38);
  outline-offset: 2px;
}
body::before,
body::after,
.hero-card::before,
.notice-card h2::after,
.section-heading h2::after,
.screen-title-row h1::after,
.patient-call-head h1::after,
.patient-join-card h1::after { display:none!important; content:none!important; }

/* Sidebar real e clicável */
.sidebar-link {
  cursor: pointer;
  min-height: 48px;
  line-height: 1.2;
}
.sidebar-link:hover { background: rgba(239, 240, 218, .88); }
.sidebar-link:active { transform: translateY(1px); }
.section-link {
  border: 0;
  background: transparent;
  min-height: 36px;
  padding: 6px 4px;
  box-shadow: none;
}

/* Navegação inferior: exatamente três itens no mobile/tablet. */
.bottom-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(100%, 720px); }
.nav-item { min-width: 0; min-height: 56px; }

/* Evita componentes maiores que a viewport. */
img, video, audio, canvas { max-width: 100%; }
.card, .metric-card, .quick-card, .mode-card, .patient-card, .insight-card, .timeline-item { min-width: 0; }
.button-row, .call-buttons, .share-link-row, .chat-form, .field-row { min-width: 0; }
.button-row > *, .call-buttons > *, .share-link-row > *, .chat-form > *, .field-row > * { min-width: 0; }

/* Desktop grande */
@media (min-width: 1101px) {
  .workspace-shell {
    grid-template-columns: clamp(235px, 18vw, 280px) minmax(0, 1fr);
    gap: clamp(18px, 2vw, 28px);
    padding: clamp(18px, 2vw, 30px);
  }
  .workspace-sidebar {
    top: 18px;
    max-height: calc(100vh - 36px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .app-header { top: 18px; z-index: 25; }
  .app-main { padding: 24px 22px 48px; }
  .bottom-nav { display: none !important; }
  .mock-shortcuts { grid-template-columns: repeat(4, minmax(120px, 1fr)); }
  .mock-metrics { grid-template-columns: repeat(4, minmax(140px, 1fr)); }
  #patientList { grid-template-columns: repeat(2, minmax(260px, 1fr)); }
  .timeline { grid-template-columns: repeat(2, minmax(280px, 1fr)); }
  .focus-grid { grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr); }
  .patient-insight-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .clinical-overview-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Notebook / tablet horizontal */
@media (min-width: 761px) and (max-width: 1100px) {
  .workspace-shell { grid-template-columns: 1fr; padding: 14px 18px 96px; }
  .workspace-sidebar { display: none !important; }
  .app-header {
    position: sticky;
    top: 0;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 14px 16px;
    border-radius: 0 0 22px 22px;
  }
  .header-toolbar { justify-content: flex-end; min-width: 0; }
  .workspace-search { min-width: 240px; width: min(390px, 48vw); }
  .profile-pill { display: none; }
  .app-main { padding: 20px 16px 110px; }
  .bottom-nav { display: grid !important; }
  .mock-shortcuts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .mock-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .focus-grid, #patientList, .timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .button-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Celular */
@media (max-width: 760px) {
  .app-shell, .workspace-shell, .workspace-main { width: 100%; max-width: 100%; }
  .workspace-shell { grid-template-columns: 1fr; padding: 0; }
  .workspace-sidebar { display: none !important; }
  .app-header {
    position: sticky;
    top: 0;
    z-index: 25;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 10px;
    width: 100%;
    padding: calc(11px + env(safe-area-inset-top)) 14px 11px;
    border-radius: 0 0 20px 20px;
    margin: 0;
  }
  .header-toolbar { width: auto; min-width: 0; flex-wrap: nowrap; }
  .workspace-search, .profile-pill, .mobile-hide { display: none !important; }
  .brand { font-size: clamp(21px, 6vw, 25px); }
  .brand::before { width: 30px; height: 30px; }
  .header-subtitle { font-size: 11px; }
  .app-main {
    width: 100%;
    padding: 14px 14px calc(100px + env(safe-area-inset-bottom));
  }
  .hero-card {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 18px;
    border-radius: 22px;
  }
  .hero-card::before { right: 12px; top: 10px; opacity: .58; }
  .hero-card > div:first-child { padding-right: 26px; }
  .hero-stat { width: 100%; min-width: 0; text-align: left; display: flex; align-items: center; gap: 10px; }
  .hero-stat strong { font-size: 26px; }
  .mock-shortcuts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .mock-shortcut { min-height: 92px; padding: 12px 8px; border-radius: 18px; }
  .mock-shortcut span { font-size: 25px; }
  .mock-shortcut strong { font-size: 12px; }
  .mock-metrics,
  .focus-grid,
  #patientList,
  .timeline,
  .patient-insight-grid,
  .clinical-overview-grid,
  .quick-grid,
  .mode-grid,
  .action-grid { grid-template-columns: 1fr !important; }
  .metric-card { min-height: 82px; }
  .button-row,
  .call-buttons,
  .field-row { grid-template-columns: 1fr; }
  .share-link-row { grid-template-columns: minmax(0,1fr) auto; }
  .chat-form { grid-template-columns: minmax(0,1fr) auto; }
  .patient-detail-head { align-items: flex-start; }
  #patientStartSessionBtn { width: 100%; }
  .clinical-tabs {
    position: sticky;
    top: 72px;
    z-index: 15;
    margin-left: -14px;
    margin-right: -14px;
    padding: 10px 14px;
    background: rgba(250,247,241,.94);
  }
  .clinical-tab { min-height: 42px; }
  .screen-title-row, .section-heading { align-items: flex-start; }
  .app-dialog {
    width: calc(100% - 16px);
    max-width: none;
    max-height: calc(100dvh - 16px);
    border-radius: 22px;
  }
  .dialog-body { padding: 16px; }
  .dialog-close { width: 44px; min-height: 44px; }
  .mood-picker { gap: 6px; }
  .mood-option { width: 44px; min-height: 44px; }
  .bottom-nav {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    padding: 7px 8px calc(7px + env(safe-area-inset-bottom));
  }
}

/* Telas realmente pequenas */
@media (max-width: 380px) {
  .app-main { padding-left: 10px; padding-right: 10px; }
  .mock-shortcuts { gap: 8px; }
  .mock-shortcut { padding: 10px 6px; }
  .card, .metric-card, .patient-card, .timeline-item { padding: 13px; }
  .share-link-row, .chat-form { grid-template-columns: 1fr; }
  .share-link-row button, .chat-form button { width: 100%; }
}

/* V0.5.25 — transcrição progressiva + evolução em texto corrido */
.transcription-status-card strong { color: #2f7e62; }
.live-transcription-note { margin-top: 6px; color: #58776a; font-size: 11px; font-weight: 700; }
.evolution-main-text {
  padding: 14px;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(245,249,244,.96), rgba(255,255,255,.92));
  border: 1px solid rgba(91,139,111,.14);
}
.evolution-main-text p { font-size: 15px; line-height: 1.62; }
@media (min-width: 720px) {
  .status-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
}
@media (max-width: 719px) {
  .status-grid { grid-template-columns: 1fr 1fr; }
}


/* V0.5.25 — evolução clínica única + abordagem TCC */
.evolution-single-dialog { width: min(calc(100% - 24px), 760px); }
.evolution-single-dialog .dialog-body { gap: 16px; }
.evolution-helper { margin: -4px 0 0; }
.evolution-date-field { max-width: 240px; }
.evolution-date-field input { margin-top: 8px; }
.evolution-editor-shell {
  overflow: hidden;
  border: 1px solid rgba(150, 145, 118, .24);
  border-radius: 20px;
  background: rgba(255,255,255,.88);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}
.evolution-editor-toolbar {
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(150,145,118,.18);
  background: linear-gradient(180deg, rgba(250,247,240,.96), rgba(247,244,237,.90));
  color: #596b63;
  font-size: 12px;
  letter-spacing: .08em;
}
.tcc-chip {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 10px;
  border-radius: 999px;
  background: #e7f3eb;
  color: #2f7e62;
  font-weight: 900;
  letter-spacing: .04em;
}
.evolution-editor-shell textarea {
  width: 100%;
  min-height: 360px;
  margin: 0;
  border: 0;
  border-radius: 0;
  padding: 20px;
  resize: vertical;
  background: rgba(255,255,255,.82);
  color: var(--ink);
  font: inherit;
  font-size: 16px;
  line-height: 1.7;
  outline: 0;
}
.evolution-editor-shell textarea:focus { box-shadow: inset 0 0 0 2px rgba(47,126,98,.18); }
.evolution-card-single .evolution-main-text { margin-top: 4px; }
.evolution-card-single .evolution-main-text p { font-size: 15.5px; line-height: 1.72; }
.evolution-mood-fieldset { background: rgba(251,249,244,.72); }
@media (max-width: 700px) {
  .evolution-single-dialog { width: calc(100% - 18px); max-height: 94dvh; }
  .evolution-single-dialog .dialog-body { padding: 18px; }
  .evolution-date-field { max-width: none; }
  .evolution-editor-shell textarea { min-height: 46dvh; padding: 16px; font-size: 16px; }
  .evolution-editor-toolbar { padding: 10px 12px; }
}


/* V0.5.25 — chat clínico por paciente */
.clinical-chat-tab { color:#8a6a20; }
.clinical-chat-tab.active { color:#fff; }
.clinical-chat-intro { display:flex; gap:14px; align-items:flex-start; margin-top:8px; background:linear-gradient(135deg,rgba(255,244,205,.78),rgba(232,246,237,.82)); }
.clinical-chat-intro p { margin:5px 0 0; color:var(--muted); font-size:13px; }
.clinical-chat-mark { width:44px; height:44px; border-radius:50%; flex:none; display:grid; place-items:center; background:linear-gradient(180deg,#ffe99f,#f2b83e); color:#6b4a13; font-size:22px; }
.patient-chat-suggestions { display:flex; gap:8px; overflow-x:auto; padding:12px 1px 4px; scrollbar-width:none; }
.patient-chat-suggestions::-webkit-scrollbar { display:none; }
.patient-chat-suggestions button { flex:none; min-height:38px; padding:8px 12px; border-radius:999px; background:#fff8df; color:#6f571e; border:1px solid rgba(209,171,70,.24); font-size:12px; }
.patient-ai-chat { min-height:330px; max-height:58vh; overflow:auto; margin-top:10px; padding:14px; display:flex; flex-direction:column; gap:12px; background:rgba(255,255,255,.72); }
.patient-ai-chat-empty { margin:auto; max-width:420px; text-align:center; color:var(--muted); font-size:14px; line-height:1.5; }
.patient-ai-message { max-width:min(88%,720px); padding:13px 15px; border-radius:18px; display:grid; gap:7px; }
.patient-ai-message.user { align-self:flex-end; background:linear-gradient(135deg,#2f7e62,#39785f); color:#fff; border-bottom-right-radius:6px; }
.patient-ai-message.assistant { align-self:flex-start; background:#fffdf8; border:1px solid rgba(145,140,105,.17); border-bottom-left-radius:6px; box-shadow:0 8px 20px rgba(95,82,52,.05); }
.patient-ai-message-head { display:flex; gap:12px; justify-content:space-between; align-items:center; font-size:11px; opacity:.78; }
.patient-ai-message-text { line-height:1.55; font-size:14px; overflow-wrap:anywhere; }
.patient-ai-sources { display:flex; flex-wrap:wrap; gap:5px; padding-top:3px; }
.patient-ai-sources span { padding:4px 7px; border-radius:999px; background:#edf5ef; color:#557365; font-size:10px; font-weight:700; }
.patient-ai-chat-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:9px; margin-top:10px; align-items:end; }
.patient-ai-chat-form textarea { width:100%; min-height:54px; max-height:160px; resize:vertical; margin:0; padding:13px 14px; border-radius:18px; border:1px solid rgba(153,148,113,.24); background:rgba(255,253,249,.94); font:inherit; }
.patient-ai-chat-form button { min-width:96px; }
.patient-ai-typing { align-self:flex-start; color:#6a756f; font-size:12px; padding:10px 12px; }
.patient-ai-typing span { display:inline-block; width:6px; height:6px; border-radius:50%; background:#d4a83e; margin-right:3px; animation:chatPulse 1s infinite alternate; }
.patient-ai-typing span:nth-child(2){animation-delay:.15s}.patient-ai-typing span:nth-child(3){animation-delay:.3s}
@keyframes chatPulse { from{opacity:.28; transform:translateY(0)} to{opacity:1; transform:translateY(-2px)} }
@media(max-width:600px){.patient-ai-chat{min-height:360px;max-height:54vh;padding:10px}.patient-ai-message{max-width:94%}.patient-ai-chat-form{grid-template-columns:1fr}.patient-ai-chat-form button{width:100%}.clinical-chat-intro{padding:14px}.patient-chat-suggestions{margin-right:-14px;padding-right:14px}}


/* V0.5.25 — consentimento único e sala expirada */
.consent-combined { padding: 15px; border-radius: 18px; background: linear-gradient(180deg, rgba(255,248,229,.90), rgba(255,255,255,.90)); border:1px solid rgba(188,153,77,.18); }
.consent-combined span { line-height:1.45; }
.patient-ended-card { border: 1px solid rgba(116,157,124,.18); }
.patient-ended-card .success-mark { background: linear-gradient(180deg,#e6f5e8,#c8e8d0); color:#2f7e62; }


/* V0.5.25 — sala profissional independente e retomada robusta */
.active-room-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin:0 0 16px;padding:14px 16px;border-radius:20px;background:linear-gradient(135deg,rgba(225,244,233,.96),rgba(255,247,218,.94));border:1px solid rgba(70,137,101,.20);box-shadow:0 12px 26px rgba(72,103,76,.10);}
.active-room-banner.hidden{display:none!important}.active-room-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#fff;font-size:22px}.active-room-copy{min-width:0}.active-room-copy strong,.active-room-copy span{display:block}.active-room-copy strong{color:#255b48}.active-room-copy span{margin-top:3px;color:#64766d;font-size:13px;line-height:1.35}.active-room-banner button{min-width:112px}
html.host-room-mode .workspace-sidebar,html.host-room-mode .app-header,html.host-room-mode #bottomNav,html.host-room-mode .active-room-banner{display:none!important}
html.host-room-mode .workspace-shell{display:block!important;padding:0!important}
html.host-room-mode .workspace-main{width:100%;max-width:1100px;margin:0 auto}
html.host-room-mode .app-main{padding:max(18px,env(safe-area-inset-top)) 18px max(28px,env(safe-area-inset-bottom));min-height:100vh}
html.host-room-mode .screen{display:none!important}
html.host-room-mode .screen[data-screen="online-room"].active{display:block!important;max-width:100%!important;margin:0 auto}
html.host-room-mode body{background:radial-gradient(circle at 8% 5%,rgba(245,184,76,.15),transparent 0 19%),radial-gradient(circle at 92% 90%,rgba(127,187,144,.16),transparent 0 18%),linear-gradient(180deg,#fbf5eb,#f5efe3)}
@media(max-width:700px){.active-room-banner{grid-template-columns:auto 1fr}.active-room-banner button{grid-column:1/-1;width:100%}}


/* V0.5.25 — saída segura da sala */
#returnToSystemBtn { width:100%; margin-top:12px; }
.host-room-unavailable #onlineRoomBack { display:inline-flex; }


/* V0.5.25 — câmera/microfone obrigatórios + tela cheia robusta do paciente */
.device-check-card {
  display: grid;
  gap: 0;
  border: 1px solid rgba(132, 142, 117, .20);
  border-radius: 18px;
  background: rgba(250, 249, 244, .86);
  overflow: hidden;
}
.device-check-row {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(132, 142, 117, .14);
  font-size: 13px;
}
.device-check-row:last-of-type { border-bottom: 0; }
.device-check-row strong { text-align: right; font-size: 12px; }
.device-state.ready { color: #2f7e62; }
.device-state.checking { color: #9b7625; }
.device-state.error { color: #a5453f; max-width: 58%; }
.device-help {
  padding: 12px 14px 14px;
  background: #fff5df;
  border-top: 1px solid #f1d39b;
  color: #6d5422;
  font-size: 12px;
  line-height: 1.45;
}
.device-help strong { display: block; margin-bottom: 5px; }
.device-help p { margin: 6px 0 0; }
.consent-combined { padding: 12px; border-radius: 16px; background: rgba(238,246,239,.72); border: 1px solid rgba(82,135,101,.14); }

/* Modo imersivo: fallback para iPhone/Safari quando Fullscreen API não está disponível. */
.patient-room-body.patient-immersive { overflow: hidden !important; background: #000 !important; }
.patient-room-body.patient-immersive .patient-room-shell { max-width: none; width: 100vw; height: 100dvh; padding: 0; margin: 0; }
.patient-room-body.patient-immersive .patient-call-head,
.patient-room-body.patient-immersive .chat-card { display: none !important; }
.patient-room-body.patient-immersive .patient-call-wrap { position: static; }
.patient-room-body.patient-immersive .call-stage,
.call-stage.immersive {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  z-index: 1000 !important;
  border-radius: 0 !important;
  background: #000 !important;
}
.patient-room-body.patient-immersive .call-stage .video-grid,
.call-stage.immersive .video-grid { height: 100% !important; margin: 0 !important; }
.patient-room-body.patient-immersive .video-card.remote,
.call-stage.immersive .video-card.remote {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: auto !important;
  border: 0 !important;
  border-radius: 0 !important;
}
.patient-room-body.patient-immersive .video-card.remote video,
.call-stage.immersive .video-card.remote video { object-fit: contain; background: #000; }
.patient-room-body.patient-immersive .video-card.local,
.call-stage.immersive .video-card.local {
  position: fixed !important;
  right: max(12px, env(safe-area-inset-right)) !important;
  top: max(64px, calc(env(safe-area-inset-top) + 42px)) !important;
  width: min(26vw, 160px) !important;
  height: auto !important;
  aspect-ratio: 3/4 !important;
  z-index: 1010 !important;
  margin: 0 !important;
  border: 2px solid rgba(255,255,255,.88) !important;
  border-radius: 16px !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.35) !important;
}
.patient-room-body.patient-immersive .stage-action,
.call-stage.immersive .stage-action {
  position: fixed !important;
  top: max(12px, env(safe-area-inset-top)) !important;
  left: 12px !important;
  right: auto !important;
  z-index: 1030 !important;
}
.patient-room-body.patient-immersive .call-controls-card {
  position: fixed !important;
  left: 12px !important;
  right: 12px !important;
  bottom: max(12px, env(safe-area-inset-bottom)) !important;
  z-index: 1020 !important;
  margin: 0 !important;
  padding: 10px !important;
  background: rgba(20,28,25,.72) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  backdrop-filter: blur(14px);
  box-shadow: 0 14px 34px rgba(0,0,0,.3) !important;
}
.patient-room-body.patient-immersive .call-controls-card .call-buttons { grid-template-columns: 1fr 1fr; }
.patient-room-body.patient-immersive .call-controls-card button { min-height: 44px; }
.patient-room-body.patient-immersive #patientLeaveBtn { margin-top: 8px; }
@media (max-width: 520px) {
  .device-check-row { align-items: flex-start; }
  .device-state.error { max-width: 62%; }
  .patient-room-body.patient-immersive .video-card.local { width: 28vw !important; max-width: 120px !important; }
}


/* V0.5.25 — qualidade adaptativa da videochamada */
.connection-chip-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.quality-chip{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.82);border:1px solid rgba(68,119,94,.16);color:#4f6a5e;font-size:12px;font-weight:800;white-space:nowrap}
@media(max-width:700px){.connection-chip-group{justify-content:flex-start}.quality-chip{font-size:11px;min-height:28px}}

/* V0.5.25 — sala de sessão limpa, estilo Meet/WhatsApp */
.meet-precall-card{max-width:760px;margin:clamp(18px,5vh,54px) auto 0;padding:clamp(20px,4vw,34px);border-radius:28px}
.meet-precall-card h1{margin:5px 0 8px}.meet-precall-actions{display:grid;grid-template-columns:1fr 1.2fr;gap:10px}
.room-hidden-meta{display:none!important}
.meet-call-shell{width:100%;margin:0 auto}
.meet-call-stage{position:relative;width:100%;height:min(82dvh,820px);min-height:520px;border-radius:28px;overflow:hidden;background:#0d1110;box-shadow:0 24px 70px rgba(0,0,0,.22);isolation:isolate}
.meet-video-grid{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;margin:0!important;display:block!important}
.meet-video-grid .video-card.remote{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;aspect-ratio:auto!important;border:0!important;border-radius:0!important;background:#0d1110!important}
.meet-video-grid .video-card.remote video{width:100%;height:100%;object-fit:cover;background:#0d1110}
.meet-video-grid .video-card.local{position:absolute!important;right:18px!important;top:76px!important;width:min(22%,210px)!important;max-width:none!important;height:auto!important;aspect-ratio:3/4!important;margin:0!important;border-radius:18px!important;border:2px solid rgba(255,255,255,.9)!important;box-shadow:0 14px 38px rgba(0,0,0,.38)!important;z-index:20!important;background:#1a211f!important}
.meet-video-grid .video-card.local video{object-fit:cover}
.room-topbar{position:absolute;z-index:40;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;gap:10px;pointer-events:none}
.room-status-pills{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.room-status-pills>*{pointer-events:auto}
.room-topbar .secure-chip,.room-topbar .quality-chip{background:rgba(14,20,18,.64);border-color:rgba(255,255,255,.14);color:#fff;backdrop-filter:blur(14px);box-shadow:0 6px 20px rgba(0,0,0,.16)}
.room-topbar .stage-action{position:static!important;pointer-events:auto;width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;display:grid;place-items:center;font-size:20px;background:rgba(14,20,18,.64)}
.meet-control-dock{position:absolute!important;z-index:45!important;left:50%!important;right:auto!important;bottom:max(18px,env(safe-area-inset-bottom))!important;transform:translateX(-50%);width:auto!important;max-width:calc(100% - 24px);margin:0!important;padding:9px 10px!important;border-radius:999px!important;background:rgba(17,23,21,.72)!important;border:1px solid rgba(255,255,255,.15)!important;box-shadow:0 16px 42px rgba(0,0,0,.34)!important;backdrop-filter:blur(18px);display:block!important}
.meet-call-buttons{display:flex!important;align-items:center;justify-content:center;gap:8px!important;grid-template-columns:none!important}
.meet-call-buttons button{min-width:54px!important;min-height:50px!important;padding:0 14px!important;border-radius:999px!important;border:1px solid rgba(255,255,255,.14)!important;background:rgba(255,255,255,.13)!important;color:#fff!important;box-shadow:none!important;font-weight:800!important;white-space:nowrap}
.meet-call-buttons button.danger{background:#d94b45!important;border-color:#d94b45!important;color:#fff!important}
.meet-call-buttons button.ghost{opacity:.65}
.meet-call-buttons button:disabled{opacity:.42;cursor:not-allowed}
.room-warning{position:absolute!important;z-index:44;left:50%;top:82px;transform:translateX(-50%);width:min(92%,620px);margin:0!important;background:rgba(103,49,39,.88)!important;color:#fff!important;border-color:rgba(255,255,255,.12)!important;backdrop-filter:blur(12px)}
.room-recording-panel{position:absolute!important;z-index:42;left:max(14px,env(safe-area-inset-left));bottom:max(92px,calc(env(safe-area-inset-bottom) + 78px));width:auto;max-width:min(360px,calc(100% - 28px));margin:0!important;background:rgba(14,20,18,.72)!important;color:#fff!important;border:1px solid rgba(255,255,255,.13)!important;backdrop-filter:blur(14px);border-radius:18px!important;padding:10px 12px!important}
.room-recording-panel .recording-label,.room-recording-panel .live-transcription-note{color:rgba(255,255,255,.78)!important}.room-recording-panel .timer{color:#fff!important}
html.host-room-mode body.session-call-active{background:#0d1110!important;overflow:hidden}
html.host-room-mode body.session-call-active .app-main{padding:0!important;min-height:100dvh!important}
html.host-room-mode body.session-call-active .screen[data-screen="online-room"].active{width:100%!important;height:100dvh!important;max-width:none!important;margin:0!important}
html.host-room-mode body.session-call-active #onlineRoomBack{display:none!important}
html.host-room-mode body.session-call-active #onlineLiveBlock{height:100dvh!important}
html.host-room-mode body.session-call-active .host-meet-stage{height:100dvh!important;min-height:0!important;border-radius:0!important;box-shadow:none!important}
.patient-room-body.patient-call-active{overflow:hidden;background:#0d1110!important}
.patient-room-body.patient-call-active .patient-room-shell{width:100vw!important;max-width:none!important;height:100dvh!important;margin:0!important;padding:0!important}
.patient-room-body.patient-call-active .patient-call-wrap{width:100%;height:100dvh;margin:0}
.patient-room-body.patient-call-active .patient-meet-stage{height:100dvh!important;min-height:0!important;border-radius:0!important;box-shadow:none!important}
.patient-room-body.patient-call-active .patient-ended-card{margin:20px}

/* Fullscreen nativo e fallback imersivo usam o mesmo visual. */
.call-stage:fullscreen,.call-stage:-webkit-full-screen,.call-stage.immersive{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;min-height:0!important;border-radius:0!important;background:#0d1110!important;z-index:9999!important;box-shadow:none!important}
.host-call-immersive{overflow:hidden!important;background:#000!important}
.host-call-immersive #onlineRoomBack{display:none!important}
.host-call-immersive .host-meet-stage{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;z-index:9999!important;border-radius:0!important}

/* Em pé: estilo chamada de vídeo, preenchendo toda a tela. */
@media (orientation:portrait){
  .meet-call-stage{height:78dvh;min-height:560px}
  .meet-video-grid .video-card.remote video{object-fit:cover!important}
  .meet-video-grid .video-card.local{right:max(12px,env(safe-area-inset-right))!important;top:max(70px,calc(env(safe-area-inset-top) + 54px))!important;width:min(31vw,142px)!important;aspect-ratio:3/4!important;border-radius:16px!important}
  .meet-control-dock{bottom:max(14px,env(safe-area-inset-bottom))!important}
  .meet-call-buttons{gap:6px!important}
  .meet-call-buttons button{min-width:48px!important;width:48px!important;height:48px!important;padding:0!important;font-size:18px!important}
  .meet-call-buttons button span{display:none!important}
  .room-status-pills .quality-chip{display:none}
  .room-recording-panel{bottom:max(78px,calc(env(safe-area-inset-bottom) + 66px))!important}
}

/* Deitado: mais próximo do Google Meet, preservando o quadro inteiro. */
@media (orientation:landscape){
  .meet-video-grid .video-card.remote video{object-fit:contain!important}
  .meet-video-grid .video-card.local{right:max(18px,env(safe-area-inset-right))!important;top:max(68px,calc(env(safe-area-inset-top) + 48px))!important;width:min(19vw,210px)!important;aspect-ratio:16/10!important}
}

@media(max-width:700px){
  .meet-precall-actions{grid-template-columns:1fr}.meet-precall-card{margin-top:8px;border-radius:22px}
  .meet-call-stage{border-radius:20px}
  .room-topbar{top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right))}
  .room-topbar .secure-chip{max-width:58vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}


/* V0.5.25 — revisão responsiva global: desktop, notebook, tablet e mobile */
html {
  width: 100%;
  max-width: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: 92px;
}
body {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.app-shell {
  width: 100% !important;
  max-width: none !important;
  overflow: clip;
}
.workspace-shell {
  width: min(100%, 1600px);
  max-width: 1600px;
}
.workspace-main,
.app-main,
.screen,
.section-block,
.card,
.highlight-patient-card,
.highlight-plan-card,
.mini-patient-row > div,
.patient-detail-head > div,
.section-heading > div,
.screen-title-row > div,
.timeline-item,
.insight-card > div,
.setting-line > * {
  min-width: 0;
}

/* O dashboard não deve criar uma segunda grade estrutural dentro do workspace. */
.screen[data-screen="home"].active {
  display: block !important;
}

/* Grids elásticos: respondem à largura real do conteúdo, inclusive com sidebar. */
.mock-shortcuts {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 140px), 1fr)) !important;
}
.mock-metrics,
.clinical-overview-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 155px), 1fr)) !important;
}
.focus-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr)) !important;
  align-items: stretch;
}
#patientList {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 275px), 1fr)) !important;
}
.timeline {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)) !important;
}
.patient-insight-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)) !important;
}
.insight-card:nth-child(3) { grid-column: auto !important; }
.clinical-document {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)) !important;
}
.quick-grid,
.mode-grid,
.action-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
}

/* Conteúdo e cards nunca podem ultrapassar sua coluna. */
.card,
.metric-card,
.mock-shortcut,
.patient-card,
.insight-card,
.timeline-item,
.clinical-field,
.settings-card,
.notice-card,
.hero-card {
  max-width: 100%;
}
.card *,
.metric-card *,
.patient-card *,
.insight-card *,
.timeline-item *,
.clinical-field *,
.setting-line *,
.focus-list li,
.muted-copy,
.patient-card-main small {
  overflow-wrap: anywhere;
  word-break: normal;
}
.highlight-patient-card,
.highlight-plan-card {
  min-height: 0;
  height: 100%;
}
.mini-patient-row {
  width: 100%;
  align-items: center;
}
.mini-patient-row strong,
.mini-patient-row small {
  display: block;
}
.mini-patient-row small {
  margin-top: 4px;
  color: var(--muted);
  line-height: 1.4;
}
.focus-list li { align-items: flex-start; line-height: 1.45; }
.focus-list li::before { flex: 0 0 24px; margin-top: 1px; }

/* Títulos e ações podem quebrar sem se sobrepor. */
.section-heading,
.screen-title-row,
.patient-detail-head,
.dialog-head,
.session-live-head {
  min-width: 0;
}
.section-heading,
.screen-title-row,
.dialog-head {
  flex-wrap: wrap;
}
.section-heading h2,
.screen-title-row h1,
.patient-detail-head h1,
.dialog-head h2,
.session-live-head h1 {
  max-width: 100%;
  text-wrap: balance;
}
.section-link,
.small-btn,
.icon-btn {
  flex: 0 0 auto;
}

/* Prontuário: abas estáveis, sem empilhar ou invadir umas às outras. */
.clinical-tabs {
  width: 100%;
  max-width: 100%;
  display: grid !important;
  grid-auto-flow: column;
  grid-auto-columns: minmax(116px, max-content);
  justify-content: start;
  gap: 8px;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.clinical-tabs::-webkit-scrollbar { display: none; }
.clinical-tab {
  width: auto;
  min-width: 0;
  min-height: 44px;
  padding: 9px 14px;
  scroll-snap-align: start;
  line-height: 1.15;
  white-space: nowrap;
}
.clinical-panel,
.clinical-panel > *,
.patient-ai-chat,
.patient-ai-chat-form,
.patient-chat-suggestions {
  min-width: 0;
  max-width: 100%;
}

/* Cabeçalho e workspace desktop: espaço útil previsível. */
@media (min-width: 1101px) {
  .workspace-shell {
    grid-template-columns: clamp(230px, 17vw, 270px) minmax(0, 1fr) !important;
    gap: clamp(18px, 2vw, 28px);
    padding: clamp(18px, 2vw, 28px);
  }
  .app-main {
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding: 24px clamp(18px, 2vw, 28px) 52px;
  }
  .app-header {
    width: 100%;
    max-width: 1240px;
    margin-left: auto;
    margin-right: auto;
  }
  .workspace-search { min-width: min(360px, 34vw); }
  .bottom-nav { display: none !important; }
}

/* Notebook/tablet: sem sidebar, mas sem virar celular cedo demais. */
@media (min-width: 761px) and (max-width: 1100px) {
  .workspace-shell { padding: 0 18px 96px !important; }
  .app-header {
    width: calc(100% + 36px);
    margin-left: -18px;
    margin-right: -18px;
    border-radius: 0 0 22px 22px;
  }
  .app-main {
    max-width: 980px;
    margin: 0 auto;
    padding: 22px 4px 112px !important;
  }
  .mock-shortcuts { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  .focus-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)) !important; }
  .clinical-tabs {
    position: sticky;
    top: 78px;
    z-index: 15;
    padding: 10px 0;
    background: rgba(250,247,241,.96);
    backdrop-filter: blur(14px);
  }
}

/* Celular: uma coluna limpa, boas margens, sem cortes laterais. */
@media (max-width: 760px) {
  .workspace-shell { padding: 0 !important; }
  .app-main {
    padding: 14px 14px calc(100px + env(safe-area-inset-bottom)) !important;
  }
  .hero-card {
    padding: 18px;
    gap: 14px;
  }
  .hero-card > div:first-child { padding-right: 0 !important; }
  .hero-card h1 { font-size: clamp(26px, 8vw, 32px); }
  .hero-card p { font-size: 13.5px; }
  .hero-stat {
    min-width: 0;
    width: 100%;
  }
  .mock-shortcuts {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px;
  }
  .mock-shortcut {
    min-height: 88px;
    padding: 11px 9px;
  }
  .mock-metrics,
  .clinical-overview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .mock-metrics .metric-card:last-child:nth-child(odd),
  .clinical-overview-grid .metric-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
  .focus-grid,
  #patientList,
  .timeline,
  .patient-insight-grid,
  .clinical-document,
  .quick-grid,
  .mode-grid,
  .action-grid {
    grid-template-columns: 1fr !important;
  }
  .section-block { margin-top: 22px; }
  .section-heading { gap: 10px; margin-bottom: 12px; }
  .section-heading > div { flex: 1 1 210px; }
  .section-heading h2 { font-size: clamp(21px, 6.4vw, 27px); }
  .screen-title-row h1,
  .patient-detail-head h1 { font-size: clamp(25px, 7.5vw, 31px); }
  .patient-detail-head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    align-items: center !important;
    margin: 4px 0 14px;
  }
  .avatar.large { width: 56px; height: 56px; font-size: 20px; }
  #patientStartSessionBtn { width: 100%; }

  .clinical-tabs {
    position: sticky;
    top: 66px;
    z-index: 18;
    margin: 12px -14px 14px !important;
    width: calc(100% + 28px);
    max-width: none;
    padding: 9px 14px 10px !important;
    grid-auto-columns: minmax(108px, max-content);
    background: rgba(250,247,241,.96);
    border-top: 1px solid rgba(151,146,111,.10);
    border-bottom: 1px solid rgba(151,146,111,.14);
    backdrop-filter: blur(14px);
  }
  .clinical-tab {
    min-height: 42px;
    padding: 8px 12px;
    font-size: 13px;
  }
  .clinical-overview-grid .metric-card {
    min-height: 82px;
  }
  .insight-card {
    padding: 14px;
    gap: 11px;
  }
  .timeline-head,
  .session-summary-card .session-title-row {
    flex-wrap: wrap;
  }
  .session-history-row { grid-template-columns: 1fr !important; }
  .session-history-actions { justify-content: flex-start; }
  .setting-line {
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
  }
  .setting-line strong { text-align: left; }
  .button-row,
  .call-buttons,
  .field-row { grid-template-columns: 1fr !important; }
  .app-dialog,
  .clinical-dialog,
  .report-dialog,
  .evolution-single-dialog {
    width: calc(100% - 16px) !important;
    max-width: none !important;
    max-height: calc(100dvh - 16px);
    margin: auto;
  }
  .dialog-body { padding: 16px; }
}

/* Telefones estreitos: sem apertar 2 colunas onde o texto perde leitura. */
@media (max-width: 430px) {
  .app-main { padding-left: 12px !important; padding-right: 12px !important; }
  .mock-shortcuts { gap: 8px; }
  .mock-shortcut { min-height: 84px; }
  .mock-metrics,
  .clinical-overview-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px;
  }
  .metric-card { padding: 12px; }
  .metric-card strong { font-size: 20px; }
  .clinical-tabs {
    margin-left: -12px !important;
    margin-right: -12px !important;
    width: calc(100% + 24px);
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  .section-heading .small-btn {
    min-height: 40px;
  }
}

@media (max-width: 350px) {
  .mock-shortcuts,
  .mock-metrics,
  .clinical-overview-grid {
    grid-template-columns: 1fr !important;
  }
  .mock-metrics .metric-card,
  .clinical-overview-grid .metric-card { grid-column: auto !important; }
  .section-heading { align-items: flex-start; }
  .section-heading .small-btn,
  .section-link { width: 100%; }
}

/* Orientação e altura reduzida: mantém navegação utilizável. */
@media (orientation: landscape) and (max-height: 560px) and (max-width: 1100px) {
  .app-header { position: relative; }
  .clinical-tabs { top: 0; }
  .bottom-nav { padding-top: 5px; padding-bottom: calc(5px + env(safe-area-inset-bottom)); }
}


/* V0.5.30 — navegação centrada no paciente */
.workspace-sidebar { align-content: start; }
.sidebar-nav { gap: 0; }
.sidebar-nav .sidebar-link { min-height: 56px; }
.profile-pill-button {
  appearance: none;
  font: inherit;
  cursor: pointer;
  text-align: left;
}
.profile-pill-button:hover { border-color: rgba(47,126,96,.24); box-shadow: 0 8px 22px rgba(41,78,63,.08); }
.patient-record-note {
  margin: 8px 0 2px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}
@media (min-width: 1101px) {
  .workspace-sidebar { min-height: min(620px, calc(100vh - 40px)); }
  .sidebar-quote { margin-top: auto; min-height: 170px; }
}
@media (max-width: 1100px) {
  .bottom-nav { grid-template-columns: repeat(2, minmax(0,1fr)) !important; max-width: 520px; }
}
@media (max-width: 760px) {
  .patient-record-note { margin-top: 6px; font-size: 12px; padding: 0 2px; }
}


/* V0.5.30 — identidade visual em aquarela: assets gerados para Isadora PSI */
.brand::before { display: none !important; }
.brand-mark {
  display: block;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  object-fit: contain;
  filter: drop-shadow(0 5px 9px rgba(174, 126, 34, .16));
}
.sidebar-brand-mark { width: 46px; height: 46px; flex-basis: 46px; }
.auth-brand-mark { width: 52px; height: 52px; flex-basis: 52px; }
.header-brand-mark { width: 38px; height: 38px; flex-basis: 38px; }

/* Cabeçalho global: textura botânica suave, mantendo contraste e legibilidade. */
.app-header {
  position: sticky;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(251,248,242,.95), rgba(251,248,242,.80) 62%, rgba(251,248,242,.92)),
    none center / cover no-repeat !important;
}
.app-header > * { position: relative; z-index: 1; }

/* Login com ornamento inferior, discreto e fora da área dos campos. */
.auth-gate {
  background:
    linear-gradient(180deg, rgba(247,245,242,.90), rgba(247,245,242,.96)),
    none left bottom / min(48vw, 650px) auto no-repeat,
    #f7f5f2 !important;
}
.auth-card { position: relative; z-index: 1; }

/* Home preservada para futuras entradas: banner de boas-vindas. */
.hero-card.clinical-hero {
  background:
    linear-gradient(90deg, rgba(255,252,247,.96) 0 54%, rgba(255,252,247,.73) 76%, rgba(255,252,247,.62)),
    none center / cover no-repeat !important;
}
.hero-card.clinical-hero::before { content: none !important; }

/* Tela principal de pacientes: mesma arte, aplicada como faixa de apresentação sem mudar a estrutura. */
.screen[data-screen="patients"] > .screen-title-row {
  position: relative;
  overflow: hidden;
  min-height: 126px;
  align-items: center;
  padding: 22px 26px;
  border: 1px solid rgba(144,140,102,.14);
  border-radius: 24px;
  background:
    linear-gradient(90deg, rgba(255,253,249,.97) 0 46%, rgba(255,253,249,.76) 72%, rgba(255,253,249,.46)),
    none center / cover no-repeat;
  box-shadow: 0 14px 30px rgba(126, 100, 52, .07);
}
.screen[data-screen="patients"] > .screen-title-row > * { position: relative; z-index: 2; }

/* Ornamento botânico flutuante: só decorativo, nunca captura cliques. */
.screen[data-screen="patients"]::after {
  content: "";
  position: absolute;
  z-index: 0;
  pointer-events: none;
  width: min(360px, 34vw);
  aspect-ratio: 4 / 3;
  top: 82px;
  right: -36px;
  background: none center / contain no-repeat;
  opacity: .13;
}
.screen[data-screen="patients"] > * { position: relative; z-index: 1; }

/* Prontuário individual: capa botânica com centro limpo para nome e dados. */
.patient-detail-head { position:relative; overflow:hidden; min-height:auto; padding:20px 22px !important; background:#fff !important; border-color:var(--line) !important; box-shadow:0 8px 24px rgba(25,30,36,.05) !important; }
.patient-detail-head > * { position: relative; z-index: 1; }
.patient-detail-head .avatar.large {
  box-shadow: 0 9px 20px rgba(131,96,34,.14);
  border: 2px solid rgba(255,255,255,.76);
}

/* Sidebar: um pequeno ramo em aquarela na área de frase, sem competir com a navegação. */
.sidebar-quote { position: relative; overflow: hidden; isolation: isolate; }
.sidebar-quote::before {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
  width: 210px;
  aspect-ratio: 4 / 3;
  top: -18px;
  right: -32px;
  background: none center / contain no-repeat;
  opacity: .28;
}

/* Estados vazios com ilustração; somente quando realmente não há conteúdo. */
.illustrated-empty {
  display: grid !important;
  justify-items: center;
  align-content: center;
  gap: 10px;
  width: 100%;
  padding: 18px 18px 20px !important;
  text-align: center;
}
.illustrated-empty img {
  display: block;
  width: min(100%, 310px);
  max-height: 220px;
  object-fit: contain;
  border-radius: 18px;
  mix-blend-mode: multiply;
}
.illustrated-empty p { max-width: 440px; margin: 0 auto !important; }
.patient-list-empty { grid-column: 1 / -1; min-height: 330px; }
.patient-list-empty img { width: min(100%, 360px); max-height: 250px; }
.compact-empty { min-height: 280px; background: transparent; }

@media (max-width: 859px) {
  .brand-mark { width: 34px; height: 34px; flex-basis: 34px; }
  .auth-brand-mark { width: 48px; height: 48px; flex-basis: 48px; }
  .auth-gate {
    background:
      linear-gradient(180deg, rgba(247,245,242,.94), rgba(247,245,242,.98)),
      none left bottom / 78vw auto no-repeat,
      #f7f5f2 !important;
  }
  .screen[data-screen="patients"] > .screen-title-row {
    min-height: 112px;
    padding: 18px 20px;
    background-position: 42% center;
  }
  .screen[data-screen="patients"]::after { width: 190px; right: -70px; opacity: .08; }
  .patient-detail-head {
    min-height: 126px;
    padding: 18px 18px !important;
    background-position: 56% center !important;
  }
  .illustrated-empty img { width: min(88%, 280px); max-height: 190px; }
  .patient-list-empty { min-height: 280px; }
}

@media (max-width: 520px) {
  .screen[data-screen="patients"] > .screen-title-row {
    min-height: 100px;
    padding: 16px;
    border-radius: 20px;
  }
  .screen[data-screen="patients"]::after { display: none; }
  .patient-detail-head { min-height: 116px; }
  .illustrated-empty { padding: 14px 12px 18px !important; }
  .illustrated-empty img { width: min(94%, 240px); max-height: 170px; }
}

/* V0.5.30 — acabamento, fluidez e perfil */
.profile-avatar-floral {
  overflow: hidden;
  padding: 4px;
  background: linear-gradient(145deg,#fff9e8,#f6e8b6);
}
.profile-avatar-floral img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}
.header-subtitle.hidden { display: none !important; }

.love-signature {
  margin: 18px 24px 26px;
  padding-top: 14px;
  border-top: 1px solid rgba(57,95,77,.10);
  color: #7c887f;
  font-size: 12px;
  line-height: 1.5;
  text-align: center;
  letter-spacing: .01em;
}

.app-loading-indicator {
  position: sticky;
  top: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 34px;
  margin: 0 20px;
  padding: 7px 12px;
  border-radius: 0 0 14px 14px;
  background: rgba(255,252,245,.94);
  border: 1px solid rgba(55,100,79,.10);
  border-top: 0;
  box-shadow: 0 7px 20px rgba(45,73,61,.06);
  color: #617168;
  backdrop-filter: blur(9px);
}
.app-loading-indicator.hidden { display: none !important; }
.app-loading-indicator span {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  border: 2px solid rgba(46,126,95,.18);
  border-top-color: #2f7e60;
  border-radius: 50%;
  animation: isadora-spin .75s linear infinite;
}
.app-loading-indicator small { font-size: 12px; }
@keyframes isadora-spin { to { transform: rotate(360deg); } }

.patient-list-skeleton { display: grid; gap: 12px; }
.patient-list-skeleton > div {
  min-height: 76px;
  border-radius: 20px;
  border: 1px solid rgba(47,84,67,.07);
  background: linear-gradient(100deg,#fffdf9 20%,#f6f0e5 38%,#fffdf9 56%);
  background-size: 220% 100%;
  animation: isadora-shimmer 1.25s ease-in-out infinite;
}
@keyframes isadora-shimmer { from { background-position: 120% 0; } to { background-position: -120% 0; } }

@media (max-width: 760px) {
  .love-signature { margin: 12px 16px 92px; font-size: 11px; }
  .app-loading-indicator { margin: 0 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .app-loading-indicator span,
  .patient-list-skeleton > div { animation: none; }
}


/* V0.5.30 — sala sem pausa de câmera + despedida acolhedora */
.meet-control-dock .meet-call-buttons { justify-content:center; }
.patient-farewell-card {
  position:relative;
  overflow:hidden;
  max-width:620px;
  min-height:520px;
  margin:max(7vh,32px) auto 24px;
  padding:clamp(28px,6vw,52px) clamp(22px,6vw,48px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  text-align:center;
  background:
    linear-gradient(180deg,rgba(255,255,255,.90),rgba(255,250,240,.95)),
    none center/cover no-repeat;
  border:1px solid rgba(198,156,61,.16);
  box-shadow:0 24px 60px rgba(68,88,73,.12);
}
.patient-farewell-card::before {
  content:''; position:absolute; inset:auto -80px -100px auto; width:300px; height:300px;
  background:none center/contain no-repeat;
  opacity:.14; transform:rotate(180deg); pointer-events:none;
}
.farewell-watercolor { width:112px; height:112px; display:grid; place-items:center; margin-bottom:2px; position:relative; z-index:1; }
.farewell-watercolor img { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 8px 18px rgba(127,91,23,.10)); }
.patient-farewell-card .eyebrow { position:relative; z-index:1; color:#78906f; letter-spacing:.16em; }
.patient-farewell-card h1 { position:relative; z-index:1; margin:0; color:#244d3f; font-size:clamp(32px,7vw,48px); line-height:1.02; }
.patient-farewell-card p { position:relative; z-index:1; max-width:440px; margin:4px auto 10px; color:#66776f; font-size:clamp(16px,3.8vw,18px); line-height:1.65; }
.patient-close-tab-btn { position:relative; z-index:1; min-width:180px; margin-top:8px; }
.patient-farewell-card .muted-copy { position:relative; z-index:1; max-width:420px; margin-top:4px; }
.close-session-tab-btn { width:100%; }
@media(max-width:620px){
  .patient-room-body { min-height:100dvh; }
  .patient-farewell-card { min-height:calc(100dvh - 32px); margin:16px; border-radius:28px; padding:34px 20px; }
  .farewell-watercolor { width:96px; height:96px; }
}

/* V0.5.30 corrigida — vídeos da chamada não são players interativos.
   Os controles da sessão ficam somente na barra própria da interface. */
.call-stage .call-media-video{pointer-events:none!important;-webkit-touch-callout:none!important;user-select:none!important;-webkit-user-select:none!important}
.call-stage .call-media-video::-webkit-media-controls,.call-stage .call-media-video::-webkit-media-controls-panel,.call-stage .call-media-video::-webkit-media-controls-play-button,.call-stage .call-media-video::-webkit-media-controls-start-playback-button{display:none!important;-webkit-appearance:none!important;opacity:0!important}

/* V0.5.34 — ação Novo paciente mais visível */
.new-patient-action {
  width: auto !important;
  min-width: 166px;
  height: 52px !important;
  padding: 0 20px !important;
  border-radius: 18px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 9px;
  background: linear-gradient(135deg, #2f7f63, #23664f) !important;
  color: #fff !important;
  border: 2px solid rgba(255,255,255,.78) !important;
  box-shadow: 0 12px 28px rgba(38, 104, 79, .28), 0 0 0 4px rgba(246, 194, 76, .16) !important;
  font-size: 15px !important;
  font-weight: 900;
  position: relative;
  z-index: 5 !important;
}
.new-patient-action > span { font-size: 27px; line-height: 1; font-weight: 500; }
.new-patient-action > strong { font-size: 14px; white-space: nowrap; letter-spacing: .01em; }
.new-patient-action:hover { filter: brightness(1.04); transform: translateY(-1px); }

/* Acesso administrativo seguro */
.admin-setup-card { margin-top: 18px; border-color: rgba(54, 124, 94, .22); background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(244,250,246,.92)); }
.admin-setup-card h2 { margin: 6px 0 8px; }
.admin-setup-form { display: grid; grid-template-columns: 1fr 1fr auto; gap: 12px; align-items: end; margin-top: 16px; }
.admin-setup-form label { margin: 0; }
.admin-setup-form .primary { min-height: 50px; white-space: nowrap; }
.admin-dashboard-screen { max-width: 1120px; margin: 0 auto; }
.admin-privacy-banner { display: grid; gap: 5px; margin-bottom: 18px; padding: 16px 18px; border-radius: 18px; background: #eef8f2; border: 1px solid #cce5d5; color: #315b48; }
.admin-privacy-banner span { font-size: 13px; line-height: 1.45; color: #577366; }
.admin-metrics-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; }
.admin-metric { min-height: 148px; display: flex; flex-direction: column; justify-content: center; }
.admin-metric > span { color: var(--muted); font-size: 13px; font-weight: 800; }
.admin-metric > strong { display: block; margin: 8px 0 5px; font-family: Georgia, 'Times New Roman', serif; font-size: 36px; color: var(--brand); }
.admin-metric small { color: var(--muted); line-height: 1.4; }
.admin-activity-card, .admin-redacted-card { margin-top: 14px; }
.admin-redacted-card { position: relative; overflow: hidden; background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(250,247,240,.92)); }
.redacted-row { display: grid; grid-template-columns: 130px 1fr; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); }
.redacted-row strong { display: inline-block; max-width: 330px; color: #78736c; letter-spacing: .14em; filter: blur(2.3px); user-select: none; }

@media (max-width: 900px) {
  .admin-setup-form { grid-template-columns: 1fr; }
  .admin-metrics-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .new-patient-action { min-width: 52px; width: 52px !important; padding: 0 !important; border-radius: 18px !important; }
  .new-patient-action > strong { display: none; }
  .new-patient-action > span { font-size: 30px; }
  .admin-metrics-grid { grid-template-columns: 1fr 1fr; }
  .admin-dashboard-head { align-items: flex-start; }
  .redacted-row { grid-template-columns: 90px 1fr; }
}
@media (max-width: 390px) {
  .admin-metrics-grid { grid-template-columns: 1fr; }
}


/* V0.5.35 — sessão manual, edição integral de relatório e ditado clínico */
.report-editor-dialog .dialog-body{max-width:860px}
.dialog-helper{margin:-4px 0 18px;color:var(--muted,#65756d);line-height:1.55}
.report-editor-fields{display:grid;gap:16px}
.report-editor-fields label,.manual-session-meta-grid label{display:grid;gap:8px;font-weight:800;color:var(--green-900,#214c3d)}
.report-editor-fields textarea{width:100%;resize:vertical;min-height:96px}
.manual-session-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.manual-session-meta-grid input,.manual-session-meta-grid select{width:100%}
.manual-dictation-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 18px;align-items:center;padding:16px 18px;margin:6px 0 18px;border:1px solid rgba(195,151,58,.26);border-radius:22px;background:linear-gradient(135deg,rgba(255,247,222,.92),rgba(238,247,237,.9));box-shadow:0 10px 30px rgba(54,88,67,.06)}
.manual-dictation-card p{margin:4px 0 0;color:var(--muted,#65756d);font-weight:500;line-height:1.45}
.manual-dictation-card small{grid-column:1/-1}
.manual-dictation-card button{white-space:nowrap}
.report-edit-btn{margin-top:14px;width:100%}
@media (max-width:720px){
  .manual-session-meta-grid{grid-template-columns:1fr}
  .manual-dictation-card{grid-template-columns:1fr}
  .manual-dictation-card button{width:100%}
  .report-editor-dialog .dialog-body{padding-bottom:max(24px,env(safe-area-inset-bottom))}
  .report-editor-fields textarea{min-height:120px}
}


/* V0.5.40 — ajustes solicitados pela Isa no vídeo */
.dialog-action-row{display:flex;gap:12px;align-items:center}
.dialog-action-row .primary{flex:1}
.danger-ghost{min-height:48px;padding:0 18px;border:1px solid rgba(154,61,51,.28);border-radius:16px;background:#fff7f4;color:#8b3c34;font-weight:800;cursor:pointer}
.danger-ghost:hover{background:#fff0eb}
.danger-ghost:disabled{opacity:.55;cursor:wait}
.session-history-row{min-width:0;overflow:hidden}
.session-history-meta{min-width:0;overflow:hidden}
.session-history-title{display:block;min-width:0;overflow-wrap:anywhere}
.session-summary-preview{margin:10px 0 0!important;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;line-height:1.55;overflow-wrap:anywhere;word-break:break-word}
.session-record-markers{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.session-record-markers span{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;background:#f1f7f0;color:#557166;font-size:11px;font-weight:750;line-height:1.2}
.session-history-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:0}
.report-editor-dialog{width:min(94vw,900px);max-width:94vw;overflow:hidden}
.report-editor-dialog .dialog-body,.report-editor-fields,.report-editor-fields label,.report-editor-fields textarea{min-width:0;max-width:100%;box-sizing:border-box}
.report-editor-fields textarea{overflow-wrap:anywhere;word-break:break-word}
@media (max-width:720px){
  .dialog-action-row{flex-direction:column-reverse;align-items:stretch}
  .dialog-action-row>*{width:100%}
  .report-editor-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);margin:auto}
  .report-editor-dialog .dialog-body{padding-left:16px!important;padding-right:16px!important;overflow-x:hidden}
  .session-history-row{padding:16px 14px!important;border-radius:22px}
  .session-history-actions{justify-content:flex-start}
  .session-summary-preview{-webkit-line-clamp:3}
}

/* V0.5.40 · Ambiente ADM de testes + log técnico */
.admin-test-notice { margin-top: 16px; border-color: rgba(201,151,48,.28); background: linear-gradient(145deg, rgba(255,252,241,.98), rgba(244,249,242,.96)); }
.admin-test-notice h2 { margin: 6px 0 8px; }
.error-log-card { margin-top: 16px; }
.error-log-list { display: grid; gap: 10px; margin-top: 12px; max-height: 460px; overflow: auto; }
.error-log-item { border: 1px solid var(--line); border-radius: 16px; padding: 12px 14px; background: rgba(255,255,255,.78); }
.error-log-item-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:6px; }
.error-log-item-head strong { color: var(--brand); }
.error-log-item-head small { color: var(--muted); white-space: nowrap; }
.error-log-meta { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.error-log-meta span { font-size:11px; font-weight:800; color:#587064; background:#eef6f0; border-radius:999px; padding:5px 8px; }
.admin-dashboard-back { margin: 0 0 10px; }
body.admin-mode .profile-pill-button #profileRole { color: #8b6720; }
@media (max-width:620px){ .error-log-item-head { display:grid; } .error-log-item-head small { white-space: normal; } }


/* V0.5.43 — rolagem do editor de sessão + indicador de gravação automática */
.report-editor-dialog{
  max-height:calc(100dvh - 24px)!important;
  overflow:hidden!important;
}
.report-editor-dialog .dialog-body{
  max-height:calc(100dvh - 24px);
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
}
.report-editor-dialog .dialog-head{
  position:sticky;
  top:-1px;
  z-index:12;
  padding-top:2px;
  padding-bottom:10px;
  background:linear-gradient(180deg,rgba(255,255,255,.98) 72%,rgba(255,255,255,.88));
  backdrop-filter:blur(10px);
}
.room-recording-panel.auto-recording{
  display:flex!important;
  box-shadow:0 10px 28px rgba(0,0,0,.22);
}
.room-recording-panel.auto-recording .recording-label{
  color:#fff!important;
  letter-spacing:.055em;
}
.room-recording-panel.auto-recording .recording-dot{
  width:12px;
  height:12px;
  background:#ff4d4d!important;
  box-shadow:0 0 0 5px rgba(255,77,77,.13);
}
@media(max-width:720px){
  .report-editor-dialog{max-height:calc(100dvh - 10px)!important;}
  .report-editor-dialog .dialog-body{
    max-height:calc(100dvh - 10px);
    padding-bottom:max(32px,calc(env(safe-area-inset-bottom) + 22px))!important;
  }
  .report-editor-dialog .dialog-head{top:-1px;}
}

/* V0.5.43 — indicador de gravação compacto no canto superior direito */
.room-recording-panel,
.room-recording-panel.auto-recording{
  position:absolute!important;
  z-index:46!important;
  top:max(12px,env(safe-area-inset-top))!important;
  right:max(66px,calc(env(safe-area-inset-right) + 54px))!important;
  left:auto!important;
  bottom:auto!important;
  width:auto!important;
  max-width:none!important;
  min-height:36px!important;
  margin:0!important;
  padding:5px 9px!important;
  border-radius:999px!important;
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  background:rgba(14,20,18,.62)!important;
  border:1px solid rgba(255,255,255,.13)!important;
  box-shadow:0 5px 16px rgba(0,0,0,.18)!important;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.room-recording-panel.hidden{display:none!important}
.room-recording-panel .recording-dot,
.room-recording-panel.auto-recording .recording-dot{
  width:7px!important;
  height:7px!important;
  flex:0 0 7px!important;
  margin:0!important;
  background:#ff5252!important;
  box-shadow:0 0 0 3px rgba(255,82,82,.12)!important;
}
.room-recording-panel>div:last-child{
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  line-height:1!important;
}
.room-recording-panel .recording-label,
.room-recording-panel.auto-recording .recording-label{
  margin:0!important;
  color:rgba(255,255,255,.9)!important;
  font-size:9px!important;
  font-weight:800!important;
  letter-spacing:.045em!important;
  white-space:nowrap!important;
}
.room-recording-panel .timer{
  margin:0!important;
  color:#fff!important;
  font-size:11px!important;
  font-weight:800!important;
  line-height:1!important;
  white-space:nowrap!important;
  font-variant-numeric:tabular-nums;
}
.room-recording-panel .live-transcription-note{display:none!important}
@media(max-width:520px){
  .room-recording-panel,
  .room-recording-panel.auto-recording{
    top:max(10px,env(safe-area-inset-top))!important;
    right:max(61px,calc(env(safe-area-inset-right) + 49px))!important;
    min-height:32px!important;
    padding:4px 7px!important;
    gap:5px!important;
  }
  .room-recording-panel .recording-label,
  .room-recording-panel.auto-recording .recording-label{font-size:8px!important}
  .room-recording-panel .timer{font-size:10px!important}
  .room-recording-panel .recording-dot,
  .room-recording-panel.auto-recording .recording-dot{width:6px!important;height:6px!important;flex-basis:6px!important}
}

/* V0.5.43 — gravação em segunda linha no mobile, sem sobrepor o status */
@media (max-width:700px){
  .room-recording-panel,
  .room-recording-panel.auto-recording{
    top:max(66px,calc(env(safe-area-inset-top) + 56px))!important;
    right:max(10px,env(safe-area-inset-right))!important;
    left:auto!important;
    min-height:28px!important;
    padding:4px 7px!important;
    gap:5px!important;
    max-width:calc(100% - 20px)!important;
  }
  .room-recording-panel .recording-label,
  .room-recording-panel.auto-recording .recording-label{
    font-size:7.5px!important;
    letter-spacing:.035em!important;
  }
  .room-recording-panel .timer{
    font-size:9.5px!important;
  }
  .room-recording-panel .recording-dot,
  .room-recording-panel.auto-recording .recording-dot{
    width:6px!important;
    height:6px!important;
    flex-basis:6px!important;
  }
  .meet-video-grid .video-card.local{
    top:max(112px,calc(env(safe-area-inset-top) + 102px))!important;
  }
}

@media (max-width:700px) and (orientation:landscape){
  .room-recording-panel,
  .room-recording-panel.auto-recording{
    top:max(58px,calc(env(safe-area-inset-top) + 48px))!important;
  }
  .meet-video-grid .video-card.local{
    top:max(98px,calc(env(safe-area-inset-top) + 88px))!important;
  }
}

/* V0.5.44 — revisão geral de fluidez, responsividade e safe areas */
html, body { max-width: 100%; }
body { min-height: 100dvh; }

/* Todos os formulários e controles respeitam a largura útil. */
form, fieldset, label, input, select, textarea, .dialog-body, .clinical-document,
.report-editor-fields, .anamnesis-editor-row, .manual-dictation-card { min-width: 0; max-width: 100%; box-sizing: border-box; }
input, select, textarea { width: 100%; max-width: 100%; box-sizing: border-box; }
textarea { overflow-wrap: anywhere; word-break: break-word; }

/* Rolagem consistente em todos os modais, não apenas no editor de sessão. */
.app-dialog,
.clinical-dialog,
.report-dialog,
.evolution-single-dialog,
.report-editor-dialog {
  max-height: calc(100dvh - 24px) !important;
  overflow: hidden !important;
}
.app-dialog > .dialog-body,
.clinical-dialog > .dialog-body,
.report-dialog > .dialog-body,
.evolution-single-dialog > .dialog-body,
.report-editor-dialog > .dialog-body {
  max-height: calc(100dvh - 24px);
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-gutter: stable;
  padding-bottom: max(24px, calc(env(safe-area-inset-bottom) + 18px));
}
.dialog-head {
  position: sticky;
  top: -1px;
  z-index: 14;
  background: linear-gradient(180deg, rgba(255,255,255,.985) 78%, rgba(255,255,255,.91));
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* O rodapé nunca fica escondido pelo menu inferior no mobile/tablet. */
@media (max-width: 1100px) {
  .love-signature { margin-bottom: calc(92px + env(safe-area-inset-bottom)); }
}

/* Abas clínicas: safe area real no iPhone, inclusive PWA instalada. */
@media (max-width: 760px) {
  .clinical-tabs {
    top: calc(58px + env(safe-area-inset-top)) !important;
    scroll-padding-inline: 12px;
  }
  .clinical-tab { flex: 0 0 auto; }
  .app-dialog,
  .clinical-dialog,
  .report-dialog,
  .evolution-single-dialog,
  .report-editor-dialog {
    width: calc(100vw - 12px) !important;
    max-width: calc(100vw - 12px) !important;
    max-height: calc(100dvh - 12px) !important;
  }
  .app-dialog > .dialog-body,
  .clinical-dialog > .dialog-body,
  .report-dialog > .dialog-body,
  .evolution-single-dialog > .dialog-body,
  .report-editor-dialog > .dialog-body {
    max-height: calc(100dvh - 12px) !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
  .dialog-head h2 { font-size: clamp(24px, 7vw, 31px); }
  .section-heading, .screen-title-row { flex-wrap: wrap; }
  .section-link { margin-left: auto; }
}

/* Telefones bem estreitos: menos risco de aperto horizontal. */
@media (max-width: 360px) {
  .clinical-tabs { grid-auto-columns: minmax(102px, max-content); }
  .clinical-tab { padding-inline: 10px; font-size: 12px; }
  .mood-picker { grid-template-columns: repeat(4, minmax(0,1fr)); }
  .mood-option { width: 100%; }
  .section-heading > div { flex-basis: 170px; }
}

/* Sala online: distribuição previsível entre status, gravação e miniatura local. */
@media (max-width: 700px) {
  .room-topbar {
    align-items: flex-start !important;
    gap: 8px !important;
    padding-left: max(10px, env(safe-area-inset-left));
    padding-right: max(10px, env(safe-area-inset-right));
  }
  .room-status-pills { min-width: 0; max-width: calc(100% - 58px); }
  .room-status-pills > * { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .room-recording-panel,
  .room-recording-panel.auto-recording {
    top: max(70px, calc(env(safe-area-inset-top) + 60px)) !important;
    right: max(10px, env(safe-area-inset-right)) !important;
    max-width: min(72vw, 250px) !important;
  }
  .meet-video-grid .video-card.local {
    top: max(116px, calc(env(safe-area-inset-top) + 106px)) !important;
    right: max(10px, env(safe-area-inset-right)) !important;
  }
}

@media (max-width: 700px) and (orientation: landscape) {
  .room-recording-panel,
  .room-recording-panel.auto-recording {
    top: max(54px, calc(env(safe-area-inset-top) + 46px)) !important;
    max-width: min(55vw, 230px) !important;
  }
  .meet-video-grid .video-card.local {
    top: max(92px, calc(env(safe-area-inset-top) + 84px)) !important;
  }
  .meet-control-dock { bottom: max(8px, env(safe-area-inset-bottom)) !important; }
}

/* Evita animações excessivas em aparelhos que pedem movimento reduzido. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* V0.5.46 — ações do editor de sessão */
.session-edit-actions{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:10px}
.session-edit-actions .primary{flex:1}
@media(max-width:560px){.session-edit-actions{flex-direction:column-reverse;align-items:stretch}.session-edit-actions .danger-ghost,.session-edit-actions .primary{width:100%}}

/* V0.5.48 · pacientes, consentimento e apresentação */
.birthday-reminder{margin:14px 0 16px;padding:14px 16px;border:1px solid rgba(218,165,63,.35);border-radius:18px;background:linear-gradient(135deg,#fff6d7,#f4f7e9);display:grid;gap:7px;color:var(--ink);box-shadow:0 10px 24px rgba(132,104,35,.08)}
.birthday-reminder>strong{font-size:15px}.birthday-reminder>div{display:flex;flex-wrap:wrap;gap:7px}.birthday-reminder span{background:rgba(255,255,255,.8);border:1px solid rgba(108,126,91,.14);border-radius:999px;padding:6px 9px;font-size:12px;color:var(--muted)}
.patient-group-heading{display:flex;align-items:center;justify-content:space-between;margin:16px 4px 6px;color:var(--green);font-weight:800}.patient-group-heading span{font-size:12px;background:#eaf5ee;padding:4px 8px;border-radius:999px}.patient-group-heading.inactive{margin-top:26px;color:#7c817d}.patient-group-heading.inactive span{background:#f0f1ef}.inactive-patient-card{opacity:.72;background:#f8f7f3}.patient-status-pill{font-size:11px;padding:5px 8px;border-radius:999px;font-weight:800}.patient-status-pill.inactive{background:#ececea;color:#6f746f}.patient-detail-copy{flex:1;min-width:0}.patient-edit-btn{margin-left:auto;white-space:nowrap}.patient-active-toggle{display:flex!important;align-items:center!important;gap:10px!important}.patient-active-toggle input{width:20px;height:20px}.patient-editor-actions{margin-top:8px}.patient-editor-actions .primary{margin-left:auto}.patient-editor-dialog .dialog-body{max-width:650px}

.consent-callout{padding:16px;border:2px solid #e4c96e;border-radius:18px;background:#fff9df;cursor:pointer;transition:.2s ease;align-items:center}.consent-callout input{width:26px!important;height:26px!important;flex:0 0 auto;margin:0!important;accent-color:var(--green)}.consent-callout span{display:grid;gap:5px}.consent-callout strong{font-size:15px;color:var(--ink)}.consent-callout small{font-size:12px;line-height:1.45;color:var(--muted)}.consent-callout.accepted{border-color:#6cab8f;background:#eef8f1;box-shadow:0 0 0 3px rgba(68,137,104,.08)}.consent-callout.needs-attention{animation:consentPulse .7s ease 2;border-color:#d35d4f;background:#fff0eb}.consent-hint{text-align:center;margin-top:-5px!important}.join-steps{display:grid;gap:8px;margin:2px 0}.join-step{display:flex;gap:10px;align-items:center;padding:9px 11px;border-radius:14px;background:rgba(255,255,255,.68);border:1px solid rgba(68,94,78,.09)}.join-step>span{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#edf6ef;color:var(--green);font-weight:900;flex:0 0 auto}.join-step>div{display:grid;gap:1px}.join-step strong{font-size:13px}.join-step small{font-size:11px;color:var(--muted)}
@keyframes consentPulse{50%{transform:scale(1.015);box-shadow:0 0 0 5px rgba(211,93,79,.12)}}

.selfie-mirror{transform:scaleX(-1)!important}.video-card.local .video-label{transform:none!important}.video-card.screen-preview{position:absolute!important;left:18px!important;bottom:110px!important;top:auto!important;width:min(28%,260px)!important;aspect-ratio:16/9!important;z-index:18!important;border:2px solid rgba(255,255,255,.9)!important;box-shadow:0 14px 38px rgba(0,0,0,.32)!important}.video-card.screen-preview video{object-fit:contain!important;background:#101312}.meet-call-buttons{flex-wrap:wrap}.meet-call-buttons button{min-width:54px}.meet-call-buttons button.sharing{background:#f2d66f!important;color:#26342e!important}
.presenter-device-card{max-width:780px;margin:5vh auto;padding:28px;display:grid;gap:14px}.presenter-device-card h2{margin:0}.presenter-screen-preview{width:100%;max-height:58vh;object-fit:contain;background:#0b0e0d;border-radius:18px;border:1px solid rgba(255,255,255,.1)}

.patient-screen-sharing .patient-video-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important}.patient-screen-sharing .patient-video-grid .video-card.remote-screen{display:block!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;border-radius:0!important;z-index:3!important;background:#0a0c0b!important}.patient-screen-sharing .patient-video-grid .video-card.remote-screen video{object-fit:contain!important}.patient-screen-sharing .patient-video-grid .video-card.remote{position:absolute!important;right:max(14px,env(safe-area-inset-right))!important;top:max(74px,calc(env(safe-area-inset-top) + 54px))!important;width:min(28vw,170px)!important;height:auto!important;aspect-ratio:3/4!important;z-index:20!important;border:2px solid rgba(255,255,255,.9)!important;border-radius:17px!important;overflow:hidden!important;box-shadow:0 12px 34px rgba(0,0,0,.35)!important}.patient-screen-sharing .patient-video-grid .video-card.local{right:max(14px,env(safe-area-inset-right))!important;top:auto!important;bottom:max(110px,calc(env(safe-area-inset-bottom) + 92px))!important;width:min(23vw,135px)!important;z-index:21!important}.remote-screen.hidden{display:none!important}

@media(max-width:700px){.patient-detail-head{align-items:flex-start;flex-wrap:wrap}.patient-edit-btn{margin-left:0;width:100%}.birthday-reminder{margin-top:10px}.video-card.screen-preview{left:10px!important;bottom:106px!important;width:min(36vw,170px)!important}.meet-call-buttons{gap:8px!important}.meet-call-buttons button{padding-inline:10px!important}.meet-call-buttons button span{display:none}.presenter-device-card{margin:2vh 12px;padding:20px}.join-step{padding:8px 9px}.consent-callout{padding:14px}.patient-screen-sharing .patient-video-grid .video-card.remote{width:min(31vw,138px)!important}.patient-screen-sharing .patient-video-grid .video-card.local{width:min(25vw,112px)!important}}
@media(max-width:390px){.birthday-reminder>div{display:grid}.manual-session-meta-grid,.session-edit-meta-grid{grid-template-columns:1fr!important}.patient-group-heading{margin-top:12px}.consent-callout strong{font-size:14px}.presenter-device-card{padding:16px}.meet-call-buttons button{width:52px!important;height:52px!important;padding:0!important}}


/* V0.5.48 · dispositivo auxiliar e avisos temporários */
.tablet-prep-block{margin-top:14px;padding:14px;border:1px solid rgba(195,154,64,.28);border-radius:18px;background:linear-gradient(135deg,rgba(255,249,222,.88),rgba(240,248,238,.9));display:grid;gap:8px}
.tablet-prep-block.hidden{display:none}
.tablet-prep-block strong{color:var(--green,#214f3d);font-weight:800}
.tablet-prep-block p{margin:0;color:#6e7773;font-size:14px;line-height:1.45}
.room-warning{transition:opacity .22s ease,transform .22s ease}
.room-warning.is-hiding{opacity:0;transform:translate(-50%,-6px)}
@media(max-width:640px){.tablet-prep-block{padding:12px;border-radius:16px}.tablet-prep-block .share-link-row{grid-template-columns:1fr}.tablet-prep-block .share-link-row button,.tablet-prep-block>button{width:100%}}


/* V0.5.52 · pareamento do tablet por QR */
.tablet-prep-block{margin-top:16px;padding:18px;border:1px solid rgba(78,111,89,.16);border-radius:20px;background:linear-gradient(145deg,rgba(248,251,246,.96),rgba(255,249,231,.96));display:grid;gap:12px}
.tablet-prep-block>strong{font-size:17px;color:var(--green)}
.tablet-prep-block>p{margin:0;color:var(--muted);line-height:1.55}
.tablet-qr-layout{display:grid;grid-template-columns:minmax(210px,260px) minmax(0,1fr);gap:18px;align-items:center;margin-top:4px}
.tablet-qr{width:100%;max-width:260px;aspect-ratio:1;border-radius:18px;padding:10px;background:#fff;border:1px solid rgba(40,65,51,.13);box-shadow:0 12px 28px rgba(49,67,55,.10);display:grid;place-items:center}
.tablet-qr svg{display:block;width:100%;height:100%}
.tablet-qr-steps{display:grid;gap:8px;align-content:center}.tablet-qr-steps strong{font-size:14px;color:var(--ink)}.tablet-qr-steps small{line-height:1.45;color:var(--muted);margin-top:4px}
.online-preview.room-prepared{border-color:rgba(83,139,105,.28);box-shadow:0 15px 36px rgba(72,111,85,.09)}
.online-preview.room-prepared #createOnlineRoomBtn{box-shadow:0 8px 20px rgba(56,103,76,.18)}
@media(max-width:620px){.tablet-qr-layout{grid-template-columns:1fr}.tablet-qr{margin-inline:auto;max-width:280px}.tablet-qr-steps{text-align:center}.tablet-prep-block .button-row{justify-content:center}}


/* V0.5.52 · QR do tablet dentro da chamada */
.tablet-qr-modal{position:fixed;inset:0;z-index:1200;background:rgba(7,13,10,.72);backdrop-filter:blur(8px);display:grid;place-items:center;padding:20px}
.tablet-qr-modal.hidden{display:none!important}
.tablet-qr-modal-card{position:relative;width:min(92vw,520px);max-height:92vh;overflow:auto;background:#fbf7ef;border:1px solid rgba(255,255,255,.24);border-radius:26px;padding:26px;box-shadow:0 28px 90px rgba(0,0,0,.45);text-align:center;color:var(--ink)}
.tablet-qr-modal-card h2{margin:6px 0 8px}.tablet-qr-modal-card p{margin:0 auto 16px;max-width:430px;color:var(--muted);line-height:1.5}
.tablet-qr-modal-close{position:absolute;right:12px;top:10px;width:42px;height:42px;border-radius:50%;border:0;background:rgba(35,55,45,.08);font-size:28px;line-height:1;color:var(--ink);cursor:pointer}
.tablet-live-qr{width:min(72vw,300px);aspect-ratio:1;margin:8px auto 10px;padding:12px;background:#fff;border:1px solid rgba(40,65,51,.14);border-radius:20px;box-shadow:0 14px 38px rgba(42,61,50,.14);display:grid;place-items:center}
.tablet-live-qr svg{display:block;width:100%;height:100%}.tablet-live-qr-actions{justify-content:center;margin-top:14px}
@media(max-width:620px){.tablet-qr-modal{padding:10px}.tablet-qr-modal-card{width:96vw;padding:22px 14px 18px;border-radius:22px}.tablet-live-qr{width:min(78vw,300px)}.tablet-live-qr-actions{display:grid;grid-template-columns:1fr}.tablet-live-qr-actions button{width:100%}}

/* V0.5.53 · janela própria arrastável + controles recolhíveis */
.draggable-self-view{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.draggable-self-view.self-view-dragging{cursor:grabbing;transition:none!important;box-shadow:0 18px 46px rgba(0,0,0,.46)!important}
.meet-video-grid .video-card.local.self-view-dragged{right:auto!important;bottom:auto!important;margin:0!important}
.controls-collapse-btn{
  position:absolute;right:-7px;top:-13px;z-index:3;width:28px;height:28px;min-height:28px;padding:0;border-radius:999px;
  border:1px solid rgba(255,255,255,.18);background:rgba(13,18,17,.78);color:#fff;font-size:16px;line-height:1;
  display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.24);backdrop-filter:blur(12px);opacity:.82;
}
.controls-collapse-btn:hover,.controls-collapse-btn:focus-visible{opacity:1}
.meet-control-dock.controls-minimized{
  width:44px!important;height:44px!important;min-width:44px!important;padding:0!important;border-radius:999px!important;
  display:grid!important;place-items:center!important;background:rgba(17,23,21,.58)!important;
}
.meet-control-dock.controls-minimized .meet-call-buttons{display:none!important}
.meet-control-dock.controls-minimized .controls-collapse-btn{
  position:static;width:44px;height:44px;min-height:44px;border:0;background:transparent;box-shadow:none;font-size:14px;letter-spacing:2px;opacity:.9;
}
@media(max-width:700px){
  .controls-collapse-btn{right:-4px;top:-11px;width:26px;height:26px;min-height:26px;font-size:14px}
  .meet-control-dock.controls-minimized{width:40px!important;height:40px!important;min-width:40px!important}
  .meet-control-dock.controls-minimized .controls-collapse-btn{width:40px;height:40px;min-height:40px}
}

/* V0.5.54 · entrada do paciente otimizada para celular */
@media (max-width: 700px) {
  .patient-room-body:not(.patient-call-active) {
    min-height: 100dvh;
    height: auto !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: auto;
    touch-action: pan-y;
  }
  .patient-room-body:not(.patient-call-active) .patient-room-shell {
    width: 100%;
    min-height: 100dvh;
    margin: 0;
    padding: max(10px, env(safe-area-inset-top)) 10px max(92px, calc(env(safe-area-inset-bottom) + 78px));
  }
  .patient-room-body:not(.patient-call-active) .patient-join-card {
    width: 100%;
    max-width: none;
    margin: 0 auto;
    padding: 16px 14px 20px;
    gap: 12px;
    border-radius: 22px;
    overflow: visible;
  }
  .patient-join-card .brand { font-size: 17px; }
  .patient-join-card .auth-tagline { font-size: 12px; line-height: 1.35; }
  .patient-join-card h1 { font-size: clamp(25px, 8vw, 31px); }
  .patient-join-card .join-steps { gap: 6px; }
  .patient-join-card .join-step {
    padding: 7px 9px;
    gap: 9px;
    min-width: 0;
  }
  .patient-join-card .join-step > span {
    width: 25px;
    height: 25px;
    font-size: 12px;
  }
  .patient-join-card .join-step > div { min-width: 0; }
  .patient-join-card .join-step strong { font-size: 12px; line-height: 1.25; }
  .patient-join-card .join-step small { font-size: 10.5px; line-height: 1.3; }
  .patient-join-card .consent-callout {
    width: 100%;
    padding: 14px 12px;
    gap: 12px;
    align-items: flex-start;
    scroll-margin-top: max(12px, env(safe-area-inset-top));
    touch-action: manipulation;
  }
  .patient-join-card .consent-callout input {
    width: 30px !important;
    height: 30px !important;
    margin-top: 1px !important;
  }
  .patient-join-card .consent-callout span { min-width: 0; }
  .patient-join-card .consent-callout strong {
    font-size: 14px;
    line-height: 1.35;
    overflow-wrap: anywhere;
  }
  .patient-join-card .consent-callout small {
    font-size: 11.5px;
    line-height: 1.45;
    overflow-wrap: anywhere;
  }
  .patient-join-card .consent-hint {
    margin: -2px 0 0 !important;
    font-size: 11px;
    line-height: 1.35;
  }
  .patient-join-card .device-check-card { border-radius: 16px; }
  .patient-join-card .device-check-row {
    min-height: 44px;
    padding: 10px 12px;
    flex-wrap: wrap;
    row-gap: 5px;
  }
  .patient-join-card .device-check-row > span { font-size: 12px; }
  .patient-join-card .device-check-row strong {
    max-width: 62%;
    font-size: 11px;
    overflow-wrap: anywhere;
  }
  .patient-join-card .device-help,
  .patient-join-card .warning {
    font-size: 12px;
    line-height: 1.45;
    overflow-wrap: anywhere;
  }
  #patientJoinBtn {
    position: fixed;
    z-index: 950;
    left: 12px;
    right: 12px;
    bottom: max(10px, env(safe-area-inset-bottom));
    width: auto;
    min-height: 54px;
    margin: 0;
    border-radius: 18px;
    box-shadow: 0 14px 38px rgba(24, 63, 50, .28), 0 0 0 1px rgba(255,255,255,.45);
  }
}

@media (max-width: 390px) {
  .patient-room-body:not(.patient-call-active) .patient-room-shell {
    padding-left: 8px;
    padding-right: 8px;
  }
  .patient-room-body:not(.patient-call-active) .patient-join-card {
    padding: 13px 11px 18px;
    gap: 10px;
    border-radius: 19px;
  }
  .patient-join-card .auth-tagline { display: none; }
  .patient-join-card .join-step small { display: none; }
  .patient-join-card .consent-callout { padding: 12px 10px; }
  .patient-join-card .consent-callout input { width: 29px !important; height: 29px !important; }
  #patientJoinBtn { left: 8px; right: 8px; min-height: 52px; }
}


/* PsiTodoDia commercial identity — structure inherited from the refined Psi Isa UX */
:root{--ink:#24213c;--muted:#77748d;--line:#e7e4ef;--paper:#fff;--soft:#f2f0f8;--brand:#5a4be7;--brand-soft:#eeeaff;--danger:#a13b53;background:#f6f5fb;color:#24213c}
html,body,.app-shell,.patient-room-body{background:#f6f5fb;color:var(--ink)}
.app-header{background:rgba(246,245,251,.94);border-bottom-color:rgba(231,228,239,.82)}
.hero-card{background:linear-gradient(135deg,#5141d8,#7164ee);box-shadow:0 12px 36px rgba(90,75,231,.18)}
.hero-card .eyebrow,.hero-card p,.hero-stat span{color:#e9e6ff}
.brand-mark{border-radius:11px!important;object-fit:cover!important}
.sidebar-quote{display:none!important}
.profile-avatar-floral{background:var(--brand-soft)!important}
.profile-avatar-floral img{object-fit:cover!important;border-radius:12px}
.clinical-hero:before,.clinical-hero:after,.workspace-shell:before,.workspace-shell:after,.patient-detail-head:before,.patient-detail-head:after{display:none!important;background:none!important}
.illustrated-empty img{width:54px!important;height:54px!important;object-fit:contain!important;opacity:.18!important;filter:none!important}
.love-signature{color:#9b97ad!important;font-size:10px!important;letter-spacing:.04em!important}
.nav-item.active{color:var(--brand);background:#eeeaff}.secondary{background:#eeeaff;color:#5141d8}.ghost{background:#f0eef5;color:#5e5a70}
.search-box,input[type="text"],input[type="tel"],input[type="date"],input[type="time"],select,.auth-card input[type="email"],.auth-card input[type="password"],textarea{border-color:#dcd8e8!important;background:#fff!important}
input:focus,select:focus,textarea:focus{border-color:#958af1!important;box-shadow:0 0 0 3px rgba(90,75,231,.12)!important}
.auth-gate{background:linear-gradient(180deg,#f4f1ff,#f8f7fb)}.auth-card{border-color:#e7e4ef;box-shadow:0 18px 50px rgba(55,45,120,.09)}
#adminSetupCard,#adminTestNotice,#openAdminDashboardBtn,.admin-dashboard-screen{display:none!important}
.agenda-toolbar{display:grid;grid-template-columns:minmax(180px,260px);margin-bottom:12px}.agenda-toolbar label{font-size:12px}.agenda-toolbar select{margin-top:6px}
.agenda-list{display:grid;gap:10px}.agenda-day-title{display:flex;align-items:center;justify-content:space-between;padding:8px 2px 2px;color:#5f5a75}.agenda-day-title strong{font-size:13px}.agenda-day-title span{font-size:10px;color:var(--muted)}
.agenda-item{display:grid;grid-template-columns:64px 4px minmax(0,1fr) auto;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:13px 14px;box-shadow:0 8px 26px rgba(55,45,120,.04)}
.agenda-time{font-size:13px;font-weight:900;font-variant-numeric:tabular-nums}.agenda-accent{height:40px;border-radius:999px;background:var(--brand)}.agenda-item.block .agenda-accent{background:#bdb8ca}.agenda-copy{min-width:0}.agenda-copy strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agenda-copy small{display:block;color:var(--muted);font-size:10.5px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agenda-edit{min-height:38px;padding:7px 10px;border-radius:11px;background:var(--brand-soft);color:var(--brand);font-size:11px}
@media(max-width:520px){.agenda-item{grid-template-columns:54px 4px minmax(0,1fr)}.agenda-edit{grid-column:1/-1}.field-row{grid-template-columns:1fr}.bottom-nav{grid-template-columns:repeat(4,1fr)}}


/* V0.1.2 — base visual neutra; identidade definitiva será criada depois */
:root{
  --ink:#20242b;
  --muted:#707782;
  --line:#e2e5e9;
  --paper:#ffffff;
  --soft:#f3f4f6;
  --brand:#343a43;
  --brand-soft:#eef0f2;
  --danger:#a13b53;
  background:#f5f6f7;
  color:#20242b;
}
html,body,.app-shell,.patient-room-body{background:#f5f6f7!important;color:var(--ink)!important}
.workspace-sidebar,.app-header,.auth-card,.card,.patient-card,.metric-card,.agenda-item{background:#fff!important}
.app-header{border-bottom-color:#e2e5e9!important}
.auth-gate{background:#f5f6f7!important}
.auth-card{box-shadow:0 12px 34px rgba(25,30,36,.06)!important;border-color:#e2e5e9!important}
.hero-card,.clinical-hero{background:#fff!important;color:var(--ink)!important;border:1px solid var(--line)!important;box-shadow:0 8px 24px rgba(25,30,36,.04)!important}
.hero-card .eyebrow,.hero-card p,.hero-stat span,.clinical-hero .eyebrow,.clinical-hero p{color:var(--muted)!important}
.hero-stat strong{color:var(--ink)!important}
.brand-subtitle,.auth-tagline,.sidebar-quote{display:none!important}
.brand::before,.workspace-shell::before,.workspace-shell::after,.clinical-hero::before,.clinical-hero::after,.patient-detail-head::before,.patient-detail-head::after,.patient-join-card::before,.patient-call-wrap::before{display:none!important;content:none!important;background:none!important}
.flower-sprig,.sunflower,.watercolor,.love-signature{display:none!important}
.nav-item.active{color:#20242b!important;background:#eef0f2!important}
.primary{background:#343a43!important;color:#fff!important}
.primary:hover{background:#252a31!important}
.secondary{background:#eef0f2!important;color:#343a43!important}
.ghost{background:#f3f4f6!important;color:#555d68!important}
.icon-btn{background:#343a43!important;color:#fff!important}
.profile-avatar-plain{background:#eef0f2!important;color:#343a43!important;font-weight:900!important;border-radius:12px!important}
.profile-pill-button:hover{border-color:#cfd4da!important;box-shadow:0 6px 18px rgba(25,30,36,.06)!important}
.profile-pill strong{color:#20242b!important}.profile-pill small{color:#707782!important}
.mock-shortcut{box-shadow:none!important;border:1px solid var(--line)!important;background:#fff!important;color:var(--ink)!important}
.mock-shortcut span{color:#59616c!important}
.illustrated-empty img{filter:grayscale(1)!important;opacity:.16!important}
.agenda-accent{background:#59616c!important}
.agenda-item.block .agenda-accent{background:#a8adb4!important}
.agenda-edit{background:#eef0f2!important;color:#343a43!important}

.signup-fields{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#f8f9fa;margin-bottom:2px}
.signup-fields.hidden{display:none!important}
.signup-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:10px}
.crp-registration-note{font-size:11px;line-height:1.45;color:var(--muted);padding:10px 11px;border-radius:10px;background:#fff;border:1px solid var(--line)}
.auth-card select{width:100%;min-height:45px;border:1px solid #dcdfe4;border-radius:12px;background:#fff;padding:0 12px;color:var(--ink)}

.profile-page-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:16px}
.profile-form-card,.profile-verification-card{padding:20px}
.profile-page-head{display:flex;align-items:center;gap:12px;padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.profile-page-avatar{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;background:#eef0f2;color:#343a43;font-size:17px;font-weight:900}
.profile-page-head strong,.profile-page-head small{display:block}.profile-page-head strong{font-size:16px;color:var(--ink)}.profile-page-head small{margin-top:4px;color:var(--muted);font-size:12px}
.profile-form-card>label,.profile-form-card .form-grid-two label{display:grid;gap:7px;font-size:12px;font-weight:800;color:#454b54;margin-bottom:13px}
.form-grid-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.profile-form-card input,.profile-form-card select,.profile-form-card textarea{width:100%;border:1px solid #dcdfe4;border-radius:12px;background:#fff;padding:11px 12px;color:var(--ink);font:inherit}
.profile-verification-card h2{margin:4px 0 16px}.profile-verification-card .muted-copy{margin-top:16px}
.profile-settings-shortcut{width:100%;border:1px solid var(--line);padding:15px 16px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer;color:var(--ink)}
.profile-settings-shortcut strong{font-size:12px;color:var(--muted)}

@media(max-width:760px){
  .signup-grid,.profile-page-grid,.form-grid-two{grid-template-columns:1fr}
  .profile-page-grid{gap:12px}
}


/* V0.1.3 — limpeza visual e responsividade refinada */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body, .workspace-main, .screen{overflow-x:hidden!important}
body::before,body::after,.screen[data-screen="patients"]::after,.hero-card::before,.notice-card h2::after,.section-heading h2::after,.screen-title-row h1::after,.patient-call-head h1::after,.patient-join-card h1::after,.sidebar-quote::before{display:none!important;content:none!important;background:none!important}
.patient-detail-head,.patient-detail-head.card{background:#fff!important;box-shadow:0 8px 24px rgba(25,30,36,.05)!important;border:1px solid var(--line)!important;min-height:auto!important}
.patient-detail-head .avatar.large{box-shadow:none!important;border:1px solid var(--line)!important}
.flower-sprig,.sunflower,.watercolor,.love-signature,.sidebar-quote,.auth-tagline{display:none!important}
.brand,.sidebar-brand{gap:10px!important}.brand{font-size:clamp(28px,2.4vw,34px)!important}.sidebar-brand{font-size:clamp(22px,1.8vw,28px)!important}
.brand-mark,.sidebar-brand-mark,.header-brand-mark{width:30px!important;height:30px!important;flex:none}
.workspace-shell{grid-template-columns:260px minmax(0,1fr)!important;gap:20px!important;padding:20px!important;max-width:1440px!important;overflow-x:hidden!important}
.workspace-sidebar{width:260px!important;min-width:260px!important;max-width:260px!important;overflow-x:hidden!important;overflow-y:auto!important;padding:18px!important;border-radius:24px!important;box-sizing:border-box!important}
.sidebar-brand-wrap{margin-bottom:14px!important}.sidebar-nav{display:grid!important;gap:10px!important;overflow:visible!important}.sidebar-link{justify-content:flex-start!important;width:100%!important;box-sizing:border-box!important;padding:14px 16px!important;border-radius:18px!important}.sidebar-link strong{font-size:16px!important}.sidebar-link span{width:22px;display:inline-flex;justify-content:center;flex:none}
.app-header{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:16px!important;padding:18px 20px!important;border-radius:24px!important;position:sticky;top:20px;z-index:25;box-sizing:border-box!important}.header-branding{min-width:0}.header-toolbar{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:12px!important;min-width:0!important;flex-wrap:nowrap!important}.workspace-search{width:min(420px,34vw)!important;min-width:220px!important}.workspace-search input{min-width:0}.profile-pill{min-width:0;max-width:260px}.profile-pill-button{padding:10px 12px!important;border:1px solid var(--line)!important;border-radius:18px!important;background:#fff!important}.profile-pill strong,.profile-pill small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.install-pill{white-space:nowrap}
.app-main{padding:22px 4px 40px!important}.screen{display:grid;gap:16px}.section-block{margin-top:0!important}.hero-card{padding:22px!important;border-radius:24px!important}.hero-card h1{font-size:clamp(28px,2.8vw,40px)!important;margin:6px 0 0!important}.hero-card p{max-width:520px!important}.hero-stat{min-width:120px!important}.mock-shortcuts{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important}.mock-shortcut{min-height:92px!important;padding:16px 14px!important;border-radius:20px!important}.mock-shortcut strong{font-size:15px!important}.mock-shortcut span{font-size:24px!important}.mock-metrics,.focus-grid,#patientList,.timeline,.patient-insight-grid,.profile-page-grid{gap:14px!important}
.focus-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}.focus-list{margin:8px 0 0 18px!important;padding:0}.focus-list li+li{margin-top:6px}.section-heading .eyebrow,.screen-title-row .eyebrow{margin-bottom:4px!important}.section-heading h2,.screen-title-row h1{margin:0!important}.section-link{padding:8px 0!important;color:var(--ink)!important;font-weight:700!important}
.screen-title-row{align-items:flex-end!important;gap:12px!important}.screen-title-row p{margin-top:6px!important}.icon-btn.new-patient-action{width:auto!important;min-width:160px!important;height:48px!important;padding:0 16px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;border-radius:16px!important;font-size:15px!important}.search-box{margin-bottom:0!important}
.metric-card,.card,.patient-card,.agenda-item,.insight-card,.timeline-item,.session-summary-card{border-radius:20px!important}.metric-card span,.metric-card small,.muted-copy,.privacy-note,.patient-record-note{line-height:1.45!important}.patient-record-note{margin-top:-4px!important}.clinical-tabs{padding-top:0!important}.clinical-tab{min-height:42px!important;padding:9px 13px!important}.clinical-chat-intro,.active-room-banner,.consent-combined{background:#f8f9fa!important;border-color:var(--line)!important}
@media (min-width:1101px){.header-branding{display:none!important}.workspace-search{width:min(460px,38vw)!important}.bottom-nav{display:none!important}}
@media (min-width:761px) and (max-width:1100px){.workspace-shell{grid-template-columns:1fr!important;padding:16px 16px 96px!important}.workspace-sidebar{display:none!important}.app-header{top:0!important;border-radius:0 0 22px 22px!important;padding:14px 16px!important}.header-branding{display:flex!important}.workspace-search{width:min(100%,420px)!important;min-width:180px!important}.profile-pill{display:flex!important;max-width:220px}.mock-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))!important}.focus-grid,#patientList,.timeline,.patient-insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.app-main{padding:18px 0 110px!important}}
@media (max-width:760px){.workspace-shell{grid-template-columns:1fr!important;padding:0!important;gap:0!important}.workspace-sidebar{display:none!important}.app-header{top:0!important;border-radius:0 0 18px 18px!important;padding:calc(10px + env(safe-area-inset-top)) 14px 10px!important;gap:10px!important;grid-template-columns:minmax(0,1fr) auto!important}.header-branding{display:flex!important;min-width:0}.brand{font-size:24px!important}.brand-mark,.header-brand-mark{width:28px!important;height:28px!important}.header-toolbar{gap:8px!important}.workspace-search{display:none!important}.install-pill{display:inline-flex!important;padding:7px 10px!important;font-size:11px!important}.profile-pill{display:none!important}.app-main{padding:14px 14px calc(88px + env(safe-area-inset-bottom))!important}.screen{gap:14px!important}.hero-card{padding:18px!important;border-radius:20px!important}.hero-card h1{font-size:30px!important}.hero-stat{display:flex!important;align-items:center!important;gap:10px!important}.mock-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.mock-shortcut{min-height:84px!important;padding:14px 10px!important}.mock-shortcut strong{font-size:14px!important}.mock-shortcut span{font-size:22px!important}.mock-metrics,.focus-grid,#patientList,.timeline,.patient-insight-grid,.profile-page-grid,.form-grid-two{grid-template-columns:1fr!important}.screen-title-row{align-items:flex-start!important;flex-wrap:wrap!important}.icon-btn.new-patient-action{width:100%!important;min-width:0!important}.search-box{margin-top:-2px!important}.clinical-tabs{position:sticky;top:64px!important;z-index:15;background:rgba(245,246,247,.96)!important;padding:4px 0 2px!important;margin:0!important}.bottom-nav{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;width:100%!important;left:0!important;transform:none!important;bottom:0!important;border-top:1px solid var(--line)!important}.nav-item{min-height:58px!important;border-radius:0!important}.nav-item small{font-size:11px!important}}
@media (max-width:420px){.brand{font-size:22px!important}.install-pill{display:none!important}.hero-card h1{font-size:28px!important}.hero-card p{font-size:13px!important}.metric-card,.card,.patient-card{padding:14px!important}}
.patient-room-shell,.patient-room-body,.floral-room{background:#f5f6f7!important}

/* V0.1.5 — correção definitiva: sem decoração floral e sem overflow lateral */
:root{--page-pad:clamp(14px,2vw,24px)}
html,body{width:100%;max-width:100%;overflow-x:hidden!important}
*,*::before,*::after{box-sizing:border-box}
body::before,body::after,
.hero-card::before,.hero-card::after,
.notice-card h2::after,.section-heading h2::after,.screen-title-row h1::after,
.patient-call-head h1::after,.patient-join-card h1::after,
.screen[data-screen="patients"]::after,
.workspace-shell::before,.workspace-shell::after,
.patient-detail-head::before,.patient-detail-head::after,
.patient-join-card::before,.patient-call-wrap::before,
.sidebar-quote::before{display:none!important;content:none!important;background:none!important;background-image:none!important}

.flower-sprig,.sunflower,.watercolor,.farewell-watercolor,.sidebar-quote,.brand-subtitle,.auth-tagline,.love-signature{display:none!important}
.patient-detail-head,.patient-detail-head.card,
.patient-room-shell,.patient-room-body,.floral-room{
  background:#fff!important;background-image:none!important;
}
.patient-room-body,.patient-room-shell,.floral-room{background:#f5f6f7!important}

.app-shell,.workspace-shell,.workspace-main,.app-main,.screen{min-width:0!important;max-width:100%!important;overflow-x:hidden!important}
.workspace-shell{width:min(100%,1440px)!important;margin:0 auto!important;grid-template-columns:244px minmax(0,1fr)!important;gap:18px!important;padding:18px!important}
.workspace-sidebar{
  width:244px!important;min-width:244px!important;max-width:244px!important;
  padding:16px!important;overflow-x:hidden!important;overflow-y:auto!important;
  scrollbar-gutter:auto!important;overscroll-behavior:contain!important;
}
.workspace-sidebar *{max-width:100%!important;min-width:0!important}
.sidebar-brand-wrap{padding:4px 2px 10px!important;overflow:hidden!important}
.sidebar-brand{font-size:24px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important}
.sidebar-brand .brand-mark,.sidebar-brand-mark{width:30px!important;height:30px!important;flex:0 0 30px!important}
.sidebar-nav{width:100%!important;overflow:hidden!important;gap:8px!important}
.sidebar-link{width:100%!important;max-width:100%!important;padding:13px 14px!important;overflow:hidden!important}
.sidebar-link strong{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}

.app-header{grid-template-columns:minmax(0,1fr) auto!important;gap:14px!important;overflow:hidden!important}
.header-toolbar{min-width:0!important;max-width:100%!important;overflow:hidden!important}
.workspace-search{min-width:0!important;width:min(430px,38vw)!important}
.profile-pill{min-width:0!important;max-width:230px!important;overflow:hidden!important}
.profile-pill>div:last-child{min-width:0!important;overflow:hidden!important}
.profile-pill strong,.profile-pill small{display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

.section-heading,.screen-title-row{min-width:0!important}
.section-heading>div,.screen-title-row>div{min-width:0!important}
.section-heading h2,.screen-title-row h1{word-break:normal!important;overflow-wrap:anywhere!important}
.mock-shortcuts,.clinical-overview-grid,.focus-grid,#patientList,.timeline,.patient-insight-grid{min-width:0!important}
.mock-shortcuts>* ,.clinical-overview-grid>* ,.focus-grid>* ,#patientList>* ,.timeline>* ,.patient-insight-grid>*{min-width:0!important}

@media (min-width:1101px){
  .header-branding{display:none!important}
  .bottom-nav{display:none!important}
}
@media (min-width:761px) and (max-width:1100px){
  .workspace-shell{grid-template-columns:1fr!important;padding:14px 16px 96px!important}
  .workspace-sidebar{display:none!important}
  .header-branding{display:flex!important}
  .app-header{top:0!important;border-radius:0 0 20px 20px!important}
  .workspace-search{width:min(360px,42vw)!important}
  .profile-pill{display:flex!important;max-width:210px!important}
  .mock-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .focus-grid,#patientList,.timeline,.patient-insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:760px){
  .workspace-shell{display:block!important;width:100%!important;padding:0!important}
  .workspace-sidebar{display:none!important}
  .app-header{top:0!important;width:100%!important;grid-template-columns:minmax(0,1fr) auto!important;padding:calc(10px + env(safe-area-inset-top)) 12px 10px!important;border-radius:0 0 18px 18px!important}
  .header-branding{display:flex!important;min-width:0!important}
  .header-branding .brand{font-size:22px!important;white-space:nowrap!important;overflow:hidden!important}
  .workspace-search,.profile-pill{display:none!important}
  .install-pill{font-size:10px!important;padding:6px 8px!important}
  .app-main{width:100%!important;padding:12px 12px calc(82px + env(safe-area-inset-bottom))!important}
  .hero-card{grid-template-columns:1fr!important;padding:16px!important}
  .hero-card h1{font-size:28px!important}
  .mock-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
  .mock-shortcut{min-width:0!important;padding:12px 8px!important;min-height:82px!important}
  .clinical-overview-grid,.focus-grid,#patientList,.timeline,.patient-insight-grid,.profile-page-grid,.form-grid-two{grid-template-columns:1fr!important}
  .screen-title-row{align-items:flex-start!important;flex-wrap:wrap!important}
  .new-patient-action{width:100%!important}
  .clinical-tabs{top:60px!important;margin:0!important;padding:6px 0!important;background:rgba(245,246,247,.97)!important}
  .bottom-nav{left:0!important;transform:none!important;width:100%!important;grid-template-columns:repeat(4,minmax(0,1fr))!important}
}
@media (max-width:390px){
  .install-pill{display:none!important}
  .header-branding .brand{font-size:20px!important}
  .mock-shortcuts{grid-template-columns:1fr 1fr!important}
}


/* V0.1.5 — perfil profissional e abordagem clínica */
.profile-completion-banner{display:flex;align-items:flex-start;gap:8px;flex-direction:column;padding:14px 16px;border:1px solid #d7dbe0;border-radius:16px;background:#f8f9fa;color:#30363d}
.profile-completion-banner strong{font-size:13px}.profile-completion-banner span{font-size:12px;line-height:1.45;color:#707782}.profile-completion-banner.hidden{display:none!important}
.field-caption{display:block;font-size:12px;font-weight:800;color:#454b54;margin-bottom:8px}.field-caption small{font-weight:600;color:#8a9099}
.approach-extra-block{padding:12px;border:1px solid var(--line);border-radius:14px;background:#fafbfc}
.approach-chip-grid{display:flex;flex-wrap:wrap;gap:8px}
.approach-chip{position:relative;display:inline-flex;align-items:center;cursor:pointer}.approach-chip input{position:absolute;opacity:0;pointer-events:none}.approach-chip span{display:inline-flex;align-items:center;min-height:34px;padding:7px 10px;border-radius:999px;border:1px solid #d9dde2;background:#fff;color:#59616c;font-size:11px;font-weight:700;transition:.15s}
.approach-chip input:checked+span{background:#343a43;color:#fff;border-color:#343a43}
.profile-approach-extra{margin-bottom:13px}.profile-verification-card #profileCrpStatus[data-status="verified"]{color:#2f7655}.profile-verification-card #profileCrpStatus[data-status="invalid"]{color:#a13b53}.profile-verification-card #profileCrpStatus[data-status="manual_review"]{color:#8b6717}.profile-verification-card #profileCrpStatus[data-status="pending"]{color:#6f7480}
@media(max-width:760px){.approach-chip-grid{gap:7px}.approach-chip span{min-height:36px;padding:8px 10px}.profile-completion-banner{padding:13px 14px}}


/* V5.6 — cadastro responsivo, senha e confirmação */
.auth-gate{padding:max(16px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom))!important;min-height:100svh!important}
.auth-card{width:min(100%,620px)!important;gap:13px!important;padding:clamp(18px,4vw,28px)!important}
.auth-card>label,.signup-fields>label,.signup-grid label{min-width:0;font-size:13px;font-weight:750;color:var(--ink)}
.auth-card input[type="text"],.auth-card input[type="tel"],.auth-card input[type="email"],.auth-card input[type="password"],.auth-card select{font-size:16px!important;width:100%!important;min-width:0!important;box-sizing:border-box!important}
.signup-fields{min-width:0;overflow:hidden}.signup-grid{min-width:0}.signup-grid>*{min-width:0}
.password-field-wrap{position:relative;margin-top:7px}.password-field-wrap #authPassword{margin-top:0!important;padding-right:50px!important}.password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:#4c535c;font-size:18px;cursor:pointer}
.password-requirements{display:grid;gap:6px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#f8f9fa;color:#747b84;font-size:11.5px}.password-requirements span.ok{color:#247049;font-weight:750}
.terms-check-row{display:grid!important;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:9px!important;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.terms-check-row input{width:18px!important;height:18px!important;margin:2px 0 0!important}.terms-check-row span{font-size:12px;line-height:1.5;color:#555d66}.inline-link{display:inline;padding:0;border:0;background:none;color:#2d5f99;text-decoration:underline;font:inherit;font-weight:750;cursor:pointer}
.auth-success-dialog{width:min(92vw,440px);border:0;border-radius:20px;padding:0}.auth-success-dialog::backdrop,.legal-dialog::backdrop{background:rgba(17,24,39,.48);backdrop-filter:blur(3px)}.auth-success-body{text-align:center;padding:28px!important}.auth-success-icon{width:54px;height:54px;margin:0 auto 12px;display:grid;place-items:center;border-radius:50%;background:#e9f7ef;color:#236746;font-size:28px;font-weight:900}.auth-success-body h2{margin:0 0 10px}.auth-success-body p{line-height:1.55}.legal-dialog{width:min(92vw,640px);max-height:82vh;border:0;border-radius:20px}.legal-dialog p{line-height:1.65;color:#555d66}
@media(max-width:760px){.auth-card{border-radius:20px!important}.signup-grid{grid-template-columns:1fr!important}.approach-chip-grid{max-height:180px;overflow:auto;padding-right:2px}.auth-card .primary,.auth-card .secondary{min-height:46px;font-size:15px}.auth-brand{font-size:26px!important}.auth-card h1{font-size:34px!important}.auth-card p{font-size:13px!important}.crp-registration-note{font-size:11px!important}.terms-check-row{grid-template-columns:20px minmax(0,1fr)!important}}
@media(max-width:380px){.auth-gate{padding-left:10px!important;padding-right:10px!important}.auth-card{padding:16px!important}.auth-card h1{font-size:30px!important}}


/* V5.8 — cadastro simplificado e senha refinada */
.approach-extra-block,.profile-approach-extra{display:none!important}
.auth-card{overflow:visible!important}
.password-field-wrap{
  position:relative!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  margin-top:7px!important;
}
.password-field-wrap #authPassword{
  display:block!important;
  width:100%!important;
  height:48px!important;
  margin:0!important;
  padding:0 52px 0 14px!important;
  border:1px solid #dcd8e8!important;
  border-radius:14px!important;
  background:#fff!important;
  font-size:16px!important;
  line-height:48px!important;
}
.password-field-wrap #authPassword:focus{
  border-color:#8d84d9!important;
  box-shadow:0 0 0 3px rgba(98,87,193,.10)!important;
}
.password-toggle{
  position:absolute!important;
  right:5px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  width:40px!important;
  height:40px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:10px!important;
  background:transparent!important;
  color:#5d6270!important;
  cursor:pointer!important;
  z-index:3!important;
}
.password-toggle:hover{background:#f3f3f6!important}
.password-toggle:focus-visible{outline:2px solid #6b63bc!important;outline-offset:1px!important}
.password-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.password-toggle svg circle{fill:none}
.password-toggle .hidden{display:none!important}
.password-requirements{
  display:grid!important;
  gap:12px!important;
  padding:14px!important;
  border:1px solid #e1dfe8!important;
  border-radius:16px!important;
  background:#fafafd!important;
  color:#696676!important;
  box-shadow:none!important;
}
.password-requirements.hidden{display:none!important}
.password-rules-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.password-rules-head>div{min-width:0}
.password-rules-head strong{display:block;color:#2f3040;font-size:12.5px;line-height:1.25}
.password-rules-head small{display:block;margin-top:3px;color:#8a8794;font-size:10.5px;line-height:1.35}
.password-strength-badge{
  flex:none;display:inline-flex;align-items:center;justify-content:center;
  min-width:42px;height:28px;padding:0 9px;border-radius:999px;
  background:#ecebf1;color:#76727e;font-size:11px;font-weight:850
}
.password-requirements.complete .password-strength-badge{background:#e7f5ed;color:#2d7454}
.password-progress{height:5px;overflow:hidden;border-radius:999px;background:#e9e7ee}
.password-progress span{display:block;width:0;height:100%;border-radius:999px;background:#777181;transition:width .2s ease,background .2s ease}
.password-requirements.complete .password-progress span{background:#3e8a64}
.password-rule-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.password-rule{
  display:grid;grid-template-columns:26px minmax(0,1fr);align-items:flex-start;gap:8px;
  min-width:0;padding:10px;border:1px solid #e5e3e9;border-radius:12px;background:#fff;
  transition:border-color .18s ease,background .18s ease
}
.password-rule .rule-icon{
  width:24px;height:24px;display:grid;place-items:center;border-radius:50%;
  background:#f0eff3;color:#aaa6b0;font-size:12px;font-weight:900
}
.password-rule b{display:block;color:#5f5b68;font-size:10.5px;line-height:1.25}
.password-rule small{display:block;margin-top:3px;color:#9995a0;font-size:9.5px;line-height:1.3}
.password-rule.ok{border-color:#cfe7d8;background:#fbfefc}
.password-rule.ok .rule-icon{background:#e4f4ea;color:#2e7c56}
.password-rule.ok b{color:#356a50}
.signup-grid{align-items:end!important}
.signup-fields .crp-registration-note{margin-top:2px!important}
@media(max-width:760px){
  .password-rule-list{grid-template-columns:1fr!important}
  .password-rule{padding:9px 10px!important}
  .password-field-wrap #authPassword{height:50px!important;line-height:50px!important}
  .password-toggle{width:42px!important;height:42px!important;right:4px!important}
  .password-rules-head strong{font-size:13px!important}
}


/* V0.1.9 — Agenda refinada */
.agenda-page-head{align-items:center!important}
.agenda-new-btn{display:inline-flex!important;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 16px!important;border-radius:15px!important;white-space:nowrap}
.agenda-controls{display:flex!important;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px!important;margin-bottom:14px}
.agenda-view-switch{display:inline-flex;gap:4px;padding:4px;background:#eef0f2;border-radius:13px}
.agenda-view-switch button{min-height:38px;padding:8px 13px;border-radius:10px;background:transparent;color:#626974;font-weight:800;font-size:12px}
.agenda-view-switch button.active{background:#fff;color:#20262e;box-shadow:0 2px 8px rgba(20,26,32,.08)}
.agenda-date-nav{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
.agenda-date-nav strong{min-width:170px;text-align:center;text-transform:capitalize;font-size:13px}
.agenda-nav-btn{width:38px;height:38px;border-radius:11px;background:#f4f5f6;color:#303741;font-size:22px;line-height:1}
.agenda-today-btn{min-height:38px;padding:7px 12px!important}
.agenda-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.agenda-summary article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px 15px;box-shadow:0 7px 20px rgba(28,34,40,.04)}
.agenda-summary span{display:block;color:#69717d;font-size:11px;font-weight:800}.agenda-summary strong{display:block;font-size:25px;margin:5px 0 2px;color:#20262e}.agenda-summary small{display:block;color:#8a919a;font-size:10px}
.agenda-calendar{min-width:0}
.agenda-day-panel,.agenda-list-view,.agenda-month-mobile{display:grid;gap:12px}
.agenda-day-heading{display:flex;justify-content:space-between;align-items:center;padding:4px 2px}
.agenda-day-heading span{display:block;color:#69717d;font-size:12px;text-transform:capitalize}.agenda-day-heading strong{display:block;margin-top:3px;font-size:15px}
.agenda-day-list{display:grid;gap:8px}
.agenda-event-card{width:100%;display:grid;grid-template-columns:84px minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 13px;box-shadow:0 6px 18px rgba(28,34,40,.035);min-width:0}
.agenda-event-card:hover{border-color:#cfd4d9;background:#fcfcfd}
.agenda-event-card.status-cancelled{opacity:.58}.agenda-event-card.status-completed{background:#fafbfb}
.agenda-event-card.type-block{background:#f6f7f8}.agenda-event-card.type-block .agenda-status-chip{background:#e6e8ea;color:#59616b}
.agenda-event-time{font-weight:900;font-size:12px;font-variant-numeric:tabular-nums;color:#303741}
.agenda-event-main{min-width:0}.agenda-event-main strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12.5px;color:#20262e}.agenda-event-main small{display:block;margin-top:3px;color:#7a818b;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.agenda-event-badges{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.agenda-status-chip,.agenda-session-chip{display:inline-flex;align-items:center;min-height:25px;padding:4px 8px;border-radius:999px;font-size:9.5px;font-weight:850;white-space:nowrap}
.agenda-status-chip{background:#eef0f2;color:#59616b}.status-confirmed .agenda-status-chip{background:#e7f5ee;color:#2b6b4d}.status-completed .agenda-status-chip{background:#edf2f6;color:#526474}.status-no_show .agenda-status-chip{background:#fff2dd;color:#94651a}.status-cancelled .agenda-status-chip{background:#f6e8eb;color:#925062}
.agenda-session-chip{background:#eceafb;color:#544b96}
.agenda-event-card.compact{display:block;padding:8px 9px;border-radius:11px;box-shadow:none;margin:0}
.agenda-event-card.compact .agenda-event-time{display:block;font-size:9.5px}.agenda-event-card.compact .agenda-event-main{display:block;margin-top:2px}.agenda-event-card.compact .agenda-event-main strong{font-size:10.5px}.agenda-event-card.compact .agenda-event-badges{display:none}
.agenda-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;min-width:0}
.agenda-week-day{min-width:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px}
.agenda-week-day.today{border-color:#9fa6ae;box-shadow:inset 0 0 0 1px #9fa6ae}
.agenda-week-day>header{display:flex;align-items:center;justify-content:space-between;padding:1px 2px 9px;border-bottom:1px solid #edf0f2;margin-bottom:8px}
.agenda-week-day>header span{font-size:10px;text-transform:uppercase;color:#818892;font-weight:850}.agenda-week-day>header strong{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:#f3f4f5;font-size:12px}
.agenda-week-day.today>header strong{background:#303741;color:#fff}
.agenda-week-events{display:grid;gap:6px}.agenda-week-empty{display:block;padding:14px 2px;color:#a2a7ae;text-align:center;font-size:10px}
.agenda-month-weekdays,.agenda-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.agenda-month-weekdays{padding:0 5px 5px}.agenda-month-weekdays span{text-align:center;color:#858b94;font-size:10px;font-weight:850;text-transform:uppercase}
.agenda-month-day{min-height:128px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px;min-width:0}
.agenda-month-day.outside{opacity:.38}.agenda-month-day.today{border-color:#969da6}.agenda-month-date{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#f4f5f6;color:#303741;font-weight:850;font-size:11px;margin-bottom:6px}.agenda-month-day.today .agenda-month-date{background:#303741;color:#fff}
.agenda-month-events{display:grid;gap:4px}.agenda-more-day{font-size:9.5px;font-weight:800;color:#68707b;text-align:left;background:transparent;padding:3px 2px}
.agenda-empty{display:grid!important;place-items:center;text-align:center;padding:38px 18px!important;min-height:220px}.agenda-empty>span{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#f0f2f3;color:#59616b;font-size:22px}.agenda-empty strong{margin-top:12px;font-size:16px}.agenda-empty p{margin:5px 0 15px;color:#7b828c;font-size:12px}
.agenda-day-title{display:flex;align-items:center;justify-content:space-between;padding:8px 2px 3px;color:#5f6670}.agenda-day-title strong{font-size:12px;text-transform:capitalize}.agenda-day-title span{font-size:10px;color:#8a9098}
.agenda-dialog{width:min(760px,calc(100vw - 28px))!important}.agenda-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.agenda-form-grid.three{grid-template-columns:1fr 1fr 1fr}.field-help{font-weight:500;color:#9aa0a8;font-size:10px}
.agenda-context-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}.agenda-dialog-actions{justify-content:space-between!important}
@media(max-width:1080px){
  .agenda-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .agenda-week-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .agenda-week-day:nth-child(n+5){grid-column:auto}
}
@media(max-width:760px){
  .agenda-page-head{align-items:stretch!important}.agenda-new-btn{width:100%}
  .agenda-controls{display:grid!important;gap:10px;padding:10px!important}
  .agenda-view-switch{display:grid;grid-template-columns:repeat(4,1fr);width:100%}
  .agenda-view-switch button{padding:7px 5px;font-size:11px}
  .agenda-date-nav{display:grid;grid-template-columns:38px minmax(0,1fr) 38px auto;width:100%}.agenda-date-nav strong{min-width:0;font-size:12px}
  .agenda-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.agenda-summary article{padding:12px}.agenda-summary strong{font-size:21px}
  .agenda-week-grid{grid-template-columns:1fr}.agenda-week-day{padding:10px}.agenda-week-day>header{margin-bottom:7px}.agenda-week-events{gap:6px}
  .agenda-event-card{grid-template-columns:64px minmax(0,1fr);gap:9px;padding:11px}.agenda-event-badges{grid-column:1/-1;justify-content:flex-start;padding-left:73px;margin-top:-3px}
  .agenda-form-grid,.agenda-form-grid.three{grid-template-columns:1fr}.agenda-dialog{width:calc(100vw - 18px)!important}.agenda-dialog .dialog-body{padding:18px!important}
  .agenda-context-actions>*{flex:1}.agenda-dialog-actions{display:grid!important;grid-template-columns:1fr 1fr}.agenda-dialog-actions>*{width:100%}
}
@media(max-width:420px){
  .agenda-date-nav{grid-template-columns:36px minmax(0,1fr) 36px}.agenda-today-btn{grid-column:1/-1;width:100%}.agenda-summary{grid-template-columns:1fr 1fr}.agenda-event-time{font-size:11px}.agenda-event-badges{padding-left:0}
}


/* V0.1.10 — conflito de agenda + recuperação de senha */
.auth-password-actions{display:flex;justify-content:flex-end;margin-top:-5px;margin-bottom:3px}
.auth-forgot-link{border:0;background:transparent;color:#515964;font-size:11.5px;font-weight:800;padding:3px 0;cursor:pointer}
.auth-forgot-link:hover{text-decoration:underline;color:#20262e}

.recovery-dialog{width:min(520px,calc(100vw - 24px))!important}
.recovery-dialog .dialog-body{display:grid;gap:15px}
.recovery-message{padding:11px 12px;border-radius:12px;font-size:11.5px;line-height:1.5;border:1px solid #dde1e5;background:#f6f7f8;color:#58616b}
.recovery-message[data-type="success"]{border-color:#cfe6d9;background:#edf8f2;color:#2e6549}
.recovery-message[data-type="error"]{border-color:#efd1d8;background:#fff1f4;color:#8e4558}
.recovery-actions{justify-content:flex-end!important}.recovery-actions.single{display:block!important}.recovery-actions.single .primary{width:100%}
.reset-rules{display:block!important;margin-top:0!important}

.conflict-dialog{width:min(540px,calc(100vw - 24px))!important}
.conflict-dialog .dialog-body{display:grid;gap:14px;padding:25px!important}
.conflict-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#fff1dd;color:#9b6816;font-size:23px;font-weight:950;border:1px solid #f2ddb8}
.conflict-copy h2{margin:4px 0 6px;font-size:22px;letter-spacing:-.025em}
.conflict-existing{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 10px;align-items:center;margin-top:12px;padding:12px 13px;border:1px solid #e3e5e8;background:#fafbfb;border-radius:13px}
.conflict-existing>span{grid-row:1/3;display:grid;place-items:center;min-width:72px;padding:7px 9px;border-radius:10px;background:#eef0f2;color:#5a626c;font-size:9.5px;font-weight:850}
.conflict-existing strong{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conflict-existing small{font-size:10.5px;color:#747b84}
.conflict-recommendation{display:grid;gap:3px;padding:11px 12px;border-radius:12px;background:#f1f4f6;color:#58616b}
.conflict-recommendation strong{font-size:10px;text-transform:uppercase;letter-spacing:.06em}.conflict-recommendation span{font-size:11.5px}
.conflict-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.conflict-actions .text-danger-btn{grid-column:1/-1;border:0;background:transparent;color:#955064;padding:7px;font-size:10.5px;font-weight:800;cursor:pointer}
.conflict-actions .text-danger-btn:hover{text-decoration:underline}
@media(max-width:560px){
  .conflict-dialog .dialog-body,.recovery-dialog .dialog-body{padding:19px!important}
  .conflict-actions{grid-template-columns:1fr}
  .conflict-actions .text-danger-btn{grid-column:auto}
  .recovery-actions{display:grid!important;grid-template-columns:1fr 1fr}.recovery-actions>*{width:100%}
}


/* V0.1.11 — fluxo clínico consolidado */
.report-readonly-reference{display:grid;gap:5px;padding:12px 13px;border:1px dashed #dfe3e6;border-radius:13px;background:#fafbfb;color:#4d5560}
.report-readonly-reference small{font-size:10.5px;font-weight:500;color:#858c95;line-height:1.45}
.evolution-support-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
.evolution-support-grid>div{padding:11px 12px;border:1px solid #e6e8eb;border-radius:12px;background:#fafbfb}
.evolution-support-grid span{display:block;color:#7b828b;font-size:9.5px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.evolution-support-grid p{margin:5px 0 0;font-size:11.5px;line-height:1.5;color:#4e5660;white-space:pre-wrap}
.evolution-extra-line{display:grid;grid-template-columns:110px minmax(0,1fr);gap:9px;margin-top:9px;padding-top:9px;border-top:1px solid #eceef0;font-size:11px;line-height:1.5}
.evolution-extra-line strong{color:#646c76}.evolution-extra-line span{color:#4e5660;white-space:pre-wrap}
.session-record-markers{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.session-record-markers span{padding:4px 7px;border-radius:999px;background:#eef4f1;color:#3e6a56;font-size:9.5px;font-weight:800}
@media(max-width:700px){.evolution-support-grid{grid-template-columns:1fr}.evolution-extra-line{grid-template-columns:1fr;gap:3px}}


/* V0.1.12 — sessão presencial + sala online acessíveis */
.session-flow-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.session-flow-guide span{display:flex;align-items:center;gap:8px;padding:10px 11px;border:1px solid #e4e6e8;border-radius:12px;background:#fafbfb;color:#626a74;font-size:10.5px;font-weight:750}
.session-flow-guide b{display:grid;place-items:center;width:22px;height:22px;border-radius:8px;background:#313841;color:#fff;font-size:10px;flex:none}
.recording-consent-row{padding:13px 14px!important;border:1px solid #dfe3e6!important;border-radius:14px!important;background:#fff!important}
.recording-consent-row span{display:grid;gap:3px}.recording-consent-row strong{font-size:12px;color:#242b33}.recording-consent-row small{font-size:10.5px;line-height:1.45;color:#7c838c}
.session-start-recording{width:100%;min-height:50px;margin-top:10px;font-size:14px!important}
.recording-permission-note{margin:7px 0 0;color:#858c95;font-size:10px;text-align:center}
.online-preview{border:1px solid #dfe3e6!important;background:#fff!important}
.online-preview h2{margin-bottom:6px}.online-preview .button-row{align-items:stretch}
.online-preview #createOnlineRoomBtn{min-height:48px}
@media(max-width:700px){
  .session-flow-guide{grid-template-columns:1fr}
  .session-flow-guide span{min-height:42px}
  .online-preview .button-row{display:grid!important;grid-template-columns:1fr}
  .online-preview .button-row>*{width:100%!important}
}

/* V0.1.14 — falta visível + financeiro */
.agenda-event-card.status-no_show{border-color:#e5a7b0;background:#fff6f7}
.agenda-event-card.status-no_show:hover{border-color:#d98996;background:#fff1f3}
.status-no_show .agenda-status-chip{background:#f9d9de!important;color:#9d3445!important;border:1px solid #efbec6}
.finance-shortcut{margin-top:10px}
.finance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}
.finance-summary article{padding:16px}.finance-summary span{display:block;font-size:10px;font-weight:850;color:#767e88;text-transform:uppercase;letter-spacing:.05em}.finance-summary strong{display:block;margin:7px 0 3px;font-size:23px}.finance-summary small{color:#90969e;font-size:10px}
.finance-toolbar{padding:9px!important;margin-bottom:12px}.finance-filter-switch{display:flex;gap:5px;flex-wrap:wrap}.finance-filter-switch button{border:0;background:#f1f3f4;color:#626a73;padding:8px 11px;border-radius:10px;font-size:10.5px;font-weight:800}.finance-filter-switch button.active{background:#303741;color:#fff}
.finance-list{display:grid;gap:9px}.finance-entry{padding:13px 14px!important}.finance-entry-main{display:flex;justify-content:space-between;gap:15px;align-items:center}.finance-entry-main>div{min-width:0}.finance-entry-main strong{display:block}.finance-entry-main small{display:block;margin-top:3px;color:#808790;font-size:10.5px}.finance-value{font-size:16px!important;white-space:nowrap}.finance-entry-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding-top:9px;border-top:1px solid #eceef0;color:#707882;font-size:10px}.finance-status{font-weight:850;padding:4px 7px;border-radius:999px;background:#eef0f2}.finance-entry.status-open .finance-status{background:#fff1d8;color:#895d14}.finance-entry.status-paid .finance-status{background:#e4f5eb;color:#286b49}.finance-entry.status-cancelled{opacity:.55}
.payment-dialog{width:min(520px,calc(100vw - 24px))!important}.payment-dialog .dialog-body{display:grid;gap:14px}.payment-session-card{display:grid;grid-template-columns:1fr auto;gap:12px;padding:12px 13px;border:1px solid #e2e5e8;border-radius:14px;background:#fafbfb}.payment-session-card span{display:block;color:#7b828b;font-size:9.5px;font-weight:850;text-transform:uppercase}.payment-session-card strong{display:block;margin-top:3px}.payment-session-card>div:last-child{text-align:right}.no-show-charge-notice{padding:12px 13px;border:1px solid #efc1c8;background:#fff3f5;border-radius:13px}.no-show-charge-notice strong{color:#9a3f50}.no-show-charge-notice p{margin:4px 0 0;color:#78565d;font-size:10.5px;line-height:1.45}.payment-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.payment-dialog-actions .hidden+button{grid-column:1/-1}
@media(max-width:760px){.finance-summary{grid-template-columns:1fr}.finance-entry-main{align-items:flex-start}.payment-dialog-actions{grid-template-columns:1fr}.payment-session-card{grid-template-columns:1fr}.payment-session-card>div:last-child{text-align:left}}
