/*
 * Glass skin — base (screen only): page defaults and Bootstrap / DataTables components.
 * Everything reads the tokens in glass-tokens.css. Density stays close to the classic skin on purpose:
 * rows, inputs and buttons keep their height so no clinical screen needs more scrolling than before.
 */

/* ── Page ─────────────────────────────────────────────────────────────── */
html { font-size: 14px; position: relative; min-height: 100%; }
@media (min-width: 768px) { html { font-size: 16px; } }

body {
  font-family: var(--meva-font-family);
  font-size: .8125rem;
  line-height: 1.45;
  color: var(--ink-900);
  background-color: var(--fill-1);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--meva-font-display);
  font-weight: 700;
  letter-spacing: -.012em;
  line-height: 1.25;
  color: var(--ink-900);
}
h1, .h1 { font-size: 1.375rem; }
h2, .h2 { font-size: 1.1875rem; }
h3, .h3 { font-size: 1.0625rem; }
h4, .h4 { font-size: .9375rem; }
h5, .h5 { font-size: .875rem; }
h6, .h6 { font-size: .8125rem; }

a { color: var(--emerald-700); text-decoration: none; }
a:hover { color: var(--emerald-800); text-decoration: underline; }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible, summary:focus-visible {
  outline: 2px solid var(--emerald-600);
  outline-offset: 2px;
}

small, .small { font-size: .75rem; }
.text-muted { color: var(--ink-500) !important; }
hr { border-color: var(--line); opacity: 1; }
code { color: #a61e5c; font-size: .8125em; }
kbd { background: var(--fill-2); color: var(--ink-700); border: 1px solid var(--line-strong); border-radius: 5px; font-size: .6875rem; padding: .05rem .35rem; }
::selection { background: rgba(var(--emerald-rgb), .22); }

* { scrollbar-width: thin; scrollbar-color: #c7c7cc transparent; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: #c7c7cc; border-radius: 8px; border: 2px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background-color: #a1a1a6; }

.table td, .table th, .num, .text-end, .payroll-sheet td, .ui-stat-value { font-variant-numeric: tabular-nums; }

/* ── Buttons: pills ───────────────────────────────────────────────────── */
/* Same language as the overview dashboard: fully rounded, 36px, semibold labels; quiet tinted pills for
   secondary actions (lapis = act, emerald = confirm, amber = attention, red = danger). */
.btn {
  --bs-btn-font-size: .8125rem;
  --bs-btn-font-weight: 600;
  --bs-btn-line-height: 1.3;
  --bs-btn-padding-x: 1rem;
  --bs-btn-padding-y: .4375rem;
  --bs-btn-border-radius: 999px;
  --bs-btn-disabled-opacity: .5;
  --bs-btn-focus-box-shadow: 0 0 0 3px rgba(var(--bs-btn-focus-shadow-rgb), .3);
  transition: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.btn:not(.btn-link):not(.btn-close) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4375rem;
  min-height: 36px;
}
/* Icons in buttons: one size, centred on the text. Where the view already spaces the icon (me-1 …), the gap steps aside. */
.btn > .bi { display: inline-flex; font-size: 1.0769em; line-height: 1; }
.btn:has(> .bi.me-1, > .bi.me-2, > .bi.me-3, > .bi.ms-1, > .bi.ms-2, > .bi.ms-3) { gap: 0; }
.btn-sm, .btn-group-sm > .btn {
  --bs-btn-font-size: .75rem;
  --bs-btn-padding-x: .8125rem;
  --bs-btn-padding-y: .25rem;
  --bs-btn-border-radius: 999px;
}
.btn-sm:not(.btn-link):not(.btn-close), .btn-group-sm > .btn:not(.btn-link) { min-height: 30px; }
.btn-lg, .btn-group-lg > .btn {
  --bs-btn-font-size: .9375rem;
  --bs-btn-padding-x: 1.375rem;
  --bs-btn-padding-y: .5625rem;
  --bs-btn-border-radius: 999px;
}
.btn-lg:not(.btn-link):not(.btn-close) { min-height: 44px; }
/* Filled buttons: a faint top light and a soft contact shadow, as on the sign-in button but quieter. */
.btn-primary, .btn-hbys-primary, .btn-success, .btn-hbys-save, .btn-danger, .btn-hbys-delete, .btn-warning, .btn-dark {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), 0 1px 2px rgba(16, 24, 40, .14);
}
.btn-primary:focus-visible, .btn-hbys-primary:focus-visible, .btn-success:focus-visible, .btn-hbys-save:focus-visible,
.btn-danger:focus-visible, .btn-hbys-delete:focus-visible, .btn-warning:focus-visible, .btn-dark:focus-visible {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), var(--bs-btn-focus-box-shadow);
}
.btn-group > .btn, .btn-group-vertical > .btn { box-shadow: none; }

.btn-primary, .btn-hbys-primary {
  --bs-btn-color: #fff; --bs-btn-bg: var(--emerald-600); --bs-btn-border-color: transparent;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--emerald-700); --bs-btn-hover-border-color: transparent;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--emerald-800); --bs-btn-active-border-color: transparent;
  --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: var(--emerald-600); --bs-btn-disabled-border-color: transparent;
  --bs-btn-focus-shadow-rgb: var(--emerald-rgb);
}
/* Primary actions: the brand emerald pill of the sign-in button (gradient, white label, soft emerald shadow). */
.btn-primary:not(:disabled):not(.disabled), .btn-hbys-primary:not(:disabled):not(.disabled),
.btn-success:not(:disabled):not(.disabled), .btn-hbys-save:not(:disabled):not(.disabled) {
  background-image: linear-gradient(180deg, #19a077 0%, var(--emerald-600) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .26), 0 1px 2px rgba(8, 102, 75, .35), 0 8px 18px -10px rgba(11, 125, 91, .6);
}
.btn-primary:not(:disabled):not(.disabled):hover, .btn-hbys-primary:not(:disabled):not(.disabled):hover,
.btn-success:not(:disabled):not(.disabled):hover, .btn-hbys-save:not(:disabled):not(.disabled):hover {
  background-image: linear-gradient(180deg, #149a72 0%, var(--emerald-700) 100%);
}
.btn-primary:not(:disabled):not(.disabled):active, .btn-hbys-primary:not(:disabled):not(.disabled):active,
.btn-success:not(:disabled):not(.disabled):active, .btn-hbys-save:not(:disabled):not(.disabled):active { background-image: none; }
.btn-success, .btn-hbys-save {
  --bs-btn-color: #fff; --bs-btn-bg: var(--emerald-600); --bs-btn-border-color: var(--emerald-600);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--emerald-700); --bs-btn-hover-border-color: var(--emerald-700);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--emerald-800); --bs-btn-active-border-color: var(--emerald-800);
  --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: var(--emerald-600); --bs-btn-disabled-border-color: var(--emerald-600);
  --bs-btn-focus-shadow-rgb: var(--emerald-rgb);
}
.btn-danger, .btn-hbys-delete {
  --bs-btn-color: #fff; --bs-btn-bg: var(--bad-600); --bs-btn-border-color: var(--bad-600);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--bad-700); --bs-btn-hover-border-color: var(--bad-700);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #8f000f; --bs-btn-active-border-color: #8f000f;
  --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: var(--bad-600); --bs-btn-disabled-border-color: var(--bad-600);
  --bs-btn-focus-shadow-rgb: var(--bad-rgb);
}
.btn-warning {
  --bs-btn-color: #fff; --bs-btn-bg: var(--warn-600); --bs-btn-border-color: var(--warn-600);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--warn-700); --bs-btn-hover-border-color: var(--warn-700);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #7c3a06; --bs-btn-active-border-color: #7c3a06;
  --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: var(--warn-600); --bs-btn-disabled-border-color: var(--warn-600);
  --bs-btn-focus-shadow-rgb: 180, 83, 9;
}
.btn-info {
  --bs-btn-color: var(--ink-800, #2c2c2e); --bs-btn-bg: rgba(255, 255, 255, .85); --bs-btn-border-color: var(--line);
  --bs-btn-hover-color: var(--emerald-800); --bs-btn-hover-bg: var(--emerald-50); --bs-btn-hover-border-color: var(--emerald-200);
  --bs-btn-active-color: var(--emerald-800); --bs-btn-active-bg: var(--emerald-100); --bs-btn-active-border-color: var(--emerald-200);
  --bs-btn-disabled-color: var(--ink-500); --bs-btn-disabled-bg: #fff; --bs-btn-disabled-border-color: var(--line);
  --bs-btn-focus-shadow-rgb: var(--emerald-rgb);
}
.btn-secondary, .btn-hbys-secondary {
  --bs-btn-color: var(--ink-900); --bs-btn-bg: rgba(118, 118, 128, .14); --bs-btn-border-color: transparent;
  --bs-btn-hover-color: var(--ink-900); --bs-btn-hover-bg: rgba(118, 118, 128, .22); --bs-btn-hover-border-color: transparent;
  --bs-btn-active-color: var(--ink-900); --bs-btn-active-bg: rgba(118, 118, 128, .3); --bs-btn-active-border-color: transparent;
  --bs-btn-disabled-color: var(--ink-600); --bs-btn-disabled-bg: rgba(118, 118, 128, .12); --bs-btn-disabled-border-color: transparent;
  --bs-btn-focus-shadow-rgb: 110, 110, 115;
}
.btn-light, .btn-outline-light {
  --bs-btn-color: var(--ink-800, #2c2c2e); --bs-btn-bg: rgba(255, 255, 255, .85); --bs-btn-border-color: var(--line);
  --bs-btn-hover-color: var(--ink-900); --bs-btn-hover-bg: #fff; --bs-btn-hover-border-color: var(--line-strong);
  --bs-btn-active-color: var(--ink-900); --bs-btn-active-bg: var(--fill-2); --bs-btn-active-border-color: var(--line-strong);
  --bs-btn-disabled-color: var(--ink-500); --bs-btn-disabled-bg: #fff; --bs-btn-disabled-border-color: var(--line);
  --bs-btn-focus-shadow-rgb: 110, 110, 115;
}
.btn-dark {
  --bs-btn-color: #fff; --bs-btn-bg: var(--ink-900); --bs-btn-border-color: var(--ink-900);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #000; --bs-btn-hover-border-color: #000;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #000; --bs-btn-active-border-color: #000;
  --bs-btn-focus-shadow-rgb: 29, 29, 31;
}
.btn-outline-secondary {
  --bs-btn-color: var(--ink-700); --bs-btn-bg: rgba(255, 255, 255, .85); --bs-btn-border-color: var(--line);
  --bs-btn-hover-color: var(--ink-900); --bs-btn-hover-bg: var(--fill-1); --bs-btn-hover-border-color: #c2c2c8;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--ink-600); --bs-btn-active-border-color: var(--ink-600);
  --bs-btn-disabled-color: var(--ink-400); --bs-btn-disabled-bg: #fff; --bs-btn-disabled-border-color: var(--line);
  --bs-btn-focus-shadow-rgb: 110, 110, 115;
}
.btn-outline-primary, .btn-outline-info {
  --bs-btn-color: var(--emerald-700); --bs-btn-bg: rgba(255, 255, 255, .85); --bs-btn-border-color: var(--line);
  --bs-btn-hover-color: var(--emerald-800); --bs-btn-hover-bg: var(--emerald-50); --bs-btn-hover-border-color: var(--emerald-200);
  --bs-btn-active-color: var(--emerald-800); --bs-btn-active-bg: var(--emerald-100); --bs-btn-active-border-color: var(--emerald-200);
  --bs-btn-disabled-color: var(--emerald-700); --bs-btn-disabled-bg: rgba(255, 255, 255, .7); --bs-btn-disabled-border-color: var(--line);
  --bs-btn-focus-shadow-rgb: var(--emerald-rgb);
}
.btn-outline-success {
  --bs-btn-color: var(--emerald-700); --bs-btn-bg: var(--emerald-50); --bs-btn-border-color: var(--emerald-200);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--emerald-600); --bs-btn-hover-border-color: var(--emerald-600);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--emerald-700); --bs-btn-active-border-color: var(--emerald-700);
  --bs-btn-disabled-color: var(--emerald-700); --bs-btn-disabled-bg: var(--emerald-50); --bs-btn-disabled-border-color: var(--emerald-200);
  --bs-btn-focus-shadow-rgb: var(--emerald-rgb);
}
.btn-outline-danger {
  --bs-btn-color: var(--bad-700); --bs-btn-bg: var(--bad-50); --bs-btn-border-color: #f6b8be;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--bad-600); --bs-btn-hover-border-color: var(--bad-600);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--bad-700); --bs-btn-active-border-color: var(--bad-700);
  --bs-btn-disabled-color: var(--bad-700); --bs-btn-disabled-bg: var(--bad-50); --bs-btn-disabled-border-color: #f6b8be;
  --bs-btn-focus-shadow-rgb: var(--bad-rgb);
}
.btn-outline-warning {
  --bs-btn-color: #7c3a06; --bs-btn-bg: var(--warn-50); --bs-btn-border-color: #f0cf8f;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--warn-600); --bs-btn-hover-border-color: var(--warn-600);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--warn-700); --bs-btn-active-border-color: var(--warn-700);
  --bs-btn-disabled-color: #7c3a06; --bs-btn-disabled-bg: var(--warn-50); --bs-btn-disabled-border-color: #f0cf8f;
  --bs-btn-focus-shadow-rgb: 180, 83, 9;
}
.btn-outline-dark {
  --bs-btn-color: var(--ink-900); --bs-btn-bg: #fff; --bs-btn-border-color: var(--ink-300);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ink-900); --bs-btn-hover-border-color: var(--ink-900);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--ink-900); --bs-btn-active-border-color: var(--ink-900);
  --bs-btn-focus-shadow-rgb: 29, 29, 31;
}
.btn-link { --bs-btn-color: var(--emerald-700); --bs-btn-hover-color: var(--emerald-800); --bs-btn-active-color: var(--emerald-800); --bs-btn-font-weight: 600; --bs-btn-focus-shadow-rgb: var(--lapis-rgb); text-decoration: none; }
.btn-link:hover { text-decoration: none; }
.btn-ghost { background: transparent; border-color: transparent; color: var(--ink-600); }
.btn-ghost:hover { background: var(--fill-2); color: var(--ink-900); }
/* Toggle buttons that act as a segmented control (btn-group + btn-check). */
.btn-check:checked + .btn-outline-primary, .btn-check:checked + .btn-outline-secondary { box-shadow: none; }

/* ── Forms: soft filled fields ────────────────────────────────────────── */
.form-label, label.form-label { font-size: .75rem; font-weight: 500; color: var(--ink-500); margin-bottom: .375rem; }
.form-control, .form-select {
  font-size: .8125rem;
  line-height: 1.4;
  padding: .4375rem .875rem;
  min-height: 36px;
  color: var(--ink-900);
  background-color: var(--field-fill);
  border: 1px solid transparent;
  border-radius: 12px;
  box-shadow: inset 0 0 0 1px rgba(16, 24, 40, .045);
  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.form-control:hover:not(:focus):not(:disabled):not([readonly]), .form-select:hover:not(:focus):not(:disabled) { background-color: var(--field-fill-hover); }
/* Straight on the window (no panel behind), a grey fill would melt into the glass: those fields are white with a
   visible hairline. Inside cards, dialogs and menus the soft grey fill stays. */
.dashboard-content-inner :is(.form-control, .form-select):not(:is(.card, .modal-content, .card-panel, .hbys-card-panel, .app-card, .ui-card-container, .ui-form-card, .ui-table-card, .ui-filter-bar, .list-grid-wrapper, .his-grid-wrapper, .dropdown-menu, .offcanvas, .ov-card, .enc-section-card, .doctor-right-panel, .result-panel, .payroll-form-card, .payroll-section, .list-group) *):not(:focus):not(:disabled):not([readonly]) {
  background-color: #fff;
  box-shadow: inset 0 0 0 1px rgba(16, 24, 40, .12), 0 1px 2px rgba(16, 24, 40, .04);
}
.dashboard-content-inner :is(.form-control, .form-select):not(:is(.card, .modal-content, .card-panel, .hbys-card-panel, .app-card, .ui-card-container, .ui-form-card, .ui-table-card, .ui-filter-bar, .list-grid-wrapper, .his-grid-wrapper, .dropdown-menu, .offcanvas, .ov-card, .enc-section-card, .doctor-right-panel, .result-panel, .payroll-form-card, .payroll-section, .list-group) *):hover:not(:focus):not(:disabled) {
  background-color: #fff;
  box-shadow: inset 0 0 0 1px rgba(16, 24, 40, .2), 0 1px 2px rgba(16, 24, 40, .04);
}
.form-control:focus, .form-select:focus {
  color: var(--ink-900);
  background-color: #fff;
  border-color: transparent;
  box-shadow: 0 0 0 1.5px var(--emerald-600), 0 0 0 5px var(--meva-focus-ring);
  outline: 0;
}
.form-control::placeholder { color: var(--ink-400); opacity: 1; }
.form-control:disabled, .form-select:disabled, .form-control[readonly] { background-color: rgba(118, 118, 128, .07); color: var(--ink-600); box-shadow: none; }
.form-control-sm, .form-select-sm { font-size: .75rem; padding: .25rem .75rem; min-height: 30px; border-radius: 10px; }
.form-control-lg, .form-select-lg { font-size: .9375rem; padding: .5625rem 1rem; min-height: 44px; border-radius: 14px; }
textarea.form-control { min-height: 72px; }
.form-control[type="file"] { padding: .3125rem .5rem; }
.form-control-plaintext { font-size: .8125rem; color: var(--ink-900); }
.form-control-color { padding: .25rem; }

.form-select:not([multiple]):not([size]):not(.searchable-select-native) { padding-right: 2.25rem; background-position: right .75rem center; background-size: 14px 10px; text-overflow: ellipsis; }
.form-select-sm:not([multiple]):not([size]):not(.searchable-select-native) { padding-right: 2rem; background-position: right .625rem center; }
td > select.form-select:not(.searchable-select-native), td > .searchable-select { min-width: 10rem; }

.form-check-input { border-color: var(--ink-300); }
.form-check-input:checked { background-color: var(--emerald-600); border-color: var(--emerald-600); }
.form-check-input:focus { border-color: var(--emerald-600); box-shadow: 0 0 0 3px var(--meva-focus-ring); }
.form-check-input:indeterminate { background-color: var(--emerald-600); border-color: var(--emerald-600); }
.form-check-label { color: var(--ink-900); }
.form-text { color: var(--ink-500); font-size: .75rem; }
.form-range::-webkit-slider-thumb { background: var(--emerald-600); }

.input-group-text { font-size: .8125rem; padding: .4375rem .875rem; color: var(--ink-600); background: var(--field-fill); border: 1px solid transparent; border-radius: 12px; }
.input-group-sm > .form-control, .input-group-sm > .form-select, .input-group-sm > .input-group-text, .input-group-sm > .btn { font-size: .75rem; min-height: 30px; padding: .25rem .75rem; border-radius: 10px; }
.input-group > .btn { --bs-btn-border-radius: 12px; min-height: 36px; box-shadow: none; }
.input-group-sm > .btn { --bs-btn-border-radius: 10px; }

.form-control.input-validation-error, .form-select.input-validation-error,
.form-control.is-invalid, .form-select.is-invalid,
.input-validation-error + .searchable-select-toggle { border-color: var(--bad-600); background-color: #fff; }
.form-control.input-validation-error:focus, .form-select.input-validation-error:focus,
.form-control.is-invalid:focus, .form-select.is-invalid:focus { box-shadow: 0 0 0 1.5px var(--bad-600), 0 0 0 5px rgba(var(--bad-rgb), .16); }
.field-validation-error, .invalid-feedback { color: var(--bad-700); font-size: .75rem; }
.validation-summary-errors { color: var(--bad-700); }
.validation-summary-errors ul { margin-bottom: 0; padding-left: 1.1rem; }

/* Filter forms (GET): roomier fields and gaps, as on the overview's converter card. */
form[method="get" i] :is(.form-control, .form-select):not([type="checkbox"]):not([type="radio"]) { min-height: 38px; font-size: .8125rem; border-radius: 12px; padding-top: .5rem; padding-bottom: .5rem; }
form[method="get" i] :is(.form-control, .form-select).form-control-sm, form[method="get" i] .form-select-sm { padding-left: .875rem; }
form[method="get" i] .btn:not(.btn-link):not(.btn-close) { min-height: 38px; }
form[method="get" i].row, form[method="get" i] .row { --bs-gutter-x: 1rem; --bs-gutter-y: 1rem; }
form[method="get" i] .form-label { margin-bottom: .4375rem; }
.card-body:has(> form[method="get" i]) { padding: 1.25rem 1.375rem 1.375rem; }

/* ── Cards: translucent white, rim light, soft long shadow ────────────── */
.card {
  --bs-card-bg: var(--surface-card);
  --bs-card-border-width: 0;
  --bs-card-border-radius: var(--radius-card);
  --bs-card-inner-border-radius: var(--radius-card);
  --bs-card-spacer-x: 1.375rem;
  --bs-card-spacer-y: 1.25rem;
  --bs-card-cap-padding-x: 1.375rem;
  --bs-card-cap-padding-y: 1rem;
  --bs-card-cap-bg: transparent;
  --bs-card-cap-color: var(--ink-900);
  --bs-card-title-color: var(--ink-900);
  box-shadow: var(--card-shadow);
  margin-bottom: 1.125rem;
}
/* Rim light along the edge, as on the dashboard cards. */
.card::before {
  content: "";
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(160deg, rgba(255, 255, 255, .95), rgba(255, 255, 255, .25) 45%, rgba(255, 255, 255, .7));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
/* A card inside a card is a quiet section, not another floating panel. */
.card .card { --bs-card-bg: var(--surface-raised); --bs-card-border-radius: var(--radius-panel); --bs-card-inner-border-radius: var(--radius-panel); box-shadow: 0 0 0 1px var(--hairline); }
.card .card::before { display: none; }
.card.bg-white, .card.bg-light { box-shadow: var(--card-shadow); }

/* Card head: a left-aligned title on the card itself, no bar. */
.card > .card-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: .5rem .75rem;
  min-height: 0;
  padding: 1.125rem 1.375rem .25rem;
  font-family: var(--meva-font-display);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: -.012em;
  text-align: left;
  color: var(--ink-900);
  background: transparent !important;
  border-bottom: 0;
}
.card > .card-header[class*="py-"], .card > .card-header[class*="p-"] { padding: 1.125rem 1.375rem .25rem !important; }
/* Title on the left (icon + text stay together), actions and counts on the right. */
.card > .card-header:has(> .bi:first-child) { justify-content: flex-start !important; }
.card > .card-header > :is(.btn, .badge, .dropdown, .btn-group, .form-check, .form-select, .input-group, .nav, .float-end, a:not(:first-child)):not(:is(.btn, .badge, .dropdown, .btn-group, .form-check, .form-select, .input-group, .nav, .float-end, a:not(:first-child)) ~ *) { margin-left: auto; }
.card > .card-header > .float-end { float: none !important; }
.card > .card-header + .card-body, .card > .card-header + .list-group, .card > .card-header + .table-responsive { padding-top: .875rem; }
.card > .card-header + .card-body[class*="p-0"] { padding-top: .5rem !important; }
.card > .card-header :is(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, .card-title) {
  margin: 0; font-family: inherit; font-size: inherit; font-weight: inherit; letter-spacing: inherit; color: inherit;
}
.card > .card-header :is(.btn, .form-control, .form-select, .badge, small, .small, .text-muted, input, select, label, .nav-link) { font-family: var(--meva-font-family); letter-spacing: 0; }
.card > .card-header :is(small, .small, .text-muted) { font-weight: 500; }
.card-header .bi { color: var(--ink-500); }
.card-header :is(.text-white, .text-light, .text-white-50) { color: var(--ink-600) !important; }
.card-header .btn-close-white { filter: none; }
/* Colour bars of the classic skin become plain heads; danger / warning keep their signal in the title and the card's edge. */
.card > .card-header:is(.bg-primary, .bg-info, .bg-secondary, .bg-dark, .bg-success, .text-bg-primary, .text-bg-info, .text-bg-secondary, .text-bg-dark, .text-bg-success, .text-white, [class*="bg-gradient"]) { color: var(--ink-900) !important; }
.card > .card-header:is(.bg-danger, .text-bg-danger) { color: var(--bad-700) !important; }
.card > .card-header:is(.bg-warning, .text-bg-warning) { color: #7c3a06 !important; }
.card > .card-header:is(.bg-danger, .text-bg-danger) .bi, .card > .card-header:is(.bg-warning, .text-bg-warning) .bi { color: inherit; }
.card:has(> .card-header:is(.bg-danger, .text-bg-danger)) { box-shadow: 0 0 0 1.5px rgba(var(--bad-rgb), .38), var(--card-shadow); }
.card:has(> .card-header:is(.bg-warning, .text-bg-warning)) { box-shadow: 0 0 0 1.5px rgba(180, 83, 9, .38), var(--card-shadow); }
.card-title { font-family: var(--meva-font-display); font-weight: 700; font-size: 1rem; letter-spacing: -.012em; }
.card-subtitle { color: var(--ink-500) !important; }
.card-footer { background: transparent; border-top: 1px solid var(--hairline); padding: .875rem 1.375rem; }
/* "View all" style links in a card head: lapis, with a small chevron. */
.card > .card-header > a:not(.btn):not(.dropdown-item):not(.nav-link) { display: inline-flex; align-items: center; gap: 4px; font-family: var(--meva-font-family); font-size: .8125rem; font-weight: 600; letter-spacing: 0; color: var(--emerald-700); text-decoration: none; }
.card > .card-header > a:not(.btn):not(.dropdown-item):not(.nav-link)::after { content: "\f285"; font-family: "bootstrap-icons"; font-size: .6875rem; line-height: 1; }
.card > .card-header > a:not(.btn):not(.dropdown-item):not(.nav-link):hover { color: var(--emerald-800); }

/* Tabs in a card head sit on the head's bottom edge. */
.card > .card-header:has(> .card-header-tabs, > .card-header-pills, > .nav-tabs) { padding-bottom: 0 !important; }
.card > .card-header > :is(.card-header-tabs, .nav-tabs) { flex: 1 1 100%; margin: 0 -.375rem; }

/* The rich-text editor (Summernote) is built from card markup: it stays an editor, not a card. */
.note-editor.card { --bs-card-bg: #fff; --bs-card-border-radius: 14px; --bs-card-inner-border-radius: 13px; box-shadow: 0 0 0 1px var(--line); margin-bottom: 0; }
.note-editor.card::before { display: none; }
.note-editor.card > .note-toolbar.card-header {
  display: block; padding: .375rem .5rem !important;
  font-family: var(--meva-font-family); font-size: .8125rem; font-weight: 400; letter-spacing: 0;
  background: var(--fill-1) !important; border-bottom: 1px solid var(--line) !important;
}
.note-editor .note-toolbar .btn { --bs-btn-border-radius: 8px; --bs-btn-padding-x: .5rem; --bs-btn-padding-y: .25rem; --bs-btn-font-weight: 500; min-height: 30px; }

/* ── Tables: grey 12px heads, hairline rows, soft emerald hover ───────── */
.table, table.dataTable {
  --bs-table-bg: rgba(255, 255, 255, .62);
  --bs-table-border-color: rgba(16, 24, 40, .06);
  --bs-table-striped-bg: rgba(16, 24, 40, .014);
  font-size: .8125rem;
  margin-bottom: 0;
  color: var(--ink-900);
}
/* In a panel the table is part of the panel. */
:is(.card, .card-panel, .hbys-card-panel, .app-card, .ui-card-container, .ui-table-card, .ui-table-layout, .list-grid-wrapper, .his-grid-wrapper, .dashboard-card, .result-panel) .table { --bs-table-bg: transparent; }
.table > :not(caption) > * > * { padding: .75rem .875rem; border-left-width: 0 !important; border-right-width: 0 !important; }
.table > thead > tr > th, table.dataTable thead th {
  padding-top: .75rem;
  padding-bottom: .75rem;
  font-size: .75rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink-500);
  background-color: transparent;
  border-bottom: 1px solid var(--line);
  white-space: nowrap;
  vertical-align: middle;
}
.table > thead:is(.table-light, .table-dark, .thead-light, .thead-dark) > tr > th { background-color: transparent; color: var(--ink-500); }
.table > tbody > tr > td { vertical-align: middle; border-bottom: 1px solid rgba(16, 24, 40, .06); }
.table > tbody > tr:last-child > td { border-bottom-color: transparent; }
.table > tbody > tr:hover > td { --bs-table-bg-state: rgba(var(--emerald-rgb), .045); }
.table > tbody > tr[class*="table-"]:hover > td { --bs-table-bg-state: transparent; }
.table thead th .text-white { color: inherit !important; }
.table td .btn { white-space: nowrap; }
/* No vertical rules: rows are separated by hairlines only. */
.table-bordered, table.dataTable.table-bordered { border: 0 !important; }
.table-bordered > :not(caption) > * { border-width: 0; }
.table-bordered > :not(caption) > * > * { border-width: 0 0 1px; }
/* First and last columns line up with the panel's own padding. */
:is(.card, .card-panel, .app-card, .ui-table-card, .ui-table-layout, .list-grid-wrapper) > .table > * > tr > :first-child,
:is(.card, .card-panel, .app-card, .ui-table-card, .ui-table-layout, .list-grid-wrapper) > .table-responsive > .table > * > tr > :first-child,
:is(.card, .card-panel, .app-card, .ui-table-card, .ui-table-layout, .list-grid-wrapper) > :is(.card-body, .app-card-body)[class*="p-0"] > .table > * > tr > :first-child,
:is(.card, .card-panel, .app-card, .ui-table-card, .ui-table-layout, .list-grid-wrapper) > :is(.card-body, .app-card-body)[class*="p-0"] > .table-responsive > .table > * > tr > :first-child { padding-left: 1.375rem; }
:is(.card, .card-panel, .app-card, .ui-table-card, .ui-table-layout, .list-grid-wrapper) > .table > * > tr > :last-child,
:is(.card, .card-panel, .app-card, .ui-table-card, .ui-table-layout, .list-grid-wrapper) > .table-responsive > .table > * > tr > :last-child,
:is(.card, .card-panel, .app-card, .ui-table-card, .ui-table-layout, .list-grid-wrapper) > :is(.card-body, .app-card-body)[class*="p-0"] > .table > * > tr > :last-child,
:is(.card, .card-panel, .app-card, .ui-table-card, .ui-table-layout, .list-grid-wrapper) > :is(.card-body, .app-card-body)[class*="p-0"] > .table-responsive > .table > * > tr > :last-child { padding-right: 1.375rem; }

/* Dense clinical screens keep their compact rows: encounter, workspace, detail pages, dialogs, tabs. */
:is(.doctor-workspace, .content-detail-page, .modal, .tab-pane, .form-compact, .hbys-panel-dense, [class*="enc-"], .lab-results, .accordion) .table > :not(caption) > * > * { padding: .4375rem .625rem; }
:is(.doctor-workspace, .content-detail-page, .modal, .tab-pane, .form-compact, .hbys-panel-dense, [class*="enc-"], .lab-results, .accordion) .table > thead > tr > th { padding-top: .5rem; padding-bottom: .5rem; }

/* Row states carry clinical and financial meaning: tint the whole row and keep a solid edge marker. */
.table > tbody > tr.table-danger > td, .table > tbody > tr > td.table-danger { background-color: #fde3e6; color: #6f000b; }
.table > tbody > tr.table-warning > td, .table > tbody > tr > td.table-warning { background-color: #fdefd3; color: #5f2d05; }
.table > tbody > tr.table-success > td, .table > tbody > tr > td.table-success { background-color: #dff3e9; color: #06402f; }
.table > tbody > tr.table-info > td, .table > tbody > tr > td.table-info { background-color: #e3edf9; color: var(--lapis-800); }
.table > tbody > tr.table-primary > td, .table > tbody > tr > td.table-primary { background-color: #e3edf9; color: var(--lapis-800); }
.table > tbody > tr.table-secondary > td, .table > tbody > tr.table-light > td, .table > tbody > tr.table-active > td { background-color: var(--fill-2); }
.table > tbody > tr.table-danger > td:first-child { box-shadow: inset 3px 0 0 var(--bad-600); }
.table > tbody > tr.table-warning > td:first-child { box-shadow: inset 3px 0 0 var(--warn-600); }
.table > tbody > tr.table-success > td:first-child { box-shadow: inset 3px 0 0 var(--emerald-600); }
.table > tbody > tr.table-primary > td:first-child, .table > tbody > tr.table-info > td:first-child { box-shadow: inset 3px 0 0 var(--lapis-600); }
.table > tbody > tr.table-danger:hover > td { background-color: #fbd3d8; }
.table > tbody > tr.table-warning:hover > td { background-color: #fbe6bd; }
.table > tbody > tr.table-success:hover > td { background-color: #cfecdf; }
thead.table-danger > tr > th { background-color: #fde3e6; color: #6f000b; }

.table-responsive { border-radius: 14px; }
.card > .table-responsive:last-child, .card > .card-body > .table-responsive:only-child { border-radius: 0 0 var(--radius-card) var(--radius-card); }

/* Empty tables: a calm, centred grey line instead of a coloured box. */
td.dataTables_empty, .table > tbody > tr:only-child > td[colspan]:only-child, .ui-table-empty {
  padding: 2.25rem 1rem !important;
  text-align: center;
  font-size: .875rem;
  color: var(--ink-500) !important;
  background-color: transparent !important;
  --bs-table-bg-state: transparent !important;
}
:is(.table-responsive, table, .ui-table-card, .ui-table-layout, .list-grid-wrapper) + .alert-info {
  --bs-alert-bg: transparent;
  --bs-alert-border-color: transparent;
  --bs-alert-color: var(--ink-500);
  margin: .25rem 0 1rem;
  padding: 1.75rem 1rem;
  text-align: center;
  font-size: .875rem;
}

/* DataTables (auto-applied by app-shell.js to table.table) */
.table-dt-grid { width: 100% !important; }
.table-dt-grid thead tr:first-child th { position: sticky; top: 0; z-index: 2; background-color: rgba(252, 252, 253, .97); }
.table-dt-grid thead tr.his-filter-row th { position: sticky; top: 41px; z-index: 1; background: rgba(250, 250, 251, .98); padding: .375rem .5rem; }
.table-dt-grid thead tr.his-filter-row input { height: 30px; font-size: .75rem; width: 100%; border: 0; border-radius: 10px; background: var(--field-fill); color: var(--ink-900); padding: 0 .625rem; }
.table-dt-grid thead tr.his-filter-row input:focus { background: #fff; box-shadow: 0 0 0 1.5px var(--emerald-600); outline: 0; }
.table-dt-grid tbody tr.selected > td { background-color: rgba(var(--emerald-rgb), .1) !important; }
.table-dt-grid tbody tr.selected > td:first-child { box-shadow: inset 3px 0 0 var(--emerald-600); }
.table-dt-grid tbody tr[data-href] { cursor: pointer; }
table.dataTable thead > tr > th.sorting, table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc { cursor: pointer; }
table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc { color: var(--ink-900); }
/* Sort arrows stay out of the way: the active direction shows, the others appear on hover. */
table.dataTable thead > tr > th.sorting::before, table.dataTable thead > tr > th.sorting::after,
table.dataTable thead > tr > th.sorting_asc::before, table.dataTable thead > tr > th.sorting_asc::after,
table.dataTable thead > tr > th.sorting_desc::before, table.dataTable thead > tr > th.sorting_desc::after { color: var(--ink-500); }
table.dataTable thead > tr > th.sorting:not(:hover)::before, table.dataTable thead > tr > th.sorting:not(:hover)::after,
table.dataTable thead > tr > th.sorting_asc::before, table.dataTable thead > tr > th.sorting_desc::after { opacity: 0 !important; }
.table > thead > tr > th, table.dataTable > thead > tr > th { border-top: 0 !important; }
.dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter, .dataTables_wrapper .dataTables_info { font-size: .75rem; color: var(--ink-500); padding: .375rem 0; }
.dataTables_wrapper .dataTables_length select, .dataTables_wrapper .dataTables_filter input {
  font-size: .75rem; min-height: 32px; padding: .25rem .75rem; border: 0; border-radius: 10px; background-color: var(--field-fill); color: var(--ink-900);
}
.dataTables_wrapper .dataTables_filter input { border-radius: 999px; padding-left: 1rem; }
.dataTables_wrapper .dataTables_paginate { padding-top: .5rem; }
.dataTables_wrapper .dataTables_length select { padding-right: 1.75rem; margin: 0 .375rem; }
.dataTables_wrapper .dataTables_filter label { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .375rem; max-width: 100%; }
.dataTables_wrapper .dataTables_filter input { flex: 1 1 8rem; min-width: 0; max-width: 100%; margin-left: 0 !important; }
.dataTables_wrapper .dataTables_filter input:focus, .dataTables_wrapper .dataTables_length select:focus { background-color: #fff; box-shadow: 0 0 0 1.5px var(--emerald-600), 0 0 0 5px var(--meva-focus-ring); outline: 0; }
.dataTables_wrapper .pagination, .pagination { flex-wrap: wrap; row-gap: .25rem; }
@media (max-width: 575.98px) {
  .dataTables_wrapper .dataTables_paginate, .dataTables_wrapper .dataTables_info { text-align: center !important; white-space: normal; }
  .dataTables_wrapper .dataTables_paginate .pagination { justify-content: center !important; }
  .dataTables_wrapper .dataTables_filter input { width: 100% !important; max-width: 16rem; }
}
.dt-buttons .dt-button, .buttons-excel, .buttons-csv, .buttons-pdf, .buttons-print {
  font-size: .75rem; font-weight: 600; padding: .25rem .8125rem; border-radius: 999px; background: #fff; border: 1px solid var(--line-strong); color: var(--ink-700);
}
.dt-buttons .dt-button:hover { background: var(--fill-1); color: var(--ink-900); }

/* ── Chips (badges) ───────────────────────────────────────────────────── */
/* lapis = open / in progress, emerald = done, amber = pending, red = danger (solid: the loudest thing in a row). */
.badge {
  --bs-badge-font-size: .71875rem; --bs-badge-font-weight: 600; --bs-badge-padding-x: .6875em; --bs-badge-padding-y: .32em; --bs-badge-border-radius: 999px;
  border: 1px solid transparent; letter-spacing: 0; line-height: 1.25; vertical-align: middle;
}
.badge.bg-success, .badge.text-bg-success { background-color: var(--emerald-50) !important; color: var(--emerald-800) !important; border-color: var(--emerald-200); }
.badge.bg-primary, .badge.text-bg-primary { background-color: var(--emerald-50) !important; color: var(--emerald-800) !important; border-color: var(--emerald-200); }
.badge.bg-info, .badge.text-bg-info { background-color: var(--lapis-50) !important; color: var(--lapis-700) !important; border-color: var(--lapis-200); }
.badge.bg-warning, .badge.text-bg-warning { background-color: var(--warn-50) !important; color: #7c3a06 !important; border-color: #f0cf8f; }
.badge.bg-secondary, .badge.text-bg-secondary, .badge.bg-light, .badge.text-bg-light { background-color: var(--fill-2) !important; color: var(--ink-600) !important; border-color: transparent; }
.badge.bg-dark, .badge.text-bg-dark { background-color: var(--ink-900) !important; color: #fff !important; }
.badge.bg-danger, .badge.text-bg-danger { background-color: var(--bad-600) !important; color: #fff !important; }
.badge.rounded-pill { --bs-badge-border-radius: 999px; }

/* ── Alerts ───────────────────────────────────────────────────────────── */
.alert { --bs-alert-padding-x: 1.125rem; --bs-alert-padding-y: .75rem; --bs-alert-border-radius: 16px; --bs-alert-margin-bottom: 1rem; font-size: .8125rem; }
.alert-success { --bs-alert-color: #06402f; --bs-alert-bg: var(--emerald-50); --bs-alert-border-color: var(--emerald-200); --bs-alert-link-color: #06402f; }
.alert-danger { --bs-alert-color: #7a000c; --bs-alert-bg: var(--bad-50); --bs-alert-border-color: #f6b8be; --bs-alert-link-color: #7a000c; }
.alert-warning { --bs-alert-color: #5f2d05; --bs-alert-bg: var(--warn-50); --bs-alert-border-color: #f5d9a6; --bs-alert-link-color: #5f2d05; }
.alert-info, .alert-primary { --bs-alert-color: var(--lapis-800); --bs-alert-bg: var(--lapis-50); --bs-alert-border-color: var(--lapis-200); --bs-alert-link-color: var(--lapis-800); }
.alert-secondary, .alert-light { --bs-alert-color: var(--ink-700); --bs-alert-bg: rgba(255, 255, 255, .7); --bs-alert-border-color: var(--line); }
.alert-dismissible .btn-close { padding: .875rem 1rem; }

/* ── Modals, dropdowns, popovers ──────────────────────────────────────── */
.modal { --bs-modal-border-width: 0; --bs-modal-border-radius: 24px; --bs-modal-inner-border-radius: 24px; --bs-modal-box-shadow: var(--meva-shadow-lg); --bs-modal-header-padding: 1.125rem 1.375rem .75rem; --bs-modal-padding: 1rem 1.375rem; --bs-modal-footer-gap: .5rem; --bs-modal-header-border-color: transparent; --bs-modal-footer-border-color: var(--hairline); }
.modal-content { box-shadow: 0 0 0 1px rgba(16, 24, 40, .06), 0 32px 80px -24px rgba(16, 24, 40, .45); border: 0; }
.modal-header { background: transparent; }
.modal-title { font-family: var(--meva-font-display); font-size: 1.125rem; font-weight: 700; letter-spacing: -.014em; color: inherit; }
.modal-body { font-size: .8125rem; }
.modal-footer { padding: .875rem 1.375rem; background: transparent; border-radius: 0 0 24px 24px; }
.modal-backdrop { --bs-backdrop-bg: #0f1d24; --bs-backdrop-opacity: .34; }
/* Coloured dialog heads of the classic skin: plain, the title carries danger / warning. */
.modal-header:is(.bg-primary, .bg-info, .bg-secondary, .bg-dark, .bg-success, .text-bg-primary, .text-bg-info, .text-bg-success, .text-bg-dark, .text-white) { background: transparent !important; color: var(--ink-900) !important; }
.modal-header:is(.bg-danger, .text-bg-danger) { background: transparent !important; color: var(--bad-700) !important; }
.modal-header:is(.bg-warning, .text-bg-warning) { background: transparent !important; color: #7c3a06 !important; }
.modal-header .btn-close-white { filter: none; }
.modal-header .text-white { color: inherit !important; }

.dropdown-menu {
  --bs-dropdown-font-size: .8125rem;
  --bs-dropdown-padding-x: .375rem;
  --bs-dropdown-padding-y: .375rem;
  --bs-dropdown-border-width: 0;
  --bs-dropdown-border-radius: 16px;
  --bs-dropdown-bg: #fff;
  --bs-dropdown-color: var(--ink-900);
  --bs-dropdown-link-color: var(--ink-900);
  --bs-dropdown-link-hover-color: var(--ink-900);
  --bs-dropdown-link-hover-bg: rgba(16, 24, 40, .05);
  --bs-dropdown-link-active-color: var(--emerald-800);
  --bs-dropdown-link-active-bg: var(--emerald-50);
  --bs-dropdown-item-padding-x: .75rem;
  --bs-dropdown-item-padding-y: .4375rem;
  --bs-dropdown-header-color: var(--ink-500);
  --bs-dropdown-header-padding-x: .75rem;
  --bs-dropdown-divider-bg: var(--hairline);
  --bs-dropdown-divider-margin-y: .25rem;
  box-shadow: 0 0 0 1px rgba(16, 24, 40, .07), 0 18px 44px -14px rgba(16, 24, 40, .32);
}
.dropdown-item { border-radius: 10px; display: flex; align-items: center; gap: .5rem; min-height: 34px; }
.dropdown-item > .bi { display: inline-flex; width: 18px; justify-content: center; font-size: 15px; line-height: 1; }
.dropdown-header { font-size: .75rem; font-weight: 500; }
/* Menus of the window chrome (top bar, sub-navigation) are frosted where the browser can blur: one small layer,
   only while open. Menus inside the page stay solid white, like all page content. */
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  :is(.dashboard-topbar, .top-submenu-bar) .dropdown-menu {
    --bs-dropdown-bg: rgba(255, 255, 255, .86);
    -webkit-backdrop-filter: blur(22px) saturate(180%);
    backdrop-filter: blur(22px) saturate(180%);
  }
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
  :is(.dashboard-topbar, .top-submenu-bar) .dropdown-menu { --bs-dropdown-bg: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; }
}
.dashboard-content .dropdown-menu { max-height: min(70vh, 30rem); overflow-y: auto; }
.popover { --bs-popover-border-color: transparent; --bs-popover-border-radius: 14px; --bs-popover-font-size: .8125rem; box-shadow: 0 0 0 1px rgba(16, 24, 40, .07), var(--meva-shadow-md); }
.tooltip { --bs-tooltip-font-size: .75rem; --bs-tooltip-border-radius: 8px; --bs-tooltip-bg: var(--ink-900); }

/* ── Navs: underline tabs, segmented pills ────────────────────────────── */
.nav-tabs {
  --bs-nav-tabs-border-width: 0; --bs-nav-tabs-link-active-bg: #fff; --bs-nav-tabs-link-active-color: var(--emerald-800);
  display: inline-flex; flex-wrap: wrap; gap: 2px; max-width: 100%; padding: 3px; margin-bottom: .875rem;
  border: 0; border-radius: 22px; background: rgba(255, 255, 255, .62);
  box-shadow: 0 0 0 1px rgba(16, 24, 40, .06), inset 0 1px 0 rgba(255, 255, 255, .85);
}
.nav-tabs.nav-fill, .nav-tabs.nav-justified, .nav-tabs.flex-column { display: flex; }
.nav-tabs .nav-link { display: inline-flex; align-items: center; gap: .375rem; font-size: .8125rem; font-weight: 500; color: var(--ink-600); padding: .375rem .875rem; border: 0 !important; border-radius: 999px !important; margin: 0 !important; background: transparent; }
.nav-tabs .nav-link:hover { color: var(--ink-900); background: rgba(0, 0, 0, .04); }
.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { color: var(--emerald-800); font-weight: 600; background: #fff; box-shadow: 0 0 0 1px rgba(16, 24, 40, .05), 0 1px 2px rgba(16, 24, 40, .1); }
.nav-tabs .nav-link.active > .bi { color: var(--emerald-600); }
.nav-tabs .nav-link.disabled { color: var(--ink-400); background: transparent; }
.nav-pills { --bs-nav-pills-border-radius: 999px; --bs-nav-pills-link-active-bg: #fff; --bs-nav-pills-link-active-color: var(--emerald-800); gap: 2px; background: rgba(255, 255, 255, .62); padding: 3px; border-radius: 999px; box-shadow: 0 0 0 1px rgba(16, 24, 40, .06), inset 0 1px 0 rgba(255, 255, 255, .85); display: inline-flex; flex-wrap: wrap; }
.nav-pills .nav-link { display: inline-flex; align-items: center; gap: .375rem; font-size: .8125rem; font-weight: 500; color: var(--ink-600); padding: .375rem .875rem; }
.nav-pills .nav-link:hover { color: var(--ink-900); background: rgba(0, 0, 0, .04); }
.nav-pills .nav-link.active { font-weight: 600; box-shadow: 0 0 0 1px rgba(16, 24, 40, .05), 0 1px 2px rgba(16, 24, 40, .1); }
.nav-pills .nav-link.active > .bi { color: var(--emerald-600); }
.nav-pills.flex-column, .nav-pills.nav-fill, .nav-pills.nav-justified { display: flex; }
.nav-pills.flex-column { border-radius: var(--radius-panel); --bs-nav-pills-border-radius: 10px; }

.pagination { --bs-pagination-font-size: .75rem; --bs-pagination-padding-x: .75rem; --bs-pagination-padding-y: .375rem; --bs-pagination-color: var(--ink-700); --bs-pagination-bg: #fff; --bs-pagination-border-color: var(--line); --bs-pagination-hover-color: var(--ink-900); --bs-pagination-hover-bg: var(--fill-1); --bs-pagination-hover-border-color: var(--line-strong); --bs-pagination-focus-color: var(--ink-900); --bs-pagination-focus-bg: var(--fill-1); --bs-pagination-focus-box-shadow: 0 0 0 3px var(--meva-focus-ring); --bs-pagination-active-color: #fff; --bs-pagination-active-bg: var(--emerald-600); --bs-pagination-active-border-color: var(--emerald-600); --bs-pagination-disabled-color: var(--ink-300); --bs-pagination-disabled-bg: rgba(255, 255, 255, .6); --bs-pagination-disabled-border-color: var(--line); --bs-pagination-border-radius: 999px; gap: 4px; }
/* Separate round keys instead of one joined strip. */
.pagination .page-item .page-link { min-width: 34px; text-align: center; font-weight: 600; border-radius: 999px !important; margin-left: 0 !important; }
.pagination-sm .page-item .page-link { min-width: 30px; }

.list-group { --bs-list-group-bg: var(--surface-raised); --bs-list-group-border-color: var(--hairline); --bs-list-group-border-radius: var(--radius-panel); --bs-list-group-item-padding-x: 1rem; --bs-list-group-item-padding-y: .625rem; --bs-list-group-action-hover-bg: rgba(var(--emerald-rgb), .04); --bs-list-group-action-active-bg: var(--fill-2); --bs-list-group-active-bg: var(--emerald-50); --bs-list-group-active-color: var(--emerald-800); --bs-list-group-active-border-color: var(--emerald-200); font-size: .8125rem; }
.card > .list-group-flush { --bs-list-group-bg: transparent; }
.accordion { --bs-accordion-bg: var(--surface-card); --bs-accordion-border-color: var(--hairline); --bs-accordion-border-radius: 16px; --bs-accordion-inner-border-radius: 15px; --bs-accordion-btn-padding-x: 1.125rem; --bs-accordion-btn-padding-y: .75rem; --bs-accordion-body-padding-x: 1.125rem; --bs-accordion-body-padding-y: 1rem; --bs-accordion-active-bg: transparent; --bs-accordion-active-color: var(--ink-900); --bs-accordion-btn-focus-box-shadow: 0 0 0 3px var(--meva-focus-ring); }
.accordion-button { font-size: .875rem; font-weight: 600; }
.accordion-button:not(.collapsed) { box-shadow: inset 0 -1px 0 var(--hairline); }
.progress { --bs-progress-height: .5rem; --bs-progress-bg: rgba(16, 24, 40, .06); --bs-progress-bar-bg: var(--emerald-600); --bs-progress-border-radius: 999px; }
.breadcrumb { --bs-breadcrumb-font-size: .75rem; --bs-breadcrumb-divider-color: var(--ink-300); --bs-breadcrumb-item-active-color: var(--ink-900); margin-bottom: .5rem; }
.breadcrumb-item.active { font-weight: 600; }
.offcanvas { --bs-offcanvas-border-width: 0; --bs-offcanvas-box-shadow: var(--meva-shadow-lg); }
.toast { --bs-toast-border-width: 0; --bs-toast-border-radius: 14px; --bs-toast-box-shadow: 0 0 0 1px rgba(16, 24, 40, .07), var(--meva-shadow-md); --bs-toast-font-size: .8125rem; }
.spinner-border.text-primary { color: var(--emerald-600) !important; }
.border { border-color: var(--line) !important; }
.bg-light { background-color: rgba(244, 246, 247, .88) !important; }
.shadow-sm { box-shadow: 0 0 0 1px rgba(16, 24, 40, .05), var(--meva-shadow-sm) !important; }
.shadow { box-shadow: 0 0 0 1px rgba(16, 24, 40, .05), var(--meva-shadow-md) !important; }
.rounded { border-radius: var(--radius-control) !important; }
/* Sentence case everywhere: no uppercase, letter-spaced micro labels. */
.text-uppercase { text-transform: none !important; letter-spacing: 0 !important; }
/* Page description under a large title: one calm line, then the page. */
:is(.page-header, .ui-page-header) p.text-muted { margin: .375rem 0 0; font-size: .875rem; }

/* select2 (where used) */
.select2-container .select2-selection--single { height: 36px; border: 0; border-radius: 12px; background: var(--field-fill); font-size: .8125rem; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 36px; padding-left: 14px; font-size: .8125rem; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 34px; }
.select2-dropdown { font-size: .8125rem; border-color: var(--line); border-radius: 14px; overflow: hidden; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-results__option--highlighted { background-color: var(--emerald-600); color: #fff; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
@media (prefers-contrast: more) {
  .form-control, .form-select, .input-group-text { background-color: #fff; border-color: var(--ink-400); box-shadow: none; }
  .card::before { display: none; }
  .card { box-shadow: 0 0 0 1px var(--ink-400); }
}

/* ── No Bootstrap blue anywhere: "primary" is the brand emerald ──────── */
/* Lapis remains only a secondary accent: plain links, info chips and info alerts. */
.bg-primary, .text-bg-primary { background-color: var(--emerald-600) !important; }
.text-bg-primary { color: #fff !important; }
.text-primary { color: var(--emerald-700) !important; }
.link-primary, .link-primary:hover, .link-primary:focus { color: var(--emerald-700) !important; text-decoration-color: rgba(var(--emerald-rgb), .4) !important; }
.border-primary { border-color: var(--emerald-200) !important; }
.bg-primary-subtle { background-color: var(--emerald-50) !important; }
.text-primary-emphasis { color: var(--emerald-800) !important; }
.border-primary-subtle { border-color: var(--emerald-200) !important; }
.bg-info, .text-bg-info { background-color: var(--lapis-50) !important; }
.text-bg-info { color: var(--lapis-800) !important; }
.progress-bar, .progress-bar.bg-primary, .progress-bar.bg-info { background-color: var(--emerald-600) !important; }
.form-check-input:checked, .form-check-input[type="checkbox"]:indeterminate { background-color: var(--emerald-600); border-color: var(--emerald-600); }
.form-switch .form-check-input:focus { --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%236dd4b0'/%3e%3c/svg%3e"); }
.form-range::-moz-range-thumb { background: var(--emerald-600); }
.list-group-item.active { color: var(--emerald-800); background-color: var(--emerald-50); border-color: var(--emerald-200); }
.list-group-item.active .text-muted, .list-group-item.active small { color: var(--emerald-700) !important; }
.dropdown-item.active, .dropdown-item:active { color: var(--emerald-800); background-color: var(--emerald-50); }
.page-item.active .page-link { color: #fff; background-color: var(--emerald-600); border-color: var(--emerald-600); }
.nav-pills .nav-link.active, .nav-pills .show > .nav-link { color: var(--emerald-800); background-color: #fff; }
.alert-primary { --bs-alert-color: #06402f; --bs-alert-bg: var(--emerald-50); --bs-alert-border-color: var(--emerald-200); --bs-alert-link-color: #06402f; }
.spinner-border.text-primary, .spinner-grow.text-primary { color: var(--emerald-600) !important; }
.btn-check:checked + .btn, .btn.active, .btn.show { --bs-btn-active-border-color: transparent; }

/* Library defaults that are still Bootstrap blue: DataTables' selected row, the accordion chevron, close focus. */
html.ui-glass {
  --dt-row-selected: 222, 244, 234;
  --dt-row-selected-text: 29, 29, 31;
  --dt-row-selected-link: 8, 102, 75;
}
table.dataTable > tbody > tr.selected > td:first-child { box-shadow: inset 3px 0 0 var(--emerald-600), inset 0 0 0 9999px rgb(var(--dt-row-selected)); }
.accordion { --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2308664b' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); }
.btn-close { --bs-btn-close-focus-shadow: 0 0 0 3px var(--meva-focus-ring); }

/* Segmented toggles — a btn-group that is a choice (btn-check radios, or outline buttons with one marked active /
   primary), e.g. "Today | All patients": the dashboard's period selector. A soft track, the chosen option a white
   pill with dark text. Plain action groups (edit / delete) are not toggles and keep their own colours. */
.btn-group:is(:has(> .btn-check), :has(> :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-info)):has(> :is(.btn-primary, .btn-secondary, .btn-info, .btn-dark, .active, [aria-current="page"], [aria-pressed="true"]))):not(:has(> .dropdown-menu)):not(.note-btn-group):not(.note-toolbar *) {
  gap: 2px; padding: 3px; border-radius: 999px; vertical-align: middle;
  background: rgba(255, 255, 255, .62);
  box-shadow: 0 0 0 1px rgba(16, 24, 40, .06), inset 0 1px 0 rgba(255, 255, 255, .85);
}
.btn-group:is(:has(> .btn-check), :has(> :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-info)):has(> :is(.btn-primary, .btn-secondary, .btn-info, .btn-dark, .active, [aria-current="page"], [aria-pressed="true"]))):not(:has(> .dropdown-menu)):not(.note-btn-group):not(.note-toolbar *) > .btn:not(.btn-outline-danger):not(.btn-outline-warning):not(.btn-outline-success):not(.btn-danger):not(.btn-warning) {
  --bs-btn-bg: transparent; --bs-btn-border-color: transparent; --bs-btn-color: var(--ink-600);
  --bs-btn-hover-bg: rgba(0, 0, 0, .04); --bs-btn-hover-border-color: transparent; --bs-btn-hover-color: var(--ink-900);
  --bs-btn-active-bg: #fff; --bs-btn-active-border-color: transparent; --bs-btn-active-color: var(--ink-900);
  font-weight: 500; background-image: none; box-shadow: none;
}
.btn-group:is(:has(> .btn-check), :has(> :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-info)):has(> :is(.btn-primary, .btn-secondary, .btn-info, .btn-dark, .active, [aria-current="page"], [aria-pressed="true"]))):not(:has(> .dropdown-menu)):not(.note-btn-group):not(.note-toolbar *) > .btn { margin-left: 0 !important; border-radius: 999px !important; }
.btn-group:is(:has(> .btn-check), :has(> :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-info)):has(> :is(.btn-primary, .btn-secondary, .btn-info, .btn-dark, .active, [aria-current="page"], [aria-pressed="true"]))):not(:has(> .dropdown-menu)):not(.note-btn-group):not(.note-toolbar *) > :is(.btn-primary, .btn-secondary, .btn-info, .btn-dark, .active, [aria-current="page"], [aria-pressed="true"]),
.btn-group:is(:has(> .btn-check), :has(> :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-info)):has(> :is(.btn-primary, .btn-secondary, .btn-info, .btn-dark, .active, [aria-current="page"], [aria-pressed="true"]))):not(:has(> .dropdown-menu)):not(.note-btn-group):not(.note-toolbar *) > .btn-check:checked + .btn {
  --bs-btn-color: var(--ink-900); --bs-btn-hover-color: var(--ink-900);
  color: var(--ink-900); font-weight: 600;
  background-color: #fff; background-image: none;
  box-shadow: 0 0 0 1px rgba(16, 24, 40, .05), 0 1px 2px rgba(16, 24, 40, .1);
}

/* Small things that wrapped or turned into slabs. */
.card-header .badge, .card-header .ov-count { white-space: nowrap; flex-shrink: 0; }
.dashboard-content-inner > :is(.bg-light, .bg-body-tertiary, .bg-body-secondary):not(.card):not(.alert) { background-color: transparent !important; }

/* Icon names some views use that the icon font (Bootstrap Icons 1.11) does not have, drawn with the nearest
   existing glyph instead of an empty square. */
.bi-vial::before { content: "\f342"; }              /* eyedropper, as the Lab module */
.bi-person-gear-fill::before { content: "\f8a7"; }  /* person-gear */
.bi-sigma::before { content: "\f1e0"; }             /* calculator, for a grand total */

/* ── MevaMed mark + wordmark (glass skin; rendered by Partials/_MevaMedLogo) ── */
.mevamed-brand {
  display: inline-flex;
  align-items: center;
  gap: .5em;
  font-family: var(--meva-font-display);
  font-size: 1.0625rem;
  font-weight: 700;
  letter-spacing: -.022em;
  line-height: 1;
  color: var(--ink-900);
  white-space: nowrap;
}
.mevamed-brand-mark { width: 1.75em; height: 1.75em; flex-shrink: 0; display: block; }
.mevamed-brand--login-card { display: flex; justify-content: center; font-size: 1.75rem; }
.mevamed-brand--sidebar-wordmark { font-size: 1rem; }
.mevamed-brand--hero, .mevamed-brand--landing-hero { display: flex; justify-content: center; font-size: 2.25rem; margin-bottom: .75rem; }
