:root {
  --bg: #f4f6f3;
  --ink: #18201d;
  --muted: #65716c;
  --line: #d9e0da;
  --panel: #ffffff;
  --accent: #2d6a4f;
  --accent-soft: #e3f2ea;
  --brand-forest: #17241e;
  --brand-moss: #2d6a4f;
  --brand-sage: #7fa58f;
  --brand-mint: #e3f2ea;
  --brand-gold: #c98a21;
  --brand-gold-soft: #fff4de;
  --brand-terracotta: #b86543;
  --brand-terracotta-soft: #f9ebe4;
  --brand-olive: #60734d;
  --brand-olive-soft: #edf2e8;
  --sector-overview: var(--brand-moss);
  --sector-overview-soft: var(--brand-mint);
  --sector-patients: var(--brand-sage);
  --sector-patients-soft: #e7f1eb;
  --sector-previsit: var(--brand-gold);
  --sector-previsit-soft: var(--brand-gold-soft);
  --sector-alerts: var(--brand-terracotta);
  --sector-alerts-soft: var(--brand-terracotta-soft);
  --sector-billing: var(--blue);
  --sector-billing-soft: var(--blue-soft);
  --sector-admin: var(--brand-olive);
  --sector-admin-soft: var(--brand-olive-soft);
  --section-consents: var(--brand-terracotta);
  --section-consents-soft: var(--brand-terracotta-soft);
  --section-questionnaire: var(--brand-sage);
  --section-questionnaire-soft: #eef5f0;
  --section-ai: var(--brand-gold);
  --section-ai-soft: var(--brand-gold-soft);
  --section-scientific: var(--blue);
  --section-scientific-soft: var(--blue-soft);
  --section-contacts: var(--brand-olive);
  --section-contacts-soft: var(--brand-olive-soft);
  --section-followup: var(--brand-moss);
  --section-followup-soft: var(--accent-soft);
  --active-sector: var(--sector-overview);
  --active-sector-soft: var(--sector-overview-soft);
  --blue: #244f73;
  --blue-soft: #e8f0f6;
  --warning: #9b5c00;
  --warning-soft: #fff4de;
  --danger: #9d2c2c;
  --danger-soft: #f8e7e7;
  --shadow: 0 12px 36px rgba(20, 30, 24, 0.08);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 15px/1.45 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body[data-active-view="overview"] {
  --active-sector: var(--sector-overview);
  --active-sector-soft: var(--sector-overview-soft);
}

body[data-active-view="patients"] {
  --active-sector: var(--sector-patients);
  --active-sector-soft: var(--sector-patients-soft);
}

body[data-active-view="previsit"] {
  --active-sector: var(--sector-previsit);
  --active-sector-soft: var(--sector-previsit-soft);
}

body[data-active-view="alerts"] {
  --active-sector: var(--sector-alerts);
  --active-sector-soft: var(--sector-alerts-soft);
}

body[data-active-view="billing"] {
  --active-sector: var(--sector-billing);
  --active-sector-soft: var(--sector-billing-soft);
}

body[data-active-view="admin"] {
  --active-sector: var(--sector-admin);
  --active-sector-soft: var(--sector-admin-soft);
}

button,
input,
textarea,
select {
  font: inherit;
}

button {
  border: 1px solid var(--active-sector);
  background: var(--active-sector);
  color: white;
  padding: 10px 14px;
  cursor: pointer;
  font-weight: 700;
}

button.secondary {
  background: white;
  color: var(--active-sector);
}

button.danger {
  border-color: var(--danger);
  background: var(--danger);
}

button:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 260px 1fr;
}

.sidebar {
  background: var(--brand-forest);
  color: white;
  padding: 28px 22px;
  display: flex;
  flex-direction: column;
  gap: 28px;
  position: sticky;
  top: 0;
  height: 100vh;
}

.sidebar h1,
.topbar h2,
.login-copy h2 {
  margin: 0;
  letter-spacing: 0;
}

.eyebrow {
  color: var(--active-sector);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
  margin: 0 0 6px;
}

.nav {
  display: grid;
  gap: 8px;
}

.nav button {
  text-align: left;
  background: transparent;
  color: #dfe9e3;
  border-color: rgba(255, 255, 255, 0.18);
  border-left-width: 4px;
  border-left-color: var(--nav-sector, var(--accent));
}

.nav button[data-view="overview"] {
  --nav-sector: var(--sector-overview);
}

.nav button[data-view="patients"] {
  --nav-sector: var(--sector-patients);
}

.nav button[data-view="previsit"] {
  --nav-sector: var(--sector-previsit);
}

.nav button[data-view="alerts"] {
  --nav-sector: var(--sector-alerts);
}

.nav button[data-view="admin"] {
  --nav-sector: var(--sector-admin);
}

.nav button.active {
  background: var(--nav-sector, var(--accent));
  border-color: var(--nav-sector, var(--accent));
}

.nav button.active[data-view="previsit"] {
  color: #241b0d;
}

.session {
  margin-top: auto;
  display: grid;
  gap: 10px;
  color: #c8d5ce;
}

.workspace {
  padding: 28px;
  min-width: 0;
}

.environment-banner {
  background: #fff4de;
  border: 1px solid #e0b15f;
  border-left: 5px solid var(--warning);
  color: #4b2b00;
  font-weight: 900;
  margin-bottom: 14px;
  padding: 12px 16px;
  text-transform: uppercase;
}

body[data-environment="sandbox"] .sidebar {
  box-shadow: inset 6px 0 0 var(--warning);
}

.login-panel,
.app-panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-top: 5px solid var(--active-sector);
  box-shadow: var(--shadow);
}

.login-panel {
  min-height: calc(100vh - 56px);
  display: grid;
  grid-template-columns: 1fr 360px;
  align-items: center;
  gap: 32px;
  padding: 48px;
}

.login-copy {
  max-width: 620px;
}

.login-copy h2 {
  font-size: 48px;
}

.login-copy p:last-child {
  color: var(--muted);
  max-width: 520px;
}

.app-panel {
  min-height: calc(100vh - 56px);
  padding: 24px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--active-sector-soft) 58%, white) 0, white 110px),
    var(--panel);
}

.topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid color-mix(in srgb, var(--active-sector) 22%, var(--line));
  border-left: 5px solid var(--active-sector);
  background: linear-gradient(180deg, color-mix(in srgb, var(--active-sector-soft) 78%, white), white 80%);
  padding: 16px 18px;
  margin-bottom: 22px;
  box-shadow: 0 10px 24px rgba(20, 30, 24, 0.05);
}

.view-context {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  max-width: 720px;
}

.hidden {
  display: none !important;
}

.metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.metric,
.item,
.detail,
.form,
pre,
.detail-section,
.message-card,
.contact-note-card,
.summary-grid article,
.consent-pill {
  border: 1px solid var(--line);
  background: white;
}

.item,
.detail,
.detail-section,
.search-panel,
.admin-section,
.operational-panel,
.follow-up-queue,
.previsit-card,
.previsit-email-item,
.message-card,
.contact-note-card,
.summary-grid article {
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.item:hover,
.detail-section:hover,
.search-panel:hover,
.admin-section:hover,
.operational-panel:hover,
.follow-up-queue:hover,
.previsit-card:hover,
.previsit-email-item:hover,
.message-card:hover,
.contact-note-card:hover {
  border-color: color-mix(in srgb, var(--active-sector) 26%, var(--line));
  box-shadow: 0 10px 24px rgba(20, 30, 24, 0.06);
}

.metric {
  padding: 14px;
  min-width: 0;
  overflow-wrap: anywhere;
  border-top: 4px solid var(--active-sector);
  background: linear-gradient(180deg, var(--active-sector-soft), #ffffff 60%);
}

.metric strong {
  display: block;
  font-size: 28px;
}

.metric span,
.item small {
  color: var(--muted);
}

.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.split > *,
.split.wide > *,
.list,
.table-list,
.item,
.detail,
.form,
.search-panel,
.admin-section,
.previsit-card,
.previsit-email-item {
  min-width: 0;
  max-width: 100%;
}

.split.wide {
  grid-template-columns: minmax(340px, 0.9fr) minmax(420px, 1.1fr);
}

.list,
.table-list {
  display: grid;
  gap: 10px;
}

.item {
  padding: 14px;
  border-left: 4px solid transparent;
}

.item header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

.item h4 {
  margin: 0;
}

.item-actions {
  margin-top: 12px;
}

.item-actions button {
  width: 100%;
}

.compact-item {
  gap: 10px;
}

.compact-item-main {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.compact-item-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.compact-item-actions .button-link,
.compact-item-actions button {
  min-height: 36px;
}

.compact-tag-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

body[data-active-view="overview"] .item,
body[data-active-view="patients"] .item,
body[data-active-view="patients"] .detail,
body[data-active-view="patients"] .summary-grid article {
  border-left-color: var(--sector-patients);
}

body[data-active-view="alerts"] .item,
body[data-active-view="alerts"] .detail {
  border-left-color: var(--sector-alerts);
}

body[data-active-view="billing"] .item,
body[data-active-view="billing"] .detail {
  border-left-color: var(--sector-billing);
}

body[data-active-view="admin"] .item,
body[data-active-view="admin"] .detail {
  border-left-color: var(--sector-admin);
}

.alert-dashboard {
  display: grid;
  gap: 14px;
}

.priority-queues {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 10px;
}

.dashboard-worklist {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
}

.worklist-card {
  border: 1px solid var(--line);
  border-left: 4px solid var(--sector-alerts);
  background: #fff;
  padding: 12px;
  display: grid;
  gap: 10px;
  min-width: 0;
}

.worklist-card.today {
  border-left-color: var(--warning);
}

.worklist-card.blocked {
  border-left-color: var(--danger);
}

.worklist-card.waiting {
  border-left-color: var(--sector-previsit);
}

.worklist-card.ready {
  border-left-color: var(--sector-patients);
}

.worklist-card.billing {
  border-left-color: var(--sector-billing);
}

.worklist-card.phone {
  border-left-color: var(--accent);
}

.worklist-card header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
}

.worklist-card h4 {
  margin: 0;
  font-size: 15px;
}

.worklist-preview {
  display: grid;
  gap: 4px;
  min-height: 50px;
  color: var(--muted);
  font-size: 13px;
}

.worklist-preview span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.priority-queue {
  border: 1px solid var(--line);
  border-left: 4px solid var(--sector-alerts);
  background: #fff;
  padding: 12px;
  display: grid;
  align-content: start;
  gap: 10px;
  min-width: 0;
}

.priority-queue.today {
  border-left-color: var(--warning);
}

.priority-queue.blocked {
  border-left-color: var(--danger);
}

.priority-queue.waiting {
  border-left-color: var(--sector-previsit);
}

.priority-queue.ready {
  border-left-color: var(--sector-patients);
}

.priority-queue.billing {
  border-left-color: var(--sector-billing);
}

.priority-queue.phone {
  border-left-color: var(--accent);
}

.priority-queue header,
.queue-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.priority-queue h3 {
  margin: 0;
  font-size: 15px;
}

.queue-item {
  border-top: 1px solid var(--line);
  padding-top: 8px;
}

.queue-item strong,
.queue-item small {
  display: block;
}

.queue-item small {
  color: var(--muted);
  margin-top: 2px;
}

.queue-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.queue-empty {
  margin: 0;
}

.alert-filter-bar {
  border: 1px solid var(--line);
  border-left: 4px solid var(--sector-alerts);
  background: linear-gradient(180deg, var(--sector-alerts-soft), #ffffff 78%);
  padding: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.alert-filter-bar button {
  min-height: 40px;
}

.alert-filter-bar button span {
  display: inline-flex;
  margin-left: 8px;
  padding: 2px 7px;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 12px;
}

.alert-filter-bar button.active-filter {
  background: var(--accent);
  color: white;
}

.alert-filter-bar button.active-filter span {
  background: white;
}

.alert-card {
  border: 1px solid var(--line);
  border-left: 4px solid var(--sector-alerts);
  background: white;
}

.alert-reasons {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.alert-reason {
  border: 1px solid var(--line);
  background: #fbfcfb;
  padding: 10px;
  display: grid;
  gap: 6px;
}

.alert-reason-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.alert-reason p {
  margin: 0;
}

.patient-contact-strip {
  border: 1px solid var(--line);
  border-left: 4px solid var(--sector-patients);
  background: #fff;
  padding: 10px;
  display: grid;
  grid-template-columns: minmax(160px, 1fr) minmax(220px, 340px);
  gap: 10px;
  align-items: center;
}

.patient-contact-strip.needs-phone {
  border-left-color: var(--warning);
  background: var(--warning-soft);
}

.patient-contact-strip strong,
.patient-contact-strip span {
  display: block;
}

.patient-contact-strip span {
  color: var(--muted);
  margin-top: 2px;
}

.phone-inline-form {
  display: flex;
  gap: 8px;
}

.phone-inline-form input {
  min-width: 0;
}

.billing-grid {
  display: grid;
  gap: 14px;
}

.invoice-register-panel {
  border: 1px solid var(--line);
  border-left: 4px solid var(--sector-admin);
  background: #fff;
  padding: 12px;
}

.invoice-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: 8px;
  margin: 12px 0;
}

.invoice-summary-card {
  border: 1px solid var(--line);
  background: #fff;
  padding: 10px;
  display: grid;
  gap: 4px;
  min-width: 0;
}

.invoice-summary-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.invoice-summary-card strong {
  font-size: 16px;
}

.invoice-row {
  border-left-color: var(--sector-admin);
}

.invoice-edit-panel {
  margin-top: 10px;
}

.invoice-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.invoice-table th,
.invoice-table td {
  border-bottom: 1px solid var(--line);
  padding: 8px;
  text-align: left;
  vertical-align: top;
}

.invoice-table th {
  background: #f7f8f7;
}

.table-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

button.compact {
  width: auto;
  min-height: 32px;
  padding: 6px 12px;
  font-size: 13px;
}

.badge {
  display: inline-flex;
  padding: 4px 8px;
  background: var(--active-sector-soft);
  color: var(--active-sector);
  font-size: 12px;
  font-weight: 800;
}

.badge.warning {
  background: var(--warning-soft);
  color: var(--warning);
}

.badge.danger {
  background: var(--danger-soft);
  color: var(--danger);
}

.form {
  padding: 16px;
  display: grid;
  gap: 12px;
  margin-bottom: 16px;
  border-left: 4px solid var(--active-sector);
  background: linear-gradient(180deg, color-mix(in srgb, var(--active-sector-soft) 52%, white), white 74%);
}

.form.narrow {
  margin: 0;
}

.search-panel {
  border: 1px solid var(--line);
  border-left: 4px solid var(--active-sector);
  background: linear-gradient(180deg, color-mix(in srgb, var(--active-sector-soft) 46%, white), white 74%);
  padding: 14px;
  margin-bottom: 16px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: end;
}

.search-panel > * {
  min-width: 0;
}

.panel-tools {
  display: grid;
  gap: 8px;
  align-items: end;
}

.search-panel small {
  color: var(--muted);
  padding-bottom: 11px;
  white-space: nowrap;
}

.compact-toggle {
  justify-content: flex-start;
  color: var(--muted);
  font-weight: 700;
}

.previsit-outbox-filter {
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
}

.previsit-filter {
  grid-template-columns: minmax(0, 1.2fr) minmax(170px, 0.8fr) auto;
}

.previsit-metrics {
  grid-template-columns: repeat(auto-fit, minmax(min(130px, 100%), 1fr));
  margin-bottom: 14px;
}

.compact-metric {
  padding: 10px;
}

.compact-metric strong {
  font-size: 22px;
}

.previsit-toggle {
  margin: 0 0 14px;
  color: var(--muted);
}

.pagination-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.pagination-controls button {
  min-width: 104px;
}

.grid-form {
  grid-template-columns: 1fr 1fr;
}

.grid-form button {
  grid-column: span 2;
}

.grid-form .span-2 {
  grid-column: span 2;
}

label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-weight: 700;
}

input,
textarea,
select {
  width: 100%;
  border: 1px solid var(--line);
  padding: 10px 12px;
  color: var(--ink);
  background: #fbfcfb;
}

textarea {
  min-height: 96px;
  resize: vertical;
}

.detail {
  padding: 18px;
  align-self: start;
}

.detail.empty {
  color: var(--muted);
}

.detail h3 {
  margin-top: 0;
}

.patient-heading {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 16px;
}

.patient-heading h3,
.patient-heading p {
  margin: 0;
}

.patient-heading p {
  color: var(--muted);
}

.patient-view-controls {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  margin: 0 0 8px;
}

.patient-section-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
  padding: 10px;
  border: 1px solid color-mix(in srgb, var(--sector-patients) 28%, var(--line));
  border-left: 4px solid var(--sector-patients);
  background: linear-gradient(180deg, var(--sector-patients-soft), #ffffff 80%);
  position: sticky;
  top: 12px;
  z-index: 4;
  box-shadow: 0 8px 18px rgba(20, 30, 24, 0.05);
}

.patient-section-nav button {
  min-height: 38px;
}

.operational-panel {
  border: 1px solid var(--line);
  border-left: 4px solid var(--sector-patients);
  background: linear-gradient(180deg, var(--sector-patients-soft), #ffffff 70%);
  padding: 14px;
  margin-bottom: 14px;
}

.operational-panel > header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: baseline;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
}

.operational-panel h4 {
  margin: 0;
}

.operational-panel small {
  color: var(--muted);
}

.operational-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr));
  gap: 10px;
}

.operational-card {
  border: 1px solid var(--line);
  padding: 12px;
  min-height: 118px;
  min-width: 0;
  display: grid;
  gap: 6px;
  align-content: start;
  background: #fbfcfb;
  overflow-wrap: anywhere;
}

.operational-card span {
  color: var(--muted);
  font-weight: 800;
  text-transform: uppercase;
  font-size: 12px;
}

.operational-card strong {
  font-size: 18px;
}

.operational-card.ok {
  border-color: #b8d7c8;
  background: var(--accent-soft);
}

.operational-card.warning {
  border-color: #f0d6a9;
  background: var(--warning-soft);
}

.operational-card.attention {
  border-color: #c9d7d0;
}

.actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}

.detail-section {
  padding: 16px;
  margin-bottom: 14px;
  scroll-margin-top: 18px;
  transition: background 0.2s ease, box-shadow 0.2s ease;
  border-left: 4px solid var(--sector-patients);
}

.detail-section:not([open]) {
  padding-bottom: 12px;
}

.detail-section.section-focus {
  background: #fbfdfb;
  box-shadow: 0 0 0 3px rgba(45, 117, 83, 0.14);
}

.detail-section > summary {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: baseline;
  cursor: pointer;
  list-style: none;
  background: linear-gradient(180deg, var(--sector-patients-soft), #ffffff 82%);
  margin: -16px -16px 0;
  padding: 16px 16px 12px;
}

.detail-section > summary::-webkit-details-marker,
.message-card > summary::-webkit-details-marker,
.contact-note-card > summary::-webkit-details-marker,
.inline-collapsible > summary::-webkit-details-marker {
  display: none;
}

.detail-section > summary::after,
.message-card > summary::after,
.contact-note-card > summary::after,
.inline-collapsible > summary::after {
  content: "+";
  color: var(--accent);
  font-weight: 900;
  margin-left: auto;
}

.detail-section[open] > summary {
  margin-bottom: 12px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
}

.detail-section[open] > summary::after,
.message-card[open] > summary::after,
.contact-note-card[open] > summary::after,
.inline-collapsible[open] > summary::after {
  content: "-";
}

.detail-section > summary span {
  color: var(--ink);
  font-size: 16px;
  font-weight: 900;
  white-space: nowrap;
}

#patientConsents {
  border-left-color: var(--section-consents);
}

#patientConsents > summary {
  background: linear-gradient(180deg, var(--section-consents-soft), #ffffff 82%);
}

#patientQuestionnaire {
  border-left-color: var(--section-questionnaire);
}

#patientQuestionnaire > summary {
  background: linear-gradient(180deg, var(--section-questionnaire-soft), #ffffff 82%);
}

#patientAiSummary {
  border-left-color: var(--section-ai);
}

#patientAiSummary > summary {
  background: linear-gradient(180deg, var(--section-ai-soft), #ffffff 82%);
}

#patientScientificSupport {
  border-left-color: var(--section-scientific);
}

#patientScientificSupport > summary {
  background: linear-gradient(180deg, var(--section-scientific-soft), #ffffff 82%);
}

#patientContactNotes {
  border-left-color: var(--section-contacts);
}

#patientContactNotes > summary {
  background: linear-gradient(180deg, var(--section-contacts-soft), #ffffff 82%);
}

#patientFollowUp {
  border-left-color: var(--section-followup);
}

#patientFollowUp > summary {
  background: linear-gradient(180deg, var(--section-followup-soft), #ffffff 82%);
}

.detail-section h4,
.detail-section h5 {
  margin: 0;
}

.detail-section small,
.muted {
  color: var(--muted);
}

.inline-form {
  border: 0;
  padding: 0;
  margin: 0;
}

.import-panel {
  border: 1px solid var(--line);
  background: #fbfcfb;
  margin-top: 14px;
  padding: 12px;
}

.import-panel summary {
  cursor: pointer;
  color: var(--ink);
  font-weight: 800;
}

.import-panel .privacy-callout {
  margin: 12px 0;
}

.import-panel textarea {
  min-height: 150px;
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  font-size: 13px;
}

.questionnaire-readable {
  display: grid;
  gap: 14px;
}

.questionnaire-card {
  border: 1px solid var(--line);
  background: #ffffff;
  padding: 14px;
}

.questionnaire-card header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
  margin-bottom: 12px;
}

.questionnaire-card h4,
.questionnaire-card h5 {
  margin: 0;
}

.questionnaire-section-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 12px;
}

.questionnaire-section-grid section {
  border-left: 3px solid var(--section-questionnaire);
  background: #fbfdfb;
  padding: 12px;
}

.questionnaire-muted-section {
  opacity: 0.78;
}

.questionnaire-field-list {
  display: grid;
  gap: 8px;
  margin: 10px 0 0;
}

.questionnaire-field-list div {
  display: grid;
  gap: 3px;
}

.questionnaire-field-list dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.questionnaire-field-list dd {
  margin: 0;
  color: var(--ink);
  font-weight: 700;
  line-height: 1.35;
}

.compact-list {
  margin: 0;
  padding-left: 18px;
}

.questionnaire-previous {
  border: 1px solid var(--line);
  padding: 12px;
}

.questionnaire-previous .questionnaire-card {
  margin-top: 12px;
}

.consent-grid,
.summary-grid,
.section-grid {
  display: grid;
  gap: 10px;
}

.consent-grid {
  grid-template-columns: repeat(4, minmax(120px, 1fr));
}

.consent-pill {
  padding: 12px;
  display: grid;
  gap: 4px;
}

.consent-pill.ok {
  background: var(--accent-soft);
}

.consent-pill.missing {
  background: var(--warning-soft);
}

.consent-pill span,
.summary-grid span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.consent-evidence-panel {
  margin-top: 12px;
  border: 1px solid var(--line);
  padding: 10px 12px;
}

.consent-evidence-panel > summary {
  cursor: pointer;
  font-weight: 800;
}

.consent-evidence-list {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.consent-evidence-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(220px, 1fr);
  gap: 12px;
  padding: 10px;
  border-left: 4px solid var(--accent);
  background: var(--surface);
}

.consent-evidence-row > div {
  display: grid;
  gap: 3px;
}

.consent-evidence-row span {
  color: var(--muted);
  font-size: 13px;
}

.summary-grid {
  grid-template-columns: repeat(2, minmax(180px, 1fr));
  margin: 12px 0;
}

.summary-grid article {
  padding: 12px;
  display: grid;
  gap: 6px;
}

.section-grid {
  grid-template-columns: 1fr 1fr;
}

.inline-collapsible {
  border: 1px solid var(--line);
  background: #fbfcfb;
  padding: 12px;
  margin-top: 12px;
}

.inline-collapsible > summary {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
  font-weight: 800;
  list-style: none;
}

.inline-collapsible .section-grid {
  margin-top: 12px;
}

.admin-section {
  border: 1px solid var(--line);
  border-left: 4px solid var(--sector-admin);
  background: linear-gradient(180deg, var(--sector-admin-soft), #ffffff 76%);
  padding: 16px;
  margin-bottom: 18px;
  min-width: 0;
}

.admin-section-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  margin-bottom: 12px;
}

.admin-section > header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: baseline;
  border-bottom: 1px solid var(--line);
  padding-bottom: 12px;
  margin-bottom: 14px;
}

.admin-section.admin-section-collapsed > header {
  border-bottom: 0;
  margin-bottom: 0;
  padding-bottom: 0;
}

.admin-section.admin-section-collapsed > :not(header) {
  display: none !important;
}

.admin-section-toggle {
  flex: 0 0 auto;
}

.admin-section h3,
.admin-section p {
  margin: 0;
}

.admin-section p {
  color: var(--muted);
  margin-top: 4px;
}

.admin-metrics {
  margin-bottom: 0;
}

.admin-load-error {
  background: #fff4f2;
  border: 1px solid #edb8b0;
  border-left: 4px solid var(--danger);
  color: var(--ink);
  display: grid;
  gap: 4px;
  padding: 12px;
}

.admin-load-error span {
  color: var(--muted);
}

.system-status {
  display: grid;
  gap: 12px;
}

.system-command-center {
  background: #ffffff;
  border: 1px solid var(--line);
  border-left: 4px solid var(--accent);
  border-radius: 8px;
  display: grid;
  gap: 12px;
  padding: 14px;
}

.system-command-center.warning {
  border-left-color: var(--warning);
}

.system-command-center.danger {
  border-left-color: var(--danger);
}

.system-command-center > header,
.system-action-panel > strong {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.system-command-center h4,
.system-command-center p {
  margin: 0;
}

.system-command-center p {
  color: var(--muted);
  margin-top: 4px;
}

.system-snapshot-grid,
.system-action-grid {
  display: grid;
  gap: 8px;
}

.system-snapshot-grid {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.system-snapshot-grid > div {
  border: 1px solid var(--line);
  border-radius: 8px;
  min-width: 0;
  padding: 10px;
}

.system-snapshot-grid strong,
.system-snapshot-grid span {
  display: block;
}

.system-snapshot-grid strong {
  font-size: 1.05rem;
  overflow-wrap: anywhere;
}

.system-snapshot-grid span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  margin-top: 4px;
  text-transform: uppercase;
}

.system-action-panel {
  display: grid;
  gap: 8px;
}

.system-action-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.system-action-card {
  align-content: start;
  background: #fbfcfb;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 10px;
}

.system-action-card.warning {
  background: var(--warning-soft);
  border-color: #efd5a2;
}

.system-action-card.danger {
  background: #fff4f2;
  border-color: #edb8b0;
}

.system-action-card small {
  color: var(--muted);
  line-height: 1.4;
}

.system-action-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.system-action-controls button {
  min-height: 36px;
}

.system-status-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.system-status-card,
.system-job-row {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
}

.system-status-card header,
.system-job-row {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.system-status-card small,
.system-job-row small {
  color: var(--muted);
  display: block;
  line-height: 1.4;
  margin-top: 6px;
}

.system-job-list,
.system-warning-list {
  display: grid;
  gap: 8px;
}

.backup-guide-panel {
  background: #ffffff;
  border: 1px solid var(--line);
  border-left: 4px solid var(--sector-admin);
  border-radius: 8px;
  display: grid;
  gap: 8px;
  padding: 12px;
}

.backup-guide-panel > header {
  align-items: baseline;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.backup-guide-panel code {
  background: #f4f6f4;
  border: 1px solid var(--line);
  border-radius: 6px;
  display: block;
  overflow-x: auto;
  padding: 10px;
  white-space: nowrap;
}

.backup-guide-panel small {
  color: var(--muted);
}

.system-load-panel {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
}

.system-load-panel > header {
  align-items: baseline;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin-bottom: 10px;
}

.system-load-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
}

.system-load-grid > div {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
}

.system-load-grid strong {
  display: block;
  font-size: 1.45rem;
}

.system-load-grid span,
.system-load-grid small,
.system-load-panel > header small {
  color: var(--muted);
  display: block;
}

.system-job-history {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px 12px;
}

.system-job-history summary {
  cursor: pointer;
  font-weight: 700;
}

.system-job-history .system-job-list {
  margin-top: 10px;
}

.compact-history-row {
  padding: 10px;
}

.system-warning-list {
  grid-template-columns: repeat(auto-fit, minmax(210px, max-content));
}

.readiness-checklist,
.sandbox-guide-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr));
}

.readiness-checklist article,
.sandbox-guide-grid article {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  min-width: 0;
  padding: 12px;
}

.sandbox-guide-grid article {
  border-top: 4px solid var(--warning);
}

.sandbox-guide-grid .stop-card {
  border-top-color: var(--danger);
  background: #fff7f6;
}

.readiness-checklist strong,
.sandbox-guide-grid strong {
  display: block;
  margin-bottom: 8px;
}

.readiness-checklist ul,
.sandbox-guide-grid ul {
  color: var(--muted);
  line-height: 1.45;
  margin: 0;
  padding-left: 18px;
}

.readiness-checklist li + li,
.sandbox-guide-grid li + li {
  margin-top: 6px;
}

.guide-reference {
  margin-top: 12px;
}

.danger-zone {
  border-left-color: var(--danger);
  background: linear-gradient(180deg, #fff3f2, #ffffff 76%);
}

.test-cleanup-panel {
  display: grid;
  gap: 12px;
}

.test-cleanup-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
}

.test-cleanup-grid > div {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
}

.test-cleanup-grid strong {
  display: block;
  font-size: 1.35rem;
}

.test-cleanup-grid span {
  color: var(--muted);
}

.test-cleanup-note {
  background: #fff8f7;
  border: 1px solid #f1c5bf;
  border-radius: 8px;
  display: grid;
  gap: 4px;
  padding: 10px;
}

.test-cleanup-note span {
  color: var(--muted);
}

.test-cleanup-note small {
  color: var(--muted);
}

.full-reset-note {
  border-color: var(--danger);
  background: var(--danger-soft);
}

.danger-button {
  background: var(--danger);
  border-color: var(--danger);
  color: #ffffff;
}

.danger-button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.admin-filter {
  border: 1px solid var(--line);
  background: #fbfcfb;
  padding: 12px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(170px, 100%), 1fr));
  gap: 10px;
  align-items: end;
  margin-bottom: 12px;
}

.admin-filter button {
  min-height: 43px;
}

.admin-log-list {
  max-height: 620px;
  overflow: auto;
  padding-right: 4px;
}

.admin-log {
  border: 1px solid var(--line);
  background: white;
  padding: 12px;
  min-width: 0;
  overflow-wrap: anywhere;
}

.admin-log header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.admin-log h4 {
  margin: 0;
  font-size: 15px;
}

.admin-log small,
.admin-log-meta {
  color: var(--muted);
}

.admin-log-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: 8px;
  font-size: 13px;
}

.admin-log pre {
  margin-top: 10px;
  max-height: 180px;
  font-size: 13px;
}

.admin-user-list {
  grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
}

.admin-user {
  border: 1px solid var(--line);
  background: white;
  padding: 12px;
  min-width: 0;
  display: grid;
  gap: 12px;
}

.admin-user header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}

.admin-user h4 {
  margin: 0;
  overflow-wrap: anywhere;
}

.admin-user small {
  color: var(--muted);
}

.admin-user-controls {
  display: grid;
  grid-template-columns: minmax(140px, 1fr) minmax(140px, 1fr) auto;
  gap: 10px;
  align-items: end;
}

.user-active-row {
  align-self: end;
  min-height: 43px;
}

.user-create-form {
  grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr));
}

.section-grid section {
  background: #fbfcfb;
  border: 1px solid var(--line);
  padding: 12px;
}

.scientific-section {
  border-left: 4px solid var(--sector-previsit);
}

.scientific-support {
  border: 1px solid var(--line);
  background: white;
}

.scientific-support summary {
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 14px;
  background: var(--sector-previsit-soft);
  color: var(--sector-previsit);
  font-weight: 800;
}

.scientific-support summary::-webkit-details-marker {
  display: none;
}

.scientific-support summary::after {
  content: "Apri";
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
}

.scientific-support[open] summary::after {
  content: "Nascondi";
}

.scientific-support-body {
  display: grid;
  gap: 14px;
  padding: 14px;
}

.scientific-callout {
  margin: 0;
  border-left: 4px solid var(--sector-previsit);
  background: #fbfcfb;
  padding: 12px;
  font-weight: 700;
}

.source-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.source-list article {
  display: grid;
  gap: 6px;
  min-width: 0;
  border: 1px solid var(--line);
  background: #fff;
  padding: 12px;
  overflow-wrap: anywhere;
}

.source-list strong {
  color: var(--sector-previsit);
}

.source-list span,
.source-list p {
  color: var(--muted);
}

.source-list p {
  margin: 0;
}

.source-list a {
  color: var(--sector-previsit);
  font-weight: 800;
  overflow-wrap: anywhere;
}

.scientific-grid section {
  border-left: 3px solid var(--sector-previsit);
}

.previsit-card {
  border: 1px solid var(--line);
  border-left: 4px solid var(--sector-previsit);
  background: linear-gradient(180deg, var(--sector-previsit-soft), #ffffff 78%);
  padding: 14px;
  display: grid;
  gap: 12px;
  min-width: 0;
  overflow-wrap: anywhere;
}

.previsit-card.cancelled {
  border-color: #ead7a4;
  background: #fffdf7;
}

.previsit-card header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.previsit-card h4 {
  margin: 0;
}

.previsit-card small {
  color: var(--muted);
}

.previsit-next-action {
  border: 1px solid #f0d6a9;
  background: var(--warning-soft);
  color: #604500;
  font-weight: 800;
  margin: 0;
  padding: 10px;
}

.compact-data {
  display: grid;
  gap: 8px;
  margin: 0;
}

.compact-data div {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 10px;
}

.compact-data dt {
  color: var(--muted);
  font-weight: 800;
}

.compact-data dd {
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
}

.compact-data-three {
  grid-template-columns: 1fr;
}

.previsit-status-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}

.previsit-status-cell {
  border: 1px solid var(--line);
  background: #fbfcfb;
  padding: 10px;
  min-width: 0;
}

.previsit-status-cell dt {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  margin-bottom: 4px;
  text-transform: uppercase;
}

.previsit-status-cell dd {
  margin: 0;
  font-weight: 800;
  min-width: 0;
  overflow-wrap: anywhere;
}

.previsit-status-cell small {
  display: block;
  color: var(--muted);
  font-weight: 600;
  margin-top: 4px;
}

.previsit-body {
  border: 1px solid var(--line);
  background: #fbfcfb;
  padding: 10px;
  max-height: 220px;
  overflow: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.previsit-safe-note {
  border: 1px dashed var(--line);
  background: #fbfcfb;
  color: var(--muted);
  font-weight: 700;
  padding: 10px;
}

.previsit-email-list {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}

.previsit-email-item {
  display: grid;
  gap: 10px;
  min-width: 0;
  border: 1px solid var(--line);
  border-left: 4px solid var(--sector-previsit);
  background: linear-gradient(180deg, color-mix(in srgb, var(--sector-previsit-soft) 70%, white), #ffffff 78%);
  padding: 12px;
}

.previsit-email-item header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.previsit-email-item strong {
  display: block;
  margin-bottom: 2px;
}

.email-body-preview {
  max-height: 190px;
  margin: 0;
  overflow: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  border: 1px solid var(--line);
  background: #fbfcfb;
  padding: 10px;
  font: inherit;
  color: var(--ink);
}

.previsit-email-preview-panel {
  border: 1px solid var(--line);
  background: #fbfcfb;
  padding: 10px;
}

.previsit-email-preview-panel summary {
  cursor: pointer;
  color: var(--ink);
  font-weight: 800;
  list-style: none;
}

.previsit-email-preview-panel summary::-webkit-details-marker {
  display: none;
}

.previsit-email-preview-panel summary::after {
  content: "+";
  color: var(--accent);
  font-weight: 900;
  margin-left: 10px;
}

.previsit-email-preview-panel[open] summary::after {
  content: "-";
}

.previsit-email-preview-panel .email-body-preview {
  margin-top: 10px;
}

.previsit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.previsit-inline-panel {
  border: 1px solid var(--line);
  background: #fbfcfb;
  padding: 12px;
}

.previsit-inline-panel summary {
  cursor: pointer;
  color: var(--accent);
  font-weight: 800;
}

.previsit-inline-panel label {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  color: var(--muted);
  font-weight: 800;
}

.previsit-inline-panel textarea {
  width: 100%;
  min-height: 170px;
  resize: vertical;
}

.previsit-inline-panel .checkbox-row {
  display: flex;
  align-items: flex-start;
  color: var(--ink);
}

.warning-note {
  border: 1px solid #ead7a4;
  background: var(--warning-soft);
  color: #6a4a00;
  margin: 0;
  padding: 10px;
}

.danger-outline {
  border-color: var(--danger);
  background: white;
  color: var(--danger);
}

.button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  max-width: 100%;
  border: 1px solid var(--active-sector);
  background: var(--active-sector);
  color: white;
  padding: 10px 14px;
  text-decoration: none;
  font-weight: 800;
}

.clean-list {
  margin: 8px 0 0;
  padding-left: 18px;
}

.status-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-bottom: 10px;
}

.status-stack {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.privacy-callout,
.list-toolbar {
  border: 1px solid var(--line);
  background: #fbfcfb;
  padding: 12px;
  margin-bottom: 12px;
}

.privacy-callout {
  display: grid;
  gap: 4px;
}

.privacy-callout span {
  color: var(--muted);
}

.list-toolbar {
  margin-top: 14px;
}

.list-toolbar.compact {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

.follow-up-queue {
  border: 1px solid var(--line);
  border-left: 4px solid var(--section-followup);
  background: linear-gradient(180deg, var(--section-followup-soft), #ffffff 76%);
  padding: 14px;
  margin-bottom: 14px;
}

.follow-up-queue > header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
}

.follow-up-queue h3,
.follow-up-queue p {
  margin: 0;
}

.due-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
  gap: 10px;
}

.due-item {
  border-left: 4px solid var(--section-followup);
  background: linear-gradient(180deg, color-mix(in srgb, var(--section-followup-soft) 56%, white), #ffffff 82%);
}

.message-list {
  display: grid;
  gap: 10px;
}

.contact-note-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.checkbox-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.checkbox-row input {
  width: auto;
}

.contact-note-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.contact-note-card {
  padding: 12px;
  border-left: 4px solid var(--section-contacts);
  background: linear-gradient(180deg, color-mix(in srgb, var(--section-contacts-soft) 72%, white), #ffffff 82%);
}

.contact-note-card summary {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  cursor: pointer;
  list-style: none;
}

.contact-note-card summary div {
  display: grid;
  gap: 3px;
}

.contact-note-card p {
  margin: 10px 0;
}

.message-generator {
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: minmax(160px, 220px) auto;
  gap: 10px;
  align-items: end;
  margin-top: 14px;
  padding-top: 14px;
}

.follow-up-start-panel {
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: minmax(220px, 280px) auto auto;
  gap: 10px;
  align-items: end;
  margin-top: 14px;
  padding-top: 14px;
}

.program-status-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}

.message-card {
  padding: 12px;
  border-left: 4px solid var(--section-followup);
  background: linear-gradient(180deg, color-mix(in srgb, var(--section-followup-soft) 68%, white), #ffffff 82%);
}

.message-card summary {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
  cursor: pointer;
  list-style: none;
}

.message-card[open] summary {
  margin-bottom: 10px;
}

.message-card summary div:first-child {
  display: grid;
  gap: 3px;
}

.message-card summary small {
  color: var(--muted);
}

.message-card textarea {
  min-height: 88px;
}

pre {
  margin: 0;
  padding: 14px;
  overflow: auto;
  max-height: 360px;
  white-space: pre-wrap;
}

.toast {
  position: fixed;
  right: 24px;
  bottom: 24px;
  background: #17241e;
  color: white;
  padding: 12px 16px;
  box-shadow: var(--shadow);
  max-width: 360px;
}

@media (max-width: 1200px) {
  .workspace {
    padding: 22px;
  }

  .app-panel,
  .login-panel {
    min-height: auto;
  }

  .login-panel {
    grid-template-columns: minmax(0, 1fr) 320px;
    padding: 36px;
  }

  .split.wide {
    grid-template-columns: minmax(300px, 0.9fr) minmax(0, 1.1fr);
  }

  .previsit-status-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1080px) {
  .shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    position: static;
    top: auto;
    height: auto;
    padding: 18px 22px;
    gap: 18px;
  }

  .nav {
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  }

  .nav button,
  .session button,
  .patient-section-nav button,
  .patient-view-controls button,
  .pagination-controls button,
  .previsit-actions button,
  .list-toolbar.compact button,
  .status-stack button,
  .program-status-actions button {
    min-height: 42px;
  }

  .topbar,
  .patient-heading,
  .operational-panel > header,
  .follow-up-queue > header,
  .admin-section > header,
  .item header,
  .admin-log header,
  .admin-user header,
  .contact-note-card summary,
  .message-card summary {
    flex-direction: column;
    align-items: flex-start;
  }

  .topbar {
    gap: 12px;
  }

  .topbar > :last-child,
  .patient-heading > :last-child {
    width: 100%;
  }

  .patient-view-controls,
  .status-stack {
    justify-content: flex-start;
  }

  .search-panel,
  .previsit-filter,
  .previsit-outbox-filter,
  .admin-filter,
  .compact-filter,
  .user-create-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .search-panel small {
    padding-bottom: 0;
    white-space: normal;
  }

  .compact-data div {
    grid-template-columns: 96px minmax(0, 1fr);
  }
}

@media (max-width: 900px) {
  .consent-evidence-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .shell,
  .login-panel,
  .split,
  .split.wide,
  .metrics,
  .grid-form,
  .search-panel,
  .message-generator,
  .follow-up-start-panel,
  .contact-note-fields,
  .admin-user-controls,
  .operational-grid,
  .consent-grid,
  .summary-grid,
  .section-grid {
    grid-template-columns: 1fr;
  }

  .source-list {
    grid-template-columns: 1fr;
  }

  .workspace {
    padding: 16px;
  }

  .app-panel,
  .login-panel {
    padding: 18px;
  }

  .login-copy h2 {
    font-size: 36px;
  }

  .nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .session {
    margin-top: 0;
  }

  .patient-section-nav,
  .actions,
  .previsit-actions,
  .patient-view-controls,
  .program-status-actions,
  .pagination-controls,
  .list-toolbar.compact {
    flex-direction: column;
    align-items: stretch;
  }

  .patient-section-nav button,
  .actions button,
  .previsit-actions button,
  .patient-view-controls button,
  .program-status-actions button,
  .pagination-controls button,
  .status-stack button,
  .list-toolbar.compact button,
  .button-link {
    width: 100%;
    max-width: 100%;
  }

  .patient-section-nav {
    position: static;
    top: auto;
  }

  .previsit-card header,
  .previsit-email-item header,
  .compact-data div {
    grid-template-columns: 1fr;
  }

  .previsit-card header,
  .previsit-email-item header {
    flex-direction: column;
  }

  .previsit-status-grid {
    grid-template-columns: 1fr;
  }

  .sidebar {
    position: static;
    height: auto;
  }

  .compact-data div {
    gap: 4px;
  }

  .admin-log pre,
  .previsit-body,
  .email-body-preview,
  pre {
    max-height: 260px;
  }

  .grid-form button {
    grid-column: span 1;
  }
}

@media (max-width: 640px) {
  .workspace {
    padding: 12px;
  }

  .sidebar,
  .app-panel,
  .login-panel {
    padding: 14px;
  }

  .nav {
    grid-template-columns: 1fr;
  }

  .login-copy h2 {
    font-size: 30px;
  }

  .topbar h2 {
    font-size: 1.35rem;
  }

  .search-panel,
  .previsit-filter,
  .previsit-outbox-filter,
  .admin-filter,
  .compact-filter,
  .user-create-form,
  .previsit-status-grid,
  .patient-contact-strip {
    grid-template-columns: 1fr;
  }

  .phone-inline-form,
  .queue-item {
    display: grid;
    grid-template-columns: 1fr;
  }

  .queue-actions {
    justify-content: stretch;
  }

  .metric strong {
    font-size: 24px;
  }

  .toast {
    right: 12px;
    left: 12px;
    bottom: 12px;
    max-width: none;
  }
}

@media print {
  .sidebar,
  .topbar,
  .patient-heading,
  .patient-view-controls,
  .patient-section-nav,
  .invoice-register-panel form,
  .toast {
    display: none !important;
  }

  .shell,
  .workspace,
  .app-panel,
  .detail-section {
    display: block;
    padding: 0;
    border: 0;
    box-shadow: none;
  }

  .view.hidden,
  #loginPanel {
    display: none !important;
  }

  .invoice-registry-print {
    display: block;
  }
}
