:root {
  --ui-page: #F2F6F4;
  --ui-page-strong: #E8F0ED;
  --ui-surface: #FFFFFF;
  --ui-surface-soft: #F8FBFA;
  --ui-sidebar: #173F4A;
  --ui-sidebar-hover: #245663;
  --ui-primary: #16877A;
  --ui-primary-hover: #116F65;
  --ui-primary-soft: #E8F4F0;
  --ui-text: #203038;
  --ui-muted: #60737A;
  --ui-border: #D6E2DE;
  --ui-border-strong: #BFD0CB;
  --ui-success: #287A52;
  --ui-success-soft: #DDF2E6;
  --ui-danger: #BE4B50;
  --ui-danger-soft: #FBEAEC;
  --ui-warning: #8A6412;
  --ui-warning-soft: #FFF1CF;
  --ui-info: #2F6F8F;
  --ui-info-soft: #E2EFF4;
  --ui-shadow: 0 4px 14px rgba(23, 63, 74, .07);
  --ui-shadow-raised: 0 12px 30px rgba(23, 63, 74, .13);
  --ui-focus: 0 0 0 3px rgba(22, 135, 122, .14);
  --sidebar-width: 264px;
  --sidebar-collapsed-width: 76px;
  --topbar-height: 68px;
}

html { background: var(--ui-page); }
body {
  background: var(--ui-page);
  color: var(--ui-text);
  font-size: 15px;
  letter-spacing: 0;
}
body,
button,
input,
select,
textarea { font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; }

.lucide {
  width: 18px;
  height: 18px;
  stroke-width: 2;
  flex: 0 0 auto;
}

.app-shell { min-height: 100vh; background: var(--ui-page); }
.app-main {
  margin-left: var(--sidebar-width);
  min-height: 100vh;
  background: var(--ui-page);
  transition: margin-left .2s ease;
}
.content {
  width: 100%;
  max-width: 1560px;
  min-height: calc(100vh - var(--topbar-height));
  padding: 28px clamp(22px, 3vw, 42px) 44px;
  background: var(--ui-page);
}

.sidebar {
  width: var(--sidebar-width);
  background: var(--ui-sidebar);
  overflow-x: hidden;
  transition: width .2s ease, transform .2s ease;
}
.sidebar-brand {
  min-height: var(--topbar-height);
  height: auto;
  padding: 12px 14px 12px 20px;
  gap: 10px;
}
.sidebar-brand img {
  width: 154px;
  max-height: 42px;
  object-fit: contain;
  object-position: left center;
}
.sidebar-brand-mark {
  display: none;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 8px;
  background: var(--ui-primary-soft);
  color: var(--ui-sidebar);
  font-weight: 900;
  font-size: 1rem;
}
.sidebar-collapse,
.sidebar-close,
.menu-button,
.icon-button,
.topbar-icon-button,
.action-button {
  display: inline-grid;
  place-items: center;
  padding: 0;
  border: 0;
  cursor: pointer;
  text-decoration: none;
}
.sidebar-close,
.menu-button { display: none; }
.sidebar-collapse {
  width: 34px;
  height: 34px;
  margin-left: auto;
  border-radius: 7px;
  background: rgba(255,255,255,.08);
  color: #D2E4E7;
}
.sidebar-collapse:hover { background: var(--ui-sidebar-hover); color: #FFFFFF; }
.sidebar nav { padding: 14px 10px 20px; }
.nav-label {
  margin: 20px 12px 7px;
  color: #A9C5CA;
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: 0;
}
.nav-link {
  position: relative;
  min-height: 42px;
  gap: 11px;
  padding: 9px 12px;
  border-radius: 7px;
  color: #D2E4E7;
  font-size: .86rem;
}
.nav-link:hover { background: var(--ui-sidebar-hover); color: #FFFFFF; }
.nav-link.active {
  background: var(--ui-primary-soft);
  color: var(--ui-sidebar);
  box-shadow: none;
}
.nav-icon {
  width: 20px;
  height: 20px;
  font-size: 0;
}
.nav-icon .lucide { width: 18px; height: 18px; }
.sidebar-user { min-height: 72px; padding: 14px 18px; }
.sidebar-user .avatar { flex: 0 0 auto; }

.app-shell.sidebar-collapsed .sidebar { width: var(--sidebar-collapsed-width); }
.app-shell.sidebar-collapsed .app-main { margin-left: var(--sidebar-collapsed-width); }
.app-shell.sidebar-collapsed .sidebar-brand { justify-content: center; padding: 12px; }
.app-shell.sidebar-collapsed .sidebar-brand img,
.app-shell.sidebar-collapsed .sidebar-brand > span,
.app-shell.sidebar-collapsed .nav-link > span:last-child,
.app-shell.sidebar-collapsed .nav-label,
.app-shell.sidebar-collapsed .sidebar-user > div:last-child { display: none; }
.app-shell.sidebar-collapsed .sidebar-brand-mark { display: grid; }
.app-shell.sidebar-collapsed .sidebar-collapse { position: absolute; left: 52px; top: 18px; width: 22px; height: 32px; border-radius: 6px 0 0 6px; }
.app-shell.sidebar-collapsed .sidebar-collapse .lucide { transform: rotate(180deg); }
.app-shell.sidebar-collapsed .sidebar nav { padding-inline: 10px; }
.app-shell.sidebar-collapsed .nav-link { justify-content: center; padding-inline: 0; }
.app-shell.sidebar-collapsed .sidebar-user { justify-content: center; padding-inline: 10px; }

.topbar {
  height: var(--topbar-height);
  padding: 0 clamp(18px, 3vw, 40px);
  background: rgba(255,255,255,.96);
  border-color: var(--ui-border);
  backdrop-filter: blur(10px);
}
.topbar-start,
.topbar-actions,
.topbar-user,
.clinic-context { display: flex; align-items: center; }
.topbar-start { min-width: 0; gap: 14px; }
.topbar-actions { gap: 10px; }
.breadcrumb {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 7px;
  color: var(--ui-muted);
  font-size: .75rem;
}
.breadcrumb a { color: var(--ui-muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--ui-primary); }
.breadcrumb .lucide { width: 13px; height: 13px; }
.breadcrumb strong {
  max-width: 380px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ui-text);
  font-weight: 750;
}
.clinic-context {
  max-width: 290px;
  gap: 8px;
  min-height: 36px;
  padding: 0 11px;
  border: 1px solid var(--ui-border);
  border-radius: 7px;
  background: var(--ui-surface-soft);
  color: var(--ui-text);
  font-size: .76rem;
  font-weight: 700;
  text-decoration: none;
}
.clinic-context span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.clinic-context > .lucide:last-child:not(:first-child) { width: 14px; height: 14px; flex: 0 0 14px; color: var(--ui-muted); }
.unit-context { background: var(--ui-primary-soft); border-color: #c7ded7; color: var(--ui-sidebar); }
.topbar-user { gap: 8px; }
.topbar-user .avatar { width: 32px; height: 32px; font-size: .76rem; }
.topbar-user-copy { line-height: 1.15; }
.topbar-user-copy strong,
.topbar-user-copy span { display: block; max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar-user-copy strong { font-size: .74rem; color: var(--ui-text); }
.topbar-user-copy span { font-size: .65rem; color: var(--ui-muted); margin-top: 2px; }
.topbar-icon-button,
.menu-button {
  width: 36px;
  height: 36px;
  border-radius: 7px;
  background: transparent;
  color: var(--ui-muted);
}
.topbar-icon-button:hover,
.menu-button:hover { background: var(--ui-primary-soft); color: var(--ui-sidebar); }
.topbar-actions form { display: flex; }
.today { font-size: .72rem; }

.page-header {
  align-items: center;
  margin-bottom: 22px;
}
.page-header h1 {
  margin-bottom: 6px;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: 1.85rem;
  font-weight: 780;
  line-height: 1.2;
  letter-spacing: 0;
}
.page-header p { max-width: 780px; font-size: .86rem; line-height: 1.5; }
.eyebrow {
  margin-bottom: 5px;
  font-size: .65rem;
  letter-spacing: 0;
}

.btn {
  min-height: 40px;
  gap: 8px;
  border-radius: 7px;
  font-size: .8rem;
  letter-spacing: 0;
}
.btn .lucide { width: 16px; height: 16px; }
.btn-primary { background: var(--ui-primary); }
.btn-primary:hover { background: var(--ui-primary-hover); }
.btn-secondary,
.btn-ghost,
.logout-button {
  border-color: var(--ui-border-strong);
  background: var(--ui-surface);
  color: var(--ui-text);
}
.btn-secondary:hover,
.btn-ghost:hover,
.logout-button:hover { background: var(--ui-primary-soft); border-color: var(--ui-primary); color: var(--ui-sidebar); }
.btn-danger { background: var(--ui-danger); color: #FFFFFF; }
.btn-danger:hover { background: #9F3C41; }
.btn:disabled,
button:disabled,
input:disabled,
select:disabled,
textarea:disabled {
  cursor: not-allowed;
  opacity: .58;
}
.is-submitting { pointer-events: none; }
.is-submitting .lucide { animation: ui-spin .75s linear infinite; }
@keyframes ui-spin { to { transform: rotate(360deg); } }

.panel,
.stat-card,
.empty-state {
  border-radius: 8px;
  border-color: var(--ui-border);
  box-shadow: var(--ui-shadow);
}
.panel { margin-bottom: 20px; overflow: hidden; }
.form-panel { padding: 24px; overflow: visible; }
.panel-heading { align-items: flex-start; margin-bottom: 20px; }
.panel-heading h2,
.section-title h2,
.panel-subsection h3,
.empty-state h2 {
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  letter-spacing: 0;
}
.panel-heading h2 { font-size: 1.18rem; font-weight: 780; }
.panel-heading p { font-size: .78rem; }
.panel-subsection h3 { font-size: 1rem; font-weight: 780; }
.icon-button {
  width: 34px;
  height: 34px;
  border-radius: 7px;
  color: var(--ui-muted);
}
.icon-button:hover { color: var(--ui-sidebar); }

.form-grid { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 17px; }
.field { gap: 6px; min-width: 0; }
.field label { font-size: .74rem; }
.field input,
.field select,
.field textarea,
.search-form input,
.search-form select,
.upload-form input,
.select-filter {
  border-radius: 7px;
  border-color: #C9D9D4;
  color: var(--ui-text);
}
.field input,
.field select { height: 42px; }
.field textarea { min-height: 104px; }
.field-help { margin: 0; color: var(--ui-muted); font-size: .68rem; line-height: 1.4; }
.form-section-heading {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 5px 0 -2px;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--ui-border);
  color: var(--ui-sidebar);
}
.form-section-heading:first-child { margin-top: 0; }
.form-section-heading .lucide { width: 16px; height: 16px; color: var(--ui-primary); }
.form-section-heading strong { font-size: .8rem; }
.required-mark { color: var(--ui-danger); }
.select-search-wrap { display: grid; gap: 6px; }
.select-filter { width: 100%; height: 36px; padding: 7px 10px; background: var(--ui-surface-soft); font: inherit; font-size: .75rem; outline: none; }
.select-filter:focus { border-color: var(--ui-primary); box-shadow: var(--ui-focus); }
.form-actions {
  position: sticky;
  bottom: 0;
  z-index: 4;
  margin: 22px -24px -24px;
  padding: 15px 24px;
  background: rgba(255,255,255,.96);
  border-top: 1px solid var(--ui-border);
  backdrop-filter: blur(8px);
}

.branding-panel .panel-heading > .lucide {
  width: 22px;
  height: 22px;
  color: var(--ui-primary);
}
.clinic-branding-layout {
  display: grid;
  grid-template-columns: 220px minmax(0,1fr);
  gap: 28px;
  align-items: center;
}
.clinic-logo-preview {
  display: grid;
  place-items: center;
  width: 220px;
  height: 132px;
  padding: 16px;
  overflow: hidden;
  border: 1px solid var(--ui-border);
  border-radius: 7px;
  background: var(--ui-surface-soft);
}
.clinic-logo-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.clinic-logo-placeholder {
  display: grid;
  justify-items: center;
  gap: 8px;
  color: var(--ui-muted);
  font-size: .75rem;
  font-weight: 700;
}
.clinic-logo-placeholder .lucide { width: 30px; height: 30px; color: var(--ui-secondary); }
.clinic-branding-controls { display: grid; gap: 14px; min-width: 0; }
.clinic-branding-controls strong { display: block; margin-bottom: 4px; font-size: .9rem; }
.clinic-branding-controls p { max-width: 680px; margin: 0; color: var(--ui-muted); font-size: .76rem; line-height: 1.55; }
.branding-upload-form { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.file-picker {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 210px;
  height: 42px;
  padding: 0 14px;
  overflow: hidden;
  border: 1px solid #BFD0CB;
  border-radius: 7px;
  background: #FFFFFF;
  color: var(--ui-text);
  font-size: .76rem;
  font-weight: 700;
  cursor: pointer;
}
.file-picker:hover { border-color: var(--ui-primary); background: var(--ui-primary-soft); }
.file-picker:focus-within { border-color: var(--ui-primary); box-shadow: var(--ui-focus); }
.file-picker .lucide { width: 17px; height: 17px; flex: 0 0 auto; color: var(--ui-primary); }
.file-picker span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-picker input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.list-toolbar { padding: 14px 16px; background: var(--ui-surface-soft); }
.search-form { max-width: 760px; }
.search-form .btn { flex: 0 0 auto; }
.result-count {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 9px;
  border: 1px solid var(--ui-border);
  border-radius: 99px;
  background: var(--ui-surface);
  color: var(--ui-muted);
  font-size: .7rem;
}
.table-wrap { width: 100%; scrollbar-width: thin; scrollbar-color: var(--ui-border-strong) transparent; }
table { table-layout: auto; }
th {
  padding: 11px 13px;
  background: #EDF3F1;
  color: #42565E;
  font-size: .65rem;
  letter-spacing: 0;
}
td { padding: 12px 13px; font-size: .79rem; max-width: 300px; }
tbody tr { transition: background-color .12s ease; }
tbody tr:hover { background: #F4F8F6; }
.sortable-heading {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: inherit;
  text-transform: inherit;
  cursor: pointer;
}
.sortable-heading .lucide { width: 12px; height: 12px; color: var(--ui-muted); }
.row-actions { gap: 6px; }
.action-button {
  width: 31px;
  height: 31px;
  border-radius: 6px;
  border: 1px solid var(--ui-border);
  background: var(--ui-surface);
  color: var(--ui-primary);
}
.action-button:hover { background: var(--ui-primary-soft); border-color: var(--ui-primary); color: var(--ui-primary-hover); }
.action-button.danger,
.action-button.is-danger { color: var(--ui-danger); }
.action-button.danger:hover,
.action-button.is-danger:hover { background: var(--ui-danger-soft); border-color: var(--ui-danger); }
.action-button .lucide { width: 15px; height: 15px; }
.status { border-radius: 99px; font-size: .66rem; }
.pagination { align-items: center; flex-wrap: wrap; padding: 13px 16px; background: var(--ui-surface-soft); }
.pagination a { border-radius: 6px; }

.tabs {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  padding-bottom: 1px;
  border-bottom: 1px solid var(--ui-border);
}
.tab {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 12px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--ui-muted);
  font: inherit;
  font-size: .76rem;
  font-weight: 750;
  white-space: nowrap;
  cursor: pointer;
}
.tab:hover { color: var(--ui-primary); }
.tab.active,
.tab[aria-selected="true"] { border-bottom-color: var(--ui-primary); color: var(--ui-sidebar); }

.flash-stack {
  position: fixed;
  top: calc(var(--topbar-height) + 14px);
  right: 18px;
  z-index: 80;
  width: min(390px, calc(100vw - 32px));
}
.flash-stack .alert { box-shadow: var(--ui-shadow-raised); background-clip: padding-box; }
.alert { border-radius: 8px; }
.alert-info { background: var(--ui-info-soft); color: var(--ui-info); border-color: #BFDDE8; }

.empty-inline,
.empty-state { padding: 42px 24px; }
.empty-inline .lucide,
.empty-state .lucide { width: 30px; height: 30px; margin-bottom: 9px; color: var(--ui-secondary, #72AE9A); }
.empty-inline strong,
.empty-state strong { display: block; color: var(--ui-text); margin-bottom: 4px; }
.empty-inline p,
.empty-state p { margin: 0; font-size: .76rem; }
.permission-denied { width: min(520px, 100%); margin: 40px auto; text-align: center; }
.permission-denied .confirm-dialog-icon { margin: 0 auto 12px; }
.permission-denied .btn { margin-top: 18px; }

.stats-grid {
  grid-template-columns: repeat(auto-fit, minmax(185px,1fr));
  gap: 14px;
  margin-bottom: 20px;
}
.stat-card { min-height: 132px; padding: 17px; }
.stat-card .stat-top { align-items: center; font-size: .72rem; }
.stat-card .stat-icon { width: 34px; height: 34px; border-radius: 7px; }
.stat-card .stat-icon .lucide { width: 17px; height: 17px; }
.stat-value {
  margin: 12px 0 3px;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: 1.65rem;
  font-weight: 780;
  line-height: 1.15;
}
.stat-value.is-compact { font-size: 1.15rem; }
.stat-note { font-size: .68rem; }
.dashboard-grid { grid-template-columns: minmax(0,1.5fr) minmax(300px, .85fr); gap: 18px; }
.dashboard-panel { padding: 18px; }
.section-title { gap: 12px; margin-bottom: 12px; }
.section-title h2 { font-size: 1rem; font-weight: 780; }
.section-title a { display: inline-flex; align-items: center; gap: 5px; font-size: .72rem; }
.agenda-item,
.alert-item { padding: 11px 0; }
.agenda-item { grid-template-columns: 52px minmax(0,1fr) auto; }
.quick-actions { gap: 8px; }
.quick-action {
  min-height: 45px;
  padding: 11px;
  border-radius: 7px;
  font-size: .74rem;
}
.quick-action .lucide { width: 16px; height: 16px; color: var(--ui-primary); }

.dashboard-analytics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 18px; }
.chart-panel { min-height: 280px; }
.bar-chart { display: flex; align-items: flex-end; gap: 10px; height: 190px; padding: 20px 4px 0; border-bottom: 1px solid var(--ui-border); }
.bar-column { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 7px; }
.bar-track { width: min(46px, 72%); height: 150px; display: flex; align-items: flex-end; border-radius: 5px 5px 0 0; background: var(--ui-primary-soft); overflow: hidden; }
.bar-fill { width: 100%; min-height: 3px; background: var(--ui-primary); border-radius: 5px 5px 0 0; }
.bar-value { color: var(--ui-text); font-size: .65rem; font-weight: 750; white-space: nowrap; }
.bar-label { color: var(--ui-muted); font-size: .64rem; white-space: nowrap; }
.distribution-list { display: grid; gap: 12px; padding-top: 10px; }
.distribution-row { display: grid; grid-template-columns: 105px minmax(0,1fr) 34px; align-items: center; gap: 10px; font-size: .72rem; }
.distribution-track { height: 8px; border-radius: 99px; background: var(--ui-page-strong); overflow: hidden; }
.distribution-fill { height: 100%; border-radius: inherit; background: var(--ui-info); }
.report-page-header { align-items: flex-end; }
.report-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.report-tabs {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 14px;
  padding: 4px;
  border: 1px solid var(--ui-border);
  border-radius: 7px;
  background: var(--ui-surface);
  overflow-x: auto;
}
.report-tabs a {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 14px;
  border-radius: 5px;
  color: var(--ui-muted);
  font-size: .73rem;
  font-weight: 720;
  white-space: nowrap;
}
.report-tabs a:hover { background: var(--ui-page); color: var(--ui-text); }
.report-tabs a.active { background: var(--ui-primary-soft); color: var(--ui-sidebar); }
.report-tabs .lucide { width: 16px; height: 16px; }
.report-filter-panel { margin-bottom: 18px; padding: 14px 16px; }
.report-filter-form { display: flex; align-items: flex-end; gap: 10px; }
.report-filter-form .field { width: 155px; gap: 4px; }
.report-filter-form .field input { height: 39px; }
.report-filter-form .btn { height: 39px; }
.report-period { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; padding: 8px 10px; color: var(--ui-muted); font-size: .7rem; font-weight: 700; }
.report-period .lucide { width: 15px; height: 15px; color: var(--ui-primary); }
.report-stats { grid-template-columns: repeat(auto-fit,minmax(170px,1fr)); }
.report-stats:has(> .stat-card:nth-child(6)) { grid-template-columns: repeat(3,minmax(0,1fr)); }
.report-stats:has(> .stat-card:nth-child(4):last-child) { grid-template-columns: repeat(4,minmax(0,1fr)); }
.report-stats:has(> .stat-card:nth-child(5):last-child) { grid-template-columns: repeat(5,minmax(0,1fr)); }
.report-stats .stat-value.is-compact { font-size: 1.25rem; }
.report-analytics,
.report-grid { align-items: start; }
.report-section { margin-top: 18px; }
.cash-chart { height: 190px; display: flex; align-items: flex-end; gap: 8px; padding: 16px 4px 0; border-bottom: 1px solid var(--ui-border); overflow-x: auto; }
.cash-column { min-width: 50px; flex: 1; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 7px; color: var(--ui-muted); font-size: .62rem; }
.cash-values { width: min(52px,90%); height: 150px; display: flex; align-items: flex-end; justify-content: center; gap: 4px; }
.cash-bar { width: 42%; min-height: 3px; border-radius: 4px 4px 0 0; }
.cash-bar.is-income { background: var(--ui-primary); }
.cash-bar.is-expense { background: var(--ui-danger); }
.chart-legend { display: flex; justify-content: center; gap: 18px; padding-top: 12px; color: var(--ui-muted); font-size: .66rem; }
.chart-legend span { display: inline-flex; align-items: center; gap: 6px; }
.legend-dot { width: 8px; height: 8px; border-radius: 50%; }
.legend-dot.is-income { background: var(--ui-primary); }
.legend-dot.is-expense { background: var(--ui-danger); }
.dre-list { display: grid; padding-top: 4px; }
.dre-list > div { min-height: 40px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--ui-border); color: var(--ui-muted); font-size: .74rem; }
.dre-list > div:last-child { border-bottom: 0; }
.dre-list strong { color: var(--ui-text); white-space: nowrap; }
.dre-list .dre-result { margin-top: 8px; padding: 10px 12px; border: 1px solid var(--ui-border); border-radius: 6px; background: var(--ui-primary-soft); color: var(--ui-sidebar); font-weight: 780; }
.dre-list .dre-result strong { color: var(--ui-sidebar); font-size: .88rem; }
.report-distribution .distribution-row { grid-template-columns: minmax(105px,150px) minmax(90px,1fr) minmax(90px,auto); }
.distribution-fill.is-success { background: var(--ui-primary); }
.distribution-fill.is-danger { background: var(--ui-danger); }
.distribution-fill.is-warning { background: var(--ui-warning); }
.distribution-fill.is-info { background: var(--ui-info); }
.report-distribution .distribution-row > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.report-distribution .distribution-row strong { width: auto; text-align: right; white-space: nowrap; }
.table-meter { width: 100%; height: 3px; margin-top: 5px; background: var(--ui-page-strong); overflow: hidden; }
.table-meter span { display: block; height: 100%; background: var(--ui-primary); }
.report-kpi-row { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; padding-top: 4px; }
.report-kpi-row > div { padding: 14px; border: 1px solid var(--ui-border); border-radius: 6px; background: var(--ui-page); }
.report-kpi-row span { display: block; color: var(--ui-muted); font-size: .68rem; }
.report-kpi-row strong { display: block; margin-top: 8px; color: var(--ui-text); font-size: 1.35rem; }
.alert-dot.status-danger { background: var(--ui-danger); }
.alert-dot.status-warning { background: var(--ui-warning); }
.alert-dot.status-success { background: var(--ui-success); }
.alert-dot.status-info { background: var(--ui-info); }

.agenda-row td:first-child { box-shadow: inset 3px 0 0 var(--ui-info); }
.agenda-row.status-border-confirmado td:first-child,
.agenda-row.status-border-concluido td:first-child { box-shadow: inset 3px 0 0 var(--ui-success); }
.agenda-row.status-border-cancelado td:first-child,
.agenda-row.status-border-faltou td:first-child { box-shadow: inset 3px 0 0 var(--ui-danger); }
.agenda-row.status-border-em_atendimento td:first-child { box-shadow: inset 3px 0 0 var(--ui-warning); }

.clinical-hero {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 18px;
  margin-bottom: 18px;
  border: 1px solid var(--ui-border);
  border-radius: 8px;
  background: var(--ui-surface);
  box-shadow: var(--ui-shadow);
}
.patient-avatar {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--ui-primary-soft);
  color: var(--ui-primary);
}
.patient-avatar .lucide { width: 28px; height: 28px; }
.clinical-hero h1 { margin: 0 0 4px; font-size: 1.45rem; }
.clinical-hero p { margin: 0; color: var(--ui-muted); font-size: .78rem; }
.clinical-alerts { display: grid; gap: 8px; }
.clinical-alert {
  padding: 11px 12px;
  border-left: 3px solid var(--ui-primary);
  border-radius: 0 6px 6px 0;
  background: var(--ui-surface-soft);
  color: var(--ui-text);
  font-size: .78rem;
  line-height: 1.45;
}
.clinical-alert.is-critical { border-left-color: var(--ui-danger); background: var(--ui-danger-soft); }
.clinical-hero-copy { min-width: 0; }
.clinical-hero-meta { display: flex; flex-wrap: wrap; gap: 7px 14px; margin-top: 7px; }
.clinical-hero-meta span { display: inline-flex; align-items: center; gap: 5px; }
.clinical-hero-meta .lucide { width: 14px; height: 14px; color: var(--ui-primary); }
.attachment-list .action-button { flex: 0 0 auto; }
.timeline-item h3 { color: var(--ui-text); }

.agenda-toolbar { padding: 14px 16px; }
.agenda-navigation { display: flex; align-items: center; gap: 9px; padding-top: 13px; }
.agenda-navigation > strong { min-width: 150px; text-align: center; font-size: .85rem; }
.agenda-filter { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.agenda-filter input,
.agenda-filter select { height: 40px; border: 1px solid var(--ui-border-strong); border-radius: 7px; padding: 0 10px; background: var(--ui-surface); color: var(--ui-text); font: inherit; }

.calendar-month {
  display: grid;
  grid-template-columns: repeat(7,minmax(0,1fr));
  gap: 1px;
  margin-bottom: 20px;
  overflow: hidden;
  border: 1px solid var(--ui-border);
  border-radius: 8px;
  background: var(--ui-border);
  box-shadow: var(--ui-shadow);
}
.calendar-weekday { padding: 9px; background: var(--ui-table-header, #EDF3F1); color: var(--ui-muted); font-size: .67rem; font-weight: 800; text-align: center; }
.calendar-day { min-height: 142px; padding: 8px; background: var(--ui-surface); }
.calendar-day.is-outside { background: var(--ui-surface-soft); opacity: .64; }
.calendar-day.is-today { box-shadow: inset 0 0 0 2px var(--ui-primary); }
.calendar-day-number { width: 28px; height: 28px; display: grid; place-items: center; margin: 0 0 6px auto; border-radius: 50%; color: var(--ui-text); text-decoration: none; font-size: .72rem; font-weight: 800; }
.calendar-day.is-today .calendar-day-number { background: var(--ui-primary); color: #fff; }
.calendar-event { display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 4px; margin-bottom: 4px; padding: 5px 6px; border-left: 3px solid var(--ui-info); border-radius: 4px; background: var(--ui-surface-soft); color: var(--ui-text); text-decoration: none; font-size: .62rem; }
.calendar-event time { color: var(--ui-muted); }
.calendar-event span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 750; }
.calendar-more,
.calendar-block { display: flex; align-items: center; gap: 4px; margin-top: 5px; color: var(--ui-muted); font-size: .6rem; text-decoration: none; }
.calendar-block .lucide { width: 11px; height: 11px; }

.agenda-days { display: grid; grid-template-columns: repeat(7,minmax(190px,1fr)); gap: 10px; margin-bottom: 20px; overflow-x: auto; padding-bottom: 6px; }
.agenda-days.is-day { grid-template-columns: minmax(0,1fr); }
.agenda-day-column { min-height: 360px; border: 1px solid var(--ui-border); border-radius: 8px; background: var(--ui-surface); box-shadow: var(--ui-shadow); overflow: hidden; }
.agenda-day-column > header { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px; background: #EDF3F1; color: var(--ui-muted); font-size: .7rem; }
.agenda-day-column > header strong { color: var(--ui-text); }
.agenda-card { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 9px; margin: 8px; padding: 10px; border: 1px solid var(--ui-border); border-left: 3px solid var(--ui-info); border-radius: 7px; background: var(--ui-surface); }
.agenda-card-time strong,
.agenda-card-time span { display: block; }
.agenda-card-time strong { font-size: .76rem; }
.agenda-card-time span { margin-top: 3px; color: var(--ui-muted); font-size: .62rem; }
.agenda-card-body { min-width: 0; }
.agenda-card-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 6px; }
.agenda-card-title strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .76rem; }
.agenda-days:not(.is-day) .agenda-card-title { display: grid; grid-template-columns: minmax(0,1fr); justify-items: start; gap: 5px; }
.agenda-days:not(.is-day) .agenda-card-title strong { max-width: 100%; overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
.agenda-card-body p { margin: 4px 0; color: var(--ui-text); font-size: .68rem; }
.agenda-card-body > span { display: flex; align-items: center; gap: 4px; margin-top: 3px; color: var(--ui-muted); font-size: .62rem; }
.agenda-card-body .lucide { width: 11px; height: 11px; }
.agenda-card-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 5px; padding-top: 7px; border-top: 1px solid var(--ui-border); }
.agenda-card-actions form { display: flex; }
.agenda-block { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 8px; margin: 8px; padding: 9px; border-radius: 7px; background: var(--ui-warning-soft); color: var(--ui-warning); }
.agenda-block > .lucide { width: 15px; height: 15px; }
.agenda-block strong,
.agenda-block span { display: block; font-size: .64rem; }
.agenda-day-empty { padding: 35px 12px; color: var(--ui-muted); font-size: .68rem; text-align: center; }
.status-border-agendado { border-left-color: var(--ui-info) !important; }
.status-border-confirmado,
.status-border-concluido { border-left-color: var(--ui-success) !important; }
.status-border-em_atendimento { border-left-color: var(--ui-warning) !important; }
.status-border-cancelado,
.status-border-faltou { border-left-color: var(--ui-danger) !important; }
.priority-urgente { box-shadow: inset 0 0 0 1px rgba(190,75,80,.34); }
.priority-encaixe { background: var(--ui-warning-soft); }
.agenda-support-grid { align-items: start; }
.agenda-history-panel { padding: 18px; }
.history-list { display: grid; gap: 8px; }
.history-list article { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: start; gap: 10px; padding: 10px; border: 1px solid var(--ui-border); border-radius: 7px; }
.history-list strong,
.history-list span,
.history-list small { display: block; }
.history-list strong { font-size: .7rem; }
.history-list span,
.history-list small { margin-top: 3px; color: var(--ui-muted); font-size: .64rem; }
.waitlist { display: grid; gap: 8px; }
.waitlist-item { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 10px; padding: 10px; border: 1px solid var(--ui-border); border-left: 3px solid var(--ui-info); border-radius: 7px; }
.waitlist-item > div:first-child strong,
.waitlist-item > div:first-child span,
.waitlist-item > div:first-child small { display: block; }
.waitlist-item > div:first-child strong { font-size: .76rem; }
.waitlist-item > div:first-child span,
.waitlist-item > div:first-child small { margin-top: 3px; color: var(--ui-muted); font-size: .65rem; }
.operational-form { padding: 12px 0; border-top: 1px solid var(--ui-border); }
.operational-form:first-of-type { border-top: 0; padding-top: 0; }
.operational-form summary { display: flex; align-items: center; gap: 7px; color: var(--ui-sidebar); font-size: .77rem; font-weight: 800; cursor: pointer; }
.operational-form summary .lucide { width: 16px; height: 16px; color: var(--ui-primary); }
.operational-form form { padding-top: 14px; }
.compact-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }

.documents-layout { grid-template-columns: minmax(0,1.6fr) minmax(300px,.7fr); align-items: start; }
.model-form { display: grid; gap: 12px; }
.model-list { display: grid; gap: 7px; margin-top: 16px; }
.model-list article { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 0; border-top: 1px solid var(--ui-border); }
.model-list strong,
.model-list span { display: block; }
.model-list strong { font-size: .72rem; }
.model-list span { margin-top: 3px; color: var(--ui-muted); font-size: .63rem; }

.clinical-hero-actions { display: flex; align-items: center; gap: 8px; }
.care-actions-panel { padding: 18px; }
.care-layout,
.hospitalization-layout { align-items: start; }
.clinical-record { padding: 13px 0; border-bottom: 1px solid var(--ui-border); }
.clinical-record:last-child { border-bottom: 0; }
.clinical-record strong { display: block; margin-bottom: 5px; color: var(--ui-sidebar); font-size: .72rem; }
.clinical-record p { margin: 0; color: var(--ui-text); font-size: .78rem; line-height: 1.55; }
.care-related-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.care-related-grid article { padding: 12px; border: 1px solid var(--ui-border); border-radius: 7px; }
.care-related-grid h3 { display: flex; justify-content: space-between; margin: 0 0 8px; font-size: .76rem; }
.care-related-grid h3 span { color: var(--ui-muted); }
.care-related-grid a { display: flex; justify-content: space-between; gap: 8px; padding: 7px 0; border-top: 1px solid var(--ui-border); color: var(--ui-text); text-decoration: none; font-size: .67rem; }
.care-related-grid a span { color: var(--ui-muted); white-space: nowrap; }
.care-related-grid p { color: var(--ui-muted); font-size: .66rem; }
.linked-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 0; border-bottom: 1px solid var(--ui-border); }
.linked-item strong,
.linked-item span { display: block; }
.linked-item strong { font-size: .72rem; }
.linked-item span { margin-top: 3px; color: var(--ui-muted); font-size: .64rem; }
.btn-block { width: 100%; justify-content: center; }

.stat-card.is-critical { border-color: rgba(190,75,80,.4); background: var(--ui-danger-soft); }
.medication-schedule { display: grid; gap: 8px; }
.medication-slot { display: grid; grid-template-columns: 112px minmax(0,1fr) auto auto; align-items: center; gap: 10px; padding: 11px; border: 1px solid var(--ui-border); border-left: 3px solid var(--ui-info); border-radius: 7px; }
.medication-slot.is-overdue { border-left-color: var(--ui-danger); background: var(--ui-danger-soft); }
.medication-slot time { color: var(--ui-text); font-size: .69rem; font-weight: 800; }
.medication-slot > div:nth-child(2) strong,
.medication-slot > div:nth-child(2) span,
.medication-slot > div:nth-child(2) small { display: block; }
.medication-slot > div:nth-child(2) strong { font-size: .73rem; }
.medication-slot > div:nth-child(2) span,
.medication-slot > div:nth-child(2) small { margin-top: 3px; color: var(--ui-muted); font-size: .64rem; }
.prescription-list { display: grid; gap: 8px; }
.prescription-list article { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 8px; padding: 10px; border: 1px solid var(--ui-border); border-radius: 7px; }
.prescription-list strong,
.prescription-list span,
.prescription-list small { display: block; }
.prescription-list strong { font-size: .72rem; }
.prescription-list span,
.prescription-list small { margin-top: 3px; color: var(--ui-muted); font-size: .63rem; }

.permission-group { border-radius: 7px; }
.permission-option { border-radius: 6px; }
.module-fieldset { border-radius: 7px; }
.module-grid label { border-radius: 6px; }

.header-actions,
.clinical-hero-actions,
.inventory-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.header-actions form,
.clinical-hero-actions form,
.inventory-actions form { margin: 0; }
.commercial-layout { align-items: start; }
.preventive-layout,
.exam-layout { align-items: start; }
.status-flow-form { margin-top: 14px; }
.panel-pad { padding: 16px 18px 0; }
.commercial-hero .patient-avatar { border-radius: 8px; }
.cell-note { display: block; margin-top: 3px; color: var(--ui-muted); font-size: .64rem; }
.status-banner {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--ui-border);
  border-radius: 7px;
  background: var(--ui-surface-soft);
}
.status-banner.success { border-color: #BDE5CE; background: var(--ui-success-soft); color: var(--ui-success); }
.status-banner.danger { border-color: #E7BEC1; background: var(--ui-danger-soft); color: var(--ui-danger); }
.status-banner .lucide { width: 19px; height: 19px; flex: 0 0 auto; }
.status-banner strong,
.status-banner span { display: block; }
.status-banner strong { font-size: .76rem; }
.status-banner span { margin-top: 3px; color: var(--ui-muted); font-size: .68rem; line-height: 1.4; }
.status-banner form { margin-left: auto; }
.result-version-list,
.sample-list { display: grid; gap: 9px; margin-top: 14px; }
.result-version {
  padding: 12px;
  border: 1px solid var(--ui-border);
  border-radius: 7px;
  background: var(--ui-surface-soft);
}
.result-version > div:first-child { display: flex; justify-content: space-between; gap: 12px; }
.result-version strong,
.result-version span { display: block; }
.result-version span { color: var(--ui-muted); font-size: .68rem; }
.result-version details { margin-top: 10px; }
.result-version summary { color: var(--ui-primary); font-size: .72rem; font-weight: 700; cursor: pointer; }
.document-preview { margin-top: 5px; color: var(--ui-text); font-size: .75rem; line-height: 1.55; white-space: normal; }
.document-empty { display: grid; gap: 4px; margin-bottom: 12px; }
.document-empty strong { color: var(--ui-text); }
.document-empty span { color: var(--ui-muted); line-height: 1.5; }
.danger-text { color: var(--ui-danger) !important; }
.action-button.is-danger { color: var(--ui-danger); }
.action-button.is-danger:hover { border-color: var(--ui-danger); background: var(--ui-danger-soft); }
.inventory-actions { justify-content: space-between; margin-top: 16px; padding: 16px 18px; }
.inventory-actions > div:first-child strong,
.inventory-actions > div:first-child span { display: block; }
.inventory-actions > div:first-child strong { font-size: .8rem; }
.inventory-actions > div:first-child span { margin-top: 3px; color: var(--ui-muted); font-size: .68rem; }
.inline-count-form { display: flex !important; align-items: center; gap: 6px; }
.inline-count-form input { width: 105px; min-width: 0; height: 34px; padding: 0 8px; }
.row-menu { position: relative; }
.row-menu > summary { list-style: none; cursor: pointer; }
.row-menu > summary::-webkit-details-marker { display: none; }
.inline-settlement {
  position: absolute;
  z-index: 20;
  top: 38px;
  right: 0;
  width: 270px;
  display: grid !important;
  gap: 9px;
  padding: 12px;
  border: 1px solid var(--ui-border);
  border-radius: 7px;
  background: var(--ui-surface);
  box-shadow: var(--ui-shadow-raised);
}
.inline-settlement label { display: grid; gap: 4px; color: var(--ui-muted); font-size: .65rem; font-weight: 700; }
.inline-settlement input,
.inline-settlement select { width: 100%; height: 36px; }
.status-rascunho,
.status-pedido,
.status-aprovada,
.status-faturada,
.status-parcial { background: var(--ui-warning-soft); color: var(--ui-warning); }
.status-aberta { background: var(--ui-info-soft); color: var(--ui-info); }
.status-recebida,
.status-esgotado { background: var(--ui-success-soft); color: var(--ui-success); }
.status-bloqueado,
.status-vencido { background: var(--ui-danger-soft); color: var(--ui-danger); }
.btn:disabled,
.action-button:disabled { opacity: .48; cursor: not-allowed; box-shadow: none; }
[hidden] { display: none !important; }

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: none;
  place-items: center;
  padding: 20px;
  background: rgba(17,47,55,.54);
}
.modal-backdrop.open { display: grid; }
.confirm-dialog {
  width: min(430px,100%);
  padding: 22px;
  border: 1px solid var(--ui-border);
  border-radius: 8px;
  background: var(--ui-surface);
  box-shadow: var(--ui-shadow-raised);
}
.confirm-dialog-icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: var(--ui-danger-soft);
  color: var(--ui-danger);
}
.confirm-dialog h2 { margin: 14px 0 6px; font-size: 1.05rem; }
.confirm-dialog p { margin: 0; color: var(--ui-muted); font-size: .8rem; line-height: 1.5; }
.confirm-dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; }

.page-progress {
  position: fixed;
  inset: 0 auto auto 0;
  z-index: 200;
  width: 0;
  height: 3px;
  background: var(--ui-primary);
  opacity: 0;
  transition: width .35s ease, opacity .2s ease;
}
.page-progress.active { width: 76%; opacity: 1; }

.login-shell { background: var(--ui-page); }
.login-brand {
  background: var(--ui-sidebar);
  color: #FFFFFF;
}
.login-brand:after { display: none; }
.login-brand h1 {
  max-width: 650px;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: clamp(2.1rem,4vw,3.6rem);
  font-weight: 780;
  letter-spacing: 0;
}
.brand-copy { max-width: 560px; font-size: .98rem; }
.feature-list { display: none; }
.login-card { border-radius: 8px; box-shadow: var(--ui-shadow-raised); }
.login-card h2 {
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: 1.75rem;
  font-weight: 780;
  letter-spacing: 0;
}
.login-form button,
.button-link { border-radius: 7px; }
.login-form button { display: flex; align-items: center; justify-content: center; gap: 8px; }
.single-card { background: var(--ui-page); }
.context-selection-shell { padding: 32px 20px; }
.context-selection-card { width: min(620px,100%) !important; }
.context-selection-card .mobile-brand { display: block; margin-bottom: 26px; }
.context-selection-card .mobile-brand img { width: 160px; }
.context-options { display: grid; gap: 10px; margin-top: 22px; }
.context-options form { margin: 0; }
.context-option { width: 100%; min-height: 72px; display: grid; grid-template-columns: 42px minmax(0,1fr) 20px; align-items: center; gap: 13px; padding: 12px 14px; border: 1px solid var(--ui-border); border-radius: 7px; background: var(--ui-surface); color: var(--ui-text); text-align: left; cursor: pointer; }
.context-option:hover { border-color: var(--ui-primary); background: var(--ui-primary-soft); }
.context-option-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 7px; background: var(--ui-primary-soft); color: var(--ui-primary); }
.context-option-icon .lucide { width: 20px; height: 20px; }
.context-option > span:nth-child(2) { min-width: 0; display: grid; gap: 4px; }
.context-option strong, .context-option small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.context-option strong { font-size: .9rem; }
.context-option small { color: var(--ui-muted); font-size: .74rem; }
.context-option > .lucide { width: 17px; color: var(--ui-muted); }
.context-exit-form { display: flex; justify-content: center; margin-top: 26px; }
.unit-active-control { display: flex; align-items: center; gap: 11px; min-height: 60px; padding: 12px 14px; border: 1px solid var(--ui-border); background: var(--ui-surface-soft); color: var(--ui-text); cursor: pointer; }
.unit-active-control input { width: 18px; height: 18px; accent-color: var(--ui-primary); }
.unit-active-control span { display: grid; gap: 3px; }
.unit-active-control small, .table-secondary { display: block; color: var(--ui-muted); font-size: .72rem; }
.unit-access-fieldset { border: 0; padding: 0; }
.unit-access-fieldset legend { margin-bottom: 8px; color: var(--ui-text); font-size: .78rem; font-weight: 750; }
.unit-access-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border: 1px solid var(--ui-border); }
.unit-access-grid label { display: grid; grid-template-columns: 18px minmax(0,1fr); align-items: center; gap: 10px; min-height: 62px; padding: 11px 13px; border-right: 1px solid var(--ui-border); border-bottom: 1px solid var(--ui-border); background: var(--ui-surface); cursor: pointer; }
.unit-access-grid label:nth-child(2n) { border-right: 0; }
.unit-access-grid label:nth-last-child(-n+2) { border-bottom: 0; }
.unit-access-grid input { width: 17px; height: 17px; accent-color: var(--ui-primary); }
.unit-access-grid span { display: grid; gap: 3px; min-width: 0; }
.unit-access-grid strong { color: var(--ui-text); font-size: .78rem; }
.unit-access-grid small { color: var(--ui-muted); font-size: .7rem; }
@media (max-width: 680px) {
  .unit-access-grid { grid-template-columns: 1fr; }
  .unit-access-grid label, .unit-access-grid label:nth-child(2n), .unit-access-grid label:nth-last-child(-n+2) { border-right: 0; border-bottom: 1px solid var(--ui-border); }
  .unit-access-grid label:last-child { border-bottom: 0; }
}
.password-field { position: relative; }
.password-field input { padding-right: 46px; }
.password-toggle {
  position: absolute;
  right: 7px;
  bottom: 7px;
  width: 35px;
  height: 35px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--ui-muted);
  cursor: pointer;
}
.password-toggle:hover { background: var(--ui-primary-soft); color: var(--ui-sidebar); }

@media (max-width: 1180px) {
  .topbar-user-copy,
  .today { display: none; }
  .clinic-context { max-width: 220px; }
  .form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .documents-layout { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .sidebar { width: var(--sidebar-width); transform: translateX(-100%); }
  .sidebar.open { transform: translateX(0); }
  .app-main,
  .app-shell.sidebar-collapsed .app-main { margin-left: 0; }
  .app-shell.sidebar-collapsed .sidebar { width: var(--sidebar-width); }
  .app-shell.sidebar-collapsed .sidebar-brand img,
  .app-shell.sidebar-collapsed .nav-link > span:last-child,
  .app-shell.sidebar-collapsed .nav-label,
  .app-shell.sidebar-collapsed .sidebar-user > div:last-child { display: block; }
  .app-shell.sidebar-collapsed .sidebar-brand-mark,
  .sidebar-collapse { display: none; }
  .menu-button,
  .sidebar-close { display: inline-grid; }
  .sidebar-close { width: 34px; height: 34px; margin-left: auto; border-radius: 7px; background: rgba(255,255,255,.08); color: #FFFFFF; }
  .dashboard-grid,
  .dashboard-analytics { grid-template-columns: 1fr; }
  .clinic-context { max-width: 190px; }
  .agenda-navigation { flex-wrap: wrap; }
  .agenda-filter { width: 100%; margin-left: 0; }
  .report-page-header { align-items: stretch; }
  .report-actions { justify-content: flex-start; }
  .report-filter-form { flex-wrap: wrap; }
  .report-period { width: 100%; margin-left: 0; padding-left: 0; }
  .report-kpi-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .report-stats:has(> .stat-card:nth-child(6)),
  .report-stats:has(> .stat-card:nth-child(4):last-child),
  .report-stats:has(> .stat-card:nth-child(5):last-child) { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .calendar-day { min-height: 120px; }
}

@media (max-width: 680px) {
  .content { padding: 20px 14px 34px; }
  .topbar { padding: 0 12px; }
  .clinic-context,
  .topbar-user { display: none; }
  .breadcrumb strong { max-width: 180px; }
  .page-header { align-items: stretch; flex-direction: column; gap: 14px; }
  .page-header h1 { font-size: 1.55rem; }
  .page-header .btn { width: 100%; }
  .form-grid { grid-template-columns: 1fr; }
  .clinic-branding-layout { grid-template-columns: 1fr; gap: 18px; }
  .clinic-logo-preview { width: 100%; max-width: 300px; }
  .branding-upload-form { align-items: stretch; flex-direction: column; }
  .branding-upload-form .btn,
  .file-picker { width: 100%; }
  .form-panel { padding: 18px; }
  .form-actions { margin: 20px -18px -18px; padding: 13px 18px; }
  .list-toolbar,
  .search-form { align-items: stretch; flex-direction: column; }
  .search-form { width: 100%; max-width: none; }
  .search-form .btn,
  .search-form select { width: 100%; }
  .result-count { align-self: flex-start; }
  .report-actions { align-items: stretch; flex-direction: column; }
  .report-actions .btn { width: 100%; }
  .report-filter-form { align-items: stretch; flex-direction: column; }
  .report-filter-form .field,
  .report-filter-form .btn { width: 100%; }
  .report-tabs a { padding: 0 11px; }
  .report-distribution .distribution-row { grid-template-columns: minmax(85px,120px) minmax(70px,1fr); }
  .report-distribution .distribution-row strong { grid-column: 2; }
  .stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .clinical-hero { grid-template-columns: auto 1fr; }
  .clinical-hero > .btn { grid-column: 1 / -1; width: 100%; }
  .clinical-hero-actions { grid-column: 1 / -1; flex-wrap: wrap; }
  .override-row { grid-template-columns: 1fr; }
  .flash-stack { top: 78px; right: 12px; }
  .agenda-filter { align-items: stretch; flex-direction: column; }
  .agenda-filter input,
  .agenda-filter select,
  .agenda-filter .btn { width: 100%; }
  .calendar-month { grid-template-columns: repeat(7,minmax(105px,1fr)); overflow-x: auto; }
  .calendar-weekday,
  .calendar-day { min-width: 105px; }
  .waitlist-item { grid-template-columns: minmax(0,1fr) auto; }
  .waitlist-item > .row-actions { grid-column: 1 / -1; justify-content: flex-end; }
  .compact-grid,
  .care-related-grid { grid-template-columns: 1fr; }
  .medication-slot { grid-template-columns: 90px minmax(0,1fr) auto; }
  .medication-slot > .row-actions { grid-column: 2 / -1; justify-content: flex-end; }
}

@media (max-width: 460px) {
  .stats-grid { grid-template-columns: 1fr; }
  .quick-actions { grid-template-columns: 1fr; }
  .agenda-item { grid-template-columns: 46px minmax(0,1fr); }
  .agenda-item > .status { grid-column: 2; justify-self: start; }
  .login-card { border-radius: 0; }
  .agenda-navigation > strong { min-width: 110px; }
  .agenda-card { grid-template-columns: 42px minmax(0,1fr); }
  .prescription-list article { grid-template-columns: 1fr auto; }
  .prescription-list article form { grid-column: 1 / -1; justify-self: end; }
  .report-kpi-row { grid-template-columns: 1fr; }
  .report-stats:has(> .stat-card:nth-child(6)),
  .report-stats:has(> .stat-card:nth-child(4):last-child),
  .report-stats:has(> .stat-card:nth-child(5):last-child) { grid-template-columns: 1fr; }
}

@media print {
  .sidebar,
  .topbar,
  .page-header .btn,
  .form-actions,
  .upload-form,
  .row-actions,
  .flash-stack,
  .care-actions-panel,
  .agenda-toolbar,
  .report-tabs,
  .report-filter-panel,
  .report-actions { display: none !important; }
  .app-main { margin: 0 !important; }
  .content { max-width: none; padding: 0; }
  .panel,
  .stat-card,
  .clinical-hero { box-shadow: none; break-inside: avoid; }
}

/* Central de comunicacao */
.communication-tabs { margin-bottom: 18px; }
.communication-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.provider-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.provider-row { min-width: 0; display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 14px; border: 1px solid var(--color-border); background: var(--color-surface); border-radius: 6px; }
.provider-row .channel-icon { width: 40px; height: 40px; display: grid; place-items: center; color: var(--color-primary); background: var(--color-primary-soft); border-radius: 6px; }
.provider-row .channel-icon svg { width: 19px; height: 19px; }
.provider-row div { min-width: 0; display: grid; gap: 2px; }
.provider-row div span { color: var(--color-text-muted); font-size: .79rem; overflow: hidden; text-overflow: ellipsis; }
.communication-filter { display: flex; align-items: end; gap: 12px; flex-wrap: wrap; }
.communication-filter .field { min-width: 210px; flex: 1; }
.response-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--color-border); }
.response-summary-grid div { display: grid; gap: 5px; padding: 16px 18px; border-right: 1px solid var(--color-border); background: var(--color-secondary-bg); }
.response-summary-grid div:last-child { border-right: 0; }
.response-summary-grid span { color: var(--color-text-muted); font-size: .78rem; }
.response-summary-grid strong { color: var(--color-text); font-size: 1.35rem; }
.status-action-confirmado { color: var(--color-success); background: var(--color-success-bg); }
.status-action-cancelado { color: var(--color-danger); background: var(--color-danger-bg); }
.status-action-pendente { color: #245663; background: var(--color-primary-soft); }
.status-action-expirado { color: var(--color-text-muted); background: var(--color-secondary-bg); }
.table-wrap td > small { display: block; margin-top: 3px; color: var(--color-text-muted); }
.error-copy { max-width: 240px; color: var(--color-danger) !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.status-agendada, .status-processando { color: var(--color-primary); background: var(--color-primary-soft); }
.status-enviada { color: var(--color-success); background: var(--color-success-bg); }
.status-falhou, .status-cancelada { color: var(--color-danger); background: var(--color-danger-bg); }
.status-aguardando_configuracao, .status-pendente { color: #76551d; background: #fff3d7; }
.rule-list, .consent-list { display: grid; gap: 0; }
.rule-row { display: grid; grid-template-columns: minmax(210px, 1.4fr) minmax(130px, .7fr) 110px 110px auto auto 40px; gap: 12px; align-items: end; padding: 14px 0; border-bottom: 1px solid var(--color-border); }
.rule-row:last-child, .consent-row:last-child { border-bottom: 0; }
.rule-name { align-self: center; min-width: 0; display: grid; gap: 3px; }
.rule-name span { color: var(--color-text-muted); font-size: .78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.toggle-field { min-height: 42px; display: inline-flex; align-items: center; gap: 8px; color: var(--color-text); font-weight: 700; font-size: .82rem; }
.toggle-field input { width: 18px; height: 18px; accent-color: var(--color-primary); }
.consent-row { display: grid; grid-template-columns: minmax(220px, 1.5fr) repeat(3, minmax(135px, .75fr)) minmax(160px, .9fr) 40px; gap: 12px; align-items: end; padding: 14px 0; border-bottom: 1px solid var(--color-border); }
.consent-person { align-self: center; min-width: 0; display: grid; gap: 4px; }
.consent-person span { color: var(--color-text-muted); font-size: .8rem; overflow-wrap: anywhere; }

@media (max-width: 1100px) {
    .provider-grid { grid-template-columns: 1fr; }
    .rule-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .rule-name { grid-column: 1 / -1; }
    .consent-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .consent-person { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
    .communication-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .response-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .response-summary-grid div:nth-child(2) { border-right: 0; }
    .response-summary-grid div:nth-child(-n+2) { border-bottom: 1px solid var(--color-border); }
    .communication-filter, .communication-filter .field { width: 100%; min-width: 0; }
    .communication-filter .btn { width: 100%; }
    .rule-row, .consent-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rule-name, .consent-person { grid-column: 1 / -1; }
    .rule-row > .icon-button, .consent-row > .icon-button { justify-self: end; }
}

@media (max-width: 440px) {
    .communication-stats { grid-template-columns: 1fr; }
    .response-summary-grid { grid-template-columns: 1fr; }
    .response-summary-grid div, .response-summary-grid div:nth-child(2) { border-right: 0; border-bottom: 1px solid var(--color-border); }
    .response-summary-grid div:last-child { border-bottom: 0; }
    .consent-origin { grid-column: 1 / -1; }
}

/* Configuração inicial */
.onboarding-header { align-items: center; }
.onboarding-account-status { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 0 12px; border: 1px solid var(--color-border); background: var(--color-secondary-bg); color: var(--color-text); font-size: .82rem; font-weight: 700; }
.onboarding-account-status svg { width: 17px; color: var(--color-primary); }
.onboarding-account-status.is-complete { color: var(--color-success); background: var(--color-success-bg); border-color: #b9ddc8; }
.onboarding-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 18px; border: 1px solid var(--color-border); background: var(--color-surface); box-shadow: var(--shadow-soft); }
.onboarding-steps a { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 14px 16px; border-right: 1px solid var(--color-border); color: var(--color-text-muted); }
.onboarding-steps a:last-child { border-right: 0; }
.onboarding-steps a span { display: grid; place-items: center; width: 28px; height: 28px; flex: 0 0 28px; border: 1px solid var(--color-border); background: var(--color-secondary-bg); color: var(--color-text); font-size: .76rem; font-weight: 800; }
.onboarding-steps a strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: .84rem; }
.onboarding-steps a.active { background: var(--color-primary-soft); color: var(--color-sidebar); box-shadow: inset 0 -3px 0 var(--color-primary); }
.onboarding-steps a.active span { border-color: var(--color-primary); background: var(--color-primary); color: #fff; }
.onboarding-steps a.done span { border-color: #b9ddc8; background: var(--color-success-bg); color: var(--color-success); }
.onboarding-panel { margin-bottom: 18px; }
.legal-notice { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 18px; padding: 14px 16px; border-left: 3px solid var(--color-secondary); background: var(--color-secondary-bg); color: var(--color-text); }
.legal-notice svg { width: 19px; flex: 0 0 19px; color: var(--color-primary); }
.legal-notice p { margin: 0; line-height: 1.55; }
.legal-accept-form { display: grid; gap: 12px; }
.legal-document { border: 1px solid var(--color-border); background: var(--color-surface); }
.legal-document summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 16px; cursor: pointer; color: var(--color-text); list-style: none; }
.legal-document summary::-webkit-details-marker { display: none; }
.legal-document summary span { display: grid; gap: 3px; }
.legal-document summary small { color: var(--color-text-muted); font-size: .76rem; }
.legal-document summary svg { width: 18px; transition: transform .2s ease; }
.legal-document[open] summary svg { transform: rotate(180deg); }
.legal-content { max-height: 330px; overflow-y: auto; padding: 18px 20px; border-top: 1px solid var(--color-border); background: #f8faf9; color: var(--color-text); font-size: .86rem; line-height: 1.65; }
.legal-check { display: grid; grid-template-columns: 20px 1fr auto; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--color-border); background: var(--color-secondary-bg); color: var(--color-text); cursor: pointer; }
.legal-check input { width: 18px; height: 18px; accent-color: var(--color-primary); }
.legal-check small { color: var(--color-success); font-size: .75rem; }
.business-hours-list { border: 1px solid var(--color-border); }
.business-hours-row { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(300px, 1fr) auto; align-items: center; gap: 18px; min-height: 68px; padding: 10px 16px; border-bottom: 1px solid var(--color-border); background: var(--color-surface); }
.business-hours-row:last-child { border-bottom: 0; }
.business-hours-row .toggle-field { justify-self: start; }
.hours-range { display: grid; grid-template-columns: repeat(2, minmax(120px, 1fr)); gap: 10px; }
.hours-range label { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px; color: var(--color-text-muted); font-size: .76rem; }
.hours-range input { min-width: 0; }
.closed-label { display: none; color: var(--color-text-muted); font-size: .82rem; font-weight: 700; }
.business-hours-row.is-closed { background: var(--color-secondary-bg); }
.business-hours-row.is-closed .hours-range { display: none; }
.business-hours-row.is-closed .closed-label { display: block; }
.onboarding-team-status { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 18px; border: 1px solid var(--color-border); }
.onboarding-team-status div { display: grid; gap: 5px; padding: 15px 16px; border-right: 1px solid var(--color-border); background: var(--color-secondary-bg); }
.onboarding-team-status div:last-child { border-right: 0; }
.onboarding-team-status span { color: var(--color-text-muted); font-size: .76rem; }
.onboarding-team-status strong { color: var(--color-text); font-size: .96rem; }
.onboarding-vet-form { padding-top: 4px; }
.onboarding-complete-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 16px; border: 1px solid #b9ddc8; background: var(--color-success-bg); }
.onboarding-complete-row > svg { color: var(--color-success); }
.onboarding-complete-row p { margin: 4px 0 0; color: var(--color-text-muted); }
.onboarding-optional-actions { display: grid; margin-top: 18px; border: 1px solid var(--color-border); }
.onboarding-optional-actions > div { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 16px; border-bottom: 1px solid var(--color-border); }
.onboarding-optional-actions > div:last-child { border-bottom: 0; }
.onboarding-optional-actions > div > svg { color: var(--color-primary); }
.onboarding-optional-actions p { margin: 4px 0 0; color: var(--color-text-muted); }
.onboarding-checklist .panel-heading > strong { color: var(--color-primary); font-size: 1.2rem; }
.checklist-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--color-border); }
.checklist-grid a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 14px 16px; border-right: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); color: var(--color-text); }
.checklist-grid a:nth-child(2n) { border-right: 0; }
.checklist-grid a:nth-last-child(-n+2) { border-bottom: 0; }
.checklist-grid a svg { width: 19px; color: var(--color-text-muted); }
.checklist-grid a strong { color: var(--color-danger); font-size: .75rem; }
.checklist-grid a.done { background: var(--color-success-bg); }
.checklist-grid a.done svg, .checklist-grid a.done strong { color: var(--color-success); }
.onboarding-checklist > .form-actions { margin-top: 18px; }

@media (max-width: 760px) {
    .onboarding-steps a { justify-content: center; padding: 11px 8px; }
    .onboarding-steps a strong { display: none; }
    .legal-check { grid-template-columns: 20px 1fr; }
    .legal-check small { grid-column: 2; }
    .business-hours-row { grid-template-columns: 1fr auto; gap: 10px; }
    .hours-range { grid-column: 1 / -1; }
    .onboarding-team-status { grid-template-columns: 1fr; }
    .onboarding-team-status div { border-right: 0; border-bottom: 1px solid var(--color-border); }
    .onboarding-team-status div:last-child { border-bottom: 0; }
    .onboarding-complete-row, .onboarding-optional-actions > div { grid-template-columns: auto minmax(0, 1fr); }
    .onboarding-complete-row .btn, .onboarding-optional-actions .btn, .onboarding-optional-actions form { grid-column: 1 / -1; width: 100%; }
    .onboarding-optional-actions form .btn { width: 100%; }
    .checklist-grid { grid-template-columns: 1fr; }
    .checklist-grid a, .checklist-grid a:nth-child(2n), .checklist-grid a:nth-last-child(-n+2) { border-right: 0; border-bottom: 1px solid var(--color-border); }
    .checklist-grid a:last-child { border-bottom: 0; }
}

/* Privacidade e LGPD */
.privacy-tabs { margin-bottom: 18px; scrollbar-width: none; }
.privacy-tabs::-webkit-scrollbar { display: none; }
.privacy-stats { margin-bottom: 18px; }
.privacy-legal-notice { margin-bottom: 18px; }
.privacy-dashboard-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(360px,.85fr); gap: 18px; }
.privacy-dashboard-grid > .panel { margin: 0; }
.privacy-request-list { display: grid; }
.privacy-request-list > a { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-width: 0; padding: 14px 16px; border-bottom: 1px solid var(--color-border); color: var(--color-text); }
.privacy-request-list > a:last-child { border-bottom: 0; }
.privacy-request-list > a:hover { background: #f4f8f6; }
.privacy-request-list > a > span:first-child { display: grid; gap: 4px; min-width: 0; }
.privacy-request-list small, .privacy-requests-layout td small { display: block; color: var(--color-text-muted); font-size: .74rem; }
.privacy-readiness .checklist-grid { grid-template-columns: 1fr; margin-top: 4px; }
.privacy-readiness .checklist-grid a, .privacy-readiness .checklist-grid a:nth-child(2n), .privacy-readiness .checklist-grid a:nth-last-child(-n+2) { border-right: 0; border-bottom: 1px solid var(--color-border); }
.privacy-readiness .checklist-grid a:last-child { border-bottom: 0; }
.privacy-filter { width: 100%; max-width: none; }
.privacy-filter input { flex: 1 1 240px; }
.privacy-filter select { flex: 0 1 230px; }
.privacy-requests-layout { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(390px,.8fr); align-items: start; gap: 18px; }
.privacy-requests-layout > .panel { margin: 0; min-width: 0; }
.privacy-request-detail { position: sticky; top: calc(var(--topbar-height) + 18px); }
.privacy-request-detail .form-grid .span-2, .form-grid > .span-2 { grid-column: 1 / -1; }
.privacy-detail-actions { flex-wrap: wrap; }
.privacy-timeline { margin-top: 20px; border-top: 1px solid var(--color-border); padding-top: 18px; }
.privacy-timeline h3 { margin: 0 0 12px; color: var(--color-text); font-size: .94rem; }
.privacy-timeline article { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--color-border); }
.privacy-timeline article:last-child { border-bottom: 0; }
.privacy-timeline article > svg { width: 17px; color: var(--color-primary); }
.privacy-timeline article strong { color: var(--color-text); font-size: .76rem; }
.privacy-timeline article p { margin: 4px 0 0; color: var(--color-text-muted); font-size: .8rem; line-height: 1.5; }
.privacy-select-request { min-height: 280px; }
.privacy-requests-layout .status, .privacy-request-list .status { flex: 0 0 auto; }
.privacy-requests-layout .status.success, .privacy-request-list .status.success { background: var(--color-success-bg); color: var(--color-success); }
.privacy-requests-layout .status.danger, .privacy-request-list .status.danger { background: var(--color-danger-bg); color: var(--color-danger); }
.privacy-requests-layout .status.info, .privacy-request-list .status.info { background: var(--color-primary-soft); color: var(--color-primary); }
.privacy-requests-layout .status.warning, .privacy-request-list .status.warning { background: #fff3d7; color: #76551d; }
.privacy-requests-layout .status.neutral, .privacy-request-list .status.neutral { background: var(--color-secondary-bg); color: var(--color-text-muted); }

@media (max-width: 1120px) {
    .privacy-dashboard-grid, .privacy-requests-layout { grid-template-columns: 1fr; }
    .privacy-request-detail { position: static; }
}

@media (max-width: 680px) {
    .privacy-tabs { overflow-x: auto; }
    .privacy-tabs a { flex: 0 0 auto; }
    .privacy-filter { align-items: stretch; flex-direction: column; }
    .privacy-filter input, .privacy-filter select, .privacy-filter .btn { width: 100%; flex-basis: auto; }
    .privacy-request-list > a { align-items: flex-start; flex-direction: column; }
    .privacy-detail-actions .btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *:before,
  *:after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Ambiente demonstrativo protegido */
.demo-mode-banner {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    padding: 11px 14px;
    border: 1px solid #b9ddc8;
    background: var(--color-success-bg);
    color: var(--color-success);
    box-shadow: var(--shadow-soft);
}
.demo-mode-banner svg { width: 18px; height: 18px; flex: 0 0 18px; }
.demo-mode-banner strong { color: var(--color-text); }
.demo-mode-banner span { color: var(--color-text-muted); }
.demo-read-only .is-read-only-action {
    cursor: not-allowed !important;
    opacity: .48 !important;
    pointer-events: none !important;
}

@media (max-width: 680px) {
    .demo-mode-banner { align-items: flex-start; flex-wrap: wrap; }
    .demo-mode-banner span { flex-basis: 100%; padding-left: 28px; }
}

/* Central laboratorial */
.nav-badge { display: inline-grid; place-items: center; min-width: 22px; height: 20px; margin-left: auto; padding: 0 6px; border-radius: 10px; background: #dff1ec; color: #173f4a; font-size: .68rem; font-weight: 800; line-height: 1; }
.nav-link.active .nav-badge { background: #173f4a; color: #fff; }
.app-shell.sidebar-collapsed .nav-link > span:not(.nav-icon) { display: none; }
.laboratory-detail-grid { grid-template-columns: minmax(0, 1.45fr) minmax(340px, .75fr); align-items: start; }
.laboratory-detail-grid > div { display: grid; gap: 18px; min-width: 0; }
.laboratory-detail-grid .panel { margin: 0; }
.exam-order-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--color-border); }
.exam-order-grid > div { display: grid; align-content: start; gap: 5px; min-height: 76px; padding: 13px 15px; border-right: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); background: var(--color-surface); }
.exam-order-grid > div:nth-child(2n) { border-right: 0; }
.exam-order-grid > div:nth-last-child(-n+2) { border-bottom: 0; }
.exam-order-grid span { color: var(--color-text-muted); font-size: .72rem; }
.exam-order-grid strong { color: var(--color-text); font-size: .84rem; line-height: 1.5; white-space: pre-wrap; }
.laboratory-filter { display: flex; max-width: none; min-width: 0; flex: 1 1 760px; }
.laboratory-filter input { flex: 1 1 250px; }
.laboratory-filter select { flex: 0 1 190px; }
[data-external-field][hidden] { display: none; }
.laboratory-urgent-row td:first-child { box-shadow: inset 3px 0 0 var(--color-danger); }
.laboratory-urgent-row:hover td { background: var(--color-danger-bg); }
.laboratory-settings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; margin-top: 18px; }
.laboratory-settings-grid > .panel { margin: 0; }
.laboratory-timeline { padding-left: 4px; }
.laboratory-timeline .timeline-item { min-width: 0; }
.laboratory-timeline .timeline-item p { overflow-wrap: anywhere; }
.laboratory-queue .status { white-space: normal; text-align: center; }
.laboratory-queue td { vertical-align: top; }

@media (max-width: 1120px) {
    .laboratory-detail-grid, .laboratory-settings-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    .laboratory-filter { align-items: stretch; flex: 0 0 auto; flex-direction: column; }
    .laboratory-filter input, .laboratory-filter select, .laboratory-filter .btn { width: 100%; min-height: 40px; flex-basis: auto; }
    .exam-order-grid { grid-template-columns: 1fr; }
    .exam-order-grid > div, .exam-order-grid > div:nth-child(2n), .exam-order-grid > div:nth-last-child(-n+2) { border-right: 0; border-bottom: 1px solid var(--color-border); }
    .exam-order-grid > div:last-child { border-bottom: 0; }
}
/* Painel flutuante usado apenas para edição pontual das políticas de retenção. */
.retention-inline-form{position:absolute;right:32px;z-index:20;width:min(620px,calc(100vw - 80px));padding:22px;background:#fff;border:1px solid #D6E2DE;box-shadow:0 12px 30px rgba(23,63,74,.16)}
@media(max-width:760px){.retention-inline-form{position:fixed;inset:12px;width:auto;overflow:auto}}
