@font-face{font-family:"Source Sans 3";src:url("/fonts/source-sans-3-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("/fonts/source-sans-3-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("/fonts/source-sans-3-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Noto Sans Devanagari";src:url("/fonts/noto-sans-devanagari-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Noto Sans Devanagari";src:url("/fonts/noto-sans-devanagari-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
:root {
  --ui-font-staff:"Source Sans 3","Segoe UI",sans-serif; --ui-font-devanagari:"Noto Sans Devanagari","Nirmala UI",sans-serif;
  --ui-canvas:#f3f7f5; --ui-surface:#fffdfa; --ui-surface-subtle:#f7faf8; --ui-text:#17232d; --ui-text-muted:#587080; --ui-border:#cededb;
  --ui-brand:#0f766e; --ui-brand-strong:#0a5c56; --ui-brand-soft:#ddf4ef; --ui-success:#147d55; --ui-warning:#a84a08; --ui-danger:#b42318; --ui-info:#1769aa; --ui-focus:#0b74c8;
  --ui-radius-md:16px; --ui-radius-lg:22px; --ui-shadow:0 12px 34px rgba(29,57,55,.08); --ui-space-2:.5rem; --ui-space-3:.75rem; --ui-space-4:1rem; --ui-space-5:1.5rem; --ui-space-6:2rem;
}
[data-theme="calm_blue"] { --ui-canvas:#f3f6fa; --ui-surface-subtle:#f6f9fc; --ui-border:#cedbe6; --ui-brand:#286a94; --ui-brand-strong:#1e5275; --ui-brand-soft:#e2f0f8; }
[data-theme="warm_sage"] { --ui-canvas:#f6f6f0; --ui-surface-subtle:#fafaf5; --ui-border:#d8ddcc; --ui-brand:#52735a; --ui-brand-strong:#3f5c46; --ui-brand-soft:#e8f0e4; }
html{color-scheme:light} body,button,input,select,textarea{font-family:var(--ui-font-staff)} :lang(hi),.patient-instruction{font-family:var(--ui-font-devanagari)}
button,.button-link,input,select{min-height:44px}:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid color-mix(in srgb,var(--ui-focus) 55%,white);outline-offset:2px}
.shell{background:var(--ui-canvas);color:var(--ui-text)}.panel,.topbar,.ui-patient-context{background:var(--ui-surface);border-color:var(--ui-border);box-shadow:var(--ui-shadow)}
.primary,.button-link.primary{background:var(--ui-brand);border-color:var(--ui-brand)}.primary:hover,.button-link.primary:hover{background:var(--ui-brand-strong)}
.ui-kicker{color:var(--ui-brand);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.ui-patient-context{display:flex;gap:var(--ui-space-5);align-items:center;padding:var(--ui-space-5);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg)}
.ui-patient-context h2{margin:.25rem 0}.ui-patient-context p{margin:0;color:var(--ui-text-muted)}.ui-patient-context__alerts{display:flex;flex-wrap:wrap;gap:var(--ui-space-2);margin-left:auto}.ui-patient-context__actions{margin-left:auto}
.ui-attention-summary{display:flex;gap:var(--ui-space-3);padding:var(--ui-space-4);border:1px solid #efb379;border-radius:var(--ui-radius-md);background:#fff8f0;color:var(--ui-warning)}
.ui-empty-state{padding:var(--ui-space-6);text-align:center;color:var(--ui-text-muted)}
.ui-sticky-action-bar{position:sticky;bottom:0;z-index:20;display:flex;justify-content:flex-end;gap:var(--ui-space-3);padding:var(--ui-space-4);border:1px solid var(--ui-border);border-radius:var(--ui-radius-md);background:color-mix(in srgb,var(--ui-surface) 94%,transparent);box-shadow:0 -8px 28px rgba(27,50,48,.1);backdrop-filter:blur(12px)}
.opd-intake-workspace{display:grid;gap:var(--ui-space-5)}.opd-intake-patient{display:flex;justify-content:space-between;gap:var(--ui-space-4);padding:var(--ui-space-4);border-radius:var(--ui-radius-md);background:var(--ui-brand-soft)}
.opd-intake-block{padding:var(--ui-space-5);border:1px solid var(--ui-border);border-radius:var(--ui-radius-md);background:var(--ui-surface-subtle)}.opd-intake-block>h3{margin-top:0}.opd-intake-advanced{border-top:1px solid var(--ui-border);padding-top:var(--ui-space-4)}.opd-intake-advanced summary{cursor:pointer;color:var(--ui-brand-strong);font-weight:700}
@media(max-width:1024px){.ui-patient-context{align-items:flex-start;flex-wrap:wrap}.ui-patient-context__alerts,.ui-patient-context__actions{margin-left:0;width:100%}.page-opd table thead{display:none}.page-opd table,.page-opd tbody,.page-opd tr,.page-opd td{display:block;width:100%}.page-opd tr{margin-bottom:var(--ui-space-4);padding:var(--ui-space-3);border:1px solid var(--ui-border);border-radius:var(--ui-radius-md);background:var(--ui-surface)}.page-opd td{display:grid;grid-template-columns:minmax(7rem,35%) 1fr;gap:var(--ui-space-3);border:0;padding:var(--ui-space-2)}.page-opd td:before{content:attr(data-label);color:var(--ui-text-muted);font-weight:700}}
@media(max-width:768px){.ui-patient-context{padding:var(--ui-space-4)}.ui-sticky-action-bar{border-radius:0;margin-inline:calc(var(--ui-space-4) * -1)}}
/* Reception OPD workflow */
.reception-opd-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--ui-space-4) var(--ui-space-5);
  align-items: start;
  padding: var(--ui-space-5);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-lg);
  background:
    radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--ui-brand-soft) 76%, transparent), transparent 30%),
    var(--ui-surface);
  box-shadow: var(--ui-shadow);
}
.reception-opd-hero h2 { margin: .2rem 0 .35rem; font-size: clamp(1.6rem, 3vw, 2.1rem); color: var(--ui-text); }
.reception-opd-hero p { max-width: 68ch; margin: 0; }
.reception-opd-progress {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-3);
  margin: 0;
  padding: 0;
  list-style: none;
}
.reception-opd-progress li {
  display: flex;
  align-items: center;
  gap: var(--ui-space-3);
  min-width: 0;
  padding: var(--ui-space-3) var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: 12px;
  background: color-mix(in srgb, var(--ui-surface-subtle) 88%, white);
}
.reception-opd-progress span {
  display: grid;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  background: var(--ui-brand-soft);
  color: var(--ui-brand-strong);
  font-weight: 800;
}
.reception-opd-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  margin-top: var(--ui-space-3);
  padding: .65rem var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: 12px;
  background: var(--ui-surface-subtle);
}
.reception-opd-nav > div { display: flex; flex-wrap: wrap; gap: var(--ui-space-4); }
.reception-opd-nav a { color: var(--ui-brand-strong); font-weight: 700; text-decoration: none; }
.reception-opd-nav a:hover { text-decoration: underline; }
.reception-patient-search { display: grid; gap: var(--ui-space-4); }
.reception-patient-search-form { max-width: 880px; }
.reception-search-row {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  gap: var(--ui-space-3);
  align-items: end;
}
.reception-search-row label { min-width: 0; }
.reception-patient-results { margin-top: 0; }
.reception-patient-results .button-link { white-space: nowrap; }
.reception-new-patient {
  border-top: 1px solid var(--ui-border);
  padding-top: var(--ui-space-4);
}
.reception-new-patient > summary,
.opd-other-workflows > summary {
  cursor: pointer;
  color: var(--ui-brand-strong);
  font-weight: 800;
}
.reception-registration-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ui-space-3);
}
.reception-quick-register-form {
  margin-top: var(--ui-space-4);
  border-style: solid;
  background: var(--ui-surface-subtle);
}
.opd-intake-heading { margin-bottom: 0; }
.opd-intake-patient strong,
.opd-intake-patient small { display: block; }
.opd-intake-patient small { margin-top: .2rem; color: var(--ui-text-muted); }
.opd-intake-patient > span { align-self: center; color: var(--ui-brand-strong); font-weight: 800; }
.opd-intake-essential-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ui-space-3);
}
.opd-intake-payment-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(180px, 280px));
  gap: var(--ui-space-3);
}
.opd-payment-consent-block { display: grid; gap: var(--ui-space-4); }
.opd-payment-consent-block h3 { margin-bottom: 0; }
.reception-consent-control,
.reception-checkin-control {
  align-items: flex-start;
  gap: var(--ui-space-3);
  padding: var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: 12px;
  background: var(--ui-surface);
}
.reception-consent-control { border-color: color-mix(in srgb, var(--ui-brand) 36%, var(--ui-border)); background: color-mix(in srgb, var(--ui-brand-soft) 45%, white); }
.reception-consent-control input,
.reception-checkin-control input { flex: 0 0 22px; width: 22px; height: 22px; margin-top: 1px; }
.reception-consent-control span { display: grid; gap: .2rem; }
.reception-consent-control small { color: var(--ui-text-muted); font-weight: 400; line-height: 1.4; }
.opd-intake-advanced { margin: 0; }
.opd-intake-advanced-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ui-space-3);
  margin: var(--ui-space-4) 0;
}
.opd-other-workflows { padding: var(--ui-space-4) var(--ui-space-5); }
.opd-other-workflows .billing-flow-choices { margin-top: var(--ui-space-4); }
.opd-other-workflows .billing-flow-card { min-height: 0; }
.opd-queue-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(110px, 180px));
  gap: var(--ui-space-3);
  margin: var(--ui-space-4) 0;
}
.opd-queue-summary span {
  display: grid;
  gap: .1rem;
  padding: var(--ui-space-3) var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: 12px;
  background: var(--ui-surface-subtle);
}
.opd-queue-summary strong { color: var(--ui-brand-strong); font-size: 1.35rem; }
.opd-queue-summary small { color: var(--ui-text-muted); }
.opd-queue-row-actions { display: flex; flex-wrap: wrap; gap: var(--ui-space-2); align-items: flex-start; }
.opd-queue-row-actions > * { margin: 0; }
.page-opd .opd-queue-panel > .section-title-row { align-items: center; }
.page-opd .opd-queue-panel > .section-title-row .button-link { white-space: nowrap; }

@media (max-width: 1180px) {
  .opd-intake-essential-grid,
  .opd-intake-advanced-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  .reception-registration-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-opd .frontdesk-table-wrap { overflow: visible; border: 0; background: transparent; }
  .page-opd .opd-queue-table tr { box-shadow: 0 8px 22px rgba(29,57,55,.06); }
  .page-opd .opd-queue-row-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-opd .opd-queue-row-actions > * { width: 100%; text-align: center; }
  .page-opd .opd-filter-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; }
  .page-opd .opd-filter-form label { min-width: 0; }
}

@media (max-width: 780px) {
  .page-billing .sidebar,
  .page-opd .sidebar {
    position: relative;
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-rows: auto;
    align-items: center;
    gap: var(--ui-space-3);
  }
  .page-billing .sidebar .brand,
  .page-opd .sidebar .brand { min-width: 0; }
  .page-billing .sidebar .brand > span:last-child,
  .page-opd .sidebar .brand > span:last-child { display: none; }
  .page-billing .nav,
  .page-opd .nav {
    display: flex;
    gap: var(--ui-space-2);
    min-width: 0;
    overflow-x: auto;
    padding-bottom: .25rem;
  }
  .page-billing .nav-group,
  .page-opd .nav-group { display: flex; flex: 0 0 auto; gap: var(--ui-space-2); }
  .page-billing .nav-group-title,
  .page-opd .nav-group-title { display: none; }
  .page-billing .nav a,
  .page-opd .nav a { white-space: nowrap; }
  .page-billing .sidebar-footer,
  .page-opd .sidebar-footer { padding: 0; border: 0; }
  .page-billing .sidebar-footer .badge,
  .page-opd .sidebar-footer .badge { display: none; }
  .page-billing .sidebar-footer button,
  .page-opd .sidebar-footer button { min-width: 96px; }
  .reception-opd-hero { grid-template-columns: 1fr; }
  .reception-opd-hero > .button-link { justify-self: start; }
  .reception-opd-progress { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .reception-opd-progress li { display: grid; justify-items: center; padding-inline: var(--ui-space-2); text-align: center; }
  .reception-opd-nav { align-items: flex-start; }
  .reception-registration-grid,
  .opd-intake-essential-grid,
  .opd-intake-advanced-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .opd-intake-payment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .opd-intake-patient { align-items: flex-start; }
  .page-opd .opd-queue-panel > .section-title-row { align-items: flex-start; }
}

@media (max-width: 600px) {
  .reception-search-row,
  .reception-registration-grid,
  .opd-intake-essential-grid,
  .opd-intake-payment-grid,
  .opd-intake-advanced-grid,
  .page-opd .opd-filter-form,
  .page-opd .opd-queue-row-actions { grid-template-columns: 1fr; }
  .reception-search-row button { width: 100%; }
  .reception-opd-nav { display: grid; }
  .reception-opd-nav > div { display: grid; gap: var(--ui-space-2); }
  .opd-intake-patient { display: grid; }
  .opd-queue-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .opd-queue-summary span { padding-inline: var(--ui-space-2); }
}
