:root {
  --sa-blue-900: #18324a;
  --sa-blue-800: #21435f;
  --sa-blue-700: #2b5f88;
  --sa-blue-600: #3378a8;
  --sa-blue-100: #e8f1f7;
  --sa-teal: #147c76;
  --sa-teal-100: #e4f4f2;
  --sa-green: #27805f;
  --sa-green-100: #e8f5ef;
  --sa-red: #bc3e4b;
  --sa-red-100: #fae8eb;
  --sa-amber: #a66b18;
  --sa-amber-100: #fff3d8;
  --sa-indigo: #555f95;
  --sa-indigo-100: #eceefa;
  --sa-cyan: #1f9bb4;
  --sa-violet: #6b5ca5;
  --sa-surface: #fbfdff;
  --sa-gray-950: #20272f;
  --sa-gray-800: #33414f;
  --sa-gray-700: #536170;
  --sa-gray-500: #84909c;
  --sa-gray-300: #d5dee7;
  --sa-gray-200: #e6ebf0;
  --sa-gray-100: #f5f7f9;
  --sa-white: #ffffff;
  --sa-radius: .5rem;
  --sa-shadow: 0 8px 18px rgba(32, 39, 47, .045);
  --sa-shadow-sm: 0 2px 8px rgba(32, 39, 47, .04);
  --sa-shadow-soft: 0 5px 12px rgba(32, 39, 47, .045);
  --sa-shadow-premium: 0 10px 24px rgba(24, 50, 74, .07);
  --sa-shadow-focus: 0 0 0 .22rem rgba(43, 95, 136, .14);
  --sa-sidebar-width: 14.25rem;
  --lis-bg: #f7f8f8;
  --lis-surface: #ffffff;
  --lis-border: #e8eceb;
  --lis-border-strong: #dce4e2;
  --lis-primary: #2f9b72;
  --lis-primary-soft: #edf8f3;
  --lis-text: #242b33;
  --lis-muted: #747f89;
  --lis-blue: #3b82c4;
  --lis-amber: #db9136;
  --lis-rose: #c85f8b;
  --lis-violet: #7d68c6;
  --lis-turquoise: #22a8a2;
}

/* Couche LIS compacte inspirée logiciel de laboratoire bureau. */
.lis-shell {
  background: var(--lis-bg);
}

.lis-shell .app-shell {
  background: var(--lis-bg);
}

.lis-shell .app-sidebar {
  background: var(--lis-surface);
  color: var(--lis-text);
  border-right: 1px solid var(--lis-border);
  box-shadow: none;
}

.lis-shell .app-topbar {
  min-height: 3.25rem;
}

.lis-shell .topbar-grid {
  min-height: 3.25rem;
  padding: .34rem 0;
}

.lis-shell .GlobalSearch {
  border-radius: 6px;
  padding: .06rem .55rem;
}

.lis-shell .GlobalSearch input {
  min-height: 1.95rem;
  font-size: .84rem;
}

.lis-shell .TopbarSiteChip,
.lis-shell .TopbarNotificationButton,
.lis-shell .TopbarUserButton {
  min-height: 2.15rem;
}

.lis-shell .sidebar-brand {
  min-height: 4.15rem;
  justify-content: center;
  padding: .72rem 1rem;
  border-bottom-color: var(--lis-border);
}

.lis-shell .sidebar-brand a {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--lis-primary);
  font-weight: 900;
  text-decoration: none;
}

.lis-shell .sidebar-brand img {
  width: 11.5rem;
  max-width: 100%;
  max-height: 2.7rem;
  object-fit: contain;
}

.lis-shell .sidebar-nav {
  flex: 1 1 auto;
  min-height: 0;
  padding: .7rem .78rem .8rem;
  overflow-y: auto;
  scrollbar-width: thin;
}

.lis-shell .sidebar-link {
  min-height: 2.35rem;
  flex-direction: row;
  justify-content: flex-start;
  gap: .62rem;
  border-radius: 6px;
  padding: .48rem .62rem;
  margin-bottom: .16rem;
  color: var(--lis-text);
  font-size: .84rem;
  font-weight: 720;
  line-height: 1.18;
  text-align: left;
}

.lis-shell .sidebar-link i {
  width: 1.18rem;
  flex: 0 0 1.18rem;
  color: var(--lis-blue);
  font-size: .98rem;
  text-align: center;
}

.lis-shell .sidebar-link span {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lis-shell .sidebar-link:hover,
.lis-shell .sidebar-link:focus {
  border-color: rgba(47, 148, 111, .16);
  background: #f8fbfa;
  color: var(--lis-text);
  box-shadow: none;
}

.lis-shell .sidebar-link.active {
  border-color: rgba(47, 148, 111, .26);
  background: var(--lis-primary-soft);
  color: #176349;
  box-shadow: inset 3px 0 0 var(--lis-primary);
}

.lis-shell .sidebar-link.active i {
  color: var(--lis-primary);
}

.lis-shell .sidebar-footer {
  display: grid;
  gap: .48rem;
  padding: .7rem .78rem .82rem;
  border-top: 1px solid var(--lis-border);
  background: var(--lis-surface);
}

.sidebar-user,
.sidebar-footer-button {
  width: 100%;
  min-height: 2.55rem;
  display: grid;
  align-items: center;
  gap: .58rem;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--lis-muted);
  font-size: .82rem;
  font-weight: 760;
  line-height: 1.15;
  text-align: left;
}

.sidebar-user {
  grid-template-columns: 2rem minmax(0, 1fr);
  padding: .45rem .5rem;
  border-color: var(--lis-border);
  background: #f8fbfa;
}

.sidebar-user-avatar {
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 5px;
  background: var(--lis-primary-soft);
  color: var(--lis-primary);
  font-size: .86rem;
  font-weight: 900;
  text-transform: uppercase;
}

.sidebar-user-avatar::before {
  content: attr(data-initial);
}

.sidebar-user-name,
.sidebar-user-role {
  max-width: 100%;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sidebar-user-name {
  color: var(--lis-text);
  font-weight: 850;
}

.sidebar-user-role {
  color: var(--lis-muted);
  font-size: .72rem;
}

.sidebar-logout-form {
  margin: 0;
}

.sidebar-footer-button {
  grid-template-columns: 1.2rem minmax(0, 1fr);
  cursor: pointer;
  border-color: var(--lis-border);
  background: #fff;
  padding: .48rem .55rem;
}

.sidebar-footer-button i {
  color: var(--sa-red);
  font-size: 1rem;
}

.sidebar-footer-button span {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sidebar-footer-button:hover,
.sidebar-footer-button:focus {
  border-color: rgba(188, 62, 75, .18);
  background: var(--sa-red-100);
  color: #8f1f1f;
}

.lis-shell .sidebar-link i {
  width: 1.18rem;
  color: var(--lis-blue);
  font-size: .98rem;
}

.lis-shell .sidebar-link:hover,
.lis-shell .sidebar-link:focus,
.lis-shell .sidebar-link.active {
  background: var(--lis-primary);
  color: #fff;
  border-color: var(--lis-primary);
  box-shadow: none;
}

.lis-shell .sidebar-link:hover i,
.lis-shell .sidebar-link:focus i,
.lis-shell .sidebar-link.active i {
  color: currentColor;
}

.lis-shell .sidebar-section {
  display: block;
  padding: .7rem .36rem .28rem;
  color: var(--lis-muted);
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .04em;
  line-height: 1;
  text-align: left;
  text-transform: uppercase;
}

.lis-shell .app-topbar {
  min-height: 2.45rem;
  background: var(--lis-surface);
  backdrop-filter: none;
  border-bottom-color: var(--lis-border);
  box-shadow: none;
}

.lis-shell .topbar-grid {
  grid-template-columns: minmax(8rem, 13rem) minmax(14rem, 1fr) auto;
  gap: .45rem;
  min-height: 2.45rem;
  padding: .12rem 0;
}

.lis-shell .topbar-brand-zone,
.lis-shell .topbar-user-zone {
  gap: .45rem;
}

.lis-shell .TopbarTitle strong {
  font-size: .84rem;
  color: var(--lis-text);
  font-weight: 780;
}

.lis-shell .TopbarTitle span {
  font-size: .64rem;
  color: var(--lis-muted);
  font-weight: 620;
}

.lis-shell .TopbarIconButton,
.lis-shell .TopbarNotificationButton,
.lis-shell .TopbarLoginButton,
.lis-shell .TopbarLogoutButton,
.lis-shell .TopbarUserButton {
  min-height: 1.98rem;
  border-radius: 5px;
  box-shadow: none;
  border-color: var(--lis-border);
}

.lis-shell .TopbarIconButton,
.lis-shell .TopbarNotificationButton {
  width: 1.98rem;
  height: 1.98rem;
}

.lis-shell .TopbarUserButton {
  max-width: 11.5rem;
  padding: .18rem .38rem .18rem .25rem;
}

.lis-shell .TopbarAvatar {
  width: 1.48rem;
  height: 1.48rem;
  border-radius: 5px;
  font-size: .78rem;
}

.lis-shell .TopbarUserText strong {
  font-size: .78rem;
}

.lis-shell .TopbarUserText small {
  font-size: .66rem;
}

.TopbarSiteChip {
  min-height: 1.9rem;
  display: inline-flex;
  align-items: center;
  gap: .28rem;
  border: 1px solid var(--lis-border);
  border-radius: 4px;
  background: #fbfcfd;
  color: var(--lis-muted);
  font-size: .7rem;
  font-weight: 760;
  padding: .2rem .42rem;
  white-space: nowrap;
}

.lis-shell .TopbarLogoutButton,
.lis-shell .TopbarLoginButton {
  padding: .25rem .48rem;
  font-size: .74rem;
}

.lis-shell .TopbarProfileMenu .TopbarLogoutButton {
  width: 100%;
  min-height: 2.2rem;
  justify-content: flex-start;
  border: 0;
  border-radius: .35rem;
  background: transparent;
  box-shadow: none;
  color: var(--sa-red);
  padding: .42rem .8rem;
}

.TopbarQuickLinks {
  display: flex;
  align-items: center;
  gap: .28rem;
}

.TopbarQuickLinks a {
  min-height: 1.9rem;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  border: 1px solid var(--lis-border);
  border-radius: 4px;
  background: #fff;
  color: var(--lis-text);
  font-size: .72rem;
  font-weight: 720;
  padding: .24rem .42rem;
  text-decoration: none;
  white-space: nowrap;
}

.TopbarQuickLinks a:hover,
.TopbarQuickLinks a:focus {
  background: var(--lis-primary-soft);
  border-color: rgba(47, 148, 111, .25);
  color: #176349;
  text-decoration: none;
}

.lis-shell .GlobalSearch {
  border-radius: 4px;
  box-shadow: none;
  padding: 0 .48rem;
  border-color: var(--lis-border);
  background: #fbfcfd;
}

.lis-shell .GlobalSearch input {
  min-height: 1.88rem;
  font-size: .8rem;
}

.lis-shell .page-content {
  padding: .62rem .75rem .85rem;
}

.lis-shell .breadcrumb-shell {
  margin-bottom: .28rem;
  border-radius: 4px;
  padding: .2rem .4rem;
  box-shadow: none;
  background: transparent;
  border-color: transparent;
}

.lis-shell .breadcrumb {
  font-size: .7rem;
}

.lis-shell .page-header {
  gap: .55rem;
  margin-bottom: .6rem;
}

.lis-shell .page-title {
  font-size: 1.08rem;
  font-weight: 760;
}

.lis-shell .page-subtitle {
  margin-top: .12rem;
  font-size: .78rem;
}

.lis-panel,
.lis-shell .sa-card,
.lis-shell .detail-panel,
.lis-shell .record-panel,
.lis-shell .case-hero {
  border-color: var(--lis-border);
  border-radius: 7px;
  box-shadow: 0 2px 7px rgba(31, 41, 51, .028);
}

.lis-shell .sa-card,
.lis-shell .detail-panel,
.lis-shell .record-panel,
.lis-shell .case-hero {
  padding: .75rem;
}

.lis-shell .sa-card:hover,
.lis-shell .detail-panel:hover,
.lis-shell .record-panel:hover,
.lis-shell .case-hero:hover {
  box-shadow: 0 4px 11px rgba(24, 50, 74, .045);
}

.lis-toolbar,
.lis-action-bar,
.lis-shell .action-bar,
.lis-shell .filter-panel,
.lis-shell .search-panel {
  border-radius: 5px;
  box-shadow: none;
  padding: .65rem;
  gap: .55rem;
}

.lis-shell .filter-panel .filter-actions,
.lis-shell .filter-panel .search-actions,
.lis-shell .search-panel .filter-actions,
.lis-shell .search-panel .search-actions {
  gap: .4rem;
}

.lis-table,
.lis-table-compact,
.lis-shell .table-modern {
  font-size: .82rem;
}

.lis-shell .table-responsive {
  border: 1px solid var(--sa-gray-200);
  border-radius: 5px;
  background: #fff;
}

.lis-table thead th,
.lis-table-compact thead th,
.lis-shell .table-modern thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #f6f8f8;
  border-bottom: 1px solid var(--lis-border);
  font-size: .68rem;
  letter-spacing: 0;
  padding: .4rem .48rem;
}

.lis-table tbody td,
.lis-table-compact tbody td,
.lis-shell .table-modern tbody td {
  padding: .38rem .5rem;
  color: var(--sa-gray-800);
  border-color: #e7edf3;
}

.lis-shell .table-modern tbody tr:hover {
  background: #f7f9f9;
}

.lis-shell .table-ux-toolbar {
  align-items: center;
  margin-bottom: .45rem;
}

.lis-shell .table-ux-search {
  width: min(100%, 18rem);
  gap: .18rem;
  font-size: .66rem;
}

.lis-shell .table-export-actions .btn,
.lis-shell .btn {
  border-radius: 5px;
}

.lis-shell .btn:not(.dropdown-toggle),
.lis-shell .standard-action-bar .btn,
.lis-shell .record-actions .btn,
.lis-shell .page-actions .btn,
.lis-shell .compact-actions .btn {
  min-height: 2.05rem;
  padding: .32rem .58rem;
  gap: .32rem;
  font-size: .82rem;
  font-weight: 760;
  box-shadow: none;
}

.lis-shell .btn-sm {
  min-height: 1.72rem;
  padding: .22rem .45rem;
  font-size: .76rem;
}

.lis-dashboard-header {
  align-items: center;
}

.lis-quick-strip {
  display: grid;
  grid-template-columns: repeat(9, minmax(0, 1fr));
  gap: .55rem;
}

.lis-quick-tile {
  min-width: 0;
  min-height: 5.8rem;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: .42rem;
  border: 1px solid var(--lis-border);
  border-radius: 7px;
  background: var(--lis-surface);
  color: var(--lis-text);
  padding: .65rem .45rem;
  text-align: center;
  text-decoration: none;
  box-shadow: 0 5px 14px rgba(31, 41, 51, .035);
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.lis-quick-tile:hover,
.lis-quick-tile:focus {
  border-color: rgba(47, 148, 111, .24);
  box-shadow: 0 8px 18px rgba(31, 41, 51, .07);
  color: #176349;
  text-decoration: none;
  transform: translateY(-1px);
}

.lis-quick-tile span,
.lis-kpi-icon {
  width: 2.3rem;
  height: 2.3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 7px;
  background: var(--lis-primary-soft);
  color: var(--lis-primary);
  font-size: 1.15rem;
}

.lis-quick-tile strong {
  max-width: 100%;
  color: inherit;
  font-size: .78rem;
  font-weight: 850;
  line-height: 1.16;
  overflow-wrap: anywhere;
}

.lis-quick-blue span,
.lis-kpi-blue .lis-kpi-icon {
  background: #e8f2fb;
  color: var(--lis-blue);
}

.lis-quick-amber span,
.lis-kpi-amber .lis-kpi-icon {
  background: #fff3df;
  color: var(--lis-amber);
}

.lis-quick-rose span,
.lis-kpi-rose .lis-kpi-icon {
  background: #fbeaf1;
  color: var(--lis-rose);
}

.lis-quick-turquoise span,
.lis-kpi-turquoise .lis-kpi-icon {
  background: #e4f7f5;
  color: var(--lis-turquoise);
}

.lis-quick-violet span,
.lis-kpi-violet .lis-kpi-icon {
  background: #f0edfb;
  color: var(--lis-violet);
}

.lis-kpi-panel {
  min-height: 13rem;
  display: grid;
  gap: .75rem;
}

.lis-kpi-panel-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
}

.lis-kpi-panel-header > div {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: .62rem;
}

.lis-kpi-panel-header h2 {
  color: var(--lis-text);
  font-size: .94rem;
  font-weight: 900;
  line-height: 1.15;
  margin: 0;
}

.lis-kpi-panel-header a {
  width: 1.95rem;
  height: 1.95rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--lis-border);
  border-radius: 5px;
  color: var(--lis-muted);
  flex: 0 0 auto;
}

.lis-kpi-panel-header a:hover,
.lis-kpi-panel-header a:focus {
  background: var(--lis-primary-soft);
  color: var(--lis-primary);
  text-decoration: none;
}

.lis-kpi-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem;
}

.lis-kpi-metric {
  min-width: 0;
  min-height: 4.1rem;
  display: grid;
  align-content: center;
  gap: .18rem;
  border: 1px solid #edf1f4;
  border-left: 3px solid var(--lis-primary);
  border-radius: 5px;
  background: #fbfcfd;
  padding: .52rem .6rem;
}

.lis-kpi-metric span {
  color: var(--lis-muted);
  font-size: .7rem;
  font-weight: 850;
}

.lis-kpi-metric strong {
  color: var(--lis-text);
  font-size: 1.45rem;
  font-weight: 900;
  line-height: 1;
}

.lis-kpi-metric-warning {
  border-left-color: var(--lis-amber);
}

.lis-kpi-metric-danger {
  border-left-color: var(--sa-red);
}

.lis-kpi-metric-secondary {
  border-left-color: var(--lis-muted);
}

.role-dashboard-medical_secretary .lis-dashboard-header {
  margin-bottom: .65rem;
  padding-top: .75rem;
  padding-bottom: .75rem;
}

.role-dashboard-medical_secretary .lis-dashboard-header .page-title {
  font-size: 1.3rem;
}

.role-dashboard-medical_secretary .lis-dashboard-header .page-subtitle {
  margin-bottom: 0;
  font-size: .82rem;
}

.role-dashboard-medical_secretary .lis-quick-strip {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .45rem;
  margin-bottom: .65rem !important;
}

.role-dashboard-medical_secretary .lis-quick-tile {
  min-height: 4.35rem;
  grid-template-columns: auto minmax(0, 1fr);
  align-content: center;
  justify-items: start;
  gap: .45rem;
  padding: .52rem .58rem;
  text-align: left;
}

.role-dashboard-medical_secretary .lis-quick-tile span {
  width: 1.9rem;
  height: 1.9rem;
  font-size: 1rem;
}

.role-dashboard-medical_secretary .lis-quick-tile strong {
  font-size: .76rem;
  line-height: 1.1;
}

.role-dashboard-medical_secretary .lis-kpi-row {
  margin-bottom: .75rem !important;
}

.role-dashboard-medical_secretary .lis-kpi-panel {
  min-height: 8.9rem;
  gap: .55rem;
  padding: .7rem;
}

.role-dashboard-medical_secretary .lis-kpi-icon {
  width: 1.95rem;
  height: 1.95rem;
  font-size: 1rem;
}

.role-dashboard-medical_secretary .lis-kpi-metrics {
  gap: .42rem;
}

.role-dashboard-medical_secretary .lis-kpi-metric {
  min-height: 2.95rem;
  padding: .36rem .46rem;
}

.role-dashboard-medical_secretary .lis-kpi-metric span {
  font-size: .64rem;
  line-height: 1.08;
}

.role-dashboard-medical_secretary .lis-kpi-metric strong {
  font-size: 1.12rem;
}

.lis-operations-panel,
.lis-alert-panel {
  min-height: 20rem;
}

.role-dashboard-medical_secretary .lis-operations-panel,
.role-dashboard-medical_secretary .lis-alert-panel {
  min-height: 16rem;
  padding: .72rem;
}

.role-dashboard-medical_secretary .section-title {
  font-size: .95rem;
}

.lis-dashboard-filters {
  display: grid;
  grid-template-columns: minmax(12rem, 2fr) minmax(9rem, 1fr) repeat(2, minmax(8rem, 1fr)) auto;
  align-items: end;
  gap: .45rem;
  margin-bottom: .65rem;
}

.lis-dashboard-filters label {
  min-width: 0;
  display: grid;
  gap: .16rem;
  margin: 0;
}

.lis-dashboard-filters label span {
  color: var(--lis-muted);
  font-size: .66rem;
  font-weight: 850;
}

.lis-dashboard-filters .form-control,
.lis-dashboard-filters .form-select {
  border-color: var(--lis-border);
  border-radius: 5px;
  font-size: .78rem;
}

.lis-dashboard-filter-actions {
  display: flex;
  align-items: center;
  gap: .35rem;
  white-space: nowrap;
}

.role-dashboard-medical_secretary .lis-dashboard-filters {
  grid-template-columns: minmax(11rem, 1.7fr) minmax(8rem, .9fr) repeat(2, minmax(7.2rem, .8fr)) auto;
  gap: .35rem;
  margin-bottom: .5rem;
}

.role-dashboard-medical_secretary .table-ux-toolbar {
  margin-bottom: .32rem;
}

.role-dashboard-medical_secretary .table-export-actions .btn {
  min-height: 1.55rem;
  padding: .18rem .36rem;
  font-size: .7rem;
}

.role-dashboard-medical_secretary .table-ux-search {
  width: min(100%, 14rem);
}

.role-dashboard-medical_secretary .table-modern {
  table-layout: fixed;
  min-width: 0;
  width: 100%;
  font-size: .75rem;
}

.role-dashboard-medical_secretary .table-modern th,
.role-dashboard-medical_secretary .table-modern td {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.role-dashboard-medical_secretary .table-modern thead th {
  padding: .32rem .34rem;
  font-size: .62rem;
}

.role-dashboard-medical_secretary .table-modern tbody td {
  padding: .3rem .36rem;
}

.role-dashboard-medical_secretary .table-modern .col-case-number {
  width: 7.8rem;
}

.role-dashboard-medical_secretary .table-modern .col-patient {
  width: 22%;
}

.role-dashboard-medical_secretary .table-modern .col-specimen {
  width: 15%;
}

.role-dashboard-medical_secretary .table-modern .col-organ {
  width: 14%;
}

.role-dashboard-medical_secretary .table-modern .col-status {
  width: 7.6rem;
}

.role-dashboard-medical_secretary .table-modern .col-step {
  width: 15%;
}

.role-dashboard-medical_secretary .table-modern .col-pathologist {
  width: 9rem;
}

.role-dashboard-medical_secretary .alert-center-list {
  gap: .4rem;
}

.role-dashboard-medical_secretary .alert-center-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .42rem;
  min-height: 2.4rem;
  padding: .42rem .5rem;
}

.role-dashboard-medical_secretary .alert-center-item span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.role-dashboard-medical_secretary .alert-center-item strong {
  color: var(--lis-text);
  font-size: 1rem;
  font-weight: 900;
}

.cases-worklist-filters {
  display: grid;
  grid-template-columns: minmax(18rem, 2.2fr) minmax(9rem, 1fr) minmax(9rem, 1fr) minmax(10rem, 1fr) auto;
  align-items: end;
  gap: .45rem;
  border: 1px solid var(--lis-border);
  border-radius: 7px;
  background: #fff;
  padding: .58rem .65rem;
  box-shadow: 0 4px 10px rgba(31, 41, 51, .035);
}

.cases-worklist-filters label {
  min-width: 0;
  display: grid;
  gap: .14rem;
  margin: 0;
}

.cases-worklist-filters label span {
  color: var(--lis-muted);
  font-size: .66rem;
  font-weight: 850;
}

.cases-filter-actions {
  display: flex;
  align-items: center;
  gap: .35rem;
  white-space: nowrap;
}

.cases-worklist-card {
  padding: .72rem;
}

.table-cases-worklist {
  table-layout: fixed;
  min-width: 0;
  width: 100%;
  font-size: .76rem;
}

.table-cases-worklist th,
.table-cases-worklist td {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.table-cases-worklist .col-case {
  width: 8.6rem;
}

.table-cases-worklist thead th {
  padding: .34rem .4rem;
}

.table-cases-worklist tbody td {
  padding: .32rem .42rem;
}

.reception-form {
  display: grid;
  gap: .7rem;
}

.reception-section {
  padding: .85rem;
}

.reception-section-header {
  display: flex;
  align-items: center;
  gap: .62rem;
  margin-bottom: .7rem;
}

.reception-section-header > span {
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 7px;
  background: var(--lis-primary-soft);
  color: var(--lis-primary);
  flex: 0 0 auto;
}

.reception-section-header h2 {
  color: var(--lis-text);
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.1;
  margin: 0;
}

.reception-section-header p {
  color: var(--lis-muted);
  font-size: .76rem;
  font-weight: 650;
  margin: .12rem 0 0;
}

.reception-grid {
  display: grid;
  gap: .58rem;
}

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

.reception-grid-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.reception-grid-four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.reception-form .MedicalFormField {
  min-width: 0;
  display: grid;
  gap: .18rem;
}

.reception-form .MedicalFormField label {
  display: inline-flex;
  align-items: center;
  gap: .2rem;
  color: var(--lis-text);
  font-size: .74rem;
  font-weight: 850;
  margin: 0;
}

.reception-form .MedicalFormField label span {
  color: var(--sa-red);
}

.reception-form .MedicalFormField input,
.reception-form .MedicalFormField select,
.reception-form .MedicalFormField textarea {
  border-color: var(--lis-border);
  border-radius: 5px;
  padding: .36rem .5rem;
  font-size: .82rem;
}

.reception-form .reception-textarea textarea {
  min-height: 7rem;
}

.form-action-bar {
  display: flex;
  justify-content: flex-end;
  gap: .45rem;
  border: 1px solid var(--lis-border);
  border-radius: 7px;
  background: rgba(255, 255, 255, .96);
  padding: .6rem;
  box-shadow: 0 8px 20px rgba(31, 41, 51, .08);
}

.lis-form-section {
  border: 1px solid var(--sa-gray-200);
  border-radius: 5px;
  background: #fff;
  padding: .7rem;
}

.lis-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .6rem;
  margin-bottom: .6rem;
}

.lis-form-grid,
.lis-shell .MedicalFormGrid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .58rem;
}

.lis-shell .MedicalFormGrid-search {
  grid-template-columns: minmax(16rem, 2fr) repeat(3, minmax(9rem, 1fr));
}

.lis-shell .MedicalFormField {
  gap: .2rem;
}

.lis-shell .MedicalFormField:has(textarea) {
  grid-column: span 2;
}

.lis-shell .MedicalFormField label {
  display: inline-flex;
  align-items: center;
  gap: .2rem;
  font-size: .76rem;
  font-weight: 850;
  margin-bottom: 0;
}

.lis-shell .MedicalFormField label span {
  color: var(--sa-red);
}

.lis-shell .MedicalFormField input,
.lis-shell .MedicalFormField select,
.lis-shell .MedicalFormField textarea {
  border-radius: 5px;
  padding: .36rem .5rem;
  font-size: .84rem;
}

.lis-shell .MedicalFormHelp {
  font-size: .72rem;
  margin-top: .12rem;
}

.lis-shell .MedicalFormError,
.lis-shell .MedicalFormErrors {
  font-size: .78rem;
  font-weight: 850;
}

.lis-status,
.lis-shell .badge-status {
  min-width: 0;
  border-radius: 4px;
  padding: .28rem .45rem;
  font-size: .68rem;
  font-weight: 900;
  line-height: 1.1;
}

.lis-alert-indicator {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  border-left: 3px solid var(--sa-amber);
  border-radius: 4px;
  background: var(--sa-amber-100);
  color: #7b4c0e;
  font-size: .74rem;
  font-weight: 850;
  padding: .25rem .45rem;
}

.lis-alert-indicator.is-danger {
  border-left-color: var(--sa-red);
  background: var(--sa-red-100);
  color: #8f1f1f;
}

.lis-alert-indicator.is-success {
  border-left-color: var(--sa-green);
  background: var(--sa-green-100);
  color: #117052;
}

.lis-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .45rem;
}

.lis-summary-item {
  min-width: 0;
  border: 1px solid var(--sa-gray-200);
  border-radius: 5px;
  background: #fff;
  padding: .5rem;
}

.lis-summary-item span {
  display: block;
  color: var(--sa-gray-500);
  font-size: .66rem;
  font-weight: 850;
  text-transform: uppercase;
}

.lis-summary-item strong {
  display: block;
  color: var(--sa-gray-950);
  font-size: .84rem;
  overflow-wrap: anywhere;
}

.lis-workflow {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  align-items: center;
}

.lis-workflow-step {
  display: inline-flex;
  align-items: center;
  gap: .28rem;
  border: 1px solid var(--sa-gray-200);
  border-radius: 4px;
  background: #fff;
  color: var(--sa-gray-700);
  font-size: .72rem;
  font-weight: 850;
  padding: .24rem .42rem;
}

.lis-workflow-step.is-done {
  border-color: rgba(39, 128, 95, .24);
  background: var(--sa-green-100);
  color: #117052;
}

@media (max-width: 1199.98px) {
  .lis-shell .topbar-grid {
    grid-template-columns: auto minmax(12rem, 1fr) auto;
  }

  .TopbarSiteChip,
  .TopbarQuickLinks span,
  .lis-shell .TopbarUserText,
  .lis-shell .TopbarLogoutButton span {
    display: none;
  }

  .lis-quick-strip {
    grid-template-columns: repeat(4, minmax(8.5rem, 1fr));
  }

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

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

  .cases-filter-search,
  .cases-filter-actions {
    grid-column: 1 / -1;
  }

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

  .lis-dashboard-filter-actions {
    grid-column: 1 / -1;
  }

  .lis-summary,
  .lis-form-grid,
  .lis-shell .MedicalFormGrid,
  .lis-shell .MedicalFormGrid-search {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

html {
  min-height: 100%;
}

body {
  min-height: 100vh;
  background:
    linear-gradient(180deg, rgba(245, 250, 252, .96) 0%, rgba(251, 253, 254, .98) 45%, rgba(238, 246, 247, .96) 100%),
    #f6f9fc;
  color: var(--sa-gray-950);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: 0;
}

a {
  color: var(--sa-blue-700);
  text-decoration: none;
}

a:hover,
a:focus {
  color: var(--sa-blue-600);
  text-decoration: underline;
}

.app-shell {
  min-height: 100vh;
}

.app-sidebar {
  width: var(--sa-sidebar-width);
  background:
    linear-gradient(180deg, rgba(24, 50, 74, .98), rgba(22, 64, 82, .98)),
    #18324a;
  color: var(--sa-white);
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 1030;
  display: flex;
  flex-direction: column;
  box-shadow: 18px 0 38px rgba(24, 50, 74, .18);
}

.sidebar-brand {
  min-height: 5.25rem;
  display: flex;
  align-items: center;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.sidebar-brand img {
  max-width: 13rem;
  height: auto;
}

.sidebar-backdrop {
  display: none;
}

.sidebar-nav {
  padding: 1rem;
  overflow-y: auto;
}

.sidebar-link {
  min-height: 2.55rem;
  display: flex;
  align-items: center;
  gap: .75rem;
  color: rgba(255, 255, 255, .86);
  border: 1px solid transparent;
  border-radius: .7rem;
  padding: .55rem .75rem;
  margin-bottom: .25rem;
  font-size: .92rem;
  font-weight: 650;
}

.sidebar-link i {
  width: 1.25rem;
  text-align: center;
}

.sidebar-link:hover,
.sidebar-link:focus,
.sidebar-link.active {
  color: var(--sa-white);
  background: rgba(255, 255, 255, .14);
  border-color: rgba(255, 255, 255, .11);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
  text-decoration: none;
}

.sidebar-section {
  padding: .85rem .75rem .35rem;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .58);
}

.app-main {
  min-height: 100vh;
  margin-left: var(--sa-sidebar-width);
  display: flex;
  flex-direction: column;
}

.app-topbar {
  min-height: 4.75rem;
  background: rgba(255, 255, 255, .9);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--sa-gray-200);
  position: sticky;
  top: 0;
  z-index: 1020;
}

.topbar-grid {
  display: grid;
  grid-template-columns: minmax(12rem, 20rem) minmax(14rem, 1fr) auto;
  gap: .9rem;
  align-items: center;
  min-height: 4.75rem;
  padding: .7rem 0;
  min-width: 0;
}

.topbar-brand-zone,
.topbar-user-zone {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-width: 0;
}

.topbar-user-zone {
  justify-content: flex-end;
  flex-wrap: nowrap;
}

.TopbarTitle {
  min-width: 0;
  display: grid;
  gap: .05rem;
}

.TopbarTitle strong {
  color: var(--sa-blue-900);
  font-size: .98rem;
  font-weight: 950;
  line-height: 1.1;
  white-space: nowrap;
}

.TopbarTitle span {
  color: var(--sa-gray-500);
  font-size: .78rem;
  font-weight: 750;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.TopbarIconButton,
.TopbarNotificationButton,
.TopbarLoginButton,
.TopbarLogoutButton,
.TopbarUserButton {
  min-width: 0;
  border: 1px solid rgba(24, 50, 74, .12);
  border-radius: 8px;
  background: rgba(255, 255, 255, .94);
  color: var(--sa-gray-950);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 2.55rem;
  text-decoration: none;
  box-shadow: var(--sa-shadow-sm);
  white-space: nowrap;
}

.TopbarIconButton,
.TopbarNotificationButton {
  position: relative;
  width: 2.55rem;
  padding: 0;
  color: var(--sa-blue-700);
}

.TopbarIconButton:hover,
.TopbarNotificationButton:hover,
.TopbarLoginButton:hover,
.TopbarLogoutButton:hover,
.TopbarUserButton:hover {
  border-color: rgba(14, 116, 144, .32);
  color: var(--sa-blue-700);
  background: rgba(248, 250, 252, .98);
  transform: translateY(-1px);
}

.TopbarNotificationBadge {
  position: absolute;
  top: -.34rem;
  right: -.34rem;
  min-width: 1.18rem;
  height: 1.18rem;
  border: 2px solid var(--sa-white);
  border-radius: 999px;
  background: var(--sa-red);
  color: var(--sa-white);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .68rem;
  font-weight: 950;
  line-height: 1;
  padding: 0 .22rem;
}

.TopbarStatus {
  min-height: 2.35rem;
  border: 1px solid rgba(22, 163, 74, .18);
  border-radius: 999px;
  background: rgba(22, 163, 74, .08);
  color: var(--sa-green);
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .45rem .75rem;
  font-size: .78rem;
  font-weight: 900;
  white-space: nowrap;
}

.TopbarUserDropdown {
  min-width: 0;
}

.TopbarUserButton {
  max-width: 17rem;
  padding: .35rem .55rem .35rem .4rem;
}

.TopbarAvatar {
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(14, 116, 144, .16), rgba(43, 95, 136, .14));
  color: var(--sa-blue-700);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .86rem;
  font-weight: 950;
  text-transform: uppercase;
}

.TopbarUserText {
  min-width: 0;
  display: grid;
  text-align: left;
}

.TopbarUserText strong,
.TopbarUserText small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.TopbarUserText strong {
  color: var(--sa-gray-950);
  font-size: .84rem;
  font-weight: 900;
  line-height: 1.1;
}

.TopbarUserText small {
  color: var(--sa-gray-500);
  font-size: .72rem;
  font-weight: 750;
}

.TopbarLogoutForm {
  margin: 0;
}

.TopbarLogoutButton,
.TopbarLoginButton {
  padding: .5rem .78rem;
  color: var(--sa-gray-700);
  font-size: .84rem;
  font-weight: 900;
}

.TopbarLogoutButton {
  border-color: rgba(185, 28, 28, .18);
  color: var(--sa-red);
}

.TopbarProfileMenu {
  min-width: 15rem;
  border: 1px solid rgba(24, 50, 74, .12);
  border-radius: 8px;
  box-shadow: var(--sa-shadow-premium);
  padding: .55rem;
}

.TopbarProfileHeader {
  display: grid;
  padding: .55rem .75rem .65rem;
}

.TopbarProfileHeader strong {
  color: var(--sa-gray-950);
  font-weight: 900;
}

.TopbarProfileHeader span {
  color: var(--sa-gray-500);
  font-size: .82rem;
  font-weight: 750;
}

.TopbarProfileMenu .dropdown-item {
  border-radius: 8px;
  color: var(--sa-gray-700);
  display: flex;
  align-items: center;
  gap: .55rem;
  font-weight: 800;
  min-height: 2.4rem;
}

.TopbarLogoutItem {
  color: var(--sa-red) !important;
}

.GlobalSearch {
  position: relative;
  display: flex;
  align-items: center;
  min-width: 0;
  width: 100%;
  border: 1px solid rgba(213, 222, 231, .95);
  border-radius: 999px;
  background: rgba(255, 255, 255, .94);
  box-shadow: var(--sa-shadow-soft);
  padding: .12rem .65rem;
}

.GlobalSearch > i {
  color: var(--sa-blue-700);
  margin-right: .45rem;
}

.GlobalSearch input {
  width: 100%;
  min-height: 2.35rem;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--sa-gray-950);
  font-weight: 650;
}

.GlobalSearchResults {
  position: absolute;
  z-index: 1080;
  top: calc(100% + .45rem);
  left: 0;
  right: 0;
  max-height: 28rem;
  overflow: auto;
  padding: .55rem;
  border: 1px solid rgba(213, 222, 231, .95);
  border-radius: .85rem;
  background: var(--sa-white);
  box-shadow: var(--sa-shadow-premium);
}

.GlobalSearchItem {
  display: grid;
  grid-template-columns: 2.35rem minmax(0, 1fr) auto;
  gap: .75rem;
  align-items: center;
  padding: .7rem;
  border-radius: .65rem;
  color: var(--sa-gray-950);
}

.GlobalSearchItem:hover,
.GlobalSearchItem:focus {
  background: var(--sa-blue-100);
  text-decoration: none;
}

.GlobalSearchIcon {
  width: 2.35rem;
  height: 2.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: .75rem;
  background: var(--sa-teal-100);
  color: var(--sa-teal);
}

.GlobalSearchItem strong,
.GlobalSearchItem small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.GlobalSearchItem small {
  color: var(--sa-gray-500);
  font-weight: 650;
}

.GlobalSearchItem em {
  border-radius: 999px;
  background: var(--sa-gray-100);
  color: var(--sa-gray-700);
  font-size: .75rem;
  font-style: normal;
  font-weight: 850;
  padding: .25rem .55rem;
}

.GlobalSearchEmpty {
  color: var(--sa-gray-700);
  font-weight: 700;
  padding: .75rem;
}

.TopbarNotificationButton {
  position: relative;
  width: 2.75rem;
  height: 2.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(213, 222, 231, .95);
  border-radius: .85rem;
  background: var(--sa-white);
  color: var(--sa-blue-800);
  box-shadow: var(--sa-shadow-soft);
}

.TopbarNotificationButton:hover,
.TopbarNotificationButton:focus {
  background: var(--sa-blue-100);
  color: var(--sa-blue-700);
  text-decoration: none;
}

.TopbarNotificationButton span {
  position: absolute;
  top: -.35rem;
  right: -.35rem;
  min-width: 1.35rem;
  height: 1.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--sa-white);
  border-radius: 999px;
  background: var(--sa-red);
  color: var(--sa-white);
  font-size: .72rem;
  font-weight: 900;
}

.page-content {
  flex: 1;
  padding: 1.65rem;
  width: 100%;
  display: block;
}

.breadcrumb-shell {
  display: inline-flex;
  max-width: 100%;
  margin-bottom: 1rem;
  border: 1px solid var(--sa-gray-200);
  border-radius: 999px;
  background: rgba(255, 255, 255, .78);
  padding: .45rem .75rem;
  box-shadow: var(--sa-shadow-soft);
}

.breadcrumb {
  color: var(--sa-gray-500);
  font-size: .9rem;
  font-weight: 650;
}

.breadcrumb a {
  color: var(--sa-blue-700);
}

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

.ProductPageHeader {
  align-items: center;
}

.NotificationSummary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}

.NotificationSummary > div {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: 1rem;
  border: 1px solid rgba(213, 222, 231, .9);
  border-radius: .85rem;
  background: var(--sa-white);
  box-shadow: var(--sa-shadow-soft);
}

.NotificationSummaryIcon {
  width: 2.65rem;
  height: 2.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: .85rem;
  background: var(--sa-red-100);
  color: var(--sa-red);
}

.NotificationSummaryIcon.warning {
  background: var(--sa-amber-100);
  color: var(--sa-amber);
}

.NotificationSummary strong {
  font-size: 1.75rem;
  color: var(--sa-blue-900);
}

.NotificationSummary small {
  color: var(--sa-gray-700);
  font-weight: 750;
}

.NotificationFilters {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.NotificationFilter {
  min-height: 2.55rem;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  border: 1px solid rgba(213, 222, 231, .95);
  border-radius: 999px;
  background: var(--sa-white);
  color: var(--sa-gray-800);
  font-weight: 800;
  padding: .45rem .85rem;
  box-shadow: var(--sa-shadow-soft);
}

.NotificationFilter:hover,
.NotificationFilter:focus,
.NotificationFilter.active {
  background: var(--sa-blue-100);
  color: var(--sa-blue-800);
  text-decoration: none;
}

.NotificationList {
  display: grid;
  gap: .85rem;
}

.NotificationCard {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  border: 1px solid rgba(213, 222, 231, .95);
  border-left: .35rem solid var(--sa-blue-600);
  border-radius: .85rem;
  background: var(--sa-white);
  box-shadow: var(--sa-shadow-soft);
  padding: 1rem;
}

.NotificationCard-critical {
  border-left-color: var(--sa-red);
}

.NotificationCard-warning {
  border-left-color: var(--sa-amber);
}

.NotificationCard-info {
  border-left-color: var(--sa-green);
}

.NotificationCard-read,
.NotificationCard-archived {
  border-left-color: var(--sa-gray-400);
  background: rgba(248, 250, 252, .92);
}

.NotificationCardMain {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: .85rem;
  align-items: start;
}

.NotificationSeverity {
  width: 3rem;
  height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: .9rem;
  background: var(--sa-blue-100);
  color: var(--sa-blue-700);
}

.NotificationCard-critical .NotificationSeverity {
  background: var(--sa-red-100);
  color: var(--sa-red);
}

.NotificationCard-warning .NotificationSeverity {
  background: var(--sa-amber-100);
  color: var(--sa-amber);
}

.NotificationCard-info .NotificationSeverity {
  background: var(--sa-green-100);
  color: var(--sa-green);
}

.NotificationCard-read .NotificationSeverity,
.NotificationCard-archived .NotificationSeverity {
  background: var(--sa-gray-100);
  color: var(--sa-gray-500);
}

.NotificationMeta {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-bottom: .35rem;
}

.NotificationMeta span {
  border-radius: 999px;
  background: var(--sa-gray-100);
  color: var(--sa-gray-700);
  font-size: .75rem;
  font-weight: 850;
  padding: .25rem .5rem;
}

.NotificationCard h2 {
  color: var(--sa-blue-900);
  font-size: 1rem;
  font-weight: 900;
  margin: 0 0 .65rem;
}

.NotificationDescription {
  color: var(--sa-gray-600);
  font-weight: 650;
  margin: -.35rem 0 .75rem;
}

.NotificationFacts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .55rem;
  margin: 0;
}

.NotificationFacts div {
  min-width: 0;
}

.NotificationFacts dt {
  color: var(--sa-gray-500);
  font-size: .72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.NotificationFacts dd {
  color: var(--sa-gray-950);
  font-weight: 750;
  margin: 0;
  overflow-wrap: anywhere;
}

.NotificationActions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .45rem;
}

.TaskTabs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .85rem;
}

.WorkCenterGrid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .9rem;
}

.WorkMetric {
  min-width: 0;
  min-height: 112px;
  border: 1px solid rgba(24, 50, 74, .12);
  border-radius: 8px;
  background: rgba(255, 255, 255, .96);
  box-shadow: var(--sa-shadow-sm);
  padding: 1rem;
  display: grid;
  gap: .45rem;
}

.WorkMetric i {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(14, 116, 144, .1);
  color: var(--sa-blue-700);
}

.WorkMetric span {
  color: var(--sa-gray-600);
  font-size: .82rem;
  font-weight: 850;
  text-transform: uppercase;
}

.WorkMetric strong {
  color: var(--sa-gray-950);
  font-size: 1.9rem;
  line-height: 1;
}

.WorkMetric-warning i { background: rgba(245, 158, 11, .14); color: var(--sa-amber); }
.WorkMetric-danger i { background: rgba(185, 28, 28, .12); color: var(--sa-red); }
.WorkMetric-success i { background: rgba(22, 163, 74, .12); color: var(--sa-green); }

.WorkCenterPanels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.WorkPanel {
  min-width: 0;
}

.WorkPanelHeader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  margin-bottom: .9rem;
}

.WorkList {
  display: grid;
  gap: .55rem;
}

.WorkListItem {
  min-width: 0;
  border: 1px solid rgba(24, 50, 74, .1);
  border-radius: 8px;
  color: var(--sa-gray-950);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem;
  padding: .75rem .85rem;
  text-decoration: none;
  background: rgba(248, 250, 252, .78);
}

.WorkListItem:hover {
  border-color: rgba(14, 116, 144, .28);
  color: var(--sa-blue-700);
  transform: translateY(-1px);
}

.WorkListItem span {
  min-width: 0;
}

.WorkListItem strong,
.WorkListItem small {
  display: block;
  overflow-wrap: anywhere;
}

.WorkListItem small {
  color: var(--sa-gray-500);
  font-weight: 700;
  margin-top: .15rem;
}

.QuickActionStrip {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
}

.QuickActionButton {
  min-height: 44px;
  border: 1px solid rgba(14, 116, 144, .18);
  border-radius: 8px;
  background: rgba(255, 255, 255, .94);
  color: var(--sa-blue-700);
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .65rem .9rem;
  font-weight: 850;
  text-decoration: none;
  box-shadow: var(--sa-shadow-sm);
}

.QuickActionButton:hover {
  background: rgba(14, 116, 144, .08);
}

.KanbanBoard {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .9rem;
}

.KanbanColumn {
  min-width: 0;
  border: 1px solid rgba(24, 50, 74, .12);
  border-radius: 8px;
  background: rgba(248, 250, 252, .86);
  padding: .85rem;
}

.KanbanColumn header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .75rem;
  color: var(--sa-gray-950);
  font-weight: 900;
}

.KanbanColumn header strong {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(14, 116, 144, .1);
  color: var(--sa-blue-700);
}

.KanbanCards {
  display: grid;
  gap: .55rem;
}

.KanbanCard,
.KanbanEmpty {
  min-width: 0;
  border: 1px solid rgba(24, 50, 74, .1);
  border-radius: 8px;
  background: rgba(255, 255, 255, .96);
  padding: .7rem;
}

.KanbanCard {
  color: var(--sa-gray-950);
  display: grid;
  gap: .28rem;
  text-decoration: none;
}

.KanbanCard:hover {
  border-color: rgba(14, 116, 144, .28);
  transform: translateY(-1px);
}

.KanbanCard-overdue {
  border-color: rgba(185, 28, 28, .3);
  background: rgba(254, 242, 242, .9);
}

.KanbanTitle {
  color: var(--sa-gray-950);
  font-weight: 900;
  overflow-wrap: anywhere;
}

.KanbanMeta,
.KanbanOwner,
.KanbanEmpty {
  color: var(--sa-gray-500);
  font-size: .78rem;
  font-weight: 750;
}

.ExecutiveKpiGrid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .85rem;
}

.ExecutiveKpi {
  min-width: 0;
  min-height: 128px;
  border: 1px solid rgba(24, 50, 74, .12);
  border-radius: 8px;
  background: rgba(255, 255, 255, .96);
  box-shadow: var(--sa-shadow-sm);
  color: var(--sa-gray-950);
  display: grid;
  gap: .42rem;
  padding: 1rem;
  text-decoration: none;
}

.ExecutiveKpi:hover {
  border-color: rgba(14, 116, 144, .3);
  transform: translateY(-1px);
}

.ExecutiveKpi i {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: rgba(14, 116, 144, .1);
  color: var(--sa-blue-700);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ExecutiveKpi span {
  color: var(--sa-gray-600);
  font-size: .78rem;
  font-weight: 850;
  text-transform: uppercase;
}

.ExecutiveKpi strong {
  color: var(--sa-gray-950);
  font-size: 1.75rem;
  line-height: 1;
}

.ExecutiveKpi-danger i { background: rgba(185, 28, 28, .12); color: var(--sa-red); }
.ExecutiveKpi-warning i { background: rgba(245, 158, 11, .14); color: var(--sa-amber); }
.ExecutiveKpi-success i { background: rgba(22, 163, 74, .12); color: var(--sa-green); }

.KpiGrid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .85rem;
}

.KpiCard {
  min-width: 0;
  min-height: 8rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: .28rem;
  padding: 1rem 1.05rem;
  border: 1px solid rgba(24, 50, 74, .12);
  border-radius: 8px;
  background: rgba(255, 255, 255, .96);
  box-shadow: var(--sa-shadow-sm);
  color: var(--sa-gray-950);
  text-decoration: none;
}

.KpiCard:hover,
.KpiCard:focus {
  border-color: rgba(14, 116, 144, .3);
  transform: translateY(-1px);
  color: var(--sa-gray-950);
  text-decoration: none;
}

.KpiCard i {
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 7px;
  background: rgba(14, 116, 144, .1);
  color: var(--sa-blue-700);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  margin-bottom: .35rem;
}

.KpiLabel {
  color: var(--sa-gray-600);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .04em;
  line-height: 1.1;
  text-transform: uppercase;
}

.KpiCard strong {
  color: var(--sa-gray-950);
  font-size: 1.85rem;
  line-height: 1;
  font-weight: 900;
}

.KpiCard small {
  color: var(--sa-gray-500);
  font-size: .78rem;
  font-weight: 650;
  line-height: 1.3;
  margin-top: auto;
}

.KpiCard--danger {
  border-color: rgba(188, 62, 75, .38);
  background: var(--sa-red-100);
}

.KpiCard--danger i { background: rgba(188, 62, 75, .14); color: var(--sa-red); }
.KpiCard--danger strong { color: var(--sa-red); }
.KpiCard--danger small { color: #8f1f1f; }

.page-content .scan-bar {
  max-width: 46rem;
  padding: 1rem 1.1rem;
}

.scan-bar .form-label {
  margin-bottom: .5rem;
}

.scan-form-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem;
}

.scan-form-row input[type="text"] {
  flex: 1 1 16rem;
  min-width: 0;
}

@media (max-width: 1199.98px) {
  .KpiGrid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .KpiGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

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

.ExecutiveGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.ExecutivePanel {
  min-width: 0;
}

.ExecutivePanelHeader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: 1rem;
}

.ExecutiveBars {
  display: grid;
  gap: .7rem;
}

.ExecutiveBarRow {
  display: grid;
  grid-template-columns: minmax(8rem, 1fr) minmax(0, 2fr) 3rem;
  align-items: center;
  gap: .8rem;
}

.ExecutiveBarRow span,
.ExecutiveBarRow strong {
  min-width: 0;
  color: var(--sa-gray-700);
  font-weight: 850;
  overflow-wrap: anywhere;
}

.ExecutiveBarRow strong {
  text-align: right;
}

.ExecutiveBarTrack {
  min-width: 0;
  height: .75rem;
  border-radius: 999px;
  background: rgba(24, 50, 74, .08);
  overflow: hidden;
}

.ExecutiveBar {
  min-width: .35rem;
  height: 100%;
  border-radius: inherit;
  background: var(--sa-green);
}

.ExecutiveBar-blue { background: var(--sa-blue-700); }
.ExecutiveBar-amber { background: var(--sa-amber); }

.ExecutiveActivity {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
}

.ExecutiveActivity div {
  min-width: 0;
  border: 1px solid rgba(24, 50, 74, .1);
  border-radius: 8px;
  background: rgba(248, 250, 252, .78);
  padding: .85rem;
}

.ExecutiveActivity h3 {
  color: var(--sa-gray-950);
  font-size: .9rem;
  font-weight: 900;
  margin: 0 0 .6rem;
}

.ExecutiveActivity span {
  display: flex;
  justify-content: space-between;
  gap: .6rem;
  color: var(--sa-gray-600);
  font-size: .82rem;
  font-weight: 750;
  padding: .25rem 0;
  overflow-wrap: anywhere;
}

.TaskTab {
  min-width: 0;
  min-height: 76px;
  border: 1px solid rgba(24, 50, 74, .12);
  border-radius: 8px;
  background: rgba(255, 255, 255, .94);
  color: var(--sa-gray-950);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .7rem;
  padding: .85rem 1rem;
  text-decoration: none;
  box-shadow: var(--sa-shadow-sm);
}

.TaskTab:hover,
.TaskTab.active {
  border-color: rgba(14, 116, 144, .36);
  color: var(--sa-blue-700);
  transform: translateY(-1px);
}

.TaskTab i,
.TaskTab strong {
  width: 38px;
  height: 38px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(14, 116, 144, .1);
}

.TaskTab span {
  min-width: 0;
  font-weight: 800;
}

.TaskBoard {
  display: grid;
  gap: 1rem;
}

.TaskCard {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: start;
  border: 1px solid rgba(24, 50, 74, .12);
  border-radius: 8px;
  background: rgba(255, 255, 255, .96);
  padding: 1rem;
  box-shadow: var(--sa-shadow-sm);
}

.TaskCard-overdue {
  border-color: rgba(185, 28, 28, .34);
  background: linear-gradient(90deg, rgba(254, 242, 242, .82), rgba(255, 255, 255, .98));
}

.TaskCardMain {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .9rem;
  min-width: 0;
}

.TaskIcon {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--sa-blue-700);
  background: rgba(14, 116, 144, .1);
}

.TaskMeta {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: .45rem;
}

.TaskMeta span {
  border-radius: 999px;
  background: rgba(24, 50, 74, .08);
  color: var(--sa-gray-600);
  font-size: .78rem;
  font-weight: 800;
  padding: .22rem .55rem;
}

.TaskCard h2 {
  font-size: 1.02rem;
  margin: 0 0 .35rem;
  color: var(--sa-gray-950);
}

.TaskCard p {
  margin: 0 0 .75rem;
  color: var(--sa-gray-600);
}

.TaskHistory {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin-top: .65rem;
}

.TaskHistory span {
  border-radius: 999px;
  background: rgba(43, 95, 136, .08);
  color: var(--sa-gray-600);
  font-size: .76rem;
  font-weight: 750;
  padding: .2rem .5rem;
}

.TaskActions,
.TaskReassign {
  display: flex;
  align-items: center;
  gap: .5rem;
}

.TaskActions {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.TaskReassign select {
  min-width: 190px;
}

.page-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: flex-end;
  align-items: center;
}

.standard-action-bar {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.standard-action-bar-desktop {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .55rem;
}

.standard-action-bar .btn,
.record-actions .btn,
.page-actions .btn,
.compact-actions .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 2.45rem;
  border-radius: .65rem;
  font-weight: 750;
  box-shadow: 0 8px 18px rgba(32, 39, 47, .06);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}

.standard-action-bar .btn:hover,
.record-actions .btn:hover,
.page-actions .btn:hover,
.compact-actions .btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 26px rgba(24, 50, 74, .12);
  text-decoration: none;
}

.standard-action-bar-mobile {
  display: none;
}

.standard-action-menu .dropdown-toggle {
  min-width: 9.5rem;
  border: 1px solid rgba(43, 95, 136, .2);
  background: linear-gradient(180deg, var(--sa-blue-700), var(--sa-blue-800));
  box-shadow: 0 14px 26px rgba(24, 50, 74, .16);
}

.standard-action-menu .dropdown-menu {
  min-width: 17rem;
  padding: .55rem;
  border: 1px solid rgba(213, 222, 231, .95);
  border-radius: .85rem;
  box-shadow: var(--sa-shadow-premium);
}

.dropdown-menu {
  z-index: 1050;
}

.standard-action-bar .dropdown-item {
  display: flex;
  align-items: center;
  gap: .55rem;
  min-height: 2.55rem;
  border-radius: .6rem;
  font-weight: 700;
}

.standard-action-bar .dropdown-item i {
  width: 1.15rem;
  color: var(--sa-blue-700);
  text-align: center;
}

.standard-action-bar .dropdown-item:hover,
.standard-action-bar .dropdown-item:focus {
  background: var(--sa-blue-100);
  color: var(--sa-blue-900);
}

.standard-action-bar .dropdown-divider {
  margin: .4rem .25rem;
}

.page-title {
  margin: 0;
  color: var(--sa-blue-900);
  font-size: clamp(1.45rem, 2vw, 2rem);
  font-weight: 880;
  letter-spacing: 0;
}

.page-subtitle {
  color: var(--sa-gray-700);
  margin: .35rem 0 0;
  max-width: 64rem;
}

.requirements-note {
  color: var(--sa-gray-500);
  font-size: .86rem;
  margin: 0;
}

.card,
.sa-card {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(251, 253, 255, .96));
  border: 1px solid rgba(213, 222, 231, .82);
  border-radius: var(--sa-radius);
  box-shadow: var(--sa-shadow);
}

.sa-card:hover,
.detail-panel:hover,
.record-panel:hover,
.record-hero:hover,
.case-hero:hover,
.specimen-hero:hover,
.AccessHeaderCard:hover {
  box-shadow: var(--sa-shadow-premium);
}

.sa-card {
  padding: 1.25rem;
}

.kpi-card {
  min-height: 9.25rem;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  isolation: isolate;
}

.kpi-card::after {
  content: "";
  position: absolute;
  inset: auto -18% -34% 44%;
  height: 8rem;
  border-radius: 999px;
  background: rgba(31, 155, 180, .1);
  z-index: -1;
}

.kpi-icon {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: .5rem;
  display: grid;
  place-items: center;
  color: var(--sa-white);
  background: var(--sa-blue-700);
  box-shadow: var(--sa-shadow-soft);
}

.kpi-card-patient .kpi-icon { background: var(--sa-teal); }
.kpi-card-case .kpi-icon { background: var(--sa-blue-700); }
.kpi-card-workflow .kpi-icon { background: var(--sa-indigo); }
.kpi-card-alert .kpi-icon { background: var(--sa-red); }

.kpi-card .stretched-link {
  color: var(--sa-gray-500);
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.kpi-label {
  color: var(--sa-gray-700);
  font-weight: 700;
  margin-bottom: .5rem;
}

.kpi-value {
  color: var(--sa-blue-900);
  font-size: 2.35rem;
  line-height: 1;
  font-weight: 850;
  margin-bottom: .4rem;
}

.role-dashboard-header .badge {
  align-self: flex-start;
}

.role-kpi-card {
  min-height: 10rem;
  border-left: .35rem solid var(--sa-green);
}

.role-kpi-success { border-left-color: var(--sa-green); }
.role-kpi-warning { border-left-color: var(--sa-amber); }
.role-kpi-danger { border-left-color: var(--sa-red); }
.role-kpi-secondary { border-left-color: var(--sa-gray-500); }

.role-task-list,
.alert-center-list,
.role-chart {
  display: grid;
  gap: .75rem;
}

.role-task-item,
.alert-center-item {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr) auto;
  align-items: center;
  gap: .85rem;
  min-height: 4.25rem;
  padding: .75rem;
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  background: rgba(255, 255, 255, .72);
  color: var(--sa-gray-950);
}

.role-task-item:hover,
.role-task-item:focus,
.alert-center-item:hover,
.alert-center-item:focus,
.quick-action-tile:hover,
.quick-action-tile:focus {
  text-decoration: none;
  border-color: rgba(43, 95, 136, .32);
  box-shadow: var(--sa-shadow-soft);
}

.role-task-icon {
  width: 2.5rem;
  height: 2.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: .5rem;
  background: var(--sa-green-100);
  color: var(--sa-green);
}

.role-task-warning { background: var(--sa-amber-100); color: var(--sa-amber); }
.role-task-danger { background: var(--sa-red-100); color: var(--sa-red); }
.role-task-secondary { background: var(--sa-gray-100); color: var(--sa-gray-700); }

.role-task-item strong,
.role-task-item small {
  display: block;
  min-width: 0;
}

.role-task-item small {
  color: var(--sa-gray-700);
}

.role-task-value {
  min-width: 2.5rem;
  min-height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: .5rem;
  background: var(--sa-gray-100);
  font-weight: 800;
}

.alert-center-item {
  grid-template-columns: 2rem minmax(0, 1fr);
  min-height: 3.6rem;
}

.alert-center-critical,
.alert-center-danger {
  color: var(--sa-red);
  background: var(--sa-red-100);
  border-color: rgba(188, 62, 75, .28);
}

.alert-center-attention,
.alert-center-warning {
  color: var(--sa-amber);
  background: var(--sa-amber-100);
  border-color: rgba(166, 107, 24, .28);
}

.alert-center-done,
.alert-center-secondary {
  color: var(--sa-gray-700);
  background: var(--sa-gray-100);
}

.role-chart-row {
  display: grid;
  grid-template-columns: minmax(9rem, 1fr) minmax(8rem, 2fr) 3rem;
  align-items: center;
  gap: .75rem;
}

.role-chart-row span {
  color: var(--sa-gray-800);
  font-weight: 650;
}

.role-chart-row strong {
  text-align: right;
}

.role-chart-track {
  height: .72rem;
  border-radius: 999px;
  overflow: hidden;
  background: var(--sa-gray-200);
}

.role-chart-bar {
  height: 100%;
  min-width: .45rem;
  border-radius: inherit;
  background: var(--sa-green);
}

.role-chart-warning { background: var(--sa-amber); }
.role-chart-danger { background: var(--sa-red); }
.role-chart-secondary { background: var(--sa-gray-500); }

.quick-action-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
  gap: .75rem;
}

.quick-action-tile {
  min-height: 5rem;
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .85rem;
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  background: rgba(255, 255, 255, .78);
  color: var(--sa-gray-950);
  font-weight: 750;
}

.quick-action-tile i {
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: .5rem;
  background: var(--sa-blue-100);
  color: var(--sa-blue-700);
  flex: 0 0 auto;
}

.compact-empty {
  min-height: 5rem;
  display: grid;
  align-content: center;
  gap: .25rem;
  padding: 1rem;
  border: 1px dashed var(--sa-gray-300);
  border-radius: var(--sa-radius);
  color: var(--sa-gray-700);
}

.table {
  margin-bottom: 0;
}

.table thead th {
  background: linear-gradient(180deg, #eef6fb, #e4eff6);
  color: var(--sa-blue-900);
  border-bottom: 0;
  font-size: .76rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.table tbody td {
  vertical-align: middle;
  color: var(--sa-gray-700);
  border-color: #edf1f5;
}

.table-modern {
  border-collapse: separate;
  border-spacing: 0;
}

.table-modern tbody tr:hover {
  background: #f6fbfd;
}

.table-modern tbody tr {
  transition: background .16s ease, box-shadow .16s ease;
}

.table-ux-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: .75rem;
  margin-bottom: .75rem;
}

.table-export-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.table-ux-search {
  width: min(100%, 22rem);
  display: grid;
  gap: .3rem;
  color: var(--sa-gray-500);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.print-body {
  background: #fff;
  color: var(--sa-gray-950);
  font-family: Arial, sans-serif;
  font-size: 12px;
  line-height: 1.35;
}

.print-shell {
  max-width: 1100px;
  margin: 0 auto;
  padding: 24px;
}

.print-toolbar {
  display: flex;
  justify-content: flex-end;
  gap: .5rem;
  margin-bottom: 16px;
}

.print-header {
  display: flex;
  align-items: center;
  gap: 18px;
  border-bottom: 3px solid var(--sa-blue-900);
  margin-bottom: 18px;
  padding-bottom: 12px;
}

.print-header img {
  width: 132px;
  height: auto;
}

.print-header h1 {
  color: var(--sa-blue-900);
  font-size: 24px;
  margin: 0;
}

.print-kicker,
.print-meta {
  color: var(--sa-gray-700);
  font-size: 11px;
  font-weight: 700;
  margin: 0 0 3px;
}

.print-section {
  break-inside: avoid;
  margin: 0 0 16px;
}

.print-section h2 {
  color: var(--sa-blue-900);
  font-size: 16px;
  margin: 18px 0 8px;
}

.print-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.print-summary-item {
  border: 1px solid var(--sa-gray-300);
  border-radius: .35rem;
  padding: 8px;
}

.print-summary-item span,
.print-label {
  color: var(--sa-gray-700);
  display: block;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.print-summary-item strong {
  color: var(--sa-gray-950);
  display: block;
  margin-top: 2px;
}

.print-footer {
  display: none;
}

.print-document th {
  background: var(--sa-blue-100) !important;
  color: var(--sa-blue-900);
}

.table thead th[role="button"] {
  cursor: pointer;
  user-select: none;
}

.table thead th[role="button"]:focus {
  outline: 0;
  box-shadow: inset 0 -3px 0 var(--sa-blue-600);
}

.table-sort-indicator {
  display: inline-flex;
  margin-left: .35rem;
  color: var(--sa-blue-700);
  font-size: .78rem;
}

.table thead th[aria-sort="ascending"] .table-sort-indicator,
.table thead th[aria-sort="descending"] .table-sort-indicator {
  color: var(--sa-teal);
}

.form-control,
.form-select,
form input,
form select,
form textarea {
  border-color: #cdd8e2;
  border-radius: .5rem;
  min-height: 2.65rem;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.form-control:focus,
.form-select:focus,
form input:focus,
form select:focus,
form textarea:focus {
  border-color: var(--sa-blue-600);
  box-shadow: var(--sa-shadow-focus);
  outline: 0;
}

form textarea {
  min-height: 7rem;
}

form p {
  margin-bottom: 1rem;
}

form p label {
  display: block;
  color: var(--sa-blue-900);
  font-weight: 700;
  margin-bottom: .35rem;
}

form p input,
form p select,
form p textarea {
  width: 100%;
  display: block;
  padding: .55rem .75rem;
}

dl {
  display: grid;
  grid-template-columns: minmax(10rem, 16rem) 1fr;
  gap: .5rem 1rem;
  margin-bottom: 1.25rem;
}

dt {
  color: var(--sa-blue-900);
  font-weight: 800;
}

dd {
  margin-bottom: 0;
  color: var(--sa-gray-700);
  overflow-wrap: anywhere;
  word-break: break-word;
}

pre,
code {
  overflow-wrap: anywhere;
  word-break: break-word;
}

pre {
  max-width: 100%;
  white-space: pre-wrap;
}

main > h1,
.page-content > h1 {
  color: var(--sa-blue-900);
  font-size: clamp(1.55rem, 2vw, 2.15rem);
  font-weight: 800;
  margin-bottom: .5rem;
  line-height: 1.15;
}

main > h2,
.page-content > h2 {
  color: var(--sa-blue-900);
  font-size: 1.25rem;
  font-weight: 800;
  margin-top: 1.5rem;
}

main > h3,
.page-content > h3 {
  color: var(--sa-gray-950);
  font-size: 1.05rem;
  font-weight: 800;
  margin-top: 1.25rem;
}

.page-content > dl,
.page-content > form,
.page-content > .table-responsive,
.page-content > .sa-card {
  background: var(--sa-white);
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  box-shadow: var(--sa-shadow);
  padding: 1.25rem;
}

.page-content > h1,
.page-content > .breadcrumb-shell + h1 {
  background: var(--sa-white);
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  box-shadow: var(--sa-shadow);
  padding: 1.15rem 1.25rem .95rem;
  margin-bottom: 1rem;
  position: relative;
}

.page-content > h1::before,
.page-content > .breadcrumb-shell + h1::before {
  content: "SIL ANAPATH";
  display: block;
  color: var(--sa-gray-500);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .04em;
  line-height: 1;
  margin-bottom: .45rem;
  text-transform: uppercase;
}

.page-content > h1 + p:not(:has(> a)),
.page-content > .breadcrumb-shell + h1 + p:not(:has(> a)) {
  max-width: 78rem;
  color: var(--sa-gray-700);
  background: var(--sa-white);
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  box-shadow: var(--sa-shadow-soft);
  padding: .9rem 1rem;
  margin-top: -0.55rem;
}

.page-content > h1:first-child + dl,
.page-content > .breadcrumb-shell + h1 + dl,
.page-content > dl:first-of-type {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}

.page-content > h1:first-child + dl dt,
.page-content > .breadcrumb-shell + h1 + dl dt,
.page-content > dl:first-of-type dt {
  color: var(--sa-gray-500);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.page-content > h1:first-child + dl dd,
.page-content > .breadcrumb-shell + h1 + dl dd,
.page-content > dl:first-of-type dd {
  color: var(--sa-gray-950);
  font-weight: 750;
  min-height: 2.1rem;
  margin-bottom: .35rem;
}

.page-content > h1:first-child + dl dt,
.page-content > h1:first-child + dl dd,
.page-content > .breadcrumb-shell + h1 + dl dt,
.page-content > .breadcrumb-shell + h1 + dl dd,
.page-content > dl:first-of-type dt,
.page-content > dl:first-of-type dd {
  background: #fbfcfd;
  border: 1px solid var(--sa-gray-200);
  border-radius: .45rem;
  padding: .65rem .75rem;
}

.page-content > h1:first-child + dl dt,
.page-content > .breadcrumb-shell + h1 + dl dt,
.page-content > dl:first-of-type dt {
  border-bottom-color: transparent;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  padding-bottom: .25rem;
}

.page-content > h1:first-child + dl dd,
.page-content > .breadcrumb-shell + h1 + dl dd,
.page-content > dl:first-of-type dd {
  border-top-color: transparent;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  padding-top: .25rem;
}

.page-content > p {
  margin-bottom: 1rem;
}

.page-content > p:has(> a),
.page-content section > p:has(> a),
.page-content article > p:has(> a),
.page-content > h1 + p:has(> a),
.page-content > .breadcrumb-shell + h1 + p:has(> a),
.page-content > nav:not(.breadcrumb-shell):not(.sidebar-nav):not([aria-label="Pagination"]) {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
  background: var(--sa-white);
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  box-shadow: var(--sa-shadow-soft);
  padding: .75rem;
}

.page-content > p:has(> a) > a,
.page-content section > p:has(> a) > a,
.page-content article > p:has(> a) > a,
.page-content > nav:not(.breadcrumb-shell):not(.sidebar-nav):not([aria-label="Pagination"]) > a,
.action-bar > a,
.page-content form.vstack > a,
.page-content section form.vstack > a,
.page-content article form.vstack > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  border: 1px solid var(--sa-gray-300);
  border-radius: .5rem;
  padding: .45rem .75rem;
  background: var(--sa-white);
  color: var(--sa-gray-800);
  font-weight: 800;
  text-decoration: none;
}

.page-content > p:has(> a) > a:first-child,
.page-content section > p:has(> a) > a:first-child,
.page-content article > p:has(> a) > a:first-child,
.page-content > nav:not(.breadcrumb-shell):not(.sidebar-nav):not([aria-label="Pagination"]) > a:first-child {
  border-color: var(--sa-blue-700);
  background: var(--sa-blue-700);
  color: var(--sa-white);
}

.page-content > p:has(> a) > a:hover,
.page-content section > p:has(> a) > a:hover,
.page-content article > p:has(> a) > a:hover,
.page-content > nav:not(.breadcrumb-shell):not(.sidebar-nav):not([aria-label="Pagination"]) > a:hover,
.page-content form.vstack > a:hover,
.page-content section form.vstack > a:hover,
.page-content article form.vstack > a:hover {
  background: var(--sa-blue-100);
  border-color: var(--sa-blue-600);
  color: var(--sa-blue-800);
  text-decoration: none;
}

.page-content > section:not(.sa-card):not(.case-hero),
.page-content > article,
.tab-pane > section:not(.sa-card),
.tab-pane > article {
  background: var(--sa-white);
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  box-shadow: var(--sa-shadow-soft);
  padding: 1.1rem;
  margin-bottom: 1rem;
}

.page-content section > h2:first-child,
.page-content article > h2:first-child,
.page-content section > h3:first-child,
.page-content article > h3:first-child,
.page-content section > h4:first-child,
.page-content article > h4:first-child {
  margin-top: 0;
}

.page-content ul:not(.nav):not(.pagination):not(.breadcrumb):not(.dropdown-menu):not(.list-group) {
  list-style: none;
  padding-left: 0;
  display: grid;
  gap: .55rem;
}

.page-content ul:not(.nav):not(.pagination):not(.breadcrumb):not(.dropdown-menu):not(.list-group) > li {
  border: 1px solid var(--sa-gray-200);
  border-radius: .5rem;
  background: #fbfcfd;
  padding: .7rem .8rem;
  color: var(--sa-gray-800);
}

.page-content > .table-responsive,
.page-content section > .table-responsive,
.page-content article > .table-responsive {
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  background: var(--sa-white);
  box-shadow: var(--sa-shadow-soft);
  overflow: auto;
}

.page-content section > .table-responsive,
.page-content article > .table-responsive {
  padding: 0;
}

.table-modern {
  min-width: 42rem;
}

.table-modern tbody tr:last-child td {
  border-bottom: 0;
}

.page-content form.vstack {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem !important;
}

.page-content > form.vstack,
.page-content section > form.vstack:not(.m-0),
.page-content article > form.vstack:not(.m-0) {
  background: var(--sa-white);
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  box-shadow: var(--sa-shadow);
  padding: 1.25rem;
}

.page-content form.vstack p,
.page-content form.vstack .alert,
.page-content form.vstack button,
.page-content form.vstack .btn,
.page-content form.vstack [type="submit"],
.page-content form.vstack > a {
  margin-bottom: 0;
}

.page-content form.vstack p:has(textarea),
.page-content form.vstack p:has(input[type="file"]),
.page-content form.vstack p:has(.helptext),
.page-content form.vstack > .alert,
.page-content form.vstack > button,
.page-content form.vstack > .btn,
.page-content form.vstack > a {
  grid-column: 1 / -1;
}

.page-content form.vstack > button,
.page-content form.vstack > .btn,
.page-content form.vstack > a {
  justify-self: start;
}

.page-content form.vstack .helptext {
  display: block;
  color: var(--sa-gray-500);
  font-size: .84rem;
  margin-top: .3rem;
}

.MedicalFormField {
  display: grid;
  gap: .35rem;
  margin-bottom: 0;
}

.MedicalFormGrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .85rem;
}

.ProgressiveForm {
  position: relative;
}

.ProgressiveFormMeter {
  grid-column: 1 / -1;
  margin-bottom: .35rem;
  padding: .85rem 1rem;
  border: 1px solid rgba(213, 222, 231, .9);
  border-radius: .75rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, .96), rgba(245, 250, 252, .94));
  box-shadow: var(--sa-shadow-soft);
}

.ProgressiveFormMeterText {
  display: flex;
  align-items: center;
  gap: .6rem;
  color: var(--sa-blue-900);
  font-size: .86rem;
  font-weight: 850;
}

.ProgressiveFormMeterText strong {
  margin-left: auto;
  color: var(--sa-gray-700);
  font-size: .78rem;
}

.ProgressiveFormTrack {
  height: .42rem;
  margin-top: .65rem;
  border-radius: 999px;
  background: var(--sa-gray-200);
  overflow: hidden;
}

.ProgressiveFormTrack span {
  display: block;
  height: 100%;
  width: 8%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--sa-teal), var(--sa-blue-600));
  transition: width .2s ease;
}

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

.MedicalFormField label {
  color: var(--sa-blue-900);
  font-size: .86rem;
  font-weight: 800;
}

.MedicalFormField input,
.MedicalFormField select,
.MedicalFormField textarea {
  width: 100%;
  border: 1px solid #cdd8e2;
  border-radius: .5rem;
  background: var(--sa-white);
  padding: .55rem .75rem;
}

.MedicalFormField input[type="checkbox"],
.MedicalFormField input[type="radio"] {
  width: auto;
  min-height: auto;
}

.MedicalFormField.is-invalid input,
.MedicalFormField.is-invalid select,
.MedicalFormField.is-invalid textarea {
  border-color: var(--sa-red);
  background: var(--sa-red-100);
}

.MedicalFormField textarea {
  min-height: 7rem;
}

.MedicalFormField[hidden] {
  display: none;
}

.VoiceDictationShell {
  display: grid;
  gap: .55rem;
}

.VoiceDictationTextarea {
  min-height: 8rem;
}

.VoiceDictationToolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .55rem .65rem;
  border: 1px solid rgba(213, 222, 231, .9);
  border-radius: .65rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, .94), rgba(245, 250, 252, .92));
  box-shadow: var(--sa-shadow-soft);
}

.VoiceDictationHint {
  color: var(--sa-gray-700);
  font-size: .78rem;
  font-weight: 800;
}

.VoiceDictationPreview {
  flex: 1 1 auto;
  color: var(--sa-gray-500);
  font-size: .78rem;
  font-weight: 700;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.VoiceDictationButton {
  min-width: 7.5rem;
  gap: .4rem;
}

.VoiceDictationButton.is-listening {
  border-color: rgba(188, 62, 75, .42);
  background: var(--sa-red-100);
  color: var(--sa-red);
  box-shadow: 0 0 0 .18rem rgba(188, 62, 75, .12), var(--sa-shadow-soft);
}

.VoiceDictationButton.is-unsupported {
  color: var(--sa-gray-500);
  background: var(--sa-gray-100);
  border-color: var(--sa-gray-300);
  box-shadow: none;
}

.MedicalFormHelp {
  color: var(--sa-gray-500);
  font-size: .84rem;
}

.MedicalFormError {
  color: #8f1e2b;
  font-size: .84rem;
  font-weight: 750;
}

.page-content form.vstack ul.errorlist,
.page-content form.vstack .errorlist {
  grid-column: 1 / -1;
  margin: 0;
}

.page-content form.vstack .errorlist li {
  border-color: var(--sa-red-100);
  background: var(--sa-red-100);
  color: #8f1e2b;
  font-weight: 700;
}

.detail-hero,
.detail-panel,
.metric-strip,
.PatientHeaderCard,
.CaseHeaderCard,
.SpecimenHeaderCard,
.ReportHeaderCard,
.QualityHeaderCard,
.ArchiveHeaderCard,
.AccessHeaderCard,
.AuditCard,
.TimelineCard,
.KPIGrid,
.MedicalInfoGrid {
  background: var(--sa-white);
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  box-shadow: var(--sa-shadow);
}

.detail-hero,
.detail-panel,
.PatientHeaderCard,
.CaseHeaderCard,
.SpecimenHeaderCard,
.ReportHeaderCard,
.QualityHeaderCard,
.ArchiveHeaderCard,
.AccessHeaderCard,
.AuditCard,
.TimelineCard {
  padding: 1.25rem;
}

.metric-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  background: var(--sa-gray-200);
}

.KPIGrid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.KPIGrid > .row {
  display: contents;
}

.KPIGrid > [class*="col-"],
.KPIGrid > .row > [class*="col-"] {
  width: auto;
  max-width: none;
  padding: 0;
}

.KPIGrid .kpi-card,
.KPIGrid .case-metric,
.KPIGrid .data-card,
.KPIGrid > div {
  min-height: 7.5rem;
}

.metric-strip > div {
  background: var(--sa-white);
  padding: .9rem;
}

.metric-label {
  display: block;
  color: var(--sa-gray-500);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.metric-value {
  display: block;
  color: var(--sa-blue-900);
  font-size: 1.4rem;
  font-weight: 850;
  line-height: 1.15;
  margin-top: .25rem;
  overflow-wrap: anywhere;
}

.data-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
}

.MedicalInfoGrid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.data-card {
  min-height: 5.25rem;
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  background: #fbfcfd;
  padding: .85rem;
}

.MedicalInfoGrid > div,
.MedicalInfoGrid .record-field,
.MedicalInfoGrid .data-card {
  min-height: 5.4rem;
}

.data-card span {
  display: block;
  color: var(--sa-gray-500);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.data-card strong {
  display: block;
  color: var(--sa-gray-950);
  margin-top: .35rem;
  overflow-wrap: anywhere;
}

.medical-timeline {
  position: relative;
  display: grid;
  gap: .75rem;
}

.medical-timeline::before {
  content: "";
  position: absolute;
  top: .55rem;
  bottom: .55rem;
  left: .7rem;
  width: 2px;
  background: var(--sa-gray-200);
}

.medical-timeline-item {
  position: relative;
  padding-left: 2.2rem;
}

.medical-timeline-item::before {
  content: "";
  position: absolute;
  left: .32rem;
  top: .4rem;
  width: .8rem;
  height: .8rem;
  border-radius: 50%;
  background: var(--sa-blue-700);
  box-shadow: 0 0 0 4px var(--sa-blue-100);
}

.compact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.compact-list {
  display: grid;
  gap: .6rem;
}

.compact-list-item {
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  background: var(--sa-white);
  padding: .8rem;
}

.specimen-detail-shell {
  display: grid;
  gap: 1.1rem;
  width: 100%;
  min-width: 0;
}

.specimen-hero,
.specimen-container-card,
.specimen-block-card,
.block-card,
.slide-card {
  background: linear-gradient(180deg, rgba(255, 255, 255, .99), rgba(250, 253, 255, .97));
  border: 1px solid rgba(213, 222, 231, .86);
  border-radius: .78rem;
  box-shadow: var(--sa-shadow-soft);
  min-width: 0;
}

.specimen-hero {
  padding: 1.35rem;
  overflow: hidden;
}

.specimen-hero-main,
.specimen-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}

.specimen-hero-main {
  margin-bottom: 1rem;
}

.specimen-kicker {
  color: var(--sa-gray-500);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.specimen-badges,
.specimen-card-status {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: .75rem;
  min-width: 0;
}

.specimen-card-status {
  justify-content: flex-end;
  margin-top: 0;
}

.specimen-summary-grid,
.specimen-mini-grid {
  display: grid;
  gap: .75rem;
  min-width: 0;
}

.specimen-summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.specimen-summary-grid > div,
.specimen-mini-grid > div {
  border: 1px solid var(--sa-gray-200);
  border-radius: .72rem;
  background: linear-gradient(180deg, #ffffff, #f7fbfd);
  padding: .95rem;
  min-width: 0;
}

.specimen-summary-grid span,
.specimen-mini-grid span {
  display: block;
  color: var(--sa-gray-500);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.specimen-summary-grid strong {
  display: block;
  color: var(--sa-blue-900);
  font-size: clamp(1.35rem, 1.5vw, 1.9rem);
  font-weight: 850;
  line-height: 1.05;
  margin-top: .25rem;
  overflow-wrap: anywhere;
}

.specimen-summary-grid small,
.specimen-mini-grid strong,
.specimen-mini-grid small {
  display: block;
  overflow-wrap: anywhere;
}

.specimen-summary-grid small {
  color: var(--sa-gray-600);
  margin-top: .25rem;
}

.specimen-mini-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: .9rem 0;
}

.specimen-mini-grid strong {
  color: var(--sa-gray-950);
  margin-top: .3rem;
}

.specimen-chain {
  display: grid;
  gap: 1.1rem;
  min-width: 0;
}

.specimen-container-card,
.specimen-block-card,
.block-card,
.slide-card {
  padding: 1.1rem;
}

.specimen-container-card {
  background: linear-gradient(180deg, #fbfdff, #f7fafc);
  border-left: .24rem solid rgba(51, 120, 168, .42);
}

.specimen-card-header h3,
.specimen-card-header h4,
.specimen-card-header p {
  margin: 0;
}

.specimen-card-header h3,
.specimen-card-header h4 {
  color: var(--sa-blue-900);
  font-weight: 850;
  margin-top: .15rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.specimen-card-header p {
  color: var(--sa-gray-600);
  margin-top: .2rem;
}

.specimen-card-meta {
  margin-top: .35rem;
}

.specimen-card-meta span {
  display: block;
  color: var(--sa-gray-500);
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.specimen-card-meta strong {
  display: block;
  color: var(--sa-gray-800);
  font-size: .92rem;
  margin-top: .15rem;
  overflow-wrap: anywhere;
}

.specimen-block-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-top: 1.05rem;
  min-width: 0;
}

.specimen-block-card,
.block-card {
  display: grid;
  align-content: start;
  gap: .9rem;
  border-left: .24rem solid rgba(20, 124, 118, .42);
}

.specimen-two-column {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(17rem, .9fr);
  gap: 1rem;
  margin-top: .25rem;
  min-width: 0;
}

.specimen-two-column h5 {
  color: var(--sa-gray-700);
  font-size: .82rem;
  font-weight: 850;
  letter-spacing: .04em;
  margin-bottom: .6rem;
  text-transform: uppercase;
}

.specimen-event-list {
  gap: .85rem;
}

.specimen-event-list .timeline-item {
  color: var(--sa-gray-700);
  font-size: .9rem;
}

.specimen-event-list .timeline-item strong,
.specimen-event-list .timeline-item span,
.specimen-event-list .timeline-item small {
  display: block;
}

.specimen-event-list .timeline-item strong {
  color: var(--sa-gray-950);
}

.specimen-event-list .timeline-item small {
  color: var(--sa-gray-500);
}

.specimen-slide-list {
  display: grid;
  gap: .65rem;
  min-width: 0;
}

.specimen-slide-item,
.slide-card-compact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .35rem .85rem;
  border: 1px solid var(--sa-gray-200);
  border-radius: .72rem;
  background: var(--sa-white);
  color: var(--sa-gray-950);
  padding: .85rem;
  min-width: 0;
}

.specimen-slide-item:hover,
.specimen-slide-item:focus,
.slide-card-compact:hover,
.slide-card-compact:focus {
  border-color: var(--sa-blue-600);
  background: var(--sa-blue-100);
  text-decoration: none;
}

.specimen-slide-item small,
.slide-card-meta {
  display: block;
  color: var(--sa-gray-600);
  margin-top: .15rem;
  overflow-wrap: anywhere;
}

.specimen-empty-state {
  border: 1px dashed var(--sa-gray-300);
  border-radius: .72rem;
  color: var(--sa-gray-600);
  margin: 0;
  padding: .9rem;
  background: rgba(255, 255, 255, .66);
}

.specimen-layout-grid {
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(20rem, 4fr);
  gap: 1.1rem;
  align-items: start;
  width: 100%;
  min-width: 0;
}

.specimen-main-column,
.specimen-side-column {
  display: grid;
  gap: 1.1rem;
  min-width: 0;
}

.specimen-side-column {
  position: sticky;
  top: 5.5rem;
}

.specimen-info-stack {
  display: grid;
  grid-template-columns: 1fr;
  gap: .75rem;
  min-width: 0;
}

.specimen-info-stack .record-field {
  min-height: auto;
  padding: .8rem .85rem;
}

.block-card:hover,
.slide-card:hover {
  box-shadow: var(--sa-shadow-premium);
}

.slide-card {
  display: grid;
  gap: .8rem;
}

.slide-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  min-width: 0;
}

.slide-card-header h3,
.slide-card-header p,
.slide-card p {
  margin: 0;
}

.slide-card-header h3 {
  color: var(--sa-blue-900);
  font-size: 1rem;
  font-weight: 850;
  overflow-wrap: anywhere;
}

.slide-card-header p,
.slide-card > p {
  color: var(--sa-gray-700);
}

.slide-card-code {
  color: var(--sa-blue-900);
  font-size: 1rem;
  font-weight: 880;
  overflow-wrap: anywhere;
}

.slide-card-compact .badge-status {
  grid-column: 2;
  grid-row: 1 / span 2;
}

.slide-reading-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
  min-width: 0;
}

.record-shell {
  display: grid;
  gap: 1rem;
}

.record-hero,
.PatientHeaderCard,
.CaseHeaderCard,
.SpecimenHeaderCard,
.ReportHeaderCard,
.QualityHeaderCard,
.ArchiveHeaderCard,
.AccessHeaderCard {
  background: var(--sa-white);
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  box-shadow: var(--sa-shadow);
  padding: 1.25rem;
  position: relative;
  overflow: visible;
}

.record-hero:has(.dropdown-menu.show),
.PatientHeaderCard:has(.dropdown-menu.show),
.CaseHeaderCard:has(.dropdown-menu.show),
.SpecimenHeaderCard:has(.dropdown-menu.show),
.ReportHeaderCard:has(.dropdown-menu.show),
.QualityHeaderCard:has(.dropdown-menu.show),
.ArchiveHeaderCard:has(.dropdown-menu.show),
.AccessHeaderCard:has(.dropdown-menu.show) {
  z-index: 1040;
}

.record-hero::before,
.PatientHeaderCard::before,
.CaseHeaderCard::before,
.SpecimenHeaderCard::before,
.ReportHeaderCard::before,
.QualityHeaderCard::before,
.ArchiveHeaderCard::before,
.AccessHeaderCard::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: .22rem;
  border-radius: var(--sa-radius) var(--sa-radius) 0 0;
  background: linear-gradient(90deg, var(--sa-teal), var(--sa-blue-700), var(--sa-indigo));
  pointer-events: none;
}

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

.record-title {
  color: var(--sa-blue-900);
  font-size: clamp(1.35rem, 1.7vw, 1.9rem);
  font-weight: 850;
  margin: 0;
}

.record-subtitle {
  color: var(--sa-gray-700);
  margin: .3rem 0 0;
  max-width: 70rem;
}

.record-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: .65rem;
  width: 100%;
}

.record-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}

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

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

.record-field {
  min-height: 5.4rem;
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  background: #fbfcfd;
  padding: .85rem;
}

.record-field span {
  display: block;
  color: var(--sa-gray-500);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.record-field strong,
.record-field p {
  display: block;
  color: var(--sa-gray-950);
  margin: .35rem 0 0;
  overflow-wrap: anywhere;
}

.record-field strong {
  font-weight: 800;
}

.record-panel,
.AuditCard,
.TimelineCard {
  background: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(252, 254, 255, .95));
  border: 1px solid rgba(213, 222, 231, .82);
  border-radius: var(--sa-radius);
  box-shadow: var(--sa-shadow-soft);
  padding: 1rem;
}

.record-panel-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  margin-bottom: .85rem;
}

.record-panel-title {
  color: var(--sa-gray-950);
  font-size: 1.02rem;
  font-weight: 850;
  margin: 0;
}

.status-chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  justify-content: center;
  min-width: 6.25rem;
  max-width: 100%;
  border-radius: 999px;
  padding: .45rem .65rem;
  font-size: .75rem;
  font-weight: 850;
  border: 1px solid rgba(43, 95, 136, .08);
  background: linear-gradient(180deg, #eef7fb, var(--sa-blue-100));
  color: var(--sa-blue-800);
  white-space: nowrap;
}

.status-chip.success { background: var(--sa-green-100); color: #117052; }
.status-chip.success { background: linear-gradient(180deg, #f2fbf7, var(--sa-green-100)); color: #117052; }
.status-chip.danger { background: linear-gradient(180deg, #fff1f3, var(--sa-red-100)); color: #a62020; }
.status-chip.warning { background: linear-gradient(180deg, #fff8e8, var(--sa-amber-100)); color: var(--sa-amber); }
.status-chip.neutral { background: linear-gradient(180deg, #ffffff, var(--sa-gray-100)); color: var(--sa-gray-800); }

.hash-value,
.payload-box {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  font-size: .82rem;
  line-height: 1.45;
}

.payload-box {
  max-height: 26rem;
  overflow: auto;
  background: #111827;
  color: #e5edf5;
  border-radius: var(--sa-radius);
  padding: 1rem;
  border: 1px solid #273244;
}

.btn,
.page-content > p:has(> a) > a,
.page-content section > p:has(> a) > a,
.page-content article > p:has(> a) > a,
.page-content > nav:not(.breadcrumb-shell):not(.sidebar-nav):not([aria-label="Pagination"]) > a,
.page-content form.vstack > a,
.page-content section form.vstack > a,
.page-content article form.vstack > a {
  --sa-btn-bg: var(--sa-white);
  --sa-btn-border: var(--sa-gray-300);
  --sa-btn-color: var(--sa-gray-800);
  --sa-btn-hover-bg: #f4f9fc;
  --sa-btn-hover-border: var(--sa-blue-600);
  --sa-btn-hover-color: var(--sa-blue-800);
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  border-radius: .72rem;
  border-width: 1px;
  border-color: var(--sa-btn-border);
  background: var(--sa-btn-bg);
  color: var(--sa-btn-color);
  padding: .62rem 1rem;
  font-size: .92rem;
  font-weight: 820;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .68) inset, 0 8px 18px rgba(32, 39, 47, .055);
  transition: transform .14s ease, box-shadow .14s ease, background .14s ease, border-color .14s ease, color .14s ease;
}

.btn i {
  margin-right: .45rem;
  line-height: 1;
  flex: 0 0 auto;
}

.btn:hover,
.btn:focus,
.page-content > p:has(> a) > a:hover,
.page-content > p:has(> a) > a:focus,
.page-content section > p:has(> a) > a:hover,
.page-content section > p:has(> a) > a:focus,
.page-content article > p:has(> a) > a:hover,
.page-content article > p:has(> a) > a:focus,
.page-content > nav:not(.breadcrumb-shell):not(.sidebar-nav):not([aria-label="Pagination"]) > a:hover,
.page-content > nav:not(.breadcrumb-shell):not(.sidebar-nav):not([aria-label="Pagination"]) > a:focus,
.action-bar > a:hover,
.action-bar > a:focus,
.page-content form.vstack > a:hover,
.page-content form.vstack > a:focus,
.page-content section form.vstack > a:hover,
.page-content section form.vstack > a:focus,
.page-content article form.vstack > a:hover,
.page-content article form.vstack > a:focus {
  transform: translateY(-1px);
  border-color: var(--sa-btn-hover-border);
  background: var(--sa-btn-hover-bg);
  color: var(--sa-btn-hover-color);
  box-shadow: 0 12px 24px rgba(32, 39, 47, .1);
  text-decoration: none;
}

.btn:focus-visible {
  outline: 0;
  box-shadow: var(--sa-shadow-focus), 0 12px 24px rgba(32, 39, 47, .1);
}

.btn-sm {
  min-height: 2.25rem;
  border-radius: .58rem;
  padding: .45rem .75rem;
  font-size: .82rem;
}

.btn-lg {
  min-height: 3.1rem;
  border-radius: .82rem;
  padding: .75rem 1.2rem;
}

.btn-primary,
.page-content > p:has(> a) > a:first-child,
.page-content section > p:has(> a) > a:first-child,
.page-content article > p:has(> a) > a:first-child,
.page-content > nav:not(.breadcrumb-shell):not(.sidebar-nav):not([aria-label="Pagination"]) > a:first-child,
.action-bar > a:first-child {
  --sa-btn-bg: linear-gradient(180deg, var(--sa-blue-600), var(--sa-blue-700));
  --sa-btn-border: rgba(33, 67, 95, .95);
  --sa-btn-color: var(--sa-white);
  --sa-btn-hover-bg: linear-gradient(180deg, var(--sa-blue-700), var(--sa-blue-800));
  --sa-btn-hover-border: var(--sa-blue-600);
  --sa-btn-hover-color: var(--sa-white);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .2) inset, 0 12px 24px rgba(43, 95, 136, .2);
}

.btn-outline-primary {
  --sa-btn-bg: linear-gradient(180deg, #ffffff, #f5fbfe);
  --sa-btn-border: rgba(51, 120, 168, .62);
  --sa-btn-color: var(--sa-blue-800);
  --sa-btn-hover-bg: var(--sa-blue-100);
  --sa-btn-hover-border: var(--sa-blue-700);
  --sa-btn-hover-color: var(--sa-blue-900);
}

.btn-outline-secondary {
  --sa-btn-bg: linear-gradient(180deg, #ffffff, #f8fafc);
  --sa-btn-border: var(--sa-gray-300);
  --sa-btn-color: var(--sa-gray-800);
  --sa-btn-hover-bg: var(--sa-gray-100);
  --sa-btn-hover-border: #b7c5d1;
  --sa-btn-hover-color: var(--sa-gray-950);
}

.btn-danger,
.btn-outline-danger {
  --sa-btn-border: rgba(188, 62, 75, .85);
  --sa-btn-color: var(--sa-white);
  --sa-btn-hover-border: #9f2f3d;
  --sa-btn-hover-color: var(--sa-white);
}

.btn-danger {
  --sa-btn-bg: linear-gradient(180deg, #d65061, var(--sa-red));
  --sa-btn-hover-bg: linear-gradient(180deg, var(--sa-red), #9f2f3d);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .18) inset, 0 12px 24px rgba(188, 62, 75, .18);
}

.btn-outline-danger {
  --sa-btn-bg: linear-gradient(180deg, #ffffff, #fff7f8);
  --sa-btn-color: #9f2f3d;
  --sa-btn-hover-bg: var(--sa-red);
}

.btn-success,
.btn-outline-success {
  --sa-btn-border: rgba(39, 128, 95, .78);
  --sa-btn-color: var(--sa-white);
  --sa-btn-hover-border: #176d50;
  --sa-btn-hover-color: var(--sa-white);
}

.btn-success {
  --sa-btn-bg: linear-gradient(180deg, #36a276, var(--sa-green));
  --sa-btn-hover-bg: linear-gradient(180deg, var(--sa-green), #176d50);
}

.btn-outline-success {
  --sa-btn-bg: linear-gradient(180deg, #ffffff, #f4fbf7);
  --sa-btn-color: #176d50;
  --sa-btn-hover-bg: var(--sa-green);
}

.btn-outline-warning {
  --sa-btn-bg: linear-gradient(180deg, #ffffff, #fffaf0);
  --sa-btn-border: rgba(166, 107, 24, .6);
  --sa-btn-color: var(--sa-amber);
  --sa-btn-hover-bg: var(--sa-amber-100);
  --sa-btn-hover-border: var(--sa-amber);
  --sa-btn-hover-color: #7b4c0e;
}

.action-bar,
.filter-panel,
.search-panel {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: .85rem;
  width: 100%;
  min-width: 0;
}

.action-bar,
.record-actions {
  padding: .35rem;
  border-radius: .85rem;
}

.filter-panel,
.search-panel {
  background: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(249, 252, 254, .96));
  border: 1px solid rgba(213, 222, 231, .9);
  border-radius: .85rem;
  box-shadow: var(--sa-shadow-soft);
  padding: 1rem;
}

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

.filter-panel > div:not(.filter-actions):not(.search-actions),
.search-panel > div:not(.filter-actions):not(.search-actions) {
  flex: 1 1 24rem;
}

.filter-panel .MedicalFormGrid,
.search-panel .MedicalFormGrid {
  flex: 1 1 26rem;
}

.filter-panel .filter-actions,
.filter-panel .search-actions,
.search-panel .filter-actions,
.search-panel .search-actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .65rem;
}

.section-title {
  color: var(--sa-gray-950);
  font-size: 1.02rem;
  font-weight: 800;
}

.command-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  background: var(--sa-gray-200);
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  box-shadow: var(--sa-shadow-soft);
}

.command-strip > div {
  background: var(--sa-white);
  padding: 1rem;
}

.command-label {
  display: block;
  color: var(--sa-gray-500);
  font-size: .76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: .25rem;
}

.command-strip strong {
  color: var(--sa-gray-950);
  font-size: .95rem;
}

.process-rail {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .85rem;
}

.process-step {
  display: grid;
  gap: .4rem;
  min-height: 9.5rem;
  padding: 1rem;
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  background: #fbfcfd;
  color: var(--sa-gray-700);
}

.process-step:hover,
.process-step:focus {
  color: var(--sa-gray-700);
  border-color: var(--sa-blue-600);
  box-shadow: var(--sa-shadow-soft);
  text-decoration: none;
}

.process-step span {
  width: fit-content;
  border-radius: 999px;
  background: var(--sa-blue-100);
  color: var(--sa-blue-800);
  padding: .25rem .55rem;
  font-size: .75rem;
  font-weight: 800;
}

.process-step strong {
  color: var(--sa-gray-950);
  font-size: 1rem;
}

.process-step small {
  color: var(--sa-gray-700);
}

.custody-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .75rem;
}

.custody-grid > div {
  min-height: 7rem;
  padding: .85rem;
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  background: var(--sa-white);
}

.custody-grid i {
  color: var(--sa-teal);
  font-size: 1.25rem;
}

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

.custody-grid strong {
  margin-top: .55rem;
  color: var(--sa-gray-950);
}

.custody-grid span {
  color: var(--sa-gray-500);
  font-size: .85rem;
}

.control-list {
  display: grid;
  gap: .6rem;
}

.control-list a {
  display: flex;
  align-items: center;
  gap: .75rem;
  min-height: 3rem;
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  padding: .7rem .8rem;
  color: var(--sa-gray-800);
  font-weight: 700;
}

.control-list a:hover,
.control-list a:focus {
  border-color: var(--sa-blue-600);
  background: var(--sa-blue-100);
  text-decoration: none;
}

.control-list i {
  color: var(--sa-blue-700);
}

.badge-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .38rem;
  min-width: 6.25rem;
  max-width: 100%;
  border-radius: 999px;
  padding: .45rem .7rem;
  font-weight: 800;
  font-size: .75rem;
  border: 1px solid rgba(43, 95, 136, .08);
  line-height: 1.15;
  white-space: nowrap;
  text-align: center;
}

.badge-status i {
  flex: 0 0 auto;
  line-height: 1;
}

.badge-status-success {
  background: linear-gradient(180deg, #f2fbf7, var(--sa-green-100));
  color: #117052;
}

.badge-status-danger {
  background: linear-gradient(180deg, #fff1f3, var(--sa-red-100));
  color: #a62020;
}

.badge-status-warning {
  background: linear-gradient(180deg, #fff8e8, var(--sa-amber-100));
  color: var(--sa-amber);
}

.badge-status-info {
  background: linear-gradient(180deg, #eef7fb, var(--sa-blue-100));
  color: var(--sa-blue-800);
}

.timeline {
  position: relative;
  display: grid;
  gap: .85rem;
  min-width: 0;
}

.TimelineCard .timeline,
.AuditCard .timeline {
  margin-top: .25rem;
}

.case-detail-shell {
  width: 100%;
}

.case-hero {
  background: var(--sa-white);
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  box-shadow: var(--sa-shadow);
  padding: 1.25rem;
}

.case-identity-grid,
.case-summary-grid {
  display: grid;
  gap: .75rem;
}

.case-identity-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.case-summary-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.case-fact,
.case-metric,
.data-tile {
  min-height: 6rem;
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  background: #fbfcfd;
  padding: .9rem;
}

.case-fact span,
.case-metric span,
.data-tile span {
  display: block;
  color: var(--sa-gray-500);
  font-size: .73rem;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.case-fact strong,
.case-metric strong,
.data-tile strong,
.data-tile p {
  display: block;
  color: var(--sa-gray-950);
  margin-top: .35rem;
  overflow-wrap: anywhere;
}

.case-metric strong {
  color: var(--sa-blue-900);
  font-size: 1.65rem;
  line-height: 1;
}

.case-metric small {
  display: block;
  color: var(--sa-gray-700);
  margin-top: .35rem;
}

.case-timeline {
  display: grid;
  grid-template-columns: repeat(9, minmax(0, 1fr));
  gap: .5rem;
}

.case-timeline-step {
  position: relative;
  min-height: 6.75rem;
  border: 1px solid var(--sa-gray-200);
  border-radius: var(--sa-radius);
  background: #fbfcfd;
  padding: .85rem;
  min-width: 0;
}

.case-timeline-step::after {
  content: "";
  position: absolute;
  top: 2rem;
  right: -.5rem;
  width: .5rem;
  border-top: 2px solid var(--sa-gray-300);
}

.case-timeline-step:last-child::after {
  display: none;
}

.case-timeline-step.is-done {
  border-color: rgba(39, 128, 95, .35);
  background: var(--sa-green-100);
}

.case-timeline-step i {
  color: var(--sa-blue-700);
  font-size: 1.15rem;
}

.case-timeline-step.is-done i {
  color: var(--sa-green);
}

.case-timeline-step strong,
.case-timeline-step span {
  display: block;
}

.case-timeline-step strong {
  color: var(--sa-gray-950);
  font-size: .86rem;
  line-height: 1.2;
  margin-top: .55rem;
  overflow-wrap: anywhere;
}

.case-timeline-step span {
  color: var(--sa-gray-700);
  font-size: .8rem;
  margin-top: .25rem;
  overflow-wrap: anywhere;
}

.case-tabs .nav-link {
  color: var(--sa-gray-700);
  font-weight: 800;
  white-space: normal;
  min-height: 2.75rem;
}

.case-tabs .nav-link.active {
  color: var(--sa-blue-900);
}

.data-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
}

.timeline::before {
  content: "";
  position: absolute;
  top: .5rem;
  bottom: .5rem;
  left: .7rem;
  width: 2px;
  background: var(--sa-gray-200);
}

.timeline-item {
  position: relative;
  padding-left: 2.35rem;
  min-width: 0;
}

.timeline-marker {
  position: absolute;
  left: .32rem;
  top: .35rem;
  width: .8rem;
  height: .8rem;
  border-radius: 50%;
  background: var(--sa-blue-700);
  box-shadow: 0 0 0 4px var(--sa-blue-100);
}

.timeline-item-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .75rem;
  min-width: 0;
}

.timeline-item-header strong {
  color: var(--sa-gray-950);
  font-weight: 850;
  overflow-wrap: anywhere;
}

.timeline-item-header time {
  color: var(--sa-gray-500);
  flex: 0 0 auto;
  font-size: .82rem;
  font-weight: 750;
  white-space: nowrap;
}

.timeline-item-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem .8rem;
  margin-top: .35rem;
  color: var(--sa-gray-700);
  font-size: .86rem;
}

.timeline-item-meta span {
  display: inline-flex;
  align-items: center;
  gap: .32rem;
  min-width: 0;
}

.timeline-item-meta i {
  color: var(--sa-blue-700);
  flex: 0 0 auto;
}

.timeline-item p {
  color: var(--sa-gray-500);
  margin: .38rem 0 0;
  overflow-wrap: anywhere;
}

.footer {
  color: var(--sa-gray-500);
  border-top: 1px solid var(--sa-gray-200);
  background: var(--sa-white);
  padding: 1rem 1.5rem;
}

.login-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--lis-bg);
  color: var(--sa-gray-950);
}

.login-header {
  background:
    linear-gradient(180deg, var(--sa-blue-800), var(--sa-blue-900)),
    var(--sa-blue-900);
  color: var(--sa-white);
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.login-header-inner {
  width: 100%;
  max-width: 72rem;
  min-height: 4.75rem;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .65rem 1.5rem;
}

.login-brand {
  display: inline-flex;
  align-items: center;
  line-height: 1;
}

.login-brand img {
  height: 2.9rem;
  width: auto;
  max-width: 100%;
  display: block;
}

.login-secure {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: rgba(255, 255, 255, .88);
  font-size: .86rem;
  font-weight: 750;
  white-space: nowrap;
}

.login-secure i {
  font-size: 1rem;
  color: rgba(255, 255, 255, .72);
}

.login-main {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem 1.25rem 2.5rem;
}

.login-card {
  width: min(100%, 35rem);
  background: var(--sa-white);
  border: 1px solid var(--lis-border);
  border-radius: .85rem;
  padding: 2rem 2.1rem;
  box-shadow: var(--sa-shadow-premium);
}

.login-card-title {
  color: var(--sa-blue-900);
  font-size: 1.45rem;
  font-weight: 950;
  text-align: center;
  margin: 0 0 .35rem;
}

.login-card-subtitle {
  color: var(--sa-gray-500);
  font-size: .92rem;
  font-weight: 650;
  text-align: center;
  margin: 0 0 1.5rem;
}

.login-form {
  display: grid;
  gap: 1.05rem;
}

.login-submit {
  width: 100%;
  margin-top: .35rem;
}

.login-footer {
  width: 100%;
  max-width: 35rem;
  text-align: center;
  margin-top: 1.75rem;
  color: var(--sa-gray-500);
}

.login-footer p {
  margin: 0;
}

.login-footer-title {
  color: var(--sa-blue-900);
  font-size: .92rem;
  font-weight: 850;
}

.login-footer-sub {
  font-size: .82rem;
  font-weight: 650;
}

.login-footer-copy {
  margin-top: .5rem !important;
  font-size: .78rem;
  font-weight: 600;
}

.loader-overlay {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  background: rgba(244, 247, 250, .88);
  z-index: 2000;
  transition: opacity .18s ease, visibility .18s ease;
}

.loader-overlay.is-hidden {
  opacity: 0;
  visibility: hidden;
}

.loader-card {
  background: var(--sa-white);
  border-radius: 1rem;
  padding: 1.25rem 1.5rem;
  box-shadow: var(--sa-shadow);
  color: var(--sa-blue-900);
  font-weight: 800;
}

.toast-container {
  z-index: 2100;
}

.mobile-sidebar-toggle {
  display: none;
}

.app-main,
.page-content,
.sa-card,
.detail-panel,
.record-panel,
.record-hero,
.specimen-hero,
.case-hero {
  min-width: 0;
}

body {
  overflow-x: hidden;
}

.page-content > * {
  max-width: 100%;
}

.page-content > h1 + form.vstack,
.page-content > h1 + p + form.vstack,
.page-content > .breadcrumb-shell + h1 + form.vstack,
.page-content > .breadcrumb-shell + h1 + p + form.vstack {
  margin-bottom: 1rem;
}

.page-content > form.vstack + .table-responsive,
.page-content > p + .table-responsive,
.page-content > h1 + .table-responsive,
.page-content > .breadcrumb-shell + h1 + .table-responsive {
  margin-top: 1rem;
}

.page-content > form.vstack > label {
  color: var(--sa-blue-900);
  font-weight: 800;
  margin-bottom: -.55rem;
}

.page-content > form.vstack > input,
.page-content > form.vstack > select,
.page-content > form.vstack > textarea {
  width: 100%;
  padding: .55rem .75rem;
}

.page-content > form.vstack > button + a,
.page-content form.vstack > [type="submit"] + a,
.page-content form.vstack > .btn + a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  border: 1px solid var(--sa-gray-300);
  border-radius: .72rem;
  padding: .62rem 1rem;
  color: var(--sa-gray-800);
  font-weight: 820;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .68) inset, 0 8px 18px rgba(32, 39, 47, .055);
  text-decoration: none;
}

.page-content > form.vstack > button + a:hover,
.page-content form.vstack > [type="submit"] + a:hover,
.page-content form.vstack > .btn + a:hover {
  background: var(--sa-gray-100);
  border-color: #b7c5d1;
  color: var(--sa-gray-950);
  box-shadow: 0 12px 24px rgba(32, 39, 47, .1);
}

.page-content > h1 + p:not(:has(> a)) strong,
.page-content > .breadcrumb-shell + h1 + p:not(:has(> a)) strong {
  color: var(--sa-blue-900);
}

.table-responsive {
  max-width: 100%;
}

.table-modern a:not(.btn) {
  font-weight: 800;
}

.table-modern td[colspan] {
  color: var(--sa-gray-500);
  font-weight: 650;
  padding: 1.25rem !important;
  text-align: center;
}

.table-modern td:last-child .btn,
.table-modern td:last-child a.btn {
  white-space: nowrap;
}

.record-field p,
.data-card p,
.detail-panel p:last-child,
.compact-list-item p:last-child {
  margin-bottom: 0;
  overflow-wrap: anywhere;
}

.record-field strong,
.data-card strong,
.metric-value,
.badge-status,
.status-chip,
.btn {
  overflow-wrap: anywhere;
}

.badge-status,
.status-chip {
  white-space: nowrap;
  text-align: center;
}

.section-title,
.record-panel-title {
  color: var(--sa-blue-900);
  font-weight: 850;
  letter-spacing: 0;
}

.page-content > ul:not(.nav):not(.pagination):not(.breadcrumb):not(.dropdown-menu):not(.list-group) + p:has(> a),
.page-content > ol:not(.breadcrumb) + p:has(> a) {
  margin-top: 1rem;
}

.DynamicSelect {
  position: relative;
  width: 100%;
}

.DynamicSelectControl {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .45rem;
  align-items: stretch;
}

.DynamicSelectInput {
  min-height: 2.8rem;
  padding-right: 2.5rem;
  background-image: linear-gradient(45deg, transparent 50%, var(--sa-blue-700) 50%), linear-gradient(135deg, var(--sa-blue-700) 50%, transparent 50%);
  background-position: calc(100% - 1.05rem) 1.22rem, calc(100% - .72rem) 1.22rem;
  background-size: .34rem .34rem, .34rem .34rem;
  background-repeat: no-repeat;
}

.DynamicSelectInlineAdd {
  min-height: 2.8rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  border: 1px solid rgba(43, 95, 136, .22);
  border-radius: .55rem;
  background: var(--sa-blue-100);
  color: var(--sa-blue-700);
  font-size: .84rem;
  font-weight: 850;
  padding: 0 .75rem;
  box-shadow: var(--sa-shadow-soft);
}

.DynamicSelectInlineAdd:hover,
.DynamicSelectInlineAdd:focus {
  background: var(--sa-teal-100);
  color: var(--sa-teal);
  outline: 0;
}

.DynamicSelectInlineAdd[hidden] {
  display: none;
}

.DynamicSelectPanel {
  position: absolute;
  z-index: 1060;
  inset: calc(100% + .35rem) 0 auto 0;
  max-height: 20rem;
  overflow: auto;
  padding: .45rem;
  border: 1px solid rgba(213, 222, 231, .95);
  border-radius: .65rem;
  background: var(--sa-white);
  box-shadow: var(--sa-shadow-premium);
}

.DynamicSelectOption,
.DynamicSelectAdd {
  width: 100%;
  border: 0;
  border-radius: .55rem;
  background: transparent;
  color: var(--sa-gray-950);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .7rem .75rem;
  text-align: left;
}

.DynamicSelectOption:hover,
.DynamicSelectOption:focus,
.DynamicSelectAdd:hover,
.DynamicSelectAdd:focus {
  background: var(--sa-blue-100);
  outline: 0;
}

.DynamicSelectOption strong {
  display: block;
  font-weight: 800;
  line-height: 1.2;
}

.DynamicSelectOption small {
  display: block;
  color: var(--sa-gray-500);
  font-weight: 650;
  margin-top: .15rem;
}

.DynamicSelectOption em {
  flex: 0 0 auto;
  max-width: 45%;
  border-radius: 999px;
  background: var(--sa-teal-100);
  color: var(--sa-teal);
  font-style: normal;
  font-size: .75rem;
  font-weight: 800;
  padding: .25rem .5rem;
  overflow-wrap: anywhere;
}

.DynamicSelectEmpty {
  color: var(--sa-gray-700);
  font-weight: 650;
  padding: .85rem .75rem;
}

.DynamicSelectAdd {
  margin-top: .25rem;
  color: var(--sa-blue-700);
  border-top: 1px solid var(--sa-gray-200);
  border-radius: .45rem;
  font-weight: 850;
  justify-content: flex-start;
}

.DynamicSelectModal .modal-title {
  color: var(--sa-blue-900);
  font-weight: 850;
}

@media (max-width: 991.98px) {
  .topbar-grid {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .65rem;
  }

  .GlobalSearch {
    grid-column: auto;
    order: 0;
  }

  .TopbarTitle span,
  .TopbarStatus span,
  .TopbarLogoutForm {
    display: none;
  }

  .TopbarUserButton {
    max-width: 9.5rem;
  }

  .TopbarUserText small {
    display: none;
  }

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

  .NotificationActions {
    justify-content: flex-start;
  }

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

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

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

  .WorkCenterPanels,
  .ExecutiveGrid {
    grid-template-columns: 1fr;
  }

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

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

  .TaskActions {
    justify-content: stretch;
  }

  .TaskActions form,
  .TaskActions button,
  .TaskReassign,
  .TaskReassign select {
    width: 100%;
  }

  .role-chart-row {
    grid-template-columns: 1fr 3rem;
  }

  .role-chart-track {
    grid-column: 1 / -1;
  }

  .app-sidebar {
    transform: translateX(-100%);
    transition: transform .2s ease;
  }

  body.sidebar-open .app-sidebar {
    transform: translateX(0);
  }

  .sidebar-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(24, 50, 74, .5);
    z-index: 1025;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
  }

  body.sidebar-open .sidebar-backdrop {
    opacity: 1;
    pointer-events: auto;
  }

  .app-main {
    margin-left: 0;
  }

  .mobile-sidebar-toggle {
    display: inline-flex;
  }

  .page-content {
    padding: 1rem;
  }

  dl {
    grid-template-columns: 1fr;
  }

  dd {
    margin-bottom: .65rem;
  }

  .page-header {
    flex-direction: column;
  }

  .command-strip,
  .process-rail,
  .custody-grid,
  .metric-strip,
  .KPIGrid,
  .MedicalInfoGrid,
  .data-card-grid,
  .case-identity-grid,
  .case-summary-grid,
  .case-timeline,
  .data-grid,
  .record-grid,
  .record-grid.record-grid-3,
  .record-grid.record-grid-5,
  .page-content > h1:first-child + dl,
  .page-content > .breadcrumb-shell + h1 + dl,
  .page-content > dl:first-of-type {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .record-hero-main {
    flex-direction: column;
  }

  .specimen-hero-main,
  .specimen-card-header {
    flex-direction: column;
  }

  .specimen-card-status {
    justify-content: flex-start;
  }

  .specimen-layout-grid {
    grid-template-columns: 1fr;
  }

  .specimen-side-column {
    position: static;
  }

  .specimen-summary-grid,
  .specimen-block-grid,
  .specimen-two-column,
  .slide-reading-grid {
    grid-template-columns: 1fr;
  }

  .record-actions {
    justify-content: flex-start;
  }

  .action-bar,
  .filter-panel,
  .search-panel {
    align-items: stretch;
  }

  .filter-panel .filter-actions,
  .filter-panel .search-actions,
  .search-panel .filter-actions,
  .search-panel .search-actions {
    justify-content: flex-start;
    width: 100%;
  }

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

  .MedicalFormGrid,
  .MedicalFormGrid-search {
    grid-template-columns: 1fr;
  }

  .VoiceDictationToolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .VoiceDictationButton {
    width: 100%;
  }
}

@media (max-width: 767.98px) {
  .topbar-grid {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .55rem;
    min-height: 4.25rem;
    padding: .55rem 0;
  }

  .TopbarTitle,
  .TopbarStatus,
  .TopbarUserText,
  .TopbarUserButton > .bi-chevron-down {
    display: none;
  }

  .topbar-user-zone {
    gap: .45rem;
  }

  .TopbarIconButton,
  .TopbarNotificationButton,
  .TopbarUserButton {
    width: 2.45rem;
    min-height: 2.45rem;
    padding: 0;
  }

  .TopbarAvatar {
    width: 1.8rem;
    height: 1.8rem;
  }

  .GlobalSearch {
    border-radius: 8px;
    padding: .08rem .5rem;
  }

  .GlobalSearch input {
    min-height: 2.25rem;
    font-size: .9rem;
  }

  .GlobalSearchResults {
    position: fixed;
    top: 4.75rem;
    left: 1rem;
    right: 1rem;
  }

  .NotificationSummary,
  .NotificationFacts {
    grid-template-columns: 1fr;
  }

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

  .NotificationActions .btn,
  .NotificationActions form,
  .NotificationActions button {
    width: 100%;
  }

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

  .WorkCenterGrid,
  .KanbanBoard,
  .ExecutiveKpiGrid {
    grid-template-columns: 1fr;
  }

  .WorkPanelHeader {
    align-items: flex-start;
    flex-direction: column;
  }

  .QuickActionButton {
    width: 100%;
    justify-content: center;
  }

  .ExecutivePanelHeader {
    align-items: flex-start;
    flex-direction: column;
  }

  .ExecutiveBarRow {
    grid-template-columns: 1fr 3rem;
  }

  .ExecutiveBarTrack {
    grid-column: 1 / -1;
  }

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

  .page-header,
  .record-hero-main,
  .specimen-hero-main {
    align-items: stretch;
  }

  .standard-action-bar-desktop {
    display: none;
  }

  .standard-action-bar-mobile {
    display: block;
    width: 100%;
  }

  .standard-action-bar-mobile > .btn {
    width: 100%;
  }

  .standard-action-bar,
  .standard-action-menu,
  .standard-action-menu > .btn {
    width: 100%;
  }

  .standard-action-menu .dropdown-menu {
    width: 100%;
    min-width: 0;
  }

  .table-ux-toolbar {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .table-export-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
}

@page {
  size: A4 portrait;
  margin: 14mm;
}

@media print {
  .app-sidebar,
  .app-topbar,
  .breadcrumb-shell,
  .page-actions,
  .record-actions,
  .standard-action-bar,
  .table-ux-toolbar,
  .no-print,
  .KPIGrid {
    display: none !important;
  }

  body,
  .print-body {
    background: #fff !important;
    color: #20272f;
    font-size: 11px;
  }

  .app-main {
    margin-left: 0 !important;
  }

  .page-content,
  .print-shell {
    padding: 0 !important;
  }

  .print-shell {
    max-width: none;
  }

  a {
    color: inherit !important;
    text-decoration: none !important;
  }

  .print-footer {
    display: flex;
    justify-content: space-between;
    border-top: 1px solid #d5dee7;
    color: #536170;
    font-size: 10px;
    margin-top: 18px;
    padding-top: 8px;
  }

  .print-page-number::after {
    content: "Page " counter(page);
  }
}

@media (max-width: 575.98px) {
  .login-header-inner {
    min-height: 4.1rem;
    padding: .5rem 1rem;
  }

  .login-brand img {
    height: 2.4rem;
  }

  .login-secure span {
    display: none;
  }

  .login-main {
    padding: 1.25rem .9rem 2rem;
  }

  .login-card {
    padding: 1.4rem 1.15rem;
  }

  .login-card-title {
    font-size: 1.25rem;
  }

  .sa-card {
    padding: 1rem;
  }

  .kpi-value {
    font-size: 1.8rem;
  }

  .command-strip,
  .process-rail,
  .custody-grid,
  .metric-strip,
  .KPIGrid,
  .MedicalInfoGrid,
  .data-card-grid,
  .case-identity-grid,
  .case-summary-grid,
  .case-timeline,
  .data-grid,
  .specimen-summary-grid,
  .specimen-mini-grid,
  .record-grid,
  .record-grid.record-grid-3,
  .record-grid.record-grid-5,
  .page-content > h1:first-child + dl,
  .page-content > .breadcrumb-shell + h1 + dl,
  .page-content > dl:first-of-type {
    grid-template-columns: 1fr;
  }

  .breadcrumb-shell {
    border-radius: var(--sa-radius);
  }

  .app-topbar .container-fluid > .d-flex {
    align-items: flex-start !important;
  }

  .table-ux-toolbar {
    justify-content: stretch;
  }

  .table-ux-search {
    width: 100%;
  }

  .page-content > h1,
  .page-content > .breadcrumb-shell + h1,
  .page-content > form.vstack,
  .page-content section > form.vstack:not(.m-0),
  .page-content article > form.vstack:not(.m-0) {
    padding: 1rem;
  }

  .record-actions,
  .action-bar,
  .filter-panel .filter-actions,
  .filter-panel .search-actions,
  .search-panel .filter-actions,
  .search-panel .search-actions,
  .page-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .record-actions .btn,
  .action-bar .btn,
  .filter-panel .btn,
  .search-panel .btn,
  .page-actions .btn,
  .page-content > p:has(> a) > a,
  .page-content section > p:has(> a) > a,
  .page-content article > p:has(> a) > a,
  .page-content > nav:not(.breadcrumb-shell):not(.sidebar-nav):not([aria-label="Pagination"]) > a,
  .action-bar > a,
  .page-content form.vstack > a {
    width: 100%;
  }

  .specimen-badges,
  .specimen-card-status {
    align-items: flex-start;
  }

  .slide-card-header,
  .timeline-item-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .slide-card-compact {
    grid-template-columns: 1fr;
  }

  .slide-card-compact .badge-status {
    grid-column: 1;
    grid-row: auto;
    justify-self: start;
  }
}
