@font-face {
  font-family: "Inter";
  src: url("../fonts/InterVariable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  color-scheme: light;
  --ink: #1e293b;
  --muted: #64748b;
  --surface: #ffffff;
  --background: #f1f5f9;
  --border: #dbe3ee;
  --primary: #155e75;
  --primary-dark: #0e4a5c;
  --focus: #f59e0b;
  --error: #9f1239;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-width: 0;
  color: var(--ink);
  background: var(--background);
  font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
}

button, input, select { font: inherit; }

button, .button { min-height: 2.75rem; }

button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
}

.page-shell {
  width: min(100% - 2rem, 56rem);
  margin: 0 auto;
  padding: 2rem 0 4rem;
}

.card, .empty-state {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 1rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  box-shadow: 0 0.75rem 2rem rgb(15 23 42 / 0.06);
}

.auth-card { width: min(100%, 30rem); margin: 8vh auto 0; }

.topbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

h1, h2, p { overflow-wrap: anywhere; }
h1 { margin: 0 0 0.5rem; font-size: clamp(1.7rem, 4vw, 2.4rem); line-height: 1.15; }
h2 { margin: 0 0 0.5rem; font-size: clamp(1.25rem, 3vw, 1.65rem); }
.eyebrow { margin: 0 0 0.45rem; color: var(--primary); font-size: 0.78rem; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }
.muted { color: var(--muted); }

.field { margin: 1rem 0; }
label { display: block; margin-bottom: 0.35rem; font-weight: 650; }
input, select { width: 100%; border: 1px solid #a8b6c8; border-radius: 0.6rem; padding: 0.7rem 0.8rem; color: var(--ink); background: #fff; }
select[multiple] { min-height: 8rem; }
input[type="checkbox"], input[type="radio"] { width: auto; min-width: 1.1rem; min-height: 1.1rem; accent-color: var(--primary); }

.button { display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 0.6rem; padding: 0.65rem 1rem; font-weight: 700; text-decoration: none; cursor: pointer; }
.button.primary { color: #fff; background: var(--primary); }
.button.primary:hover { background: var(--primary-dark); }
.button.secondary { color: var(--primary-dark); background: #e2e8f0; }

.notice { margin: 1rem 0; border-radius: 0.6rem; padding: 0.75rem 0.9rem; }
.notice.error { color: var(--error); background: #ffe4e6; }
.notice.warning { color: #854d0e; background: #fef3c7; }
.field-error { margin: 0.35rem 0 0; color: var(--error); font-size: 0.9rem; }
.help-text { margin: 0.35rem 0 0; color: var(--muted); font-size: 0.9rem; }
.has-error input, .has-error select { border-color: var(--error); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
.form-grid .field { min-width: 0; }
.choice-field { min-width: 0; border: 1px solid var(--border); border-radius: 0.75rem; padding: 0.85rem; }
.choice-field legend { padding: 0 0.25rem; font-weight: 650; }
.choice-field ul { display: grid; gap: 0.55rem; margin: 0.25rem 0 0; padding: 0; list-style: none; }
.choice-field li { display: flex; align-items: flex-start; gap: 0.5rem; }
.choice-field li label { margin: 0; font-weight: 500; }
.section-divider { margin: 1.5rem 0 0.5rem; border-top: 1px solid var(--border); padding-top: 1.25rem; }
.section-divider h2 { margin-bottom: 0.25rem; }
.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.section-heading > * { min-width: 0; }
.action-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.65rem; }
.form-actions { margin-top: 1.5rem; }
.record-list { display: grid; gap: 0.65rem; margin: 0; padding: 0; list-style: none; }
.record-item { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-width: 0; border: 1px solid var(--border); border-radius: 0.75rem; padding: 0.9rem 1rem; }
.record-item a { display: grid; gap: 0.1rem; min-width: 0; color: var(--ink); text-decoration: none; }
.record-item a:hover strong, .record-item a:focus-visible strong { color: var(--primary-dark); text-decoration: underline; }
.record-item span { color: var(--muted); font-size: 0.92rem; overflow-wrap: anywhere; }
.record-meta { flex: 0 0 auto; text-align: right; }
.compact-facts { margin-top: 0.75rem; margin-bottom: 0.75rem; }
.upcoming-panel { display: grid; gap: 0.15rem; margin-top: 1rem; border-left: 0.3rem solid var(--focus); border-radius: 0.4rem; padding: 0.75rem 0.9rem; background: #fffbeb; }
.upcoming-panel span { color: var(--muted); overflow-wrap: anywhere; }
.upcoming-note { margin: 1rem 0 0; border-radius: 0.5rem; padding: 0.7rem 0.8rem; background: #f8fafc; }
.history-details { margin-top: 1.25rem; border-top: 1px solid var(--border); padding-top: 1rem; }
.history-details summary { cursor: pointer; font-weight: 700; }
.version-list { display: grid; gap: 0.6rem; margin: 0.75rem 0 0; padding: 0; list-style: none; }
.version-list li { display: flex; justify-content: space-between; gap: 1rem; min-width: 0; border-bottom: 1px solid var(--border); padding: 0.65rem 0; }
.version-list li span { overflow-wrap: anywhere; }
.version-list li span:last-child { flex: 0 0 auto; color: var(--muted); text-align: right; }
.compact { margin-top: 0; box-shadow: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.topbar + .card, .card + .empty-state { margin-top: 1.25rem; }
.facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.25rem 0; }
.facts div { min-width: 0; padding: 0.85rem; border-radius: 0.6rem; background: #f8fafc; }
dt { color: var(--muted); font-size: 0.85rem; }
dd { margin: 0.2rem 0 0; font-weight: 650; overflow-wrap: anywhere; }
.text-link { color: var(--primary-dark); font-weight: 700; }
.back-link { display: inline-block; margin-bottom: 1rem; }
.page-shell:has(.agenda-page) { width: min(100% - 2rem, 90rem); }

.agenda-toolbar { display: grid; gap: 0.8rem; }
.agenda-view-switch { justify-content: flex-end; }
.agenda-source-status { margin: 0; color: var(--muted); font-size: 0.92rem; }
.agenda-grid { display: grid; gap: 0.75rem; margin-top: 1.25rem; }
.agenda-grid-week { grid-template-columns: repeat(7, minmax(0, 1fr)); align-items: start; }
.agenda-grid-month { grid-template-columns: repeat(7, minmax(0, 1fr)); align-items: stretch; }
.agenda-day { min-width: 0; background: var(--surface); border: 1px solid var(--border); border-radius: 0.85rem; padding: 0.75rem; }
.agenda-day-empty { min-height: 5rem; background: transparent; border-style: dashed; box-shadow: none; }
.agenda-month-day { align-content: start; }
.agenda-month-summary { display: grid; gap: 0.35rem; margin: 0.65rem 0 0; padding: 0; list-style: none; }
.agenda-month-summary li { display: grid; gap: 0.1rem; min-width: 0; border-bottom: 1px solid var(--border); padding: 0.35rem 0; font-size: 0.82rem; }
.agenda-month-summary li span { overflow-wrap: anywhere; }
.agenda-month-summary li span:last-child { color: var(--muted); }
.agenda-month-more { color: var(--primary-dark); font-weight: 700; }
.agenda-week-link { width: 100%; margin-top: 0.65rem; }
.statement-lines { display: grid; gap: 0.6rem; margin: 1rem 0; padding: 0; list-style: none; }
.statement-lines li { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--border); padding: 0.7rem 0; }
.statement-lines li div { display: grid; gap: 0.15rem; min-width: 0; }
.statement-lines li span { color: var(--muted); font-size: 0.88rem; overflow-wrap: anywhere; }
.statement-total { display: flex; justify-content: space-between; gap: 1rem; border-top: 2px solid var(--ink); padding-top: 0.9rem; font-size: 1.15rem; }
.billing-charge-row { align-items: flex-start; }
.billing-charge-row > div:first-child { display: grid; gap: 0.15rem; min-width: 0; }
.billing-charge-row > div:first-child span { color: var(--muted); font-size: 0.85rem; overflow-wrap: anywhere; }
.billing-actions { display: grid; gap: 0.45rem; min-width: min(100%, 22rem); }
.billing-inline-form { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.billing-inline-form input { flex: 1 1 7rem; min-width: 6rem; padding: 0.45rem 0.55rem; }
.billing-inline-form .button { min-height: 2.2rem; padding: 0.45rem 0.7rem; }
.finance-indicators { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.75rem; margin-top: 1.25rem; }
.finance-indicators .card { display: grid; gap: 0.35rem; padding: 1rem; }
.finance-indicators span, .finance-indicators small { color: var(--muted); font-size: 0.85rem; }
.finance-indicators strong { font-size: 1.2rem; }
.finance-table { width: 100%; border-collapse: collapse; margin-top: 0.75rem; }
.finance-table th, .finance-table td { border-bottom: 1px solid var(--border); padding: 0.65rem 0.5rem; text-align: left; }
.finance-table th { color: var(--muted); font-size: 0.85rem; }
.finance-bar { display: block; min-width: 0.2rem; height: 0.6rem; margin: 0.15rem 0.35rem 0.15rem 0; border-radius: 0.2rem; }
.finance-bar-entry { background: var(--primary); }
.finance-bar-outflow { background: var(--focus); }
.pagination { display: flex; align-items: center; justify-content: center; gap: 0.75rem; margin-top: 1rem; }

@media print {
  .billing-actions, .topbar .action-row, .statement-card form, .back-link { display: none !important; }
  .page-shell { width: 100%; padding: 0; }
  .card { box-shadow: none; border: 0; }
}
.agenda-day-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 0.5rem; border-bottom: 1px solid var(--border); padding-bottom: 0.55rem; }
.agenda-day-heading h2 { margin: 0; font-size: 1rem; text-transform: capitalize; }
.agenda-count { color: var(--muted); font-size: 0.8rem; white-space: nowrap; }
.agenda-day-events { display: grid; gap: 0.55rem; margin-top: 0.65rem; }
.agenda-entry { display: grid; gap: 0.65rem; min-width: 0; border: 2px solid var(--border); border-left-color: var(--primary); border-radius: 0.65rem; padding: 0.7rem; background: #fff; }
.agenda-entry-all-day { border-left-color: var(--focus); }
.agenda-entry-divergence { border-color: #d97706; }
.agenda-entry-title-row { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 0.4rem; }
.agenda-entry-title-row h3 { flex: 1 1 100%; min-width: 0; margin: 0; font-size: 1rem; overflow-wrap: anywhere; }
.agenda-entry-title-row .status-pill { flex: 0 0 auto; }
.agenda-entry-time { margin: 0.25rem 0 0; font-weight: 750; }
.agenda-entry-meta { margin: 0.15rem 0 0; color: var(--muted); font-size: 0.84rem; overflow-wrap: anywhere; }
.agenda-entry-side { display: grid; gap: 0.45rem; min-width: 0; }
.agenda-entry-side > .status-pill { width: fit-content; max-width: 100%; }
.agenda-action-form, .agenda-result-form { display: grid; gap: 0.45rem; min-width: 0; }
.agenda-action-form select, .agenda-action-form input { min-width: 0; }
.agenda-result-details { border-top: 1px solid var(--border); padding-top: 0.5rem; }
.agenda-result-details summary { cursor: pointer; font-weight: 700; }
.agenda-result-form { margin-top: 0.6rem; }
.agenda-result-form label { margin: 0; font-size: 0.82rem; }
.agenda-result-form textarea { width: 100%; border: 1px solid #a8b6c8; border-radius: 0.6rem; padding: 0.7rem 0.8rem; font: inherit; resize: vertical; }
.agenda-status-lines { display: grid; gap: 0.15rem; color: var(--muted); font-size: 0.86rem; }
.agenda-divergence { border-radius: 0.45rem; padding: 0.5rem 0.6rem; color: #854d0e; background: #fef3c7; font-size: 0.85rem; overflow-wrap: anywhere; }
.text-warning { color: #854d0e; font-size: 0.85rem; }
.status-all-day { color: #854d0e; background: #fef3c7; }
.status-history { color: #155e75; background: #cffafe; }
.status-blocked { color: #7f1d1d; background: #ffe4e6; }
.status-pill { display: inline-flex; align-items: center; border-radius: 999px; padding: 0.25rem 0.55rem; font-size: 0.78rem; font-weight: 700; }
.status-linked { color: #166534; background: #dcfce7; }
.status-unlinked { color: #854d0e; background: #fef3c7; }
.portal-agenda-card .portal-agenda-main { display: grid; gap: 0.25rem; min-width: 0; }
.portal-agenda-card .portal-agenda-main span { color: var(--muted); overflow-wrap: anywhere; }
.portal-account-summary { display: grid; gap: 0.3rem; min-width: 0; }
.collection-message { width: 100%; max-width: 100%; padding: 0.75rem; font: inherit; resize: vertical; }
.collection-confirm { display: flex; align-items: flex-start; gap: 0.5rem; margin: 1rem 0; }
.collection-confirm input { width: auto; flex: 0 0 auto; margin-top: 0.3rem; }
section[aria-labelledby="communications-queue-title"] .record-item > div:first-child { display: grid; gap: 0.3rem; min-width: 0; }
section[aria-labelledby="portal-statement-lines-title"] .statement-lines > li > strong { white-space: nowrap; flex-shrink: 0; }
.portal-account-summary > span, .portal-access-row > span { color: var(--muted); overflow-wrap: anywhere; }
.portal-access-row { display: grid; gap: 0.35rem; margin-top: 0.55rem; border-top: 1px solid var(--border); padding-top: 0.55rem; }

@media (max-width: 36rem) {
  .page-shell:has(.agenda-page) { width: min(100% - 1rem, 90rem); }
  .page-shell { width: min(100% - 1rem, 56rem); padding-top: 1rem; }
  .topbar { flex-direction: column; }
  .topbar form, .topbar .button { width: 100%; }
  .facts { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .section-heading { flex-direction: column; }
  .section-heading .button { width: 100%; }
  .action-row { width: 100%; }
  .action-row .button { flex: 1 1 100%; }
  .record-item { align-items: flex-start; flex-direction: column; gap: 0.35rem; }
  .record-meta { text-align: left; }
  .version-list li { align-items: flex-start; flex-direction: column; gap: 0.2rem; }
  .version-list li span:last-child { text-align: left; }
  .auth-card { margin-top: 3vh; }
  .agenda-view-switch { width: 100%; }
  .agenda-view-switch .button { flex: 1 1 50%; }
  .agenda-grid-week, .agenda-grid-month { grid-template-columns: 1fr; }
  .agenda-grid-month .agenda-month-day { grid-column-start: 1 !important; }
  .agenda-day { padding: 0.65rem; }
  .finance-indicators { grid-template-columns: 1fr 1fr; }
  .finance-table { font-size: 0.9rem; }
}

/* Consult Figma application shell. Styles are opt-in through base_app.html. */
.page-shell:has(> .consult-app-layout) {
  width: 100%;
  max-width: none;
  min-height: 100vh;
  margin: 0;
  padding: 0;
}

.consult-app-layout {
  --ink: #382006;
  --muted: #6f6252;
  --surface: #fdfcfa;
  --background: #f5f3ee;
  --border: #d8d1c5;
  --primary: #382006;
  --primary-dark: #261704;
  --welcome: #e0cfbb;
  --sidebar: #c7c2a5;
  --success: #2f6848;
  --success-soft: #edf5ef;
  --warning: #835318;
  --warning-soft: #fff4df;
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  min-height: 100vh;
  color: var(--ink);
  background: var(--background);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 14px;
}

.consult-app-layout,
.consult-app-layout * { box-sizing: border-box; }

.consult-sidebar {
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 260px;
  height: 100vh;
  min-height: 560px;
  padding: 24px;
  overflow-y: auto;
  color: var(--ink);
  background: var(--sidebar);
}

.consult-brand,
.consult-menu-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}

.consult-brand-mark {
  display: grid;
  flex: 0 0 40px;
  place-items: center;
  width: 40px;
  height: 40px;
}

.consult-brand-mark img,
.consult-nav-icon img,
.consult-shortcut-icon img { display: block; max-width: none; }

.consult-brand-copy { display: grid; gap: 0; min-width: 0; }
.consult-brand-copy strong { font-size: 20px; line-height: 28px; }
.consult-brand-copy small { color: var(--ink); font-size: 12px; line-height: 18px; }

.consult-navigation--sidebar { display: grid; gap: 4px; }
.consult-nav-link {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  min-height: 48px;
  padding: 12px;
  border: 1px solid transparent;
  border-radius: 12px;
  color: var(--ink);
  font-weight: 650;
  line-height: 22px;
  text-decoration: none;
}

.consult-nav-link:hover { background: rgb(253 252 250 / 28%); }
.consult-nav-link.is-active { border-color: var(--primary); background: var(--welcome); }
.consult-nav-icon { display: grid; flex: 0 0 24px; place-items: center; width: 24px; height: 24px; }
.consult-nav-label { min-width: 0; overflow-wrap: anywhere; }

.consult-sidebar-footer {
  display: grid;
  gap: 4px;
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid rgb(56 32 6 / 18%);
}

.consult-sidebar-caption { color: var(--muted); font-size: 12px; line-height: 18px; }
.consult-sidebar-footer > strong { overflow-wrap: anywhere; font-size: 14px; }
.consult-sidebar-logout { margin-top: 8px; }
.consult-sidebar-logout button,
.consult-menu-logout button {
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid rgb(56 32 6 / 24%);
  border-radius: 10px;
  color: var(--ink);
  background: transparent;
  font-weight: 650;
  cursor: pointer;
}

.consult-sidebar-logout button:hover,
.consult-menu-logout button:hover { background: rgb(253 252 250 / 36%); }

.consult-sidebar-expand { display: none; }
.consult-app-main { min-width: 0; min-height: 100vh; background: var(--background); }
.consult-desktop-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 88px;
  padding: 20px 32px;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}

.consult-desktop-page-title { font-size: 20px; font-weight: 650; line-height: 28px; }
.consult-header-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 210px;
  min-height: 48px;
  padding: 12px 20px;
  border: 1px solid var(--primary);
  border-radius: 12px;
  color: white;
  background: var(--primary);
  font-weight: 650;
  text-decoration: none;
}

.consult-header-action:hover { background: var(--primary-dark); }
.consult-mobile-header { display: none; }
.consult-screen { display: grid; gap: 24px; min-width: 0; padding: 32px; }
.consult-screen h1,
.consult-screen h2,
.consult-screen h3,
.consult-screen p { overflow-wrap: anywhere; }
.consult-screen h1 { margin: 0; font-size: 28px; line-height: 1.2; }
.consult-screen h2 { margin: 0; font-size: 20px; line-height: 28px; }
.consult-screen h3 { margin: 0; font-size: 16px; line-height: 22px; }
.consult-screen .eyebrow { color: var(--muted); font-size: 12px; letter-spacing: 0; line-height: 18px; text-transform: none; }
.consult-screen .muted { color: var(--muted); }

.consult-welcome {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 24px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--welcome);
}

.consult-welcome-copy { display: grid; gap: 8px; min-width: 0; }
.consult-welcome-copy .eyebrow,
.consult-welcome-copy p { margin: 0; }
.consult-welcome-copy > p:last-child { color: var(--muted); line-height: 20px; }
.consult-welcome-organization { display: grid; gap: 4px; min-width: min(100%, 220px); max-width: 340px; }
.consult-welcome-organization strong { font-size: 16px; line-height: 22px; }
.consult-welcome-organization a,
.consult-text-link { color: var(--primary); font-weight: 650; text-decoration: none; }
.consult-welcome-organization a:hover,
.consult-text-link:hover { text-decoration: underline; }

.consult-section { display: grid; gap: 16px; min-width: 0; }
.consult-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.consult-section-heading > div { display: grid; gap: 4px; }
.consult-section-heading .eyebrow { margin: 0; }
.consult-shortcut-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.consult-shortcut {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
  min-height: 112px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 12px;
  color: var(--ink);
  background: var(--surface);
  text-decoration: none;
}

.consult-shortcut:hover { border-color: var(--primary); }
.consult-shortcut-icon { display: grid; flex: 0 0 36px; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: var(--welcome); }
.consult-shortcut-copy { display: grid; flex: 1 1 auto; gap: 4px; min-width: 0; }
.consult-shortcut-copy strong { line-height: 20px; }
.consult-shortcut-copy small { color: var(--muted); font-size: 12px; line-height: 18px; }
.consult-shortcut-arrow { flex: 0 0 auto; font-size: 18px; line-height: 24px; }
.consult-module-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.consult-module-card { display: grid; align-content: start; gap: 8px; min-width: 0; padding: 20px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.consult-module-card .eyebrow,
.consult-module-card p { margin: 0; }
.consult-module-card > p:not(.eyebrow) { color: var(--muted); line-height: 20px; }
.consult-module-actions { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 4px; }
.consult-module-card > .consult-text-link { margin-top: 4px; }

.consult-mobile-menu-popover { display: none; }
.consult-screen--agenda .agenda-page { display: grid; gap: 20px; min-width: 0; }
.consult-screen--agenda .agenda-page { gap: 14px; }
.consult-screen--agenda .agenda-section-tabs a { min-height: 36px; padding: 7px 13px; }
.consult-screen--agenda .agenda-intro { gap: 6px; }
.consult-screen--agenda .agenda-intro h1 { font-size: 25px; line-height: 32px; }
.consult-screen--agenda .agenda-intro p { margin-block: 0; }
.consult-screen--agenda .agenda-section-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.consult-screen--agenda .agenda-section-tabs a { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 10px 18px; border: 1px solid var(--border); border-radius: 10px; color: var(--primary); background: var(--surface); font-size: 12px; font-weight: 650; text-decoration: none; }
.consult-screen--agenda .agenda-section-tabs a.is-active { border-color: var(--primary); color: #fff; background: var(--primary); }
.consult-screen--agenda .agenda-toolbar { display: grid; gap: 12px; padding: 0; border: 0; background: transparent; box-shadow: none; }
.consult-screen--agenda .agenda-toolbar .section-heading { align-items: center; }
.consult-screen--agenda .agenda-toolbar h2 { font-size: 20px; }
.consult-screen--agenda .agenda-source-status { color: var(--muted); }
.agenda-month-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; }
.agenda-month-period { display: flex; align-items: center; gap: 10px; min-width: 0; }
.agenda-month-period h2 { margin: 0; color: var(--ink); font-size: 18px; line-height: 26px; white-space: nowrap; }
.agenda-period-arrow { display: inline-grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--border); border-radius: 9px; color: var(--primary); background: var(--surface); font-size: 22px; line-height: 1; text-decoration: none; }
.agenda-month-toolbar .agenda-view-switch { width: auto; }
.agenda-month-toolbar .agenda-view-switch .button { min-width: 76px; }
.consult-screen--agenda .agenda-grid-week { grid-template-columns: minmax(0, 1fr); gap: 16px; }
.consult-screen--agenda .agenda-day { padding: 16px; border-radius: 12px; box-shadow: none; }
.consult-screen--agenda .agenda-day-heading { align-items: center; }
.consult-screen--agenda .agenda-day-events { gap: 8px; }
.consult-screen--agenda .agenda-entry { grid-template-columns: minmax(0, 1fr) minmax(190px, 280px); align-items: start; gap: 16px; border: 1px solid var(--border); border-left: 3px solid var(--primary); border-radius: 12px; padding: 16px; background: var(--background); }
.consult-screen--agenda .agenda-entry-all-day { border-left-color: var(--warning); }
.consult-screen--agenda .agenda-entry-divergence { border-color: var(--warning); }
.consult-screen--agenda .agenda-entry-title-row h3 { flex-basis: auto; }
.consult-screen--agenda .agenda-entry-time { color: var(--ink); }
.consult-screen--agenda .agenda-entry-meta,
.consult-screen--agenda .agenda-status-lines { color: var(--muted); }
.consult-screen--agenda .agenda-divergence { color: var(--warning); background: var(--warning-soft); }
.consult-screen--agenda .status-pill { border-radius: 8px; }
.consult-screen--agenda .status-all-day,
.consult-screen--agenda .status-unlinked { color: var(--warning); background: var(--warning-soft); }
.consult-screen--agenda .status-history,
.consult-screen--agenda .status-linked { color: var(--success); background: var(--success-soft); }
.consult-screen--agenda .status-blocked { color: #8b2635; background: #fcecef; }
.consult-screen--agenda .text-warning { color: var(--warning); }
.consult-screen--agenda .button.primary { color: #fff; background: var(--primary); }
.consult-screen--agenda .button.secondary { color: var(--primary); background: var(--surface); }

.consult-screen--appointments { gap: 20px; }
.local-appointment-page,
.appointment-detail-page,
.availability-page { display: grid; gap: 18px; width: min(100%, 1280px); margin-inline: auto; min-width: 0; }
.appointment-page-intro { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.appointment-page-intro .eyebrow,
.appointment-page-intro h1,
.appointment-page-intro p { margin: 0; }
.appointment-page-intro h1 { margin-top: 4px; font-size: 28px; line-height: 36px; }
.appointment-page-intro .muted { margin-top: 4px; }
.local-appointment-layout,
.appointment-detail-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr); align-items: start; gap: 16px; min-width: 0; }
.appointment-detail-main,
.appointment-detail-actions,
.appointment-detail-history { display: grid; gap: 16px; min-width: 0; }
.appointment-form-panel,
.appointment-context-panel { display: grid; align-content: start; gap: 16px; min-width: 0; padding: 20px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); box-shadow: none; }
.appointment-form-panel > header,
.appointment-context-panel > header { display: grid; gap: 4px; }
.appointment-form-panel > header > div { display: grid; gap: 4px; }
.appointment-form-panel > header .eyebrow,
.appointment-form-panel > header h2,
.appointment-form-panel > header p,
.appointment-context-panel > header .eyebrow,
.appointment-context-panel > header h2,
.appointment-context-panel > header p { margin: 0; }
.appointment-form-panel > header h2,
.appointment-context-panel > header h2 { font-size: 20px; line-height: 28px; }
.appointment-form-panel > header p:not(.eyebrow),
.appointment-context-panel > header p:not(.eyebrow) { color: var(--muted); font-size: 12px; line-height: 18px; }
.appointment-form { display: grid; gap: 14px; min-width: 0; }
.appointment-action-disclosures { display: grid; gap: 10px; min-width: 0; }
.appointment-action-disclosure { min-width: 0; padding: 12px 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--background); }
.appointment-action-disclosure > summary { color: var(--primary); font-weight: 650; cursor: pointer; }
.appointment-action-disclosure[open] > summary { margin-bottom: 12px; }
.appointment-action-disclosure .appointment-form { margin-top: 8px; }
.appointment-action-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.appointment-action-card > div { display: grid; gap: 4px; }
.appointment-action-card > div span { color: var(--muted); font-size: 12px; line-height: 18px; }
.appointment-action-card .button { flex: 0 0 auto; }
.appointment-actions-panel { gap: 12px; }
.appointment-actions-panel > header h2 { font-size: 18px; }
.appointment-actions-panel .appointment-action-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 40px; }
.appointment-actions-panel .appointment-action-disclosure > summary::after { content: "+"; color: var(--muted); font-size: 18px; }
.appointment-actions-panel .appointment-action-disclosure[open] > summary::after { content: "−"; }
.appointment-actions-panel .appointment-action-disclosure .appointment-form { padding-top: 10px; border-top: 1px solid var(--border); }
.appointment-form .field { min-width: 0; margin: 0; }
.appointment-form .field label { font-size: 13px; font-weight: 650; }
.appointment-form input,
.appointment-form select,
.appointment-form textarea { min-width: 0; min-height: 44px; border-color: var(--border); border-radius: 10px; background: var(--surface); }
.appointment-form textarea { min-height: 84px; resize: vertical; }
.appointment-form-row,
.appointment-form-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; min-width: 0; }
.appointment-form-actions { justify-content: end; }
.appointment-form-actions .button { width: 100%; min-height: 44px; border-radius: 10px; }
.appointment-form-actions .button.primary { color: #fff; background: var(--primary); }
.appointment-form-actions .button.secondary { color: var(--primary); background: var(--surface); }
.appointment-readonly-value { display: flex; align-items: center; min-height: 44px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; color: var(--ink); background: var(--background); font-weight: 650; }
.appointment-availability-summary { display: grid; gap: 4px; padding: 12px 14px; border-radius: 10px; background: var(--success-soft); }
.appointment-availability-summary strong { color: var(--success); }
.appointment-availability-summary span,
.appointment-availability-summary small { color: var(--muted); }
.appointment-context-panel > div > h3 { margin: 0 0 10px; font-size: 14px; }
.appointment-existing-list,
.appointment-history-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.appointment-existing-list li,
.appointment-history-list li { display: grid; gap: 4px; min-width: 0; padding: 10px 12px; border-radius: 10px; background: var(--background); }
.appointment-existing-list li strong,
.appointment-history-list li strong { color: var(--ink); }
.appointment-existing-list li span,
.appointment-existing-list li small,
.appointment-history-list li span,
.appointment-history-list li small { color: var(--muted); font-size: 12px; line-height: 18px; overflow-wrap: anywhere; }
.appointment-empty { padding: 12px; border: 1px dashed var(--border); border-radius: 10px; color: var(--muted); font-size: 12px; }
.appointment-avoid-overlap { display: grid; gap: 4px; padding: 14px; border-radius: 10px; background: var(--focus-soft, #e9effa); }
.appointment-avoid-overlap span,
.appointment-admin-note small { color: var(--muted); font-size: 12px; line-height: 18px; }
.appointment-detail-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
.appointment-detail-facts > div { display: grid; gap: 4px; min-width: 0; padding: 12px; border-radius: 10px; background: var(--background); }
.appointment-detail-facts dt { color: var(--muted); font-size: 12px; }
.appointment-detail-facts dd { margin: 0; color: var(--ink); font-weight: 650; overflow-wrap: anywhere; }
.appointment-detail-facts a { color: var(--primary); }
.appointment-admin-note { display: grid; gap: 6px; padding: 14px; border-radius: 10px; background: var(--focus-soft, #e9effa); }
.appointment-admin-note p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.appointment-result-details { border-top: 1px solid var(--border); padding-top: 12px; }
.appointment-result-details summary { cursor: pointer; color: var(--primary); font-weight: 650; }
.appointment-result-details form { margin-top: 12px; }
.availability-selection-form { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(170px, 0.65fr) auto; align-items: end; gap: 12px; }
.availability-selection-form .field { min-width: 0; margin: 0; }
.availability-selection-form label { margin-bottom: 6px; color: var(--muted); font-size: 12px; font-weight: 650; }
.availability-selection-form select { min-height: 44px; border-color: var(--border); border-radius: 9px; background: var(--surface); }
.availability-week-board-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.availability-week-board { display: grid; grid-template-columns: 58px repeat(7, minmax(112px, 1fr)); grid-auto-rows: 62px; min-width: 842px; background: var(--border); gap: 1px; }
.availability-week-corner,
.availability-week-header,
.availability-week-time { position: sticky; z-index: 1; display: grid; align-content: center; gap: 3px; padding: 7px; color: var(--muted); background: var(--surface); font-size: 11px; }
.availability-week-corner { left: 0; z-index: 3; font-weight: 650; }
.availability-week-header { top: 0; text-align: center; }
.availability-week-header strong { color: var(--ink); font-size: 11px; }
.availability-week-header small { font-size: 10px; }
.availability-week-time { left: 0; z-index: 2; justify-items: center; padding: 4px; font-variant-numeric: tabular-nums; }
.availability-week-hour-cell { display: grid; align-content: start; gap: 3px; min-width: 0; padding: 3px; background: #fff; }
.availability-week-hour-cell.is-outside-hours { background: #f1eee8; }
.availability-week-hour-cell.is-break { background: #fff5e4; }
.availability-grid-event,
.availability-grid-block { display: grid; gap: 2px; min-width: 0; padding: 4px 5px; border-left: 3px solid var(--primary); border-radius: 5px; color: var(--ink); background: var(--welcome); font-size: 9px; line-height: 12px; overflow-wrap: anywhere; }
.availability-grid-event.is-connected { border-left-color: var(--warning); background: var(--warning-soft); }
.availability-grid-event strong,
.availability-grid-block strong { font-size: 9px; }
.availability-grid-event small,
.availability-grid-block span { color: var(--muted); font-size: 8px; line-height: 11px; }
.availability-grid-block { border-left-color: #8b2635; background: #fcecef; }
.availability-grid-pause { width: fit-content; padding: 2px 4px; border-radius: 4px; color: var(--warning); background: var(--warning-soft); font-size: 8px; }
.availability-grid-off-label { color: var(--muted); font-size: 8px; line-height: 11px; }
.availability-week-legend { display: flex; flex-wrap: wrap; gap: 8px 14px; color: var(--muted); font-size: 11px; }
.availability-week-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.availability-legend-swatch { display: inline-block; width: 12px; height: 12px; border: 1px solid var(--border); border-radius: 3px; background: #fff; }
.availability-legend-swatch.is-work { background: #fff; }
.availability-legend-swatch.is-pause { background: #fff5e4; }
.availability-legend-swatch.is-booked { border-left: 3px solid var(--primary); background: var(--welcome); }
.availability-legend-swatch.is-block { background: #fcecef; }
.availability-week-board-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.availability-week-board { display: grid; grid-template-columns: 58px repeat(7, minmax(112px, 1fr)); grid-auto-rows: 62px; min-width: 842px; background: var(--border); gap: 1px; }
.availability-week-corner,
.availability-week-header,
.availability-week-time { position: sticky; z-index: 1; display: grid; align-content: center; gap: 3px; padding: 7px; color: var(--muted); background: var(--surface); font-size: 11px; }
.availability-week-corner { left: 0; z-index: 3; font-weight: 650; }
.availability-week-header { top: 0; text-align: center; }
.availability-week-header strong { color: var(--ink); font-size: 11px; }
.availability-week-header small { font-size: 10px; }
.availability-week-time { left: 0; z-index: 2; justify-items: center; padding: 4px; font-variant-numeric: tabular-nums; }
.availability-week-hour-cell { display: grid; align-content: start; gap: 3px; min-width: 0; padding: 3px; background: #fff; }
.availability-week-hour-cell.is-outside-hours { background: #f1eee8; }
.availability-week-hour-cell.is-break { background: #fff5e4; }
.availability-grid-event,
.availability-grid-block { display: grid; gap: 2px; min-width: 0; padding: 4px 5px; border-left: 3px solid var(--primary); border-radius: 5px; color: var(--ink); background: var(--welcome); font-size: 9px; line-height: 12px; overflow-wrap: anywhere; }
.availability-grid-event.is-connected { border-left-color: var(--warning); background: var(--warning-soft); }
.availability-grid-event strong,
.availability-grid-block strong { font-size: 9px; }
.availability-grid-event small,
.availability-grid-block span { color: var(--muted); font-size: 8px; line-height: 11px; }
.availability-grid-block { border-left-color: #8b2635; background: #fcecef; }
.availability-grid-pause { width: fit-content; padding: 2px 4px; border-radius: 4px; color: var(--warning); background: var(--warning-soft); font-size: 8px; }
.availability-grid-off-label { color: var(--muted); font-size: 8px; line-height: 11px; }
.availability-week-legend { display: flex; flex-wrap: wrap; gap: 8px 14px; color: var(--muted); font-size: 11px; }
.availability-week-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.availability-legend-swatch { display: inline-block; width: 12px; height: 12px; border: 1px solid var(--border); border-radius: 3px; background: #fff; }
.availability-legend-swatch.is-work { background: #fff; }
.availability-legend-swatch.is-pause { background: #fff5e4; }
.availability-legend-swatch.is-booked { border-left: 3px solid var(--primary); background: var(--welcome); }
.availability-legend-swatch.is-block { background: #fcecef; }
.availability-week-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; min-width: 0; }
.availability-week-day { display: grid; align-content: start; gap: 6px; min-width: 0; min-height: 96px; padding: 10px; border: 1px solid var(--border); border-radius: 10px; color: var(--ink); background: var(--background); text-decoration: none; }
.availability-week-day.is-selected { border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary); background: var(--welcome); }
.availability-week-day.is-enabled > span { color: var(--success); font-weight: 650; }
.availability-week-day span,
.availability-week-day small { color: var(--muted); font-size: 11px; line-height: 15px; overflow-wrap: anywhere; }
.availability-edit-form { display: grid; gap: 14px; }
.availability-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; min-width: 0; }
.availability-form-grid .field { min-width: 0; margin: 0; }
.availability-form-grid input,
.availability-form-grid select { min-height: 44px; border-color: var(--border); border-radius: 10px; }
.availability-form-toggle { display: flex; align-items: center; min-height: 44px; }
.availability-form-toggle label { display: flex; align-items: center; gap: 8px; margin: 0; font-weight: 650; }
.availability-form-toggle input { width: 18px; height: 18px; }
.availability-block-fieldset { display: grid; gap: 10px; min-width: 0; margin: 0; padding: 14px; border: 1px solid var(--border); border-radius: 12px; }
.availability-block-fieldset legend { padding-inline: 6px; font-weight: 650; }
.availability-block-list { display: grid; gap: 8px; }
.availability-block-list h3 { margin: 0; font-size: 14px; }
.availability-block-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px; border-radius: 10px; background: var(--background); }
.availability-block-row > div { display: grid; gap: 4px; min-width: 0; }
.availability-block-row span { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.availability-block-row .button { flex: 0 0 auto; min-height: 40px; }

.consult-screen--patients .patient-list-intro { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 24px; border: 1px solid var(--border); border-radius: 16px; background: var(--welcome); }
.patient-list-intro-copy { display: grid; gap: 8px; min-width: 0; }
.patient-list-intro-copy .eyebrow,
.patient-list-intro-copy p { margin: 0; }
.patient-list-intro-copy > p:last-child { color: var(--muted); line-height: 20px; }
.patient-list-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.patient-list-count { display: inline-flex; align-items: center; min-height: 32px; padding: 6px 10px; border-radius: 999px; color: var(--ink); background: var(--surface); font-size: 12px; font-weight: 650; white-space: nowrap; }
.patient-list-actions .button { min-height: 44px; border-radius: 10px; }
.patient-list-actions .button.primary { color: #fff; background: var(--primary); }
.patient-list-actions .button.secondary { color: var(--primary); background: var(--surface); }
.patient-list-panel { display: grid; gap: 16px; padding: 20px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); box-shadow: none; }
.patient-list-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.patient-list-panel .record-list { gap: 8px; }
.patient-list-panel .record-item { min-height: 68px; border-color: transparent; border-radius: 12px; background: var(--background); }
.patient-list-panel .record-item a { flex: 1 1 auto; }
.patient-list-panel .record-item .record-meta { color: var(--muted); font-size: 12px; }
.patient-list-panel .empty-state { border: 1px dashed var(--border); background: var(--background); }
.patient-list-filters { display: grid; grid-template-columns: minmax(220px, 1.6fr) minmax(170px, 0.65fr) auto; align-items: end; gap: 12px; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--background); }
.patient-list-filters .field { display: grid; gap: 6px; min-width: 0; margin: 0; }
.patient-list-filters label { color: var(--ink); font-size: 12px; font-weight: 650; }
.patient-list-filters input,
.patient-list-filters select { min-height: 44px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); }
.patient-filter-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.patient-filter-actions .button { min-height: 44px; }
.patient-next-appointment { padding: 18px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }
.patient-next-appointment > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.patient-next-appointment > header h2,
.patient-next-appointment > header p { margin: 0; }
.patient-next-appointment > header .eyebrow { margin-bottom: 3px; }
.patient-next-appointment > p { margin: 0; }
.patient-next-appointment-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.patient-attendance-list .record-item a,
.patient-financial-list .record-item a { flex: 1 1 auto; }
.patient-financial-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }

.consult-screen--finance { gap: 20px; }
.finance-fiscal-note { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); }
.finance-fiscal-note-copy { display: grid; gap: 4px; min-width: 0; }
.finance-fiscal-note-copy strong { line-height: 20px; }
.finance-fiscal-note-copy span { color: var(--muted); font-size: 12px; line-height: 18px; }
.finance-fiscal-note .button { flex: 0 0 auto; min-height: 38px; padding-block: 7px; border-radius: 9px; color: #fff; background: var(--primary); }
.finance-page-intro { display: grid; gap: 6px; }
.finance-page-intro .eyebrow,
.finance-page-intro p { margin: 0; }
.finance-overview-page { gap: 12px; }
.finance-overview-page .finance-page-intro { gap: 3px; }
.finance-period-control,
.finance-overview-period-control { display: grid; justify-items: start; gap: 8px; }
.finance-period-badge { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 5px 10px; min-height: 42px; padding: 7px 12px; border: 1px solid var(--border); border-radius: 11px; color: var(--ink); background: var(--surface); cursor: pointer; list-style: none; }
.finance-period-badge::-webkit-details-marker { display: none; }
.finance-period-badge > span:first-child { color: var(--muted); font-size: 11px; }
.finance-period-badge > strong { font-size: 12px; font-weight: 650; }
.finance-period-badge > span:last-child { color: var(--primary); font-size: 11px; font-weight: 650; }
.finance-period-control[open],
.finance-overview-period-control[open] { width: min(100%, 880px); }
.finance-period-control[open] .finance-period-badge,
.finance-overview-period-control[open] .finance-period-badge { border-color: var(--primary); }
.finance-toolbar,
.consult-screen--finance > .card { border-color: var(--border); border-radius: 16px; background: var(--surface); box-shadow: none; }
.consult-screen--finance .finance-toolbar { display: grid; gap: 10px; padding: 14px 16px; }
.finance-toolbar-heading h2,
.finance-toolbar-heading p { margin: 0; }
.finance-toolbar-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.finance-toolbar-heading > div { display: grid; gap: 4px; }
.finance-toolbar .finance-period-control { justify-items: stretch; }
.finance-toolbar .form-grid { padding: 12px 0 2px; border-top: 1px solid var(--border); }
.consult-screen--finance .finance-toolbar > p { margin: 0; }
.consult-screen--finance .form-grid { align-items: end; }
.consult-screen--finance .form-grid .field { min-width: 0; }
.consult-screen--finance input,
.consult-screen--finance select { min-height: 44px; border-color: var(--border); border-radius: 10px; }
.consult-screen--finance .form-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 0; }
.consult-screen--finance .form-actions .button { min-height: 44px; border-radius: 10px; }
.consult-screen--finance .form-actions .button.primary { color: #fff; background: var(--primary); }
.consult-screen--finance .form-actions .button.secondary { color: var(--primary); background: var(--background); }
.consult-screen--finance .finance-indicators { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 0; }
.consult-screen--finance .finance-indicators .card { min-width: 0; gap: 8px; padding: 16px; border-color: var(--border); border-radius: 12px; background: var(--surface); box-shadow: none; }
.consult-screen--finance .finance-indicators span,
.consult-screen--finance .finance-indicators small { color: var(--muted); font-size: 12px; line-height: 18px; }
.consult-screen--finance .finance-indicators strong { font-size: 24px; line-height: 32px; overflow-wrap: anywhere; }
.consult-screen--finance .finance-table { margin-top: 12px; }
.consult-screen--finance .finance-table th { color: var(--muted); }
.consult-screen--finance .finance-table th,
.consult-screen--finance .finance-table td { border-color: var(--border); }
.consult-screen--finance .finance-bar-entry { background: var(--primary); }
.consult-screen--finance .finance-bar-outflow { background: #8b5a1d; }
.consult-screen--finance .notice.warning { color: var(--warning); background: var(--warning-soft); }
.consult-screen--finance .notice.error { color: #8b2635; background: #fcecef; }
.consult-screen--finance .record-item { border-color: var(--border); border-radius: 12px; background: var(--background); }
.consult-screen--finance .pagination .button { border-radius: 10px; color: var(--primary); background: var(--surface); }

.consult-layout--agenda-month { grid-template-columns: 190px minmax(0, 1fr); }
.consult-layout--agenda-month .consult-sidebar { align-items: stretch; gap: 20px; width: 190px; padding: 22px 16px; }
.consult-layout--agenda-month .consult-brand { justify-content: flex-start; width: auto; overflow: visible; }
.consult-layout--agenda-month .consult-brand-copy,
.consult-layout--agenda-month .consult-sidebar-footer { display: grid; }
.consult-layout--agenda-month .consult-navigation--sidebar { width: auto; }
.consult-layout--agenda-month .consult-nav-link { justify-content: flex-start; width: auto; min-height: 44px; padding: 8px 10px; }
.consult-layout--agenda-month .consult-nav-label { position: static; width: auto; height: auto; padding: 0; margin: 0; overflow: visible; clip: auto; white-space: normal; }
.consult-layout--agenda-month .consult-sidebar-expand { display: none; }
.consult-layout--agenda-compact { grid-template-columns: 80px minmax(0, 1fr); }
.consult-layout--agenda-compact .consult-sidebar { align-items: center; gap: 20px; width: 80px; padding: 16px 12px; }
.consult-layout--agenda-compact .consult-brand { justify-content: center; width: 40px; overflow: hidden; }
.consult-layout--agenda-compact .consult-brand-copy,
.consult-layout--agenda-compact .consult-sidebar-footer { display: none; }
.consult-layout--agenda-compact .consult-navigation--sidebar { width: 40px; }
.consult-layout--agenda-compact .consult-nav-link { justify-content: center; width: 40px; height: 48px; padding: 10px 7px; }
.consult-layout--agenda-compact .consult-nav-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.consult-layout--agenda-compact .consult-sidebar-expand { display: block; margin-top: auto; }
.consult-layout--agenda-compact:has(.consult-sidebar-expand[open]) { grid-template-columns: 190px minmax(0, 1fr); }
.consult-layout--agenda-compact:has(.consult-sidebar-expand[open]) .consult-sidebar { align-items: stretch; width: 190px; padding: 22px 16px; }
.consult-layout--agenda-compact:has(.consult-sidebar-expand[open]) .consult-brand { justify-content: flex-start; width: auto; overflow: visible; }
.consult-layout--agenda-compact:has(.consult-sidebar-expand[open]) .consult-brand-copy,
.consult-layout--agenda-compact:has(.consult-sidebar-expand[open]) .consult-sidebar-footer { display: grid; }
.consult-layout--agenda-compact:has(.consult-sidebar-expand[open]) .consult-navigation--sidebar { width: auto; }
.consult-layout--agenda-compact:has(.consult-sidebar-expand[open]) .consult-nav-link { justify-content: flex-start; width: auto; }
.consult-layout--agenda-compact:has(.consult-sidebar-expand[open]) .consult-nav-label { position: static; width: auto; height: auto; padding: 0; margin: 0; overflow: visible; clip: auto; white-space: normal; }
.consult-sidebar-expand summary { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); cursor: pointer; font-size: 22px; line-height: 1; list-style: none; }
.consult-sidebar-expand summary::-webkit-details-marker { display: none; }
.consult-expand-expanded { display: none; }
.consult-sidebar-expand[open] .consult-expand-expanded { display: inline; }
.consult-sidebar-expand[open] .consult-expand-collapsed { display: none; }

@media (max-width: 1000px) and (min-width: 761px) {
  .consult-shortcut-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .consult-module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .consult-screen--finance .finance-indicators { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .consult-screen--agenda .agenda-entry { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 760px) {
  .page-shell:has(> .consult-app-layout) { width: 100%; margin: 0; padding: 0; }
  .consult-app-layout,
  .consult-layout--agenda { display: block; min-height: 100vh; }
  .consult-sidebar,
  .consult-desktop-header { display: none; }
  .consult-mobile-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px; padding: 12px 16px; border-bottom: 1px solid var(--border); border-radius: 0 0 12px 12px; background: var(--surface); }
  .consult-mobile-brand { color: var(--ink); font-size: 16px; font-weight: 650; text-decoration: none; }
  .consult-menu-trigger { min-height: 40px; padding: 8px 16px; border: 1px solid var(--border); border-radius: 10px; color: var(--ink); background: var(--surface); font-weight: 650; cursor: pointer; }
  .consult-screen { gap: 20px; padding: 20px 16px 40px; }
  .consult-screen h1 { font-size: 26px; }
  .consult-welcome { flex-direction: column; gap: 16px; padding: 20px; }
  .consult-welcome-organization { max-width: none; min-width: 0; }
  .consult-shortcut-grid,
  .consult-module-grid { grid-template-columns: minmax(0, 1fr); }
  .consult-shortcut { min-height: 88px; }
  .consult-screen--agenda .agenda-toolbar { padding: 20px; }
  .consult-screen--agenda .agenda-toolbar .section-heading { align-items: stretch; flex-direction: column; }
  .consult-screen--agenda .agenda-toolbar .action-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; }
  .consult-screen--agenda .agenda-toolbar .action-row .button { min-width: 0; padding-inline: 8px; }
  .consult-screen--agenda .agenda-grid-week,
  .consult-screen--agenda .agenda-grid-month { grid-template-columns: minmax(0, 1fr); }
  .consult-screen--agenda .agenda-grid-month .agenda-month-day { grid-column-start: 1 !important; }
  .consult-screen--agenda .agenda-day { padding: 12px; }
  .consult-screen--agenda .agenda-entry { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 12px; }
  .consult-screen--agenda .agenda-entry-side { min-width: 0; }
  .consult-screen--agenda .agenda-action-form .button,
  .consult-screen--agenda .agenda-result-form .button { width: 100%; }
  .consult-screen--patients .patient-list-intro { flex-direction: column; gap: 16px; padding: 20px; }
  .patient-list-actions { justify-content: flex-start; width: 100%; }
  .patient-list-actions .button { flex: 1 1 auto; }
  .patient-list-panel { padding: 16px; }
  .patient-list-panel .record-item { align-items: flex-start; }
  .patient-list-panel .record-meta { text-align: left; }
  .consult-screen--finance .finance-fiscal-note { align-items: flex-start; flex-direction: column; }
  .consult-screen--finance .finance-fiscal-note .button { width: 100%; }
  .consult-screen--finance .finance-indicators { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .consult-screen--finance .finance-indicators .card:first-child { grid-column: 1 / -1; }
  .consult-screen--finance .finance-indicators .card { padding: 14px; }
  .consult-screen--finance .finance-indicators strong { font-size: 20px; line-height: 28px; }
  .consult-screen--finance .finance-toolbar { padding: 16px; }
  .consult-screen--finance .form-grid { grid-template-columns: minmax(0, 1fr); }
  .consult-screen--finance .form-actions { align-items: stretch; flex-direction: column; }
  .consult-screen--finance .form-actions .button { width: 100%; }
  .consult-screen--finance .finance-table { font-size: 12px; }
  .consult-screen--finance .finance-table th,
  .consult-screen--finance .finance-table td { padding: 8px 4px; }
  .consult-screen--finance .record-item { align-items: flex-start; }
  .consult-menu-popover[popover] {
    position: fixed;
    inset: 0;
    display: none;
    width: 100vw;
    max-width: none;
    height: 100vh;
    max-height: none;
    margin: 0;
    padding: 20px;
    overflow-y: auto;
    border: 0;
    color: var(--ink);
    background: var(--sidebar);
  }
  .consult-menu-popover[popover]:popover-open { display: flex; flex-direction: column; gap: 20px; }
  .consult-menu-brand { align-items: center; gap: 12px; min-height: 40px; }
  .consult-menu-intro { display: grid; gap: 6px; padding: 16px; border-radius: 16px; background: var(--welcome); }
  .consult-menu-intro p { margin: 0; color: var(--muted); line-height: 20px; }
  .consult-navigation--mobile { display: grid; gap: 4px; }
  .consult-navigation--mobile .consult-nav-link { min-height: 48px; padding: 12px; border-radius: 12px; }
  .consult-menu-close { min-height: 48px; padding: 12px; border: 1px solid var(--border); border-radius: 12px; color: var(--ink); background: var(--surface); font-weight: 650; cursor: pointer; }
  .consult-menu-logout { display: flex; justify-content: center; }
  .consult-menu-logout button { width: 100%; min-height: 48px; border-color: rgb(56 32 6 / 30%); }
  .consult-menu-note { margin: 0; color: var(--ink); font-size: 12px; line-height: 18px; }
}

@media (max-width: 760px) and (min-height: 1px) {
  .consult-menu-popover[popover] { height: 100dvh; }
}

/* Additional Consullt reference screens. Shared palette and component language. */
.consult-screen--statement,
.consult-screen--fiscal,
.consult-screen--patient-detail,
.consult-screen--patient-form {
  --success: #2f6848;
  --success-soft: #edf5ef;
  --warning: #835318;
  --warning-soft: #fff4df;
}

.consult-screen--statement .statement-page,
.consult-screen--fiscal .fiscal-page,
.consult-screen--patient-detail .patient-detail-page,
.consult-screen--patient-form .patient-form-page {
  display: grid;
  gap: 20px;
  width: min(100%, 1360px);
  margin-inline: auto;
}

.statement-page-intro,
.fiscal-page-intro,
.patient-detail-intro,
.patient-form-intro {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}
.statement-page-intro > div,
.fiscal-page-intro > div,
.patient-detail-intro > div,
.patient-form-intro > div { display: grid; gap: 6px; min-width: 0; }
.statement-page-intro .eyebrow,
.fiscal-page-intro .eyebrow,
.patient-detail-intro .eyebrow,
.patient-form-intro .eyebrow,
.statement-page-intro p,
.fiscal-page-intro p,
.patient-detail-intro p,
.patient-form-intro p { margin: 0; }
.statement-page-intro .back-link,
.patient-detail-intro .back-link,
.patient-form-intro .back-link { width: fit-content; color: var(--primary); font-weight: 650; text-decoration: none; }
.statement-page-intro .back-link:hover,
.patient-detail-intro .back-link:hover,
.patient-form-intro .back-link:hover { text-decoration: underline; }
.consult-screen--statement .button,
.consult-screen--fiscal .button,
.consult-screen--patient-detail .button,
.consult-screen--patient-form .button { min-height: 44px; border-radius: 10px; }
.consult-screen--statement .button.primary,
.consult-screen--fiscal .button.primary,
.consult-screen--patient-detail .button.primary,
.consult-screen--patient-form .button.primary { color: #fff; background: var(--primary); }
.consult-screen--statement .button.secondary,
.consult-screen--fiscal .button.secondary,
.consult-screen--patient-detail .button.secondary,
.consult-screen--patient-form .button.secondary { border: 1px solid var(--border); color: var(--primary); background: var(--surface); }

.status-pill { display: inline-flex; width: fit-content; align-items: center; justify-content: center; min-height: 28px; padding: 5px 10px; border-radius: 8px; font-size: 12px; font-weight: 650; line-height: 18px; }
.status-pill--neutral { color: var(--muted); background: var(--background); }
.status-pill--draft { color: var(--warning); background: var(--warning-soft); }

.statement-summary,
.statement-panel,
.fiscal-panel,
.patient-detail-panel,
.patient-form-panel {
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--surface);
  box-shadow: none;
}
.statement-summary { display: grid; gap: 16px; padding: 24px; border-color: transparent; background: var(--welcome); }
.statement-summary h2,
.statement-panel h2,
.fiscal-panel h2,
.patient-detail-panel h2,
.patient-form-panel h2 { margin: 0; font-size: 20px; line-height: 28px; }
.statement-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 0; }
.statement-summary-grid div,
.statement-side-facts div { display: grid; gap: 4px; min-width: 0; }
.statement-summary-grid dt,
.statement-side-facts dt { color: var(--muted); font-size: 12px; line-height: 18px; }
.statement-summary-grid dd,
.statement-side-facts dd { margin: 0; font-weight: 650; overflow-wrap: anywhere; }
.statement-summary-grid dd { font-size: 18px; line-height: 26px; }
.statement-columns { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(260px, 0.8fr); align-items: start; gap: 16px; }
.statement-main-column,
.statement-side-column { display: grid; gap: 16px; min-width: 0; }
.statement-panel { display: grid; gap: 14px; }
.statement-panel .section-heading { align-items: start; }
.statement-panel .section-heading h2,
.statement-panel .section-heading p { margin: 0; }
.consult-screen--statement .statement-lines { display: grid; gap: 8px; margin: 0; }
.consult-screen--statement .statement-lines li { align-items: center; gap: 16px; min-width: 0; padding: 14px; border: 1px solid transparent; border-radius: 12px; background: var(--background); }
.consult-screen--statement .statement-lines li > div { gap: 4px; }
.consult-screen--statement .statement-lines li > strong { flex: 0 0 auto; text-align: right; }
.consult-screen--statement .statement-lines li span { font-size: 12px; line-height: 18px; }
.consult-screen--statement .statement-total,
.statement-payment-total { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; border-top: 1px solid var(--border); padding-top: 14px; font-size: 14px; }
.consult-screen--statement .statement-total strong,
.statement-payment-total strong { font-size: 20px; line-height: 28px; }
.statement-payment-total { border: 0; padding: 0; }
.statement-side-facts { display: grid; gap: 14px; margin: 0; }
.statement-fiscal-note { background: var(--warning-soft); border-color: transparent; }
.statement-fiscal-note p { margin: 0; color: var(--muted); line-height: 20px; }
.statement-finalize { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); }
.statement-finalize > span { color: var(--muted); }
.consult-screen--statement .notice.warning,
.consult-screen--fiscal .notice.warning { border: 1px solid transparent; border-radius: 12px; color: var(--warning); background: var(--warning-soft); }

.fiscal-tools-nav { display: flex; flex-wrap: wrap; gap: 8px; }
.fiscal-tools-nav a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; border: 1px solid var(--border); border-radius: 10px; color: var(--primary); background: var(--surface); font-size: 12px; font-weight: 650; text-decoration: none; }
.fiscal-tools-nav a:hover { border-color: var(--primary); }
.fiscal-tools-nav a[aria-current="page"] { border-color: var(--primary); color: #fff; background: var(--primary); }
.fiscal-page-intro { align-items: center; }
.fiscal-page-intro .button { flex: 0 0 auto; }
.fiscal-safety-note { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px 16px; margin: 0; padding: 16px 20px; }
.fiscal-safety-note strong { color: var(--ink); }
.fiscal-safety-note span { color: var(--muted); }
.fiscal-page-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(270px, 0.72fr); align-items: start; gap: 16px; }
.fiscal-panel { display: grid; gap: 16px; }
.fiscal-panel .section-heading { align-items: start; }
.fiscal-panel .section-heading h2,
.fiscal-panel .section-heading p { margin: 0; }
.fiscal-filter-row { display: flex; align-items: end; gap: 12px; }
.fiscal-filter-row .field { flex: 1 1 280px; min-width: 0; margin: 0; }
.fiscal-filter-row label { margin-bottom: 6px; }
.fiscal-filter-row select { min-height: 44px; border-color: var(--border); border-radius: 10px; background: var(--surface); }
.fiscal-status-legend { display: flex; flex-wrap: wrap; gap: 8px; }
.fiscal-status-legend span { padding: 6px 10px; border-radius: 8px; color: var(--muted); background: var(--background); font-size: 12px; font-weight: 650; }
.fiscal-draft-list { gap: 8px; }
.consult-screen--fiscal .record-item { min-height: 68px; border-color: transparent; border-radius: 12px; background: var(--background); }
.consult-screen--fiscal .record-item a { flex: 1 1 auto; }
.fiscal-draft-meta { display: grid; justify-items: end; gap: 6px; color: var(--muted); font-size: 12px; text-align: right; }
.fiscal-side-column { display: grid; gap: 16px; min-width: 0; }
.fiscal-link-list { display: grid; gap: 8px; }
.fiscal-link-list a { display: grid; gap: 4px; padding: 14px; border-radius: 12px; color: var(--ink); background: var(--background); text-decoration: none; }
.fiscal-link-list a:hover { outline: 1px solid var(--primary); }
.fiscal-link-list span { color: var(--muted); font-size: 12px; line-height: 18px; }
.fiscal-distinction-note { background: #e9effa; border-color: transparent; }
.fiscal-distinction-note p { margin: 0; color: var(--muted); line-height: 20px; }
.fiscal-distinction-note > strong { font-size: 12px; line-height: 18px; }
.fiscal-empty-state { display: grid; gap: 8px; padding: 18px; border: 1px dashed var(--border); border-radius: 12px; background: var(--background); box-shadow: none; }
.fiscal-empty-state p { margin: 0; color: var(--muted); }
.consult-screen--fiscal .pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; }

.patient-profile-summary { display: grid; gap: 16px; padding: 20px 24px; border-radius: 16px; background: var(--welcome); }
.patient-profile-summary h2 { margin: 0; font-size: 20px; line-height: 28px; }
.patient-profile-summary dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; }
.patient-profile-summary dl div { display: grid; gap: 4px; }
.patient-profile-summary dt { color: var(--muted); font-size: 12px; }
.patient-profile-summary dd { margin: 0; font-weight: 650; overflow-wrap: anywhere; }
.patient-detail-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(270px, 0.78fr); align-items: start; gap: 16px; }
.patient-detail-main,
.patient-detail-side { display: grid; gap: 16px; min-width: 0; }
.patient-detail-panel { display: grid; gap: 14px; }
.patient-detail-panel .section-heading { align-items: start; }
.patient-detail-panel .section-heading h2,
.patient-detail-panel .section-heading p { margin: 0; }
.patient-detail-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; }
.patient-detail-facts div { display: grid; gap: 4px; min-width: 0; padding: 12px; border-radius: 10px; background: var(--background); }
.patient-detail-facts dt { color: var(--muted); font-size: 12px; line-height: 18px; }
.patient-detail-facts dd { margin: 0; font-weight: 650; overflow-wrap: anywhere; }
.patient-price-facts { margin-top: 0; }
.patient-detail-panel .record-list { gap: 8px; }
.patient-detail-panel .record-item { align-items: flex-start; border-color: transparent; border-radius: 12px; background: var(--background); }
.patient-detail-panel .record-meta { color: var(--muted); font-size: 12px; }
.patient-detail-panel .upcoming-note { margin: 0; padding: 12px; border-radius: 10px; background: var(--warning-soft); }
.patient-detail-panel .history-details { border-top: 1px solid var(--border); padding-top: 12px; }
.patient-detail-panel .history-details summary { cursor: pointer; font-weight: 650; }
.patient-detail-panel .version-list { display: grid; gap: 8px; padding-left: 18px; color: var(--muted); }
.info-note { display: grid; gap: 6px; margin: 0; border-radius: 12px; color: var(--ink); background: #e9effa; }
.info-note span { color: var(--muted); font-size: 12px; line-height: 18px; }

.finance-page { display: grid; gap: 20px; width: min(100%, 1360px); margin-inline: auto; }
.finance-page-intro { display: grid; gap: 6px; }
.finance-page-intro > * { margin: 0; }
.finance-page-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.finance-page-links .button,
.finance-overview-link { min-height: 44px; border-radius: 10px; }
.finance-page-links .button.primary { color: #fff; background: var(--primary); }
.finance-page-links .button.secondary,
.finance-overview-link { border: 1px solid var(--border); color: var(--primary); background: var(--surface); }
.finance-overview-period-form { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) auto; align-items: end; gap: 10px; width: min(100%, 760px); padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.finance-overview-period-form .field { min-width: 0; margin: 0; }
.finance-overview-period-form label { margin-bottom: 6px; color: var(--muted); font-size: 12px; }
.finance-overview-period-form input { min-height: 44px; border-color: var(--border); border-radius: 10px; }
.finance-overview-period-form .button { min-height: 44px; border: 1px solid var(--border); border-radius: 10px; color: var(--primary); background: var(--background); }
.finance-overview-summary,
.finance-statement-overview,
.finance-report-chart-card,
.finance-monthly-panel { min-width: 0; padding: 24px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }
.finance-overview-summary > header,
.finance-overview-section-heading,
.finance-monthly-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.finance-overview-summary > header h2,
.finance-overview-summary > header p,
.finance-overview-section-heading h2,
.finance-overview-section-heading p,
.finance-monthly-panel > header h2,
.finance-monthly-panel > header p { margin: 0; }
.finance-overview-summary > header > div,
.finance-overview-section-heading > div,
.finance-monthly-panel > header > div { display: grid; gap: 4px; min-width: 0; }
.finance-overview-summary > header h2,
.finance-overview-section-heading h2,
.finance-monthly-panel > header h2,
.finance-report-chart-card h2 { font-size: 20px; line-height: 28px; }
.finance-overview-summary > header p,
.finance-overview-section-heading p,
.finance-monthly-panel > header p { color: var(--muted); font-size: 12px; line-height: 18px; }
.finance-overview-summary-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 300px); align-items: stretch; gap: 24px; margin-top: 18px; }
.finance-overview-chart-panel { min-width: 0; padding: 16px; border-radius: 12px; background: var(--background); }
.finance-overview-metrics { display: grid; align-content: start; gap: 12px; }
.finance-result-card,
.finance-balance-card,
.finance-payable-card { display: grid; gap: 6px; min-width: 0; padding: 16px; border-radius: 12px; color: var(--ink); text-decoration: none; }
.finance-result-card { background: var(--success-soft); }
.finance-balance-card { background: var(--warning-soft); }
.finance-payable-card { background: var(--welcome); }
.finance-result-card > span,
.finance-balance-card > span,
.finance-payable-card > span { color: var(--muted); font-size: 13px; }
.finance-result-card strong,
.finance-balance-card strong,
.finance-payable-card strong { font-size: 30px; line-height: 38px; overflow-wrap: anywhere; }
.finance-result-card strong { color: var(--success); }
.finance-balance-card strong,
.finance-payable-card strong { color: var(--warning); }
.finance-result-card small,
.finance-balance-card small,
.finance-payable-card small { color: var(--muted); line-height: 18px; }
.finance-balance-card:hover { outline: 1px solid var(--warning); }
.finance-payable-card:hover { outline: 1px solid var(--primary); }
.finance-statement-overview { display: grid; gap: 16px; }
.finance-statement-overview-grid { display: grid; grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); align-items: start; gap: 20px; }
.finance-statement-chart-panel { display: grid; place-items: center; min-width: 0; padding: 16px; border-radius: 12px; background: var(--background); }
.finance-statement-facts { display: grid; gap: 10px; min-width: 0; }
.finance-statement-facts article { display: grid; gap: 5px; padding: 14px; border-radius: 10px; background: var(--background); }
.finance-statement-facts article span { color: var(--muted); font-size: 12px; }
.finance-statement-facts article strong { overflow-wrap: anywhere; }
.finance-statement-facts .notice { margin: 0; }
.finance-statement-overview .consult-page-note { margin: 0; }
.finance-overview-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.finance-overview-actions .button { min-height: 44px; border: 1px solid var(--border); border-radius: 10px; color: var(--primary); background: var(--surface); }

.finance-cash-chart { display: grid; gap: 16px; min-width: 0; }
.finance-cash-chart-bars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; gap: 16px; min-width: 0; }
.finance-cash-bar-column { display: grid; grid-template-rows: auto 160px auto; justify-items: center; align-items: end; gap: 8px; min-width: 0; text-align: center; }
.finance-cash-bar-value { color: var(--muted); font-size: 12px; line-height: 18px; overflow-wrap: anywhere; }
.finance-cash-bar-track { display: flex; align-items: flex-end; justify-content: center; width: 100%; height: 160px; min-width: 0; }
.finance-cash-bar { display: block; width: min(64px, 54%); min-height: 0; border-radius: 12px; transition: height 240ms ease-out; }
.finance-cash-bar--entry { background: var(--primary); }
.finance-cash-bar--outflow { background: var(--warning); }
.finance-cash-bar--result { background: var(--success); }
.finance-cash-bar--negative { background: var(--danger); }
.finance-cash-bar-label { color: var(--ink); font-size: 12px; font-weight: 650; line-height: 18px; overflow-wrap: anywhere; }
.finance-chart-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 0; padding: 0; color: var(--muted); font-size: 12px; list-style: none; }
.finance-chart-legend li { display: inline-flex; align-items: center; gap: 7px; }
.finance-chart-swatch { display: inline-block; width: 10px; height: 10px; flex: 0 0 10px; border-radius: 2px; background: var(--muted); }
.finance-chart-swatch--entry { background: var(--primary); }
.finance-chart-swatch--outflow { background: var(--warning); }
.finance-chart-swatch--result { background: var(--success); }
.finance-chart-empty { display: grid; place-items: center; min-height: 150px; padding: 20px; border: 1px dashed var(--border); border-radius: 12px; color: var(--muted); text-align: center; }
.finance-chart-note { margin: 0; color: var(--muted); font-size: 12px; line-height: 18px; }
.statement-balance-figure { display: grid; justify-items: center; gap: 12px; width: min(100%, 280px); margin: 0; }
.statement-balance-donut { display: block; width: min(100%, 220px); height: auto; overflow: visible; }
.statement-balance-donut circle { fill: none; stroke-width: 18; }
.statement-donut-track { stroke: var(--border); }
.statement-donut-pending { stroke: var(--warning); stroke-linecap: butt; }
.statement-donut-received { stroke: var(--primary); stroke-linecap: butt; }
.statement-donut-caption { fill: var(--muted); font-size: 12px; }
.statement-donut-value { fill: var(--ink); font-size: 20px; font-weight: 700; }
.statement-donut-legend { display: grid; gap: 10px; width: 100%; margin: 0; }
.statement-donut-legend > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.statement-donut-legend dt { display: flex; align-items: center; gap: 7px; min-width: 0; color: var(--ink); font-size: 13px; }
.statement-donut-legend dd { flex: 0 0 auto; margin: 0; color: var(--muted); font-size: 13px; }
.statement-balance-figure .notice { width: 100%; margin: 0; font-size: 12px; }
.finance-report-charts { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.8fr); align-items: start; gap: 16px; }
.finance-report-chart-card { display: grid; align-content: start; gap: 16px; }
.finance-report-chart-card > header h2,
.finance-report-chart-card > header p { margin: 0; }
.finance-report-chart-card > header > div { display: grid; gap: 4px; }
.finance-report-chart-card > header p:not(.eyebrow) { color: var(--muted); font-size: 12px; line-height: 18px; }
.finance-monthly-panel { display: grid; gap: 16px; }
.finance-monthly-panel > header { align-items: center; }
.finance-month-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; min-width: 0; }
.finance-month-card { display: grid; align-content: start; gap: 12px; min-width: 0; min-height: 112px; padding: 12px; border: 1px solid transparent; border-radius: 12px; background: var(--background); }
.finance-month-card--data { border-color: var(--border); background: var(--success-soft); }
.finance-month-card--empty { background: var(--background); }
.finance-month-card h3 { display: flex; justify-content: space-between; gap: 8px; margin: 0; font-size: 14px; }
.finance-month-card h3 span { color: var(--muted); font-size: 12px; font-weight: 400; }
.finance-month-value,
.finance-month-no-data { display: grid; gap: 5px; align-content: center; min-width: 0; color: var(--muted); font-size: 12px; line-height: 18px; }
.finance-month-value strong,
.finance-month-no-data strong { color: var(--ink); font-size: 17px; line-height: 22px; overflow-wrap: anywhere; }
.finance-month-value.is-negative strong { color: var(--danger); }
.finance-integrity-note { display: grid; gap: 5px; padding: 14px 18px; border-radius: 12px; background: var(--focus-soft, #e9effa); }
.finance-integrity-note strong { color: var(--ink); }
.finance-integrity-note p { margin: 0; color: var(--muted); font-size: 12px; line-height: 18px; }
.finance-overview-link { display: inline-flex; align-items: center; justify-content: center; width: fit-content; padding: 10px 16px; font-weight: 650; text-decoration: none; }

.agenda-confirmation-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.agenda-confirmation-card { display: grid; align-content: start; justify-items: start; gap: 8px; min-width: 0; min-height: 156px; padding: 20px; border: 1px solid transparent; border-radius: 14px; }
.agenda-confirmation-card--confirmed { background: var(--success-soft); }
.agenda-confirmation-card--pending { background: var(--warning-soft); }
.agenda-confirmation-card--rate { background: var(--welcome); }
.status-pill--success { color: var(--success); background: var(--success-soft); }
.agenda-confirmation-card small { color: var(--muted); font-size: 12px; }
.agenda-confirmation-card strong { font-size: 32px; line-height: 40px; }
.agenda-confirmation-card p { margin: 0; color: var(--muted); font-size: 12px; line-height: 18px; }
.agenda-confirmation-card .agenda-confirmation-attention { color: var(--warning); font-size: 11px; font-weight: 650; }
.agenda-filters { display: grid; grid-template-columns: repeat(3, minmax(145px, 1fr)) auto; align-items: end; gap: 8px; margin-top: 6px; }
.agenda-filters .field { min-width: 0; margin: 0; }
.agenda-filters label { margin-bottom: 6px; font-size: 12px; }
.agenda-filters select { min-height: 44px; border-color: var(--border); border-radius: 10px; background: var(--surface); }
.agenda-filters .button { min-height: 44px; border: 1px solid var(--border); border-radius: 10px; color: var(--primary); background: var(--surface); }
.agenda-month-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.78fr); align-items: start; gap: 16px; width: 100%; }
.agenda-month-main { display: grid; gap: 10px; min-width: 0; }
.agenda-month-weekdays,
.agenda-month-cells { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.agenda-month-weekdays { gap: 1px; padding: 0 1px; color: var(--muted); font-size: 11px; font-weight: 650; text-align: center; }
.agenda-month-weekdays span { padding: 8px 2px; }
.agenda-month-cells { overflow: hidden; border: 1px solid var(--border); border-radius: 12px; background: var(--border); gap: 1px; }
.agenda-month-cell { display: grid; align-content: start; gap: 5px; min-width: 0; min-height: 76px; padding: 8px; color: var(--ink); background: var(--surface); text-decoration: none; }
a.agenda-month-cell:hover { background: var(--background); }
.agenda-month-cell.is-selected { box-shadow: inset 0 0 0 2px var(--primary); background: var(--welcome); }
.agenda-month-date { justify-self: start; color: var(--ink); font-size: 12px; font-weight: 650; }
.agenda-month-adjacent { color: var(--muted); background: #f2f0eb; }
.agenda-month-adjacent .agenda-month-date { color: var(--muted); font-weight: 400; }
.agenda-month-count { display: inline-flex; align-items: center; gap: 3px; width: fit-content; max-width: 100%; color: var(--muted); font-size: 10px; font-weight: 650; line-height: 14px; }
.agenda-month-count strong { font-size: inherit; }
.agenda-month-count small { font: inherit; }
.agenda-month-summary { display: grid; gap: 3px; min-width: 0; color: var(--muted); font-size: 10px; line-height: 13px; }
.agenda-month-summary > span { overflow-wrap: anywhere; }
.agenda-month-states { display: flex; flex-wrap: wrap; gap: 3px; min-width: 0; }
.agenda-month-state { display: inline-flex; align-items: center; width: fit-content; max-width: 100%; min-height: 23px; padding: 3px 6px; border-radius: 7px; font-size: 10px; font-weight: 650; line-height: 14px; overflow-wrap: anywhere; }
.agenda-month-state--confirmed { color: var(--success); background: var(--success-soft); }
.agenda-month-state--pending { color: var(--warning); background: var(--warning-soft); }
.agenda-month-state--reconfirm { color: var(--warning); background: var(--welcome); }
.agenda-month-state--review { color: var(--danger); background: var(--danger-soft); }
.agenda-month-preview { display: -webkit-box; overflow: hidden; color: var(--muted); font-size: 10px; line-height: 14px; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.agenda-month-more { color: var(--primary); font-size: 10px; font-weight: 650; }
.agenda-month-note { margin: 0; color: var(--muted); font-size: 11px; line-height: 16px; }
.agenda-confirmation-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; color: var(--muted); font-size: 11px; }
.agenda-confirmation-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.agenda-legend-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--border); }
.agenda-legend-dot--confirmed { background: var(--success); }
.agenda-legend-dot--pending { background: var(--warning); }
.agenda-selected-day { display: grid; align-content: start; gap: 10px; min-width: 0; padding: 14px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); }
.agenda-selected-day > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.agenda-selected-day > header h2,
.agenda-selected-day > header p { margin: 0; }
.agenda-selected-day > header h2 { font-size: 20px; line-height: 28px; text-transform: capitalize; }
.agenda-selected-day > header p { color: var(--muted); font-size: 12px; }
.agenda-selected-day-summary { display: flex; flex-wrap: wrap; gap: 6px; }
.agenda-selected-day-entries { display: grid; gap: 8px; }
.agenda-selected-entry { display: grid; gap: 8px; min-width: 0; padding: 12px; border-radius: 10px; background: var(--background); }
.agenda-selected-entry > strong { overflow-wrap: anywhere; }
.agenda-selected-entry > span { color: var(--muted); font-size: 11px; line-height: 16px; }
.agenda-selected-entry .agenda-action-form { margin: 0; }
.agenda-selected-entry .button { width: 100%; min-height: 40px; }
.agenda-open-day { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; border: 1px solid var(--border); border-radius: 10px; color: var(--primary); background: var(--surface); text-decoration: none; }
.consult-screen--appointments .agenda-open-day.button.secondary,
.consult-screen--appointments .agenda-week-link.button.secondary,
.consult-screen--appointments .agenda-filters .button.secondary { border-color: var(--border); color: var(--primary); background: var(--surface); box-shadow: none; }
.consult-screen--appointments .agenda-open-day.button.secondary,
.consult-screen--appointments .agenda-week-link.button.secondary { border-color: var(--border); color: var(--primary); background: var(--surface); box-shadow: none; }
.consult-screen--appointments .agenda-filters .button.secondary { border-color: var(--border); color: var(--primary); background: var(--surface); box-shadow: none; }
.agenda-grid-day { grid-template-columns: minmax(0, 1fr); }
.agenda-grid-day .agenda-day { max-width: none; }
.agenda-grid-month { grid-template-columns: minmax(0, 1fr); margin-top: 0; }

.dashboard-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.dashboard-kpi { display: grid; gap: 6px; min-width: 0; padding: 20px; border: 1px solid var(--border); border-radius: 12px; color: var(--ink); background: var(--surface); text-decoration: none; }
.dashboard-kpi:hover { border-color: var(--primary); }
.dashboard-kpi > span { color: var(--muted); font-size: 12px; }
.dashboard-kpi strong { font-size: 28px; line-height: 36px; overflow-wrap: anywhere; }
.dashboard-kpi small { color: var(--muted); font-size: 12px; line-height: 18px; }
.dashboard-kpi--warning { background: var(--warning-soft); }
.dashboard-kpi--balance { background: var(--welcome); }
.dashboard-today-panel { display: grid; gap: 16px; min-width: 0; padding: 24px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }
.dashboard-today-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.dashboard-today-heading h2,
.dashboard-today-heading p { margin: 0; }
.dashboard-today-heading h2 { font-size: 20px; line-height: 28px; }
.dashboard-today-heading > div { display: grid; gap: 4px; }
.dashboard-today-list { display: grid; gap: 8px; }
.dashboard-today-row { display: grid; grid-template-columns: minmax(108px, auto) minmax(0, 1fr) auto auto; align-items: center; gap: 12px; min-width: 0; padding: 14px 16px; border-radius: 12px; background: var(--background); }
.dashboard-today-time { min-width: 0; font-size: 14px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.dashboard-today-copy { display: grid; gap: 4px; min-width: 0; }
.dashboard-today-copy strong { overflow-wrap: anywhere; }
.dashboard-today-copy span { color: var(--muted); font-size: 12px; line-height: 18px; }
.dashboard-today-link { color: var(--primary); font-size: 12px; font-weight: 650; text-decoration: none; }
.dashboard-today-link:hover { text-decoration: underline; }
.dashboard-empty { display: grid; gap: 6px; padding: 18px; border: 1px dashed var(--border); border-radius: 12px; color: var(--muted); background: var(--background); }
.dashboard-empty strong { color: var(--ink); }
.dashboard-agenda-link { justify-self: start; }

@media (max-width: 1000px) and (min-width: 761px) {
  .agenda-month-layout { grid-template-columns: minmax(0, 1fr); }
  .agenda-selected-day { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .agenda-selected-day > header,
  .agenda-selected-day-summary,
  .agenda-selected-day-entries,
  .agenda-open-day { grid-column: 1 / -1; }
  .finance-overview-summary-grid { grid-template-columns: minmax(0, 1fr); }
  .finance-overview-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .finance-report-charts { grid-template-columns: minmax(0, 1fr); }
  .dashboard-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-today-row { grid-template-columns: minmax(108px, auto) minmax(0, 1fr); }
  .dashboard-today-row .status-pill,
  .dashboard-today-link { grid-column: 2; justify-self: start; }
  .local-appointment-layout,
  .appointment-detail-layout { grid-template-columns: minmax(0, 1fr); }
  .availability-selection-form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; }
}

@media (max-width: 760px) {
  .appointment-page-intro { gap: 10px; }
  .appointment-page-intro h1 { font-size: 24px; line-height: 32px; }
  .appointment-form-panel,
  .appointment-context-panel { padding: 14px; }
  .local-appointment-layout,
  .appointment-detail-layout { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .appointment-action-card { align-items: stretch; flex-direction: column; }
  .appointment-action-card .button { width: 100%; }
  .appointment-form-row,
  .appointment-form-actions,
  .appointment-detail-facts,
  .availability-form-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .appointment-form-actions { display: flex; flex-direction: column-reverse; }
  .appointment-form-actions .button { width: 100%; }
  .availability-selection-form { grid-template-columns: minmax(0, 1fr); }
  .availability-selection-form .button { width: 100%; }
  .availability-week-board-wrap { margin-inline: -2px; }
  .availability-week-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .availability-week-day { min-height: 84px; padding: 8px; }
  .availability-block-row { align-items: stretch; flex-direction: column; }
  .availability-block-row .button { width: 100%; }
  .consult-screen--agenda .agenda-intro { display: grid; gap: 10px; }
  .consult-screen--agenda .agenda-page { gap: 12px; }
  .consult-screen--agenda .agenda-section-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .consult-screen--agenda .agenda-section-tabs a { min-width: 0; min-height: 38px; padding: 7px 6px; font-size: 11px; }
  .agenda-view-switch { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); justify-content: stretch; width: 100%; gap: 4px; }
  .agenda-view-switch .button { min-width: 0; min-height: 40px; padding: 7px 4px; font-size: 12px; }
  .consult-screen--agenda .agenda-toolbar { gap: 8px; padding: 0; }
  .agenda-month-toolbar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .agenda-month-period { gap: 6px; }
  .agenda-month-period h2 { flex: 1; min-width: 0; font-size: 15px; line-height: 22px; text-align: center; }
  .agenda-month-period .agenda-period-arrow { width: 34px; height: 34px; }
  .agenda-month-period .button { min-height: 36px; padding: 6px 9px; font-size: 11px; }
  .agenda-month-toolbar .agenda-view-switch { width: 100%; }
  .agenda-month-toolbar .agenda-view-switch .button { width: 100%; }
  .consult-screen--agenda .agenda-toolbar .section-heading { gap: 8px; }
  .consult-screen--agenda .agenda-toolbar .action-row { gap: 4px; }
  .consult-screen--agenda .agenda-toolbar .action-row .button { min-height: 38px; padding: 6px 3px; font-size: 11px; }
  .agenda-confirmation-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .agenda-confirmation-card { min-height: 140px; padding: 14px; }
  .agenda-confirmation-card--rate { grid-column: 1 / -1; }
  .agenda-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .agenda-filters .field label { font-size: 10px; }
  .agenda-filters select { min-height: 40px; padding: 6px; font-size: 12px; }
  .agenda-filters .button { grid-column: 1 / -1; width: 100%; min-height: 40px; }
  .agenda-month-layout { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .agenda-month-weekdays { font-size: 9px; }
  .agenda-month-weekdays span { padding: 5px 1px; }
  .agenda-month-cells { border-radius: 8px; }
  .agenda-month-cell { min-height: 54px; padding: 4px; gap: 3px; }
  .agenda-month-date { font-size: 11px; }
  .agenda-month-count { font-size: 9px; line-height: 12px; }
  .agenda-month-state { width: 8px; min-width: 8px; min-height: 8px; height: 8px; padding: 0; border-radius: 50%; font-size: 0; line-height: 0; }
  .agenda-month-count { display: inline-grid; place-items: center; width: 18px; height: 18px; padding: 0; border-radius: 50%; color: var(--ink); background: var(--welcome); font-size: 9px; line-height: 18px; }
  .agenda-month-count small { display: none; }
  .agenda-month-summary { display: none; }
  .agenda-month-preview,
  .agenda-month-more { display: none; }
  .agenda-selected-day { grid-template-columns: minmax(0, 1fr); padding: 14px; }
  .agenda-selected-day > header,
  .agenda-selected-day-summary,
  .agenda-selected-day-entries,
  .agenda-open-day { grid-column: auto; }
  .finance-overview-summary,
  .finance-statement-overview,
  .finance-report-chart-card,
  .finance-monthly-panel { padding: 16px; }
  .finance-overview-summary > header,
  .finance-overview-section-heading,
  .finance-monthly-panel > header { align-items: flex-start; flex-direction: column; }
  .finance-overview-summary-grid,
  .finance-statement-overview-grid,
  .finance-report-charts { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .finance-overview-metrics { grid-template-columns: minmax(0, 1fr); }
  .finance-month-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .finance-page-links,
  .finance-overview-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  .finance-page-links .button,
  .finance-overview-actions .button { width: 100%; }
  .finance-overview-period-form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 14px; }
  .finance-overview-period-form .button { grid-column: 1 / -1; width: 100%; }
  .dashboard-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .dashboard-kpi { padding: 14px; }
  .dashboard-kpi strong { font-size: 23px; line-height: 30px; }
  .dashboard-today-panel { padding: 16px; }
  .dashboard-today-heading { align-items: flex-start; }
  .dashboard-today-row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 10px; padding: 12px; }
  .dashboard-today-time { grid-column: 1; }
  .dashboard-today-copy { grid-column: 1 / -1; }
  .dashboard-today-row .status-pill { grid-column: 2; grid-row: 1; }
  .dashboard-today-link { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
  .finance-cash-bar { transition: none; }
}

.patient-form-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(250px, 0.72fr); align-items: start; gap: 16px; }
.patient-form-main,
.patient-form-aside { display: grid; gap: 16px; min-width: 0; }
.patient-form-panel { display: grid; gap: 16px; }
.patient-form-panel > header { display: grid; gap: 4px; }
.patient-form-panel > header p { margin: 0; }
.patient-form-page .form-grid { gap: 0 16px; align-items: start; }
.patient-form-page .field { min-width: 0; margin: 10px 0 14px; }
.patient-form-page .field-wide { grid-column: 1 / -1; }
.patient-form-page .field > input,
.patient-form-page .field > select,
.patient-form-page .field > textarea { min-height: 44px; border-color: var(--border); border-radius: 10px; background: var(--surface); }
.patient-form-page .field label,
.patient-form-page .field legend { margin-bottom: 6px; color: var(--ink); font-size: 12px; font-weight: 650; }
.patient-form-page .choice-field { min-width: 0; border: 0; padding: 0; }
.patient-form-page .choice-field ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.patient-form-page .choice-field li { display: flex; align-items: flex-start; gap: 8px; }
.patient-form-page .choice-field li label { margin: 0; color: var(--muted); font-weight: 400; }
.patient-form-page .choice-field input { width: auto; min-height: auto; margin-top: 3px; accent-color: var(--primary); }
.patient-form-page .help-text { font-size: 12px; line-height: 18px; }
.patient-form-note { display: grid; gap: 10px; padding: 20px; border-radius: 14px; color: var(--ink); background: var(--welcome); }
.patient-form-note h2 { margin: 0; font-size: 18px; line-height: 26px; }
.patient-form-note p { margin: 0; color: var(--muted); line-height: 20px; }
.patient-form-note .status-pill { color: var(--muted); background: var(--surface); }
.patient-form-note--plain { border: 1px solid var(--border); background: var(--surface); }
.patient-form-note--plain strong { font-size: 12px; }
.patient-form-actions { display: flex; flex-direction: row-reverse; margin: 0; }
.patient-form-actions .button { min-width: 140px; }

.page-shell:has(> .consult-login-page) { width: 100%; max-width: none; margin: 0; padding: 0; }
.consult-login-page {
  --ink: #382006;
  --muted: #6f6252;
  --surface: #fdfcfa;
  --background: #f5f3ee;
  --border: #d8d1c5;
  --primary: #382006;
  --primary-dark: #261704;
  --welcome: #e0cfbb;
  --sidebar: #c7c2a5;
  display: grid;
  grid-template-columns: minmax(320px, 0.48fr) minmax(0, 1fr);
  min-height: 100vh;
  color: var(--ink);
  background: var(--background);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.consult-login-brand { display: flex; flex-direction: column; justify-content: space-between; gap: 40px; min-width: 0; padding: clamp(28px, 4vw, 56px); background: var(--sidebar); }
.consult-login-wordmark { display: grid; gap: 4px; }
.consult-login-wordmark strong { font-size: 24px; line-height: 32px; }
.consult-login-wordmark span,
.consult-login-footnote { color: var(--muted); font-size: 12px; line-height: 18px; }
.consult-login-pitch { display: grid; gap: 16px; width: min(100%, 460px); margin-block: auto; }
.consult-login-pitch h1 { margin: 0; font-size: clamp(30px, 3vw, 40px); line-height: 1.12; }
.consult-login-pitch > p { margin: 0; color: var(--muted); line-height: 22px; }
.consult-login-assurance { display: grid; gap: 6px; padding: 16px; border-radius: 12px; background: #e9effa; }
.consult-login-assurance span { color: var(--muted); font-size: 12px; line-height: 18px; }
.consult-login-footnote { margin: 0; }
.consult-login-main { display: grid; align-content: start; justify-items: center; gap: 28px; min-width: 0; padding: clamp(32px, 6vw, 80px); }
.consult-login-main > header { display: grid; gap: 6px; width: min(100%, 620px); margin-top: 0; }
.consult-login-main > header h2 { margin: 0; font-size: 28px; line-height: 36px; }
.consult-login-main > header p { margin: 0; }
.consult-login-main .eyebrow { color: var(--muted); font-size: 12px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.consult-login-card { width: min(100%, 620px); padding: 24px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }
.consult-login-card h3 { margin: 0 0 4px; font-size: 20px; line-height: 28px; }
.consult-login-card > p { margin: 0 0 20px; }
.consult-login-card .field { margin: 0 0 18px; }
.consult-login-card .field label { margin-bottom: 6px; font-size: 12px; }
.consult-login-card input { min-height: 44px; border-color: var(--border); border-radius: 10px; background: var(--surface); }
.consult-login-card .button.primary { width: 100%; min-height: 48px; margin-top: 2px; border-radius: 10px; color: #fff; background: var(--primary); }
.consult-login-card .help-text,
.consult-login-card .consult-login-footnote { font-size: 12px; line-height: 18px; }
.consult-login-card .consult-login-footnote { margin: 14px 0 0; color: var(--muted); }
.consult-login-recovery-link { margin: 14px 0 0 !important; text-align: center; font-size: 12px; }
.consult-login-recovery-link a { color: var(--primary); font-weight: 650; text-decoration: underline; text-underline-offset: 3px; }
.consult-login-security { display: flex; align-items: flex-start; gap: 10px; width: min(100%, 620px); color: var(--muted); }
.consult-login-security span { color: var(--primary); font-size: 20px; line-height: 24px; }
.consult-login-security p { margin: 0; font-size: 12px; line-height: 18px; }

@media (max-width: 1000px) and (min-width: 761px) {
  .statement-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .statement-columns,
  .fiscal-page-grid,
  .patient-detail-grid,
  .patient-form-layout { grid-template-columns: minmax(0, 1fr); }
  .statement-side-column,
  .patient-detail-side { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .patient-form-aside { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .statement-page-intro,
  .fiscal-page-intro,
  .patient-detail-intro,
  .patient-form-intro { flex-direction: column; align-items: stretch; gap: 14px; }
  .statement-page-intro .status-pill { align-self: flex-start; }
  .statement-summary,
  .statement-panel,
  .fiscal-panel,
  .patient-detail-panel,
  .patient-form-panel { padding: 16px; }
  .statement-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 10px; }
  .statement-summary-grid dd { font-size: 16px; line-height: 22px; }
  .statement-columns,
  .fiscal-page-grid,
  .patient-detail-grid,
  .patient-form-layout { grid-template-columns: minmax(0, 1fr); }
  .statement-side-column,
  .patient-detail-side,
  .patient-form-aside { grid-template-columns: minmax(0, 1fr); }
  .statement-finalize { align-items: stretch; flex-direction: column; }
  .statement-finalize .button,
  .fiscal-page-intro .button,
  .patient-detail-intro .button { width: 100%; }
  .fiscal-tools-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fiscal-tools-nav a { min-width: 0; padding-inline: 8px; }
  .fiscal-safety-note { grid-template-columns: minmax(0, 1fr); }
  .fiscal-filter-row { align-items: stretch; flex-direction: column; }
  .fiscal-filter-row .field { flex-basis: auto; }
  .fiscal-filter-row .button { width: 100%; }
  .consult-screen--fiscal .record-item,
  .patient-detail-panel .record-item { align-items: flex-start; flex-direction: column; }
  .fiscal-draft-meta { justify-items: start; text-align: left; }
  .patient-profile-summary { padding: 18px; }
  .patient-profile-summary dl { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .patient-detail-facts { grid-template-columns: minmax(0, 1fr); }
  .patient-form-page .form-grid { grid-template-columns: minmax(0, 1fr); }
  .patient-form-page .field-wide { grid-column: auto; }
  .patient-form-actions { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; min-width: 0; gap: 8px; }
  .patient-form-actions > .button { width: 100%; min-width: 0; flex: none; }
  .consult-login-page { grid-template-columns: minmax(0, 1fr); }
  .consult-login-brand { gap: 28px; min-height: 270px; padding: 24px 20px; }
  .consult-login-pitch { gap: 12px; margin-block: 16px 0; }
  .consult-login-pitch h1 { font-size: 30px; }
  .consult-login-brand > .consult-login-footnote { display: none; }
  .consult-login-main { gap: 20px; padding: 24px 16px 40px; }
  .consult-login-main > header h2 { font-size: 24px; line-height: 32px; }
  .consult-login-card { padding: 20px; }
}

.page-shell:has(> .patient-portal) { width: 100%; max-width: none; margin: 0; padding: 0; }
.patient-portal {
  --ink: #382006;
  --muted: #6f6252;
  --surface: #fdfcfa;
  --background: #f5f3ee;
  --border: #d8d1c5;
  --primary: #382006;
  --primary-dark: #261704;
  --welcome: #e0cfbb;
  --success: #2f6848;
  --success-soft: #edf5ef;
  --warning: #835318;
  --warning-soft: #fff4df;
  min-height: 100vh;
  padding-bottom: 20px;
  color: var(--ink);
  background: var(--background);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 14px;
}
.portal-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 72px; padding: 12px max(20px, calc((100% - 1120px) / 2)); border-bottom: 1px solid var(--border); background: var(--surface); }
.portal-brand { color: var(--ink); font-size: 20px; font-weight: 650; text-decoration: none; }
.portal-header form { margin: 0; }
.portal-content { display: grid; gap: 20px; width: min(100% - 40px, 760px); margin: 32px auto; }
.portal-intro { display: grid; gap: 6px; }
.portal-intro h1 { margin: 0; font-size: 32px; line-height: 40px; }
.portal-intro p { margin: 0; color: var(--muted); }
.portal-eyebrow { margin: 0; color: var(--muted); font-size: 12px; line-height: 18px; }
.portal-welcome { display: grid; gap: 6px; padding: 20px; border-radius: 14px; background: var(--welcome); }
.portal-welcome strong { font-size: 20px; line-height: 28px; }
.portal-welcome span { color: var(--muted); line-height: 20px; }
.portal-notices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.portal-notice { display: grid; gap: 6px; padding: 14px 16px; border-radius: 12px; color: var(--warning); background: var(--warning-soft); }
.portal-notice span { color: var(--muted); font-size: 12px; line-height: 18px; }
.portal-notice--info { color: var(--ink); background: #e9effa; }
.portal-section { display: grid; gap: 12px; scroll-margin-top: 20px; }
.portal-section > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.portal-section > header > div { display: grid; gap: 4px; }
.portal-section h2 { margin: 0; font-size: 20px; line-height: 28px; }
.portal-count { display: inline-grid; min-width: 32px; min-height: 32px; place-items: center; padding: 4px 10px; border-radius: 9px; color: var(--ink); background: var(--welcome); font-size: 12px; font-weight: 650; }
.portal-card-list { display: grid; gap: 10px; }
.portal-card { display: grid; gap: 8px; min-width: 0; padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); }
.portal-card strong { line-height: 20px; }
.portal-card span { color: var(--muted); line-height: 20px; overflow-wrap: anywhere; }
.portal-appointment-card { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.portal-appointment-date { display: grid; gap: 4px; min-width: 0; }
.portal-appointment-date strong { font-size: 16px; line-height: 22px; }
.portal-appointment-states { display: flex; flex-wrap: wrap; gap: 6px; grid-column: 1 / -1; }
.portal-state { display: inline-flex; align-items: center; min-height: 28px; padding: 5px 9px; border-radius: 8px; font-size: 12px; line-height: 18px; }
.portal-state--confirmation { color: var(--success); background: var(--success-soft); }
.portal-state--result { color: var(--muted); background: var(--background); }
.portal-state--pending { color: var(--warning); background: var(--warning-soft); }
.portal-button { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 9px 14px; border: 1px solid transparent; border-radius: 10px; color: #fff; background: var(--primary); font: inherit; font-weight: 650; text-decoration: none; cursor: pointer; }
.portal-button:hover { background: var(--primary-dark); }
.portal-button--quiet,
.portal-button--secondary { border-color: var(--border); color: var(--primary); background: var(--surface); }
.portal-button--quiet:hover,
.portal-button--secondary:hover { border-color: var(--primary); color: var(--primary); background: var(--background); }
.portal-link-card { color: var(--ink); text-decoration: none; }
.portal-link-card:hover { border-color: var(--primary); }
.portal-empty { border-style: dashed; }
.portal-footer { display: grid; gap: 4px; padding: 12px 0 4px; color: var(--muted); font-size: 12px; line-height: 18px; }
.portal-mobile-nav { display: none; }
.portal-back-link { width: fit-content; color: var(--primary); font-weight: 650; text-decoration: none; }
.portal-back-link:hover { text-decoration: underline; }
.portal-statement-summary { display: grid; gap: 14px; padding: 18px 20px; border-radius: 14px; background: var(--welcome); }
.portal-statement-summary h2 { margin: 0; font-size: 20px; line-height: 28px; }
.portal-statement-summary dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; }
.portal-statement-summary dl div { display: grid; gap: 4px; min-width: 0; }
.portal-statement-summary dt { color: var(--muted); font-size: 12px; line-height: 18px; }
.portal-statement-summary dd { margin: 0; font-size: 16px; font-weight: 650; overflow-wrap: anywhere; }
.portal-statement-lines { display: grid; gap: 8px; margin: 0; }
.patient-portal .portal-statement-lines li { gap: 10px; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.patient-portal .portal-statement-lines li > div { gap: 4px; }
.patient-portal .portal-statement-lines li strong { overflow-wrap: anywhere; }
.patient-portal .portal-statement-lines li span { color: var(--muted); font-size: 12px; line-height: 18px; }
.portal-primary-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px; min-width: 0; }
.portal-primary-nav a { display: inline-flex; min-height: 42px; align-items: center; padding: 8px 11px; border-radius: 9px; color: var(--muted); font-weight: 600; text-decoration: none; }
.portal-primary-nav a:hover,
.portal-primary-nav a[aria-current="page"] { color: var(--ink); background: var(--background); }
.portal-account-menu { display: none; }
.portal-account-menu summary { display: inline-flex; min-height: 42px; align-items: center; padding: 8px 12px; border: 1px solid var(--border); border-radius: 10px; color: var(--ink); background: var(--surface); font-weight: 650; cursor: pointer; list-style: none; }
.portal-account-menu summary::-webkit-details-marker { display: none; }
.portal-account-menu > div { position: absolute; z-index: 8; top: calc(100% - 2px); right: 12px; display: grid; min-width: 190px; gap: 6px; padding: 10px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); box-shadow: 0 12px 32px rgba(35, 22, 8, 0.16); }
.portal-account-menu > div a,
.portal-account-menu > div button { display: flex; min-height: 42px; align-items: center; padding: 8px 10px; border: 0; border-radius: 8px; color: var(--ink); background: transparent; font: inherit; font-weight: 600; text-align: left; text-decoration: none; cursor: pointer; }
.portal-account-menu > div a:hover,
.portal-account-menu > div button:hover { background: var(--background); }
.portal-account-menu form { margin: 0; }
.portal-home-summary-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.request-loading { display: none; align-items: center; gap: 8px; min-height: 36px; padding: 6px 10px; border-radius: 9px; color: var(--muted); background: var(--background); font-size: 12px; line-height: 18px; }
.request-loading.htmx-request,
.htmx-request .request-loading { display: flex; }
.request-loading-spinner { display: inline-block; flex: 0 0 15px; width: 15px; height: 15px; border: 2px solid var(--border); border-top-color: var(--primary); border-radius: 50%; animation: request-spin 0.8s linear infinite; }
@keyframes request-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .request-loading-spinner { animation: none; border-color: var(--primary); } }
.request-loading-logo { width: 100%; min-height: 72px; justify-content: center; padding: 0; border-radius: 0; background: transparent; }
.consult-loading-mark { position: relative; display: block; width: 28px; height: 28px; flex: 0 0 28px; overflow: visible; }
.consult-loading-reveal { display: block; width: 28px; height: 28px; overflow: visible; }
.consult-loading-mask-path { fill: none; stroke: #fff; stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; stroke-dashoffset: 0; stroke-dasharray: 0 1; visibility: hidden; animation: consult-loading-trace 9.6s linear infinite; }
@keyframes consult-loading-trace {
  0% { animation-timing-function: step-end; stroke-dasharray: 0 1; visibility: hidden; }
  16.667% { stroke-dasharray: 1 1; visibility: visible; }
  22.396% { stroke-dasharray: 1 1; visibility: visible; }
  45.313% { stroke-dasharray: 1 1; visibility: visible; }
  48.958% { stroke-dasharray: 1 1; visibility: visible; }
  50% { stroke-dasharray: 1 1; visibility: visible; }
  66.667% { stroke-dasharray: 1 1; visibility: visible; }
  72.396% { stroke-dasharray: 1 1; visibility: visible; }
  95.313% { stroke-dasharray: 1 1; visibility: visible; }
  98.958% { stroke-dasharray: 1 1; visibility: visible; }
  100% { stroke-dasharray: 1 1; visibility: visible; }
}
@media (prefers-reduced-motion: reduce) {
  .consult-loading-mask-path { animation: none; stroke-dasharray: 1 1; visibility: visible; }
}
.portal-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.portal-summary-card { display: grid; align-content: start; gap: 7px; min-width: 0; min-height: 132px; padding: 16px; border: 1px solid var(--border); border-radius: 14px; color: var(--ink); background: var(--surface); text-decoration: none; }
.portal-summary-card:hover { border-color: var(--primary); }
.portal-summary-card--next { background: var(--welcome); }
.portal-summary-label { color: var(--muted); font-size: 12px; font-weight: 650; line-height: 18px; }
.portal-summary-card strong { font-size: 17px; line-height: 22px; overflow-wrap: anywhere; }
.portal-summary-card span:not(.portal-summary-label) { color: var(--muted); font-size: 12px; line-height: 18px; overflow-wrap: anywhere; }
.portal-summary-card .portal-summary-action { margin-top: auto; color: var(--primary); font-weight: 650; }
.portal-help-disclosure { padding: 12px 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.portal-help-disclosure summary { color: var(--ink); font-weight: 650; cursor: pointer; }
.portal-help-disclosure p { margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 18px; }
.portal-balance-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; padding: 20px; border-radius: 16px; color: var(--ink); background: var(--welcome); }
.portal-balance-hero > div:first-child { display: grid; gap: 6px; }
.portal-balance-hero h2 { margin: 0; font-size: 20px; line-height: 28px; }
.portal-balance-hero > div:first-child > strong { font-size: 30px; line-height: 36px; }
.portal-balance-hero > div:first-child > span,
.portal-balance-facts > span { color: var(--muted); font-size: 12px; line-height: 18px; }
.portal-balance-facts { display: grid; gap: 8px; min-width: 170px; }
.portal-balance-facts > span { display: flex; justify-content: space-between; gap: 10px; }
.portal-balance-facts strong { color: var(--ink); }
.portal-forecast-card { border-style: dashed; background: var(--background); }
.portal-action-disclosure { display: grid; gap: 12px; }
.portal-action-disclosure summary { width: fit-content; color: var(--primary); font-weight: 650; cursor: pointer; }
.portal-action-disclosure > p { margin: 0; }
.portal-action-disclosure[open] .portal-form { margin-top: 4px; }
.portal-account-menu:focus-within summary,
.portal-mobile-nav a:focus-visible,
.portal-primary-nav a:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.portal-card-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.portal-card-actions form { margin: 0; }
.portal-filter { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.portal-filter label { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 12px; font-weight: 650; }
.portal-filter select { min-width: 0; min-height: 42px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 9px; color: var(--ink); background: var(--surface); font: inherit; }
.portal-form { display: grid; gap: 12px; min-width: 0; }
.portal-form label { display: block; margin: 0 0 5px; color: var(--muted); font-size: 12px; font-weight: 650; }
.portal-field { display: grid; gap: 5px; min-width: 0; }
.portal-field input,
.portal-field select,
.portal-field textarea,
.portal-form > input,
.portal-form > select,
.portal-form > textarea { width: 100%; min-width: 0; min-height: 42px; padding: 9px 11px; border: 1px solid var(--border); border-radius: 9px; color: var(--ink); background: #fff; font: inherit; }
.portal-field textarea,
.portal-form > textarea { min-height: 104px; resize: vertical; }
.portal-field small,
.portal-muted { margin: 0; color: var(--muted); font-size: 12px; line-height: 18px; overflow-wrap: anywhere; }
.portal-field-error,
.portal-form-errors { color: #8b2635; font-size: 12px; line-height: 18px; }
.portal-form-errors ul { margin: 4px 0 0; padding-left: 18px; }
.portal-flash-messages { display: grid; gap: 8px; }
.portal-flash { margin: 0; padding: 12px 14px; border-radius: 10px; color: var(--ink); background: #e9effa; line-height: 20px; overflow-wrap: anywhere; }
.portal-flash--success { color: var(--success); background: var(--success-soft); }
.portal-flash--error { color: #8b2635; background: #fcecef; }
.portal-message-list { display: grid; gap: 10px; min-width: 0; }
.portal-message { display: grid; gap: 5px; width: fit-content; max-width: min(100%, 620px); min-width: 0; padding: 12px 14px; border: 1px solid var(--border); border-radius: 12px 12px 12px 4px; background: var(--surface); overflow-wrap: anywhere; }
.portal-message--self { justify-self: end; border-color: #c9b49c; border-radius: 12px 12px 4px 12px; background: var(--welcome); }
.portal-message p { margin: 0; line-height: 20px; white-space: pre-wrap; overflow-wrap: anywhere; }
.portal-message time { color: var(--muted); font-size: 11px; line-height: 16px; }
.portal-admin-grid { display: grid; grid-template-columns: minmax(260px, 0.78fr) minmax(0, 1.22fr); align-items: start; gap: 14px; }
.portal-admin-thread-list,
.portal-admin-request-list { display: grid; gap: 10px; min-width: 0; }
.portal-admin-request { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 0.8fr); align-items: start; gap: 14px; padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: var(--background); }
.portal-admin-request > div { display: grid; gap: 6px; min-width: 0; }
.portal-admin-request > div span { color: var(--muted); line-height: 19px; overflow-wrap: anywhere; }
.portal-admin-reply { padding: 14px; }
.portal-admin-reply label { font-size: 12px; font-weight: 650; }

@media (max-width: 760px) {
  .patient-portal { padding-bottom: 76px; }
  .portal-header { min-height: 64px; padding: 10px 16px; border-radius: 0 0 12px 12px; }
  .portal-content { gap: 16px; width: auto; margin: 22px 16px 24px; }
  .portal-intro h1 { font-size: 26px; line-height: 34px; }
  .portal-welcome { padding: 16px; }
  .portal-notices { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .portal-section { gap: 10px; }
  .portal-section h2 { font-size: 18px; line-height: 26px; }
  .portal-appointment-card { grid-template-columns: minmax(0, 1fr); }
  .portal-appointment-card .portal-button { width: 100%; }
  .portal-appointment-states { grid-column: auto; }
  .portal-statement-summary { padding: 16px; }
  .portal-statement-summary dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .portal-primary-nav { display: none; }
  .portal-header > form { display: none; }
  .portal-account-menu { position: relative; display: block; }
  .portal-account-menu summary { min-height: 42px; padding: 8px 11px; }
  .portal-mobile-nav { position: fixed; z-index: 5; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2px; padding: 7px max(5px, env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(5px, env(safe-area-inset-left)); border-top: 1px solid var(--border); background: var(--surface); }
  .portal-mobile-nav a { display: grid; grid-template-rows: 18px 14px; min-width: 0; min-height: 44px; place-items: center; gap: 2px; padding-inline: 1px; border-radius: 9px; color: var(--ink); font-size: 9px; font-weight: 650; line-height: 13px; text-align: center; text-decoration: none; white-space: nowrap; }
  .portal-mobile-nav svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
  .portal-mobile-nav a[aria-current="page"] { background: var(--welcome); }
  .portal-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .portal-summary-card { min-height: 104px; padding: 12px; gap: 5px; }
  .portal-summary-card--next { grid-column: 1 / -1; }
  .portal-summary-card strong { font-size: 15px; line-height: 20px; }
  .portal-welcome { padding: 14px; }
  .portal-balance-hero { align-items: stretch; flex-direction: column; padding: 16px; gap: 12px; }
  .portal-balance-facts { min-width: 0; padding-top: 10px; border-top: 1px solid var(--border); }
  .portal-filter { grid-template-columns: minmax(0, 1fr); }
  .portal-filter label { grid-column: auto; }
  .portal-filter .portal-button { width: 100%; }
  .portal-card-actions { align-items: stretch; flex-direction: column; }
  .portal-card-actions > *,
  .portal-card-actions form,
  .portal-card-actions form button { width: 100%; }
  .portal-admin-grid,
  .portal-admin-request { grid-template-columns: minmax(0, 1fr); }
  .portal-admin-reply { padding: 12px; }
}

.consult-screen--communications .communications-page { display: grid; gap: 20px; width: min(100%, 1360px); margin-inline: auto; }
.communications-tools-nav { display: flex; flex-wrap: wrap; gap: 8px; }
.communications-tools-nav a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; border: 1px solid var(--border); border-radius: 10px; color: var(--primary); background: var(--surface); font-size: 12px; font-weight: 650; text-decoration: none; }
.communications-tools-nav a[aria-current="page"] { border-color: var(--primary); color: #fff; background: var(--primary); }
.communications-tools-nav a:hover { border-color: var(--primary); }
.communications-page-intro { display: grid; gap: 6px; }
.communications-page-intro .eyebrow,
.communications-page-intro p { margin: 0; }
.communications-page-intro .muted { color: var(--muted); }
.communications-panel { display: grid; gap: 16px; min-width: 0; padding: 20px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }
.communications-panel > header h2,
.communications-panel > header p { margin: 0; }
.communications-panel > header { display: grid; gap: 4px; }
.communications-panel .section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.communications-panel .section-heading > div { display: grid; gap: 4px; }
.communications-panel .section-heading h2,
.communications-panel .section-heading p { margin: 0; }
.communications-panel .button { min-height: 44px; border-radius: 10px; }
.communications-panel .button.primary { color: #fff; background: var(--primary); }
.communications-panel .button.secondary { border: 1px solid var(--border); color: var(--primary); background: var(--surface); }
.collection-filter-form { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(220px, 0.8fr) auto; align-items: end; gap: 12px; }
.collection-filter-form .field { min-width: 0; margin: 0; }
.collection-filter-form label { margin-bottom: 6px; font-size: 12px; }
.collection-filter-form select { min-height: 44px; border-color: var(--border); border-radius: 10px; background: var(--surface); }
.collection-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 12px; }
.collection-card { display: grid; gap: 12px; min-width: 0; padding: 18px; border: 1px solid var(--border); border-radius: 14px; background: var(--background); }
.collection-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.collection-card-heading > div { display: grid; gap: 4px; min-width: 0; }
.collection-card-heading .eyebrow { margin: 0; }
.collection-card-heading h3 { margin: 0; font-size: 18px; line-height: 26px; }
.collection-status { display: inline-flex; min-height: 28px; align-items: center; padding: 5px 9px; border-radius: 8px; color: var(--warning); background: var(--warning-soft); font-size: 12px; font-weight: 650; }
.collection-recipient { margin: 0; color: var(--muted); }
.collection-recipient strong { color: var(--ink); }
.collection-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; }
.collection-facts div { display: grid; gap: 4px; min-width: 0; padding: 10px; border-radius: 10px; background: var(--surface); }
.collection-facts dt { color: var(--muted); font-size: 12px; line-height: 18px; }
.collection-facts dd { margin: 0; font-weight: 650; overflow-wrap: anywhere; }
.collection-copy-box { display: grid; gap: 10px; padding-top: 12px; border-top: 1px solid var(--border); }
.collection-copy-box > label:first-child { font-size: 12px; font-weight: 650; }
.collection-copy-box textarea { width: 100%; min-height: 116px; resize: vertical; padding: 12px; border: 1px solid var(--border); border-radius: 10px; color: var(--ink); background: var(--surface); font: inherit; font-size: 13px; line-height: 20px; }
.collection-confirm { display: flex; align-items: flex-start; gap: 8px; color: var(--muted); font-size: 12px; line-height: 18px; }
.collection-confirm input { flex: 0 0 auto; width: auto; min-height: auto; margin: 2px 0 0; accent-color: var(--primary); }
.collection-copy-box [data-copy] { justify-self: start; }
.collection-copy-box [data-copy]:disabled { cursor: not-allowed; opacity: 0.55; }
.collection-copy-status { min-height: 18px; margin: 0; color: var(--success); font-size: 12px; line-height: 18px; }
.communications-empty { display: grid; gap: 6px; padding: 18px; border: 1px dashed var(--border); border-radius: 12px; background: var(--background); box-shadow: none; }
.communications-empty p { margin: 0; color: var(--muted); }
.consult-screen--communications .pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.consult-screen--communications .pagination .button { color: var(--primary); }
.transport-simulation-warning { display: grid; gap: 4px; padding: 16px 20px; border-radius: 12px; background: var(--warning-soft); }
.transport-simulation-warning strong { color: var(--ink); }
.transport-simulation-warning span { color: var(--muted); line-height: 20px; }
.transport-flash-messages { display: grid; gap: 8px; }
.transport-flash-messages .notice { margin: 0; border-radius: 10px; }
.transport-intent-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.transport-intent-card,
.transport-dispatch-card { display: grid; gap: 14px; min-width: 0; padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: var(--background); }
.transport-intent-card > div { display: grid; gap: 6px; }
.transport-intent-card .eyebrow,
.transport-dispatch-card .eyebrow { margin: 0; }
.transport-intent-card h3,
.transport-dispatch-card h3 { margin: 0; font-size: 16px; line-height: 22px; }
.transport-status { display: inline-flex; width: fit-content; min-height: 26px; align-items: center; padding: 4px 8px; border-radius: 8px; color: var(--muted); background: var(--surface); font-size: 12px; font-weight: 650; }
.transport-status--planned { color: var(--warning); background: var(--warning-soft); }
.transport-status--complete { color: var(--success); background: var(--success-soft); }
.transport-status--failed { color: #8b2635; background: #fcecef; }
.transport-status--unknown { color: #6847a5; background: #f0eafa; }
.transport-simulate-form,
.transport-response-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.transport-simulate-form .field,
.transport-response-form .field { min-width: 0; margin: 0; }
.transport-simulate-form label,
.transport-response-form label { margin-bottom: 6px; font-size: 12px; }
.transport-simulate-form select,
.transport-response-form select { min-height: 44px; border-color: var(--border); border-radius: 10px; background: var(--surface); }
.transport-dispatch-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 12px; }
.transport-dispatch-card { background: var(--surface); }
.transport-dispatch-card > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.transport-dispatch-card > header > div { display: grid; gap: 4px; min-width: 0; }
.transport-destination { margin: -6px 0 0; color: var(--muted); font-size: 12px; }
.transport-message-preview { display: grid; gap: 6px; padding: 12px; border-radius: 10px; background: var(--background); }
.transport-message-preview > span { color: var(--muted); font-size: 12px; }
.transport-message-preview p { margin: 0; line-height: 20px; }
.transport-response { margin: 0; color: var(--muted); }
.transport-dispatch-card .notice.warning { margin: 0; border: 0; border-radius: 10px; color: var(--warning); background: var(--warning-soft); }
.transport-receipts { border-top: 1px solid var(--border); padding-top: 10px; }
.transport-receipts summary { cursor: pointer; font-weight: 650; }
.transport-receipts p { margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 18px; }

@media (max-width: 1000px) and (min-width: 761px) {
  .collection-cards,
  .transport-intent-grid,
  .transport-dispatch-list { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 760px) {
  .communications-panel { padding: 16px; }
  .communications-tools-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .communications-tools-nav a { min-width: 0; padding-inline: 8px; }
  .collection-filter-form,
  .collection-cards,
  .transport-intent-grid,
  .transport-dispatch-list { grid-template-columns: minmax(0, 1fr); }
  .collection-filter-form .button { width: 100%; }
  .collection-card { padding: 14px; }
  .collection-card-heading { align-items: flex-start; flex-direction: column; }
  .collection-copy-box [data-copy] { width: 100%; }
  .transport-simulate-form,
  .transport-response-form { grid-template-columns: minmax(0, 1fr); }
  .transport-simulate-form .button,
  .transport-response-form .button { width: 100%; }
  .consult-screen--communications .pagination .button { min-width: 84px; }
}

.consult-screen--payments .payments-page { display: grid; gap: 20px; width: min(100%, 1360px); margin-inline: auto; }
.payments-page-intro { display: grid; gap: 6px; }
.payments-page-intro .eyebrow,
.payments-page-intro p { margin: 0; }
.payments-page-intro .muted { color: var(--muted); }
.payments-flash-messages { display: grid; gap: 8px; }
.payments-flash-messages .notice { margin: 0; border-radius: 10px; }
.payments-page-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(270px, 0.72fr); align-items: start; gap: 16px; }
.payments-main-column,
.payments-side-column { display: grid; gap: 16px; min-width: 0; }
.payments-panel { display: grid; gap: 16px; min-width: 0; padding: 20px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }
.payments-page-intro { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.payments-page-intro > div { display: grid; gap: 6px; min-width: 0; }
.payments-page-intro > .button { flex: 0 0 auto; }
.payments-panel > header { display: grid; gap: 4px; }
.payments-panel > header > div { display: grid; gap: 4px; }
.payments-panel > header h2,
.payments-panel > header p { margin: 0; }
.payments-panel > header h2 { font-size: 20px; line-height: 28px; }
.payments-panel .eyebrow { color: var(--muted); }
.payments-panel .button { min-height: 44px; border-radius: 10px; }
.payments-panel .button.primary { color: #fff; background: var(--primary); }
.payments-panel .button.secondary { border: 1px solid var(--border); color: var(--primary); background: var(--surface); }
.payment-patient-filter { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 12px; padding: 14px; border-radius: 12px; background: var(--background); }
.payment-patient-filter .field { min-width: 0; margin: 0; }
.payment-patient-filter label,
.payment-register-form label,
.pix-configuration-form label { margin-bottom: 6px; font-size: 12px; }
.payment-patient-filter select,
.payment-register-form input,
.payment-register-form select,
.pix-configuration-form input,
.pix-configuration-form select { min-height: 44px; border-color: var(--border); border-radius: 10px; background: var(--surface); }
.payment-register-form { display: grid; gap: 16px; }
.payment-register-form .notice { margin: 0; }
.payment-fields-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; align-items: start; }
.payment-fields-grid .field { min-width: 0; margin: 8px 0 12px; }
.payment-fields-grid .field .muted { margin: 0; }
.payment-allocation-fieldset { display: grid; gap: 10px; min-width: 0; margin: 0; padding: 16px; border: 1px solid var(--border); border-radius: 12px; }
.payment-allocation-fieldset legend { padding-inline: 6px; font-weight: 650; }
.payment-allocation-fieldset > .muted { margin: -6px 0 0; font-size: 12px; line-height: 18px; }
.payment-allocation-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(140px, 180px) auto; align-items: center; gap: 10px; padding: 10px; border-radius: 10px; background: var(--background); }
.payment-allocation-row > div { display: grid; gap: 4px; min-width: 0; }
.payment-allocation-row > div strong { overflow-wrap: anywhere; }
.payment-allocation-row > div span { color: var(--muted); font-size: 12px; line-height: 18px; }
.payment-allocation-row input { min-width: 0; }
.payment-empty-allocation { padding: 12px; border-radius: 10px; background: var(--background); }
.payment-register-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.payment-register-actions > span { color: var(--muted); font-size: 12px; line-height: 18px; }
.payments-note { display: grid; gap: 10px; padding: 20px; border-radius: 14px; background: var(--welcome); }
.payments-note h2 { margin: 0; font-size: 20px; line-height: 28px; }
.payments-note p { margin: 0; line-height: 20px; }
.payments-note span { color: var(--muted); font-size: 12px; line-height: 18px; }
.payments-panel .pix-configuration-form { display: grid; gap: 8px; }
.payments-panel .pix-configuration-form .field { margin: 4px 0; }
.payments-panel .notice.warning { margin: 0; border: 0; border-radius: 10px; color: var(--warning); background: var(--warning-soft); }
.pix-copy-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.pix-copy-row input { min-width: 0; }
.pix-copy-row [role="status"] { grid-column: 1 / -1; color: var(--success); font-size: 12px; }
.payment-history-list { gap: 8px; }
.consult-screen--payments .record-item { min-height: 64px; border-color: transparent; border-radius: 12px; background: var(--background); }
.payments-empty { display: grid; gap: 6px; padding: 16px; border: 1px dashed var(--border); border-radius: 12px; color: var(--muted); background: var(--background); }
.payments-empty strong { color: var(--ink); }

@media (max-width: 1000px) and (min-width: 761px) {
  .payments-page-grid { grid-template-columns: minmax(0, 1fr); }
  .payments-side-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .payment-allocation-row { grid-template-columns: minmax(0, 1fr) minmax(120px, 160px); }
  .payment-allocation-row .button { grid-column: 2; }
}

@media (max-width: 760px) {
  .payments-page-grid,
  .payments-side-column,
  .payment-fields-grid { grid-template-columns: minmax(0, 1fr); }
  .payments-panel { padding: 16px; }
  .payment-patient-filter,
  .payment-allocation-row,
  .pix-copy-row { grid-template-columns: minmax(0, 1fr); }
  .payment-patient-filter .button,
  .payment-register-actions .button,
  .payment-allocation-row .button,
  .payments-panel .pix-configuration-form .button,
  .pix-copy-row .button { width: 100%; }
  .payment-register-actions { align-items: stretch; flex-direction: column; }
  .payment-allocation-row .button { grid-column: auto; }
  .pix-copy-row [role="status"] { grid-column: auto; }
  .payments-page-intro { align-items: stretch; flex-direction: column; }
  .payments-page-intro > .button { width: 100%; justify-content: center; }
}

@media (max-width: 760px) {
  .patient-list-filters { grid-template-columns: minmax(0, 1fr); }
  .patient-filter-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .patient-filter-actions .button { width: 100%; }
  .patient-next-appointment > header { align-items: stretch; flex-direction: column; }
  .patient-next-appointment > header .button { width: 100%; }
  .patient-profile-summary dl { grid-template-columns: minmax(0, 1fr); gap: 10px; }
}

.agenda-create-inline-mobile,
.agenda-create-month-mobile { display: none; }

.finance-mobile-summary,
.finance-mobile-charts,
.finance-mobile-totals,
.finance-mobile-note { display: none; }

@media (max-width: 760px) {
  .agenda-create-inline-mobile,
  .agenda-create-month-mobile { display: inline-flex; }
  .agenda-create-month-mobile { width: 100%; justify-content: center; }
  .agenda-view-switch .agenda-create-inline-mobile { grid-column: 1 / -1; justify-content: center; }
  .patient-next-appointment-actions { align-items: stretch; flex-direction: column; }
  .patient-next-appointment-actions .button { width: 100%; justify-content: center; }
}

@media (max-width: 760px) {
  .consult-screen--finance .finance-fiscal-note,
  .consult-screen--finance .finance-page-links { display: none; }
  .consult-screen--finance .finance-overview-summary > header { display: none; }
  .consult-screen--finance .finance-overview-summary-grid,
  .consult-screen--finance .finance-statement-overview { display: none; }
  .finance-mobile-summary { display: grid; gap: 10px; margin-top: 12px; }
  .finance-mobile-result,
  .finance-mobile-summary-cards > article,
  .finance-mobile-chart { min-width: 0; padding: 14px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); }
  .finance-mobile-result { display: grid; gap: 4px; }
  .finance-mobile-result > span,
  .finance-mobile-summary-cards > article > span { font-size: 12px; font-weight: 650; }
  .finance-mobile-result > strong { font-size: 26px; line-height: 32px; }
  .finance-mobile-result > small,
  .finance-mobile-summary-cards > article > small { color: var(--muted); font-size: 11px; line-height: 16px; }
  .finance-mobile-summary-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .finance-mobile-summary-cards > article { display: grid; align-content: start; gap: 4px; background: var(--welcome); }
  .finance-mobile-summary-cards > article + article { background: var(--warning-soft); }
  .finance-mobile-summary-cards > article > strong { font-size: 20px; line-height: 28px; overflow-wrap: anywhere; }
  .finance-mobile-charts { display: grid; gap: 10px; margin-top: 12px; }
  .finance-mobile-chart { display: grid; gap: 10px; }
  .finance-mobile-chart > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
  .finance-mobile-chart > header h3,
  .finance-mobile-chart > header p { margin: 0; }
  .finance-mobile-chart > header h3 { font-size: 14px; line-height: 20px; }
  .finance-mobile-chart > header p,
  .finance-mobile-chart > p { color: var(--muted); font-size: 11px; line-height: 16px; }
  .finance-mobile-chart > p { margin: 0; }
  .finance-mobile-chart-badge { display: inline-flex; min-width: 34px; min-height: 28px; align-items: center; justify-content: center; padding: 4px 8px; border-radius: 999px; color: var(--ink); background: var(--welcome); font-size: 11px; font-weight: 700; }
  .finance-mobile-chart-badge--pending { background: var(--warning-soft); }
  .finance-mobile-bars { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .finance-mobile-bar-column { display: grid; justify-items: center; align-content: end; gap: 4px; min-width: 0; }
  .finance-mobile-bar-track { display: flex; width: 50px; height: 88px; align-items: end; justify-content: center; overflow: hidden; border-radius: 10px; background: var(--background); }
  .finance-mobile-bar { display: block; width: 100%; min-height: 0; border-radius: 10px; transition: height 180ms ease-out; }
  .finance-mobile-bar--received { background: var(--primary-dark); }
  .finance-mobile-bar--pending { background: var(--warning); }
  .finance-mobile-bar-column strong { font-size: 11px; line-height: 15px; text-align: center; overflow-wrap: anywhere; }
  .finance-mobile-bar-column > span { color: var(--muted); font-size: 10px; }
  .finance-mobile-chart .finance-chart-empty { margin: 0; padding: 10px; font-size: 12px; }
  .finance-mobile-totals { display: table; width: 100%; margin-top: 12px; border-collapse: collapse; overflow: hidden; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); }
  .finance-mobile-totals th,
  .finance-mobile-totals td { padding: 11px 12px; border-bottom: 1px solid var(--border); font-size: 12px; }
  .finance-mobile-totals tr:last-child th,
  .finance-mobile-totals tr:last-child td { border-bottom: 0; }
  .finance-mobile-totals th { color: var(--ink); font-weight: 650; text-align: left; }
  .finance-mobile-totals td { font-weight: 700; text-align: right; white-space: nowrap; }
  .finance-mobile-note { display: block; margin: 10px 0 0; color: var(--muted); font-size: 11px; line-height: 16px; }
  .finance-overview-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .finance-overview-actions .button { min-height: 42px; justify-content: center; padding-inline: 8px; font-size: 12px; }
  .finance-mobile-bar { transition: none; }
}

@media (prefers-reduced-motion: reduce) {
  .finance-mobile-bar { transition: none; }
}

.consult-screen--settings { gap: 18px; }
.settings-page { display: grid; gap: 18px; width: min(100%, 1360px); margin-inline: auto; }
.settings-page-intro { display: grid; gap: 5px; }
.settings-page-intro > * { margin: 0; }
.settings-page-intro h1 { font-size: 28px; line-height: 36px; }
.settings-section-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 14px; }
.settings-section-card,
.settings-catalog-panel { display: grid; align-content: start; gap: 12px; min-width: 0; padding: 18px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }
.settings-section-card > header { display: flex; align-items: flex-start; gap: 10px; }
.settings-section-icon { display: inline-flex; width: 36px; height: 36px; flex: 0 0 36px; align-items: center; justify-content: center; border-radius: 11px; color: var(--primary); background: var(--background); font-size: 18px; }
.settings-section-card .eyebrow,
.settings-section-card h2,
.settings-section-card p { margin: 0; }
.settings-section-card h2 { font-size: 17px; line-height: 23px; }
.settings-section-card > p { color: var(--ink); font-size: 13px; line-height: 19px; }
.settings-section-card > small { color: var(--muted); font-size: 11px; line-height: 16px; }
.settings-section-card .button { width: 100%; justify-content: center; margin-top: 2px; }
.settings-section-card dl { display: grid; gap: 8px; margin: 0; }
.settings-section-card dl div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 10px; }
.settings-section-card dt { color: var(--muted); font-size: 12px; }
.settings-section-card dd { margin: 0; color: var(--ink); font-size: 12px; font-weight: 650; text-align: right; overflow-wrap: anywhere; }
.settings-professional-list { display: grid; gap: 8px; max-height: 180px; overflow: auto; margin: 0; padding: 0; list-style: none; }
.settings-professional-list li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 8px; padding-bottom: 7px; border-bottom: 1px solid var(--border); font-size: 12px; }
.settings-professional-list li span { color: var(--muted); }
.settings-catalog-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.settings-catalog-panel > header h2,
.settings-catalog-panel > header p { margin: 0; }
.settings-catalog-panel > header h2 { font-size: 20px; }
.settings-service-intro { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.settings-service-intro > div { display: grid; gap: 4px; }
.settings-service-list { display: grid; gap: 10px; }
.settings-service-card { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--background); }
.settings-service-card.is-inactive { opacity: 0.8; }
.settings-service-copy { display: grid; gap: 8px; min-width: 0; }
.settings-service-title { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.settings-service-title h3 { margin: 0; font-size: 15px; }
.settings-service-copy > p { margin: 0; color: var(--muted); font-size: 12px; line-height: 18px; }
.settings-service-copy dl { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0; }
.settings-service-copy dl div { display: grid; gap: 2px; }
.settings-service-copy dt { color: var(--muted); font-size: 11px; }
.settings-service-copy dd { margin: 0; font-size: 12px; font-weight: 650; }
.settings-service-copy > small { color: var(--muted); font-size: 11px; }
.settings-service-card > .button { flex: 0 0 auto; }
.settings-service-form { display: grid; gap: 12px; }
.settings-service-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.settings-service-fields .field-wide { grid-column: 1 / -1; }
.settings-service-fields .field { min-width: 0; margin: 0; }
.settings-service-fields input,
.settings-service-fields select,
.settings-service-fields textarea { min-width: 0; min-height: 44px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); }
.settings-service-fields textarea { min-height: 88px; }
.settings-service-fields input[type="checkbox"] { width: 18px; min-height: 18px; }
.settings-form-actions { display: flex; justify-content: flex-end; gap: 8px; }
.settings-tab-list { display: flex; flex-wrap: wrap; gap: 8px; }
.settings-tab-list a { display: inline-flex; min-width: 150px; min-height: 44px; align-items: center; justify-content: center; padding: 10px 14px; border: 1px solid var(--border); border-radius: 10px; color: var(--ink); background: var(--surface); font-size: 13px; font-weight: 650; line-height: 18px; text-align: center; text-decoration: none; }
.settings-tab-list a[aria-current="page"] { border-color: var(--primary); color: var(--surface); background: var(--primary); }
.settings-content-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.85fr); align-items: start; gap: 14px; }
.settings-active-panel,
.settings-support-panel { display: grid; align-content: start; gap: 14px; min-width: 0; padding: 20px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }
.settings-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.settings-panel-heading h2,
.settings-panel-heading p { margin: 0; }
.settings-panel-heading h2 { font-size: 20px; line-height: 28px; }
.settings-panel-heading .eyebrow { margin-bottom: 2px; }
.settings-panel-heading .muted { margin-top: 4px; }
.settings-offering-list { display: flex; flex-wrap: wrap; gap: 8px; }
.settings-offering-list a { display: grid; min-width: 148px; gap: 3px; padding: 9px 12px; border: 1px solid var(--border); border-radius: 9px; color: var(--ink); background: var(--background); font-size: 12px; text-decoration: none; }
.settings-offering-list a[aria-current="page"] { border-color: var(--primary); background: var(--welcome); }
.settings-offering-list a span { color: var(--muted); font-size: 11px; }
.settings-offering-list .settings-new-offering { display: inline-flex; align-items: center; justify-content: center; color: var(--primary); font-weight: 650; }
.settings-inline-form { display: grid; gap: 14px; }
.settings-active-panel .settings-form-actions { justify-content: flex-end; }
.settings-support-column { display: grid; gap: 12px; min-width: 0; }
.settings-support-panel h2 { margin: 0; font-size: 16px; line-height: 23px; }
.settings-support-panel .eyebrow,
.settings-support-panel p { margin: 0; }
.settings-support-panel p:not(.eyebrow) { color: var(--muted); font-size: 12px; line-height: 18px; }
.settings-support-panel dl,
.settings-summary-list { display: grid; gap: 8px; margin: 0; }
.settings-support-panel dl div,
.settings-summary-list div { display: flex; justify-content: space-between; gap: 8px; padding-bottom: 7px; border-bottom: 1px solid var(--border); }
.settings-support-panel dt,
.settings-summary-list dt { color: var(--muted); font-size: 12px; }
.settings-support-panel dd,
.settings-summary-list dd { margin: 0; color: var(--ink); font-size: 12px; font-weight: 650; text-align: right; }
.settings-empty { display: grid; gap: 5px; padding: 16px; border-radius: 12px; background: var(--background); }
.settings-empty span { color: var(--muted); font-size: 12px; line-height: 18px; }
.settings-fiscal-reference { display: grid; gap: 5px; padding-top: 12px; border-top: 1px solid var(--border); }
.settings-fiscal-reference h3,
.settings-fiscal-reference p { margin: 0; }
.settings-fiscal-reference h3 { font-size: 14px; }
.settings-fiscal-reference p { color: var(--muted); font-size: 12px; }
.settings-message-actions { display: flex; flex-wrap: wrap; gap: 8px; }

@media (max-width: 1000px) {
  .settings-section-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settings-content-layout { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 760px) {
  .settings-section-grid,
  .settings-service-fields { grid-template-columns: minmax(0, 1fr); }
  .settings-tab-list a { flex: 1 1 145px; min-width: 0; }
  .settings-active-panel,
  .settings-support-panel { padding: 14px; }
  .settings-panel-heading { flex-direction: column; }
  .settings-panel-heading > .button { width: 100%; }
  .settings-service-fields .field-wide { grid-column: auto; }
  .settings-service-intro { flex-direction: column; }
  .settings-service-intro > .button { width: 100%; }
  .settings-catalog-panel { padding: 14px; }
  .settings-service-card { flex-direction: column; }
  .settings-service-card > .button { width: 100%; }
  .settings-form-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settings-form-actions .button { width: 100%; justify-content: center; }
}

.consult-screen--communications { gap: 18px; }
.communications-page { display: grid; gap: 16px; width: min(100%, 1360px); margin-inline: auto; }
.communications-page-intro { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.communications-page-intro > div:first-child { display: grid; gap: 4px; }
.communications-page-intro h1,
.communications-page-intro p { margin: 0; }
.communications-page-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.communications-integrity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.communications-integrity-grid .notice { display: grid; align-content: start; gap: 5px; margin: 0; }
.communications-integrity-grid .notice span { font-size: 12px; line-height: 18px; }
.communications-panel { display: grid; align-content: start; gap: 12px; min-width: 0; padding: 18px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }
.communications-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.communications-panel > header h2,
.communications-panel > header p { margin: 0; }
.communications-panel > header h2 { font-size: 19px; line-height: 26px; }
.communications-filters { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(180px, 0.55fr) auto; align-items: end; gap: 10px; padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--background); }
.communications-filters .field { display: grid; gap: 5px; min-width: 0; margin: 0; }
.communications-filters input,
.communications-filters select { min-width: 0; min-height: 42px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface); }
.communications-filters .button { min-height: 42px; }
.communication-draft-list,
.communication-intent-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.communication-draft-row,
.communication-intent-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; min-width: 0; padding: 13px; border: 1px solid var(--border); border-radius: 12px; background: var(--background); }
.communication-draft-row > div,
.communication-intent-row > div { display: grid; gap: 4px; min-width: 0; }
.communication-draft-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.communication-draft-row p,
.communication-draft-row small,
.communication-intent-row small { margin: 0; color: var(--muted); font-size: 11px; line-height: 16px; overflow-wrap: anywhere; }
.communication-draft-row > div > span,
.communication-intent-row > div > span { color: var(--muted); font-size: 12px; line-height: 18px; }
.communication-draft-row > .button { flex: 0 0 auto; }
.communication-intent-row details { margin-top: 4px; }
.communication-intent-row summary { cursor: pointer; color: var(--primary); font-size: 12px; font-weight: 650; }
.communication-intent-row details p { margin: 8px 0; font-size: 11px; }
.communications-empty { display: grid; gap: 5px; padding: 16px; border: 1px dashed var(--border); border-radius: 12px; color: var(--muted); background: var(--background); font-size: 12px; }
.communications-auxiliary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border: 1px solid var(--border); border-radius: 14px; background: var(--background); }
.communications-auxiliary h2,
.communications-auxiliary p { margin: 0; }
.communications-auxiliary h2 { font-size: 16px; }
.communications-auxiliary p { color: var(--muted); font-size: 12px; }
.communications-composer-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr); align-items: start; gap: 14px; }
.communications-composer-form { display: grid; gap: 12px; }
.communications-composer-form .field { min-width: 0; margin: 0; }
.communications-composer-form input,
.communications-composer-form select,
.communications-composer-form textarea { min-width: 0; min-height: 42px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface); }
.communications-composer-form textarea { min-height: 120px; }
.communications-composer-actions { display: flex; justify-content: flex-end; gap: 8px; }
.communications-preview-status { display: grid; gap: 8px; margin: 0; }
.communications-preview-status div { display: flex; justify-content: space-between; gap: 8px; padding-bottom: 8px; border-bottom: 1px solid var(--border); }
.communications-preview-status dt { color: var(--muted); font-size: 12px; }
.communications-preview-status dd { margin: 0; font-size: 12px; font-weight: 650; text-align: right; }
.communications-message-preview { min-height: 100px; padding: 14px; border: 1px solid var(--border); border-radius: 12px; color: var(--ink); background: var(--background); line-height: 20px; overflow-wrap: anywhere; }
.communications-disabled-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.communications-disabled-actions .button:disabled { opacity: 0.55; cursor: not-allowed; }
.communications-archive-form { margin: 0; }

@media (max-width: 900px) {
  .communications-composer-layout { grid-template-columns: minmax(0, 1fr); }
  .communications-preview-panel { grid-row: 1; }
}

@media (max-width: 760px) {
  .communications-page-intro { flex-direction: column; }
  .communications-page-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .communications-page-actions .button { justify-content: center; }
  .communications-integrity-grid { grid-template-columns: minmax(0, 1fr); }
  .communications-panel { padding: 14px; }
  .communications-filters { grid-template-columns: minmax(0, 1fr); }
  .communications-filters .button { width: 100%; }
  .communication-draft-row,
  .communications-auxiliary { align-items: stretch; flex-direction: column; }
  .communication-draft-row > .button,
  .communications-auxiliary > .button { width: 100%; justify-content: center; }
  .communications-composer-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .communications-composer-actions .button { width: 100%; justify-content: center; }
  .communications-disabled-actions { grid-template-columns: minmax(0, 1fr); }
}

.finance-entry-page { display: grid; gap: 16px; width: min(100%, 1280px); margin-inline: auto; }
.finance-entry-mode-form { display: grid; grid-template-columns: minmax(180px, 0.65fr) minmax(180px, 0.65fr) auto; align-items: end; gap: 10px; padding: 14px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); }
.finance-entry-mode-form .field { display: grid; gap: 5px; min-width: 0; margin: 0; }
.finance-entry-mode-form select { min-height: 44px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface); }
.finance-entry-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(270px, 0.8fr); align-items: start; gap: 14px; }
.finance-entry-form-panel,
.finance-entry-preview { display: grid; align-content: start; gap: 14px; min-width: 0; padding: 18px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }
.finance-entry-form-panel > header h2,
.finance-entry-form-panel > header p,
.finance-entry-preview h2,
.finance-entry-preview p { margin: 0; }
.finance-entry-form-panel > header h2,
.finance-entry-preview h2 { font-size: 20px; line-height: 28px; }
.finance-entry-form { display: grid; gap: 12px; }
.finance-entry-form .field { display: grid; gap: 5px; min-width: 0; margin: 0; }
.finance-entry-form input,
.finance-entry-form select,
.finance-entry-form textarea { min-width: 0; min-height: 42px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface); }
.finance-entry-form textarea { min-height: 80px; }
.finance-entry-fieldset { display: grid; gap: 10px; min-width: 0; margin: 0; padding: 12px; border: 1px solid var(--border); border-radius: 12px; }
.finance-entry-fieldset legend { padding-inline: 6px; color: var(--ink); font-weight: 650; }
.finance-entry-preview { background: var(--welcome); }
.finance-entry-preview > p:not(.eyebrow) { color: var(--muted); font-size: 13px; line-height: 20px; }
.finance-entry-preview dl { display: grid; gap: 8px; margin: 0; }
.finance-entry-preview dl div { display: flex; justify-content: space-between; gap: 10px; padding-bottom: 8px; border-bottom: 1px solid var(--border); }
.finance-entry-preview dt { color: var(--muted); font-size: 12px; }
.finance-entry-preview dd { margin: 0; font-size: 12px; font-weight: 650; text-align: right; }

@media (max-width: 900px) {
  .finance-entry-layout { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 760px) {
  .finance-entry-mode-form { grid-template-columns: minmax(0, 1fr); }
  .finance-entry-mode-form .button { width: 100%; }
  .finance-entry-form-panel,
  .finance-entry-preview { padding: 14px; }
}

.fiscal-summary-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.fiscal-summary-cards article { display: grid; gap: 4px; min-width: 0; padding: 14px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); }
.fiscal-summary-cards article > span { color: var(--muted); font-size: 12px; font-weight: 650; }
.fiscal-summary-cards article > strong { font-size: 24px; line-height: 30px; }
.fiscal-summary-cards article > small { color: var(--muted); font-size: 11px; line-height: 16px; }
.fiscal-create-note { margin: -8px 0 0; color: var(--muted); font-size: 12px; line-height: 18px; }
.fiscal-filter-row { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(170px, 0.55fr) auto; align-items: end; gap: 10px; }
.fiscal-filter-row .field { min-width: 0; margin: 0; }
.fiscal-filter-row input,
.fiscal-filter-row select { min-height: 42px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface); }
.fiscal-filter-row .form-actions { display: flex; gap: 8px; }
.fiscal-preparation-list { display: grid; gap: 8px; margin: 0; padding-left: 18px; color: var(--muted); font-size: 12px; line-height: 18px; }

@media (max-width: 760px) {
  .fiscal-summary-cards article { padding: 10px; }
  .fiscal-summary-cards article > span { font-size: 10px; line-height: 14px; }
  .fiscal-summary-cards article > strong { font-size: 20px; line-height: 24px; }
  .fiscal-filter-row { grid-template-columns: minmax(0, 1fr); }
  .fiscal-filter-row .form-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fiscal-filter-row .form-actions .button { width: 100%; justify-content: center; }
}

.dashboard-refresh-trigger { align-self: flex-start; min-height: 38px; }
.dashboard-mobile-summary { display: none; }
.dashboard-mobile-summary-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.dashboard-mobile-summary-heading h2,
.dashboard-mobile-summary-heading p { margin: 0; }
.dashboard-mobile-summary-heading h2 { font-size: 20px; line-height: 28px; }
.dashboard-mobile-count { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; color: var(--ink); background: var(--welcome); font-size: 11px; font-weight: 650; }
.dashboard-mobile-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.dashboard-mobile-metrics article { display: grid; gap: 4px; min-width: 0; padding: 14px; border-radius: 12px; background: var(--background); }
.dashboard-mobile-metrics article > span,
.dashboard-mobile-metrics article > small { color: var(--muted); font-size: 11px; line-height: 16px; }
.dashboard-mobile-metrics article > strong { font-size: 24px; line-height: 30px; overflow-wrap: anywhere; }
.dashboard-mobile-chart { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.dashboard-mobile-chart-heading { display: flex; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 11px; }
.dashboard-mobile-chart-heading strong { color: var(--ink); font-weight: 650; }
.dashboard-mobile-chart-bars { display: grid; grid-template-columns: repeat(auto-fit, minmax(46px, 1fr)); align-items: end; gap: 8px; min-width: 0; }
.dashboard-mobile-chart-column { display: grid; justify-items: center; gap: 5px; min-width: 0; color: var(--muted); font-size: 10px; }
.dashboard-mobile-chart-bar { display: block; width: 100%; max-width: 48px; height: 72px; border-radius: 10px; background: var(--primary); }
.dashboard-mobile-chart-bar.is-pending { background: var(--warning); }
.dashboard-mobile-chart > small { color: var(--muted); font-size: 10px; }

@media (max-width: 760px) {
  .dashboard-mobile-summary { display: grid; gap: 12px; padding: 14px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }
  .dashboard-kpis { display: none; }
  .dashboard-refresh-trigger { min-height: 42px; }
}
/* TKS-164 visual corrections */
.settings-tab-list { display:flex; flex-wrap:wrap; gap:8px; }
.settings-tab-list a { display:inline-flex; min-width:150px; min-height:44px; align-items:center; justify-content:center; padding:10px 14px; border:1px solid var(--border); border-radius:10px; color:var(--ink); background:var(--surface); font-size:13px; font-weight:650; line-height:18px; text-align:center; text-decoration:none; }
.settings-tab-list a[aria-current="page"] { border-color:var(--primary); color:var(--surface); background:var(--primary); }
.settings-content-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,.85fr); align-items:start; gap:14px; }
.settings-active-panel,.settings-support-panel { display:grid; align-content:start; gap:14px; min-width:0; padding:20px; border:1px solid var(--border); border-radius:16px; background:var(--surface); }
.settings-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.settings-panel-heading h2,.settings-panel-heading p { margin:0; }
.settings-panel-heading h2 { font-size:20px; line-height:28px; }
.settings-panel-heading .eyebrow { margin-bottom:2px; }
.settings-panel-heading .muted { margin-top:4px; }
.settings-offering-list { display:flex; flex-wrap:wrap; gap:8px; }
.settings-offering-list a { display:grid; min-width:148px; gap:3px; padding:9px 12px; border:1px solid var(--border); border-radius:9px; color:var(--ink); background:var(--background); font-size:12px; text-decoration:none; }
.settings-offering-list a[aria-current="page"] { border-color:var(--primary); background:var(--welcome); }
.settings-offering-list a span { color:var(--muted); font-size:11px; }
.settings-offering-list .settings-new-offering { display:inline-flex; align-items:center; justify-content:center; color:var(--primary); font-weight:650; }
.settings-inline-form { display:grid; gap:14px; }
.settings-active-panel .settings-form-actions { justify-content:flex-end; }
.settings-support-column { display:grid; gap:12px; min-width:0; }
.settings-support-panel h2 { margin:0; font-size:16px; line-height:23px; }
.settings-support-panel .eyebrow,.settings-support-panel p { margin:0; }
.settings-support-panel p:not(.eyebrow) { color:var(--muted); font-size:12px; line-height:18px; }
.settings-support-panel dl,.settings-summary-list { display:grid; gap:8px; margin:0; }
.settings-support-panel dl div,.settings-summary-list div { display:flex; justify-content:space-between; gap:8px; padding-bottom:7px; border-bottom:1px solid var(--border); }
.settings-support-panel dt,.settings-summary-list dt { color:var(--muted); font-size:12px; }
.settings-support-panel dd,.settings-summary-list dd { margin:0; color:var(--ink); font-size:12px; font-weight:650; text-align:right; }
.settings-empty { display:grid; gap:5px; padding:16px; border-radius:12px; background:var(--background); }
.settings-empty span { color:var(--muted); font-size:12px; line-height:18px; }
.settings-fiscal-reference { display:grid; gap:5px; padding-top:12px; border-top:1px solid var(--border); }
.settings-fiscal-reference h3,.settings-fiscal-reference p { margin:0; }
.settings-fiscal-reference h3 { font-size:14px; }
.settings-fiscal-reference p { color:var(--muted); font-size:12px; }
.settings-message-actions { display:flex; flex-wrap:wrap; gap:8px; }
.communications-center-layout { display:grid; grid-template-columns:minmax(270px,.9fr) minmax(0,1.4fr); align-items:start; gap:14px; }
.communications-connection-banner { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:8px 16px; }
.communications-recipient-panel,.communications-composer-pane,.communications-conversations-panel { display:grid; align-content:start; gap:14px; min-width:0; padding:18px; border:1px solid var(--border); border-radius:16px; background:var(--surface); }
.communications-recipient-panel > header h2,.communications-composer-pane > header h2,.communications-conversations-panel > header h2 { margin:0; font-size:18px; line-height:26px; }
.communications-recipient-search { display:grid; gap:6px; }
.communications-recipient-search > label,.communications-draft-list-panel label { color:var(--muted); font-size:12px; font-weight:650; }
.communications-recipient-search > div { display:flex; min-width:0; gap:8px; }
.communications-recipient-search input { flex:1 1 auto; min-width:0; min-height:42px; padding:8px 10px; border:1px solid var(--border); border-radius:9px; background:var(--surface); }
.communications-recipient-list,.communications-appointment-options,.communications-draft-list { display:grid; gap:7px; margin:0; padding:0; list-style:none; }
.communications-recipient-list a,.communications-appointment-options a { display:grid; gap:3px; min-width:0; padding:10px 12px; border:1px solid var(--border); border-radius:10px; color:var(--ink); background:var(--background); font-size:12px; text-decoration:none; }
.communications-recipient-list a[aria-current="true"],.communications-appointment-options a:hover { border-color:var(--primary); background:var(--welcome); }
.communications-recipient-list a span { color:var(--muted); font-size:11px; }
.communications-selected-recipient { display:grid; gap:8px; padding:12px; border-radius:12px; background:var(--welcome); }
.communications-selected-recipient h3,.communications-selected-recipient h4 { margin:0; font-size:14px; }
.communications-selected-recipient p { margin:0; }
.communications-draft-list-panel { display:grid; gap:9px; padding-top:12px; border-top:1px solid var(--border); }
.communications-draft-list-panel > header { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.communications-draft-list-panel h3,.communications-draft-list-panel p { margin:0; }
.communications-draft-list-panel > header form { display:flex; align-items:center; gap:6px; }
.communications-draft-list-panel select { max-width:140px; min-height:36px; border:1px solid var(--border); border-radius:8px; background:var(--surface); }
.communications-draft-list li { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 0; border-bottom:1px solid var(--border); }
.communications-draft-list li a { display:grid; min-width:0; gap:3px; color:var(--ink); text-decoration:none; }
.communications-draft-list li a span { color:var(--muted); font-size:11px; }
.communications-composer-pane .communications-composer-form { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.communications-composer-pane .communications-composer-form .field { min-width:0; }
.communications-composer-pane .communications-body-field { grid-column:1/-1; }
.communications-composer-pane .communications-composer-form textarea { min-height:86px; }
.communications-center-preview { display:grid; gap:10px; padding:14px; border:1px solid var(--border); border-radius:12px; background:var(--success-soft,#edf5ef); }
.communications-center-preview header h3,.communications-center-preview p { margin:0; }
.communications-center-preview h3 { font-size:16px; }
.communications-center-preview .communications-message-preview { min-height:64px; background:var(--surface); }
.communications-conversations-panel > header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.communications-conversation-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.communications-conversation-list a { display:grid; align-content:start; gap:6px; min-width:0; padding:12px; border:1px solid var(--border); border-radius:11px; color:var(--ink); background:var(--background); text-decoration:none; }
.communications-conversation-list a span,.communications-conversation-list a small { color:var(--muted); font-size:11px; line-height:16px; overflow-wrap:anywhere; }
.communications-history-details { display:grid; gap:12px; }
.communications-history-details > summary { width:fit-content; padding:9px 12px; border:1px solid var(--border); border-radius:9px; color:var(--primary); background:var(--surface); font-weight:650; cursor:pointer; }
.communications-history-details[open] > summary { margin-bottom:2px; }
.finance-entry-mode-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:14px; }
.finance-entry-selector { display:grid; align-content:start; gap:7px; min-width:0; }
.finance-entry-selector > span { color:var(--muted); font-size:12px; font-weight:650; }
.finance-entry-pills { display:flex; flex-wrap:wrap; gap:5px; padding:4px; border-radius:999px; background:var(--background); }
.finance-entry-pills a { display:inline-flex; flex:1 1 110px; min-height:38px; align-items:center; justify-content:center; padding:8px 12px; border:1px solid transparent; border-radius:999px; color:var(--ink); font-size:12px; font-weight:650; text-align:center; text-decoration:none; }
.finance-entry-pills a[aria-current="page"] { color:var(--surface); background:var(--primary); }
.finance-entry-form { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
.finance-entry-form > .field { min-width:0; margin:0; }
.finance-entry-form > .notice,.finance-entry-form > .help-text,.finance-entry-form > .finance-entry-fieldset,.finance-entry-form > .finance-entry-actions { grid-column:1/-1; }
.finance-entry-fieldset { grid-template-columns:repeat(2,minmax(0,1fr)); }
.finance-entry-fieldset legend { grid-column:1/-1; }
.finance-entry-fieldset .field { min-width:0; margin:0; }
.finance-entry-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.availability-content-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(320px,.9fr); align-items:start; gap:14px; min-width:0; }
.appointment-form-panel > .availability-week-panel-header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.availability-week-panel-header > div { display:grid; gap:4px; min-width:0; }
.availability-week-navigation { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.availability-week-navigation .button { min-height:40px; padding:8px 11px; font-size:12px; }
.availability-week-board { grid-template-columns:44px repeat(7,minmax(62px,1fr)); grid-auto-rows:58px; min-width:490px; }
.availability-week-hour-cell.is-working { background:var(--success-soft,#edf5ef); }
.availability-week-hour-cell.is-break { background:#e7e3da; }
.availability-grid-pause { color:var(--muted); background:#e7e3da; }
.availability-legend-swatch.is-work { background:var(--success-soft,#edf5ef); }
.availability-legend-swatch.is-pause { background:#e7e3da; }
.availability-edit-panel { position:sticky; top:16px; }
.portal-profile-summary-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(250px,.75fr); align-items:start; gap:12px; }
.portal-profile-data h2,.portal-profile-account h2 { margin:0; font-size:18px; line-height:25px; }
.portal-profile-data-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.portal-profile-data-grid article,.portal-preference-summary-grid article { display:grid; gap:4px; min-width:0; padding:12px; border-radius:10px; background:var(--background); }
.portal-profile-data-grid article > span,.portal-preference-summary-grid article > span { color:var(--muted); font-size:11px; line-height:16px; }
.portal-profile-data-grid article > strong,.portal-preference-summary-grid article > strong { overflow-wrap:anywhere; }
.portal-profile-account { display:grid; align-content:start; gap:9px; }
.portal-profile-account form { margin:0; }
.portal-profile-account .portal-button { width:100%; }
.portal-preference-summary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.portal-profile-preferences > .portal-muted { margin:0; }
.portal-preferences-editor > summary { padding:9px 11px; }
.portal-conversation-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr); align-items:start; gap:14px; }
.portal-conversation-history,.portal-message-composer { display:grid; align-content:start; gap:10px; min-width:0; }
.portal-message-composer { padding:14px; border:1px solid var(--border); border-radius:12px; background:var(--background); }
.portal-message-composer h3 { margin:0; font-size:16px; line-height:22px; }
.portal-message-compose-form { display:grid; align-content:start; gap:8px; margin:0; padding:12px; }
.portal-message-compose-form textarea { min-height:78px; height:78px; resize:vertical; }
.portal-message-read-form { margin:0; }
.portal-message-read-form .portal-button { min-height:32px; padding:6px 9px; font-size:11px; line-height:16px; }
.portal-message-receipt { color:var(--muted); font-size:10px; line-height:14px; }
.dashboard-mobile-metrics article > strong { max-width:100%; font-size:clamp(14px,3.8vw,20px); line-height:26px; letter-spacing:-.02em; white-space:nowrap; overflow-wrap:normal; }

@media (max-width: 1100px) {
  .availability-content-layout,.communications-center-layout { grid-template-columns:minmax(0,1fr); }
}
@media (max-width: 760px) {
  .settings-content-layout,.portal-profile-summary-grid,.portal-profile-data-grid,.portal-preference-summary-grid,.portal-conversation-layout { grid-template-columns:minmax(0,1fr); }
  .settings-tab-list a { flex:1 1 145px; min-width:0; }
  .settings-active-panel,.settings-support-panel { padding:14px; }
  .settings-panel-heading,.communications-conversations-panel > header { flex-direction:column; }
  .settings-panel-heading > .button,.communications-conversations-panel > header > .button { width:100%; }
  .communications-recipient-panel,.communications-composer-pane,.communications-conversations-panel { padding:14px; }
  .communications-composer-pane .communications-composer-form { grid-template-columns:minmax(0,1fr); }
  .communications-composer-pane .communications-body-field { grid-column:auto; }
  .communications-conversation-list { grid-template-columns:minmax(0,1fr); }
  .communications-draft-list-panel > header { align-items:flex-start; flex-direction:column; }
  .communications-draft-list-panel > header form { width:100%; }
  .communications-draft-list-panel select { flex:1 1 auto; max-width:none; }
  .finance-entry-mode-form,.finance-entry-form,.finance-entry-fieldset { grid-template-columns:minmax(0,1fr); }
  .finance-entry-form > .notice,.finance-entry-form > .help-text,.finance-entry-form > .finance-entry-fieldset,.finance-entry-form > .finance-entry-actions,.finance-entry-fieldset legend { grid-column:auto; }
  .finance-entry-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .availability-content-layout { grid-template-columns:minmax(0,1fr); }
  .appointment-form-panel > .availability-week-panel-header { flex-direction:column; }
  .availability-week-navigation { width:100%; justify-content:stretch; }
  .availability-week-navigation .button { flex:1 1 0; }
  .availability-edit-panel { position:static; }
  .portal-profile-account .portal-button { width:100%; }
}
@media (max-width: 1000px) and (min-width: 761px) {
  .consult-screen--patients,.consult-screen--finance { min-width:0; padding:24px; }
  .consult-screen--patients .patient-list-intro { align-items:stretch; flex-direction:column; gap:12px; padding:20px; min-width:0; }
  .consult-screen--patients .patient-list-actions { width:100%; justify-content:flex-start; }
  .consult-screen--patients .patient-list-panel { min-width:0; width:100%; padding:16px; }
  .consult-screen--patients .patient-list-filters { grid-template-columns:minmax(0,1fr) minmax(140px,.7fr); gap:8px; padding:12px; min-width:0; }
  .consult-screen--patients .patient-list-search { grid-column:1/-1; }
  .consult-screen--patients .patient-list-filters input,.consult-screen--patients .patient-list-filters select { width:100%; min-width:0; }
  .consult-screen--patients .patient-filter-actions { grid-column:1/-1; justify-content:flex-end; }
  .consult-screen--patients .patient-filter-actions .button { flex:1 1 120px; min-width:0; }
  .consult-screen--finance .finance-overview-page { width:100%; max-width:100%; min-width:0; margin:0; }
  .consult-screen--finance .finance-overview-page > * { min-width:0; max-width:100%; }
  .consult-screen--finance .finance-fiscal-note { flex-wrap:wrap; min-width:0; }
  .consult-screen--finance .finance-fiscal-note .button { flex:0 1 auto; white-space:normal; }
  .consult-screen--finance .finance-overview-summary-grid { grid-template-columns:minmax(0,1fr); gap:14px; min-width:0; }
  .consult-screen--finance .finance-overview-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; min-width:0; }
  .consult-screen--finance .finance-result-card,.consult-screen--finance .finance-balance-card,.consult-screen--finance .finance-payable-card { min-width:0; padding:12px; }
  .consult-screen--finance .finance-result-card strong,.consult-screen--finance .finance-balance-card strong,.consult-screen--finance .finance-payable-card strong { font-size:clamp(13px,2.4vw,18px); line-height:24px; overflow-wrap:anywhere; }
  .consult-screen--finance .finance-overview-summary > header,.consult-screen--finance .finance-overview-section-heading { flex-wrap:wrap; min-width:0; }
  .consult-screen--finance .finance-statement-overview-grid { grid-template-columns:minmax(0,1fr); gap:12px; min-width:0; }
  .consult-screen--finance .finance-statement-chart-panel,.consult-screen--finance .finance-statement-facts { width:100%; min-width:0; }
  .consult-screen--finance .finance-overview-period-control[open] { width:100%; max-width:100%; min-width:0; }
  .consult-screen--finance .finance-overview-period-form { grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; min-width:0; }
  .consult-screen--finance .finance-overview-period-form .field { min-width:0; }
  .consult-screen--finance .finance-overview-period-form input { width:100%; min-width:0; }
  .consult-screen--finance .finance-overview-period-form .button { grid-column:1/-1; }
  .consult-screen--finance .finance-overview-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); min-width:0; }
  .consult-screen--finance .finance-overview-actions .button { width:100%; min-width:0; }
}
@media (max-width: 1000px) and (min-width: 761px) {
  .consult-screen--agenda .agenda-page,.consult-screen--agenda .agenda-toolbar,.consult-screen--agenda .agenda-filters,.agenda-month-toolbar,.agenda-month-period,.agenda-month-layout,.agenda-month-main { min-width:0; max-width:100%; }
  .agenda-month-toolbar { display:grid; grid-template-columns:minmax(0,1fr); align-items:stretch; gap:8px; }
  .agenda-month-period { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; }
  .agenda-month-period h2 { flex:1 1 150px; min-width:0; white-space:normal; text-align:center; }
  .agenda-month-toolbar .agenda-view-switch { display:flex; flex-wrap:wrap; justify-content:stretch; width:100%; min-width:0; gap:6px; }
  .agenda-month-toolbar .agenda-view-switch .button { flex:1 1 100px; min-width:0; }
  .agenda-filters { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; width:100%; }
  .agenda-filters .field { min-width:0; }
  .agenda-filters .field:nth-of-type(3) { grid-column:1/-1; }
  .agenda-filters select { width:100%; min-width:0; }
  .agenda-filters .button { grid-column:1/-1; width:100%; min-width:0; }
}
@media (max-width: 1000px) and (min-width: 761px) {
  .consult-screen--agenda .agenda-page,.consult-screen--agenda .agenda-toolbar,.consult-screen--agenda .agenda-filters,.agenda-month-toolbar,.agenda-month-period,.agenda-month-layout,.agenda-month-main { min-width:0; max-width:100%; }
  .consult-screen--agenda .agenda-month-toolbar { display:grid; grid-template-columns:minmax(0,1fr); align-items:stretch; gap:8px; }
  .consult-screen--agenda .agenda-month-period { display:flex; flex-wrap:wrap; justify-content:space-between; width:100%; min-width:0; gap:6px; }
  .consult-screen--agenda .agenda-month-period h2 { flex:1 1 140px; min-width:0; font-size:16px; line-height:23px; text-align:center; white-space:normal; }
  .consult-screen--agenda .agenda-month-toolbar .agenda-view-switch { display:flex; flex-wrap:wrap; justify-content:stretch; width:100%; min-width:0; gap:6px; }
  .consult-screen--agenda .agenda-month-toolbar .agenda-view-switch .button { flex:1 1 100px; min-width:0; }
  .consult-screen--agenda .agenda-filters { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:end; gap:8px; width:100%; min-width:0; }
  .consult-screen--agenda .agenda-filters .field { width:100%; min-width:0; }
  .consult-screen--agenda .agenda-filters .field:nth-of-type(3) { grid-column:1/-1; }
  .consult-screen--agenda .agenda-filters select { width:100%; min-width:0; }
  .consult-screen--agenda .agenda-filters .button { grid-column:1/-1; width:100%; min-width:0; }
}
