/* ==========================================================================
   IAPA Portal — design system
   Visual language: docs/refarance/ui.html ("Meridian" clinic-admin mockup).
   Scope & components: docs/design.md §5. Naming: iapa- BEM, js- hooks
   (docs/TECH_STACK.md §5). No mockup class names carry over.
   ========================================================================== */

:root {
  --iapa-ink: #08261f;
  --iapa-ink-soft: #0d3d32;
  --iapa-paper: #f3f8f4;
  --iapa-surface: #ffffff;
  --iapa-primary: #0f7a4a;
  --iapa-primary-dark: #0a5c38;
  --iapa-primary-tint: #e5f5ec;
  --iapa-line: #d7e6dc;
  --iapa-line-strong: #b7d0c2;
  --iapa-muted: #5b6f66;
  --iapa-muted-soft: #8aa196;
  --iapa-amber: #c3922a;
  --iapa-amber-tint: #f8efd8;
  --iapa-red: #b42318;
  --iapa-red-tint: #f8e6e4;
  --iapa-live: #2fbe7a;
  --iapa-gold: #d4a017;
  --iapa-radius-sm: 8px;
  --iapa-radius: 12px;
  --iapa-radius-lg: 16px;
  --iapa-font: "Public Sans", -apple-system, "Segoe UI", sans-serif;
  --iapa-serif: "Fraunces", Georgia, serif;
  --iapa-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;
  --iapa-shadow-sm: 0 1px 2px rgba(15, 35, 32, 0.06);
  --iapa-shadow: 0 4px 16px rgba(15, 35, 32, 0.07);
  --iapa-sidebar-w: 248px;
}

*,
*::before,
*::after { box-sizing: border-box; }

html, body { margin: 0; padding: 0; }
html { overflow-x: clip; }

.iapa-body {
  background: var(--iapa-paper);
  color: var(--iapa-ink);
  font-family: var(--iapa-font);
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
  min-height: 100dvh;
  overflow-x: clip;
  -webkit-tap-highlight-color: rgba(28, 107, 90, 0.12);
}

.iapa-body h1,
.iapa-body h2,
.iapa-body h3 { margin: 0; font-family: var(--iapa-font); color: var(--iapa-ink); }

.iapa-body p { margin: 0; }
.iapa-body ul { list-style: none; margin: 0; padding: 0; }
.iapa-body a { color: inherit; text-decoration: none; }
.iapa-body button { font-family: inherit; cursor: pointer; }
.iapa-body :focus-visible {
  outline: 2px solid var(--iapa-primary);
  outline-offset: 2px;
  border-radius: 4px;
}

.iapa-mono { font-family: var(--iapa-mono); font-variant-numeric: tabular-nums; }

.iapa-icon {
  width: 18px; height: 18px;
  stroke: currentColor; fill: none; stroke-width: 1.75;
  stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0;
}

/* ==========================================================================
   Shell
   ========================================================================== */

.iapa-shell { display: flex; min-height: 100vh; min-height: 100dvh; }

/* ---------- sidebar ---------- */

.iapa-shell__sidebar {
  width: var(--iapa-sidebar-w); flex-shrink: 0;
  background: var(--iapa-ink);
  color: #dce8e4;
  display: flex; flex-direction: column;
  position: fixed; top: 0; left: 0; bottom: 0;
  z-index: 40;
  transition: transform 0.25s ease;
}

.iapa-shell__brand {
  display: flex; align-items: center; gap: 11px;
  padding: 22px 20px 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.iapa-shell__brand-mark { width: 34px; height: 34px; flex-shrink: 0; }
.iapa-shell__brand-word { display: flex; flex-direction: column; }
.iapa-shell__brand-name {
  font-weight: 700; font-size: 16px; letter-spacing: 0.2px; color: #fff;
}
.iapa-shell__brand-sub {
  font-size: 11px; color: #8fa69f; letter-spacing: 0.6px;
  text-transform: uppercase; margin-top: 1px;
}

.iapa-shell__nav { padding: 16px 12px; flex: 1; overflow-y: auto; }
.iapa-shell__nav-label {
  font-size: 10.5px; letter-spacing: 1px; text-transform: uppercase;
  color: #6e8580; margin: 16px 10px 8px; font-weight: 600;
}
.iapa-shell__nav-label:first-child { margin-top: 4px; }

.iapa-shell__nav-link {
  display: flex; align-items: center; gap: 11px;
  padding: 9px 12px; margin-bottom: 2px;
  border-radius: var(--iapa-radius-sm);
  font-size: 13.5px; font-weight: 500;
  color: #b7c9c4;
  position: relative;
  transition: background 0.15s ease, color 0.15s ease;
}
.iapa-shell__nav-link .iapa-icon { width: 17px; height: 17px; opacity: 0.85; }
.iapa-shell__nav-link:hover { background: rgba(255, 255, 255, 0.06); color: #fff; }
.iapa-shell__nav-link--active,
.iapa-shell__nav-link--active:hover {
  background: var(--iapa-primary); color: #fff;
}
.iapa-shell__nav-link--active .iapa-icon { opacity: 1; }
.iapa-shell__nav-link--muted,
.iapa-shell__nav-link--muted:hover {
  opacity: 0.45; pointer-events: none; background: none; color: #b7c9c4;
}

.iapa-shell__nav-badge {
  margin-left: auto; font-family: var(--iapa-mono); font-size: 10.5px;
  background: rgba(255, 255, 255, 0.12); color: #eaf3f0;
  padding: 1px 6px; border-radius: 20px; line-height: 1.5;
}
.iapa-shell__nav-link--active .iapa-shell__nav-badge {
  background: rgba(255, 255, 255, 0.22);
}

.iapa-shell__foot {
  padding: 12px 14px 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.iapa-shell__logout {
  display: flex;
  align-items: center;
  width: 100%;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  background: transparent;
  color: #c7d9d4;
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}
.iapa-shell__logout:hover {
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
}
.iapa-shell__foot-status {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 6px;
}
.iapa-shell__foot-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--iapa-live); flex-shrink: 0;
}
.iapa-shell__foot-text { font-size: 11px; color: #7e948f; line-height: 1.4; }
.iapa-shell__foot-text b { color: #c7d9d4; font-weight: 600; }

/* ---------- main column ---------- */

.iapa-shell__main {
  flex: 1; margin-left: var(--iapa-sidebar-w); min-width: 0;
  display: flex; flex-direction: column;
}

.iapa-shell__topbar {
  height: 64px; flex-shrink: 0;
  background: var(--iapa-surface);
  border-bottom: 1px solid var(--iapa-line);
  display: flex; align-items: center;
  padding: 0 24px; gap: 16px;
  position: sticky; top: 0; z-index: 30;
  transition: box-shadow 0.2s ease;
}
.iapa-shell__topbar.is-scrolled { box-shadow: var(--iapa-shadow-sm); }

.iapa-shell__menu-btn {
  display: none; background: none; border: none; padding: 6px;
  color: var(--iapa-ink); border-radius: var(--iapa-radius-sm);
}
.iapa-shell__menu-btn:hover { background: var(--iapa-paper); }

.iapa-shell__search {
  display: flex; align-items: center; gap: 9px;
  background: var(--iapa-paper); border: 1px solid var(--iapa-line);
  border-radius: 9px; padding: 8px 12px;
  width: 340px; max-width: 100%; color: var(--iapa-muted-soft);
}
.iapa-shell__search input {
  border: none; background: none; outline: none; width: 100%;
  font-family: inherit; font-size: 13.5px; color: var(--iapa-ink);
}
.iapa-shell__search input::placeholder { color: var(--iapa-muted-soft); }
.iapa-shell__search input:disabled { cursor: not-allowed; }
.iapa-shell__search .iapa-icon { width: 16px; height: 16px; }

.iapa-shell__topbar-right {
  margin-left: auto; display: flex; align-items: center; gap: 6px;
}

.iapa-shell__icon-btn {
  position: relative; width: 38px; height: 38px; border-radius: 9px;
  border: 1px solid transparent; background: none;
  display: flex; align-items: center; justify-content: center;
  color: var(--iapa-ink-soft);
}
.iapa-shell__icon-btn:hover:not(:disabled) {
  background: var(--iapa-paper); border-color: var(--iapa-line);
}
.iapa-shell__icon-btn:disabled { cursor: not-allowed; opacity: 0.55; }
.iapa-shell__icon-btn .iapa-shell__icon-dot {
  position: absolute; top: 8px; right: 8px; width: 7px; height: 7px;
  border-radius: 50%; background: var(--iapa-red);
  border: 1.5px solid var(--iapa-surface);
}

.iapa-shell__divider {
  width: 1px; height: 26px; background: var(--iapa-line); margin: 0 6px;
}

.iapa-shell__profile {
  display: flex; align-items: center; gap: 10px;
  padding: 5px 8px 5px 5px; border-radius: 10px;
}
.iapa-shell__profile:hover { background: var(--iapa-paper); }
.iapa-shell__profile-text { display: flex; flex-direction: column; line-height: 1.3; }
.iapa-shell__profile-name { font-size: 13px; font-weight: 600; color: var(--iapa-ink); }
.iapa-shell__profile-role { font-size: 11px; color: var(--iapa-muted); }
.iapa-shell__profile .iapa-icon { width: 15px; height: 15px; color: var(--iapa-muted-soft); }

.iapa-shell__overlay {
  display: none; position: fixed; inset: 0; z-index: 35;
  background: rgba(15, 35, 32, 0.35);
}

.iapa-shell__content {
  padding: 26px 28px 60px; max-width: 1400px; width: 100%;
}

/* Standalone page title used by the simpler public template set. */
.iapa-shell__title {
  font-size: 1.5rem; font-weight: 700; letter-spacing: -0.02em;
  margin-bottom: 0.75rem;
}

/* ---------- avatar ---------- */

.iapa-avatar {
  width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0;
  background: var(--iapa-primary-tint); color: var(--iapa-primary-dark);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 12.5px; font-family: var(--iapa-mono);
}

/* ==========================================================================
   Page head & buttons
   ========================================================================== */

.iapa-page-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  margin-bottom: 22px; flex-wrap: wrap; gap: 14px;
}
.iapa-page-head h1 { font-size: 23px; font-weight: 700; letter-spacing: -0.2px; }
.iapa-page-head__meta {
  font-size: 12.5px; color: var(--iapa-muted); margin-top: 5px;
  display: flex; align-items: center; gap: 7px;
}
.iapa-page-head__meta .iapa-icon {
  width: 14px; height: 14px; color: var(--iapa-muted-soft);
}

.iapa-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 10px 16px; border-radius: 9px;
  font-size: 13.5px; font-weight: 600;
  border: 1px solid transparent;
  background: var(--iapa-primary); color: #fff;
  box-shadow: var(--iapa-shadow-sm);
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
/* Beat `.iapa-body a { color: inherit }` so link-styled primary buttons stay white. */
.iapa-body a.iapa-btn,
.iapa-btn:hover:not(:disabled),
.iapa-body a.iapa-btn:hover {
  color: #fff;
}
.iapa-btn:hover:not(:disabled) { background: var(--iapa-primary-dark); }
.iapa-btn:disabled { opacity: 0.55; cursor: not-allowed; }
.iapa-btn[hidden] { display: none !important; }
.iapa-btn .iapa-icon { width: 16px; height: 16px; color: currentColor; }

.iapa-btn--ghost {
  background: var(--iapa-surface); color: var(--iapa-ink-soft);
  border-color: var(--iapa-line); box-shadow: none;
}
.iapa-body a.iapa-btn--ghost,
.iapa-btn--ghost:hover:not(:disabled),
.iapa-body a.iapa-btn--ghost:hover {
  color: var(--iapa-ink-soft);
}
.iapa-btn--ghost:hover:not(:disabled) {
  background: var(--iapa-surface); border-color: var(--iapa-line-strong);
}

.iapa-btn--danger { background: var(--iapa-red); color: #fff; }
.iapa-body a.iapa-btn--danger,
.iapa-btn--danger:hover:not(:disabled),
.iapa-body a.iapa-btn--danger:hover { color: #fff; }
.iapa-btn--danger:hover:not(:disabled) { background: #8c3535; }

.iapa-btn--sm { padding: 7px 12px; font-size: 12px; border-radius: 8px; }
.iapa-btn--sm .iapa-icon { width: 14px; height: 14px; }

/* ==========================================================================
   KPI cards
   ========================================================================== */

.iapa-kpis {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 16px; margin-bottom: 20px;
}
.iapa-kpis--2 { grid-template-columns: repeat(2, 1fr); }
.iapa-kpis[hidden],
.iapa-grid-2[hidden] {
  display: none !important;
}

.iapa-kpi {
  background: var(--iapa-surface); border: 1px solid var(--iapa-line);
  border-radius: var(--iapa-radius);
  padding: 18px 18px 16px; position: relative; overflow: hidden;
}
.iapa-kpi__wave {
  position: absolute; right: -6px; bottom: -4px;
  width: 96px; height: 44px; color: var(--iapa-primary); opacity: 0.08;
}
.iapa-kpi__top {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 14px;
}
.iapa-kpi__label {
  font-size: 12px; color: var(--iapa-muted); font-weight: 600; letter-spacing: 0.2px;
}
.iapa-kpi__icon {
  width: 30px; height: 30px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  background: var(--iapa-primary-tint); color: var(--iapa-primary-dark);
}
.iapa-kpi__icon--amber { background: var(--iapa-amber-tint); color: var(--iapa-amber); }
.iapa-kpi__icon--red { background: var(--iapa-red-tint); color: var(--iapa-red); }
.iapa-kpi__icon .iapa-icon { width: 16px; height: 16px; }
.iapa-kpi__value {
  font-family: var(--iapa-mono); font-size: 27px; font-weight: 600;
  color: var(--iapa-ink); letter-spacing: -0.5px; line-height: 1.15;
}
.iapa-kpi__value--text { font-size: 20px; letter-spacing: 0; }
.iapa-kpi__meta {
  display: flex; align-items: center; gap: 5px;
  margin-top: 8px; font-size: 12px; font-weight: 500; color: var(--iapa-muted);
}
.iapa-kpi__meta .iapa-icon { width: 13px; height: 13px; }
.iapa-kpi__meta--up { color: var(--iapa-primary-dark); font-weight: 600; }
.iapa-kpi__meta--down { color: var(--iapa-red); font-weight: 600; }
.iapa-kpi__meta--warn { color: var(--iapa-amber); font-weight: 600; }

/* ==========================================================================
   Panels & layout grids
   ========================================================================== */

.iapa-grid-2 {
  display: grid; grid-template-columns: 1.7fr 1fr;
  gap: 18px; align-items: start; margin-bottom: 18px;
}
.iapa-col-side { display: flex; flex-direction: column; gap: 18px; min-width: 0; }

.iapa-panel {
  background: var(--iapa-surface); border: 1px solid var(--iapa-line);
  border-radius: var(--iapa-radius); overflow: hidden;
}
.iapa-panel__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 18px; border-bottom: 1px solid var(--iapa-line); gap: 10px;
}
.iapa-panel__head h2 { font-size: 14.5px; font-weight: 700; }
.iapa-panel__sub {
  font-size: 11.5px; color: var(--iapa-muted); margin-top: 2px; font-weight: 500;
  line-height: 1.45;
}
.iapa-panel__body { padding: 18px 22px 20px; }

.iapa-link-more {
  font-size: 12.5px; font-weight: 600; color: var(--iapa-primary-dark);
  display: inline-flex; align-items: center; gap: 4px; white-space: nowrap;
}
.iapa-link-more:hover { color: var(--iapa-primary); }
.iapa-link-more .iapa-icon { width: 13px; height: 13px; }

/* ==========================================================================
   Tables
   ========================================================================== */

.iapa-table-wrap { overflow-x: auto; }
.iapa-table { width: 100%; border-collapse: collapse; }
.iapa-table-wrap .iapa-table { min-width: 520px; }
.iapa-table thead th {
  text-align: left; font-size: 11px; text-transform: uppercase;
  letter-spacing: 0.5px; color: var(--iapa-muted-soft); font-weight: 600;
  padding: 10px 18px; border-bottom: 1px solid var(--iapa-line);
  background: #fbfcfc; white-space: nowrap;
}
.iapa-table tbody td {
  padding: 13px 18px; border-bottom: 1px solid var(--iapa-line);
  font-size: 13.3px; vertical-align: middle;
}
.iapa-table tbody tr:last-child td { border-bottom: none; }
.iapa-table tbody tr:hover { background: #fafbfb; }
.iapa-table tbody tr.iapa-row--muted { opacity: 0.55; }
.iapa-table tbody tr.iapa-row--muted:hover { background: none; }

.iapa-time {
  font-family: var(--iapa-mono); font-weight: 600;
  color: var(--iapa-ink-soft); white-space: nowrap;
}

.iapa-person { display: flex; align-items: center; gap: 10px; }
.iapa-person__avatar {
  width: 30px; height: 30px; border-radius: 50%;
  background: var(--iapa-paper); border: 1px solid var(--iapa-line);
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; color: var(--iapa-ink-soft);
  font-family: var(--iapa-mono); flex-shrink: 0;
}
.iapa-person__name {
  font-weight: 600; color: var(--iapa-ink); font-size: 13.3px; display: block;
}
.iapa-person__sub {
  font-family: var(--iapa-mono); font-size: 11px; color: var(--iapa-muted-soft);
  display: block;
}

.iapa-venue { font-size: 12px; color: var(--iapa-muted); }

.iapa-row-action {
  background: none; border: none; color: var(--iapa-muted-soft);
  width: 26px; height: 26px; border-radius: 6px;
  display: flex; align-items: center; justify-content: center;
}
.iapa-row-action:hover:not(:disabled) { background: var(--iapa-paper); color: var(--iapa-ink); }
.iapa-row-action:disabled { cursor: default; opacity: 0.6; }

/* ==========================================================================
   Status pills
   ========================================================================== */

.iapa-pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px; border-radius: 20px;
  font-size: 11.5px; font-weight: 600; white-space: nowrap;
  background: var(--iapa-paper); color: var(--iapa-muted);
}
.iapa-pill__dot {
  width: 6px; height: 6px; border-radius: 50%; background: currentColor;
  flex-shrink: 0;
}
.iapa-pill--booked,
.iapa-pill--paid,
.iapa-pill--granted,
.iapa-pill--active {
  background: var(--iapa-primary-tint); color: var(--iapa-primary-dark);
}
.iapa-pill--pending { background: var(--iapa-amber-tint); color: var(--iapa-amber); }
.iapa-pill--cancelled,
.iapa-pill--rejected,
.iapa-pill--revoked,
.iapa-pill--expired,
.iapa-pill--failed {
  background: var(--iapa-red-tint); color: var(--iapa-red);
}

/* ==========================================================================
   Queue (manager approvals)
   ========================================================================== */

.iapa-queue { padding: 8px 10px; }
.iapa-queue__item {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 10px; border-radius: 9px;
}
.iapa-queue__item:hover { background: var(--iapa-paper); }
.iapa-queue__item + .iapa-queue__item { margin-top: 2px; }
.iapa-queue__num {
  width: 28px; height: 28px; border-radius: 7px;
  background: var(--iapa-paper); border: 1px solid var(--iapa-line);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--iapa-mono); font-size: 11.5px; font-weight: 700;
  color: var(--iapa-ink-soft); flex-shrink: 0;
}
.iapa-queue__body { min-width: 0; }
.iapa-queue__name { font-size: 13px; font-weight: 600; color: var(--iapa-ink); }
.iapa-queue__meta {
  font-size: 11px; color: var(--iapa-muted); margin-top: 1px;
  overflow: hidden; text-overflow: ellipsis;
}
.iapa-queue__wait {
  margin-left: auto; font-family: var(--iapa-mono);
  font-size: 11.5px; color: var(--iapa-muted); text-align: right;
  flex-shrink: 0;
}
.iapa-queue__wait b {
  display: block; color: var(--iapa-ink-soft); font-size: 12.5px;
}
.iapa-queue__actions {
  display: flex; gap: 6px; margin-left: 12px; flex-shrink: 0;
}

/* ==========================================================================
   Activity timeline
   ========================================================================== */

.iapa-activity { padding: 16px 18px; }
.iapa-tl { display: flex; gap: 12px; padding-bottom: 16px; position: relative; }
.iapa-tl:last-child { padding-bottom: 0; }
.iapa-tl::before {
  content: ""; position: absolute; left: 5px; top: 16px; bottom: 0;
  width: 1px; background: var(--iapa-line);
}
.iapa-tl:last-child::before { display: none; }
.iapa-tl__dot {
  width: 11px; height: 11px; border-radius: 50%;
  background: var(--iapa-surface); border: 2px solid var(--iapa-primary);
  margin-top: 2px; flex-shrink: 0; position: relative; z-index: 1;
}
.iapa-tl__dot--muted { border-color: var(--iapa-muted-soft); }
.iapa-tl__dot--warn { border-color: var(--iapa-amber); }
.iapa-tl__text { font-size: 12.8px; color: var(--iapa-ink-soft); }
.iapa-tl__text b { font-weight: 600; color: var(--iapa-ink); }
.iapa-tl__time {
  font-family: var(--iapa-mono); font-size: 11px;
  color: var(--iapa-muted-soft); margin-top: 3px;
}

/* ==========================================================================
   Alerts
   ========================================================================== */

.iapa-alerts { padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.iapa-alert {
  display: flex; gap: 11px; padding: 12px; border-radius: 9px;
  border: 1px solid var(--iapa-line); background: var(--iapa-surface);
}
.iapa-alert--warn { background: var(--iapa-amber-tint); border-color: #ebdbbb; }
.iapa-alert--crit { background: var(--iapa-red-tint); border-color: #e7c7c4; }
.iapa-alert__icon {
  width: 30px; height: 30px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  background: var(--iapa-paper); color: var(--iapa-muted);
}
.iapa-alert--warn .iapa-alert__icon { background: #efddb6; color: var(--iapa-amber); }
.iapa-alert--crit .iapa-alert__icon { background: #e3b9b6; color: var(--iapa-red); }
.iapa-alert__icon .iapa-icon { width: 15px; height: 15px; }
.iapa-alert__title { font-size: 12.8px; font-weight: 700; color: var(--iapa-ink); }
.iapa-alert__desc { font-size: 11.8px; color: var(--iapa-muted); margin-top: 2px; }
.iapa-alert__desc a { color: var(--iapa-primary-dark); font-weight: 600; }
.iapa-alert__desc a:hover { text-decoration: underline; }

/* ==========================================================================
   Clinic-access list (membership page)
   ========================================================================== */

.iapa-access { padding: 8px 10px; }
.iapa-access__item {
  display: flex; align-items: center; gap: 11px;
  padding: 10px 8px; border-radius: 9px;
}
.iapa-access__item:hover { background: var(--iapa-paper); }
.iapa-access__icon {
  width: 30px; height: 30px; border-radius: 8px; flex-shrink: 0;
  background: var(--iapa-primary-tint); color: var(--iapa-primary-dark);
  display: flex; align-items: center; justify-content: center;
}
.iapa-access__icon .iapa-icon { width: 15px; height: 15px; }
.iapa-access__body { min-width: 0; }
.iapa-access__name { font-size: 13px; font-weight: 600; color: var(--iapa-ink); }
.iapa-access__meta { font-size: 11px; color: var(--iapa-muted); margin-top: 1px; }
.iapa-access__right {
  margin-left: auto; display: flex; align-items: center; gap: 8px;
  flex-shrink: 0;
}
.iapa-access__expires {
  font-family: var(--iapa-mono); font-size: 10.5px; color: var(--iapa-muted-soft);
  display: block; text-align: right; margin-top: 2px;
}
.iapa-access__group {
  font-size: 10.5px; letter-spacing: 0.8px; text-transform: uppercase;
  color: var(--iapa-muted-soft); font-weight: 600;
  padding: 10px 8px 4px;
}
.iapa-access__group:first-child { padding-top: 6px; }

/* ==========================================================================
   States: empty, error, skeleton loading
   ========================================================================== */

.iapa-empty {
  padding: 28px 18px; text-align: center;
  color: var(--iapa-muted); font-size: 13px;
}

.iapa-error {
  padding: 22px 18px; text-align: center;
  color: var(--iapa-muted); font-size: 13px;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
}
.iapa-error .iapa-icon { width: 20px; height: 20px; color: var(--iapa-muted-soft); }

.iapa-skeleton {
  position: relative; overflow: hidden;
  background: var(--iapa-paper); border-radius: 6px;
  min-height: 12px;
}
.iapa-skeleton::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.75), transparent);
  transform: translateX(-100%);
  animation: iapaShimmer 1.4s ease-in-out infinite;
}
.iapa-skeleton--row { height: 44px; margin: 8px 18px; }
.iapa-skeleton--line { height: 12px; margin: 10px 18px; width: 55%; }
.iapa-skeleton--kpi { height: 27px; width: 64px; margin-top: 2px; }

@keyframes iapaShimmer { to { transform: translateX(100%); } }

/* ==========================================================================
   Pulse divider & footer
   ========================================================================== */

.iapa-pulse {
  height: 26px; margin: 2px 0 16px; color: var(--iapa-line-strong);
  width: 100%;
}
.iapa-pulse path { stroke: currentColor; }

.iapa-foot {
  text-align: center; padding: 20px;
  font-size: 11.5px; color: var(--iapa-muted-soft);
}

/* ==========================================================================
   Public marketing site (Meridian landing/directory/login visual language,
   iapa- BEM, IAPA patient-booking copy — see 2026-08-26-public-marketing-ui)
   ========================================================================== */

.iapa-body--public {
  background: var(--iapa-surface);
  font-size: 15px;
  line-height: 1.6;
}

.iapa-display {
  font-family: var(--iapa-serif);
  font-weight: 600;
  letter-spacing: -0.3px;
}

.iapa-wrap {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 28px;
}

.iapa-btn--lg { padding: 15px 26px; font-size: 15px; }

/* ---- site nav ---- */

.iapa-site-nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--iapa-line);
  padding-top: env(safe-area-inset-top);
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}
.iapa-site-nav__inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  height: 72px;
  gap: 16px;
}
.iapa-site-nav__brand {
  display: flex; align-items: center; gap: 10px; flex-shrink: 0;
  justify-self: start;
}
.iapa-site-nav__brand-name {
  font-weight: 800; font-size: 18px; color: var(--iapa-ink);
}
.iapa-site-nav__links {
  display: flex; gap: 28px; justify-self: center;
  font-size: 13.8px; font-weight: 600; color: var(--iapa-ink-soft);
}
.iapa-site-nav__links a:hover,
.iapa-site-nav__links a.is-current { color: var(--iapa-primary-dark); }
.iapa-site-nav__right {
  justify-self: end;
  display: flex; align-items: center; gap: 14px; flex-shrink: 0;
}
.iapa-site-nav__text-link {
  background: none; border: none; padding: 0;
  font: inherit; font-size: 13.8px; font-weight: 600;
  color: var(--iapa-ink-soft); cursor: pointer; white-space: nowrap;
}
.iapa-site-nav__text-link:hover { color: var(--iapa-primary-dark); }
.iapa-site-nav__cta {
  white-space: nowrap;
}
.iapa-site-nav__staff {
  font-size: 12.5px; font-weight: 600; color: var(--iapa-muted-soft);
}
.iapa-site-nav__staff:hover { color: var(--iapa-muted); }
.iapa-site-nav__menu {
  display: none; background: none; border: none; padding: 6px; color: var(--iapa-ink);
  justify-self: end;
}

.iapa-site-nav__drawer {
  display: none; flex-direction: column; gap: 12px;
  padding: 8px 28px 18px; border-top: 1px solid var(--iapa-line);
}
.iapa-site-nav__drawer a {
  font-size: 14px; font-weight: 600; color: var(--iapa-ink-soft); padding: 6px 0;
}
.iapa-site-nav__drawer .iapa-btn,
.iapa-site-nav__drawer-cta {
  width: 100%;
  margin-top: 8px;
}
.iapa-site-nav__drawer-btn {
  display: flex; align-items: center; width: 100%;
  background: none; border: none; padding: 6px 0;
  font: inherit; font-size: 14px; font-weight: 600;
  color: var(--iapa-ink-soft); cursor: pointer; text-align: left;
}
.iapa-site-nav.is-open .iapa-site-nav__drawer { display: flex; }
.iapa-body--public:has(.iapa-site-nav.is-open) { overflow: hidden; }

/* ---- eyebrow ---- */

.iapa-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 700; letter-spacing: 0.4px;
  text-transform: uppercase; color: var(--iapa-primary-dark);
  background: var(--iapa-primary-tint); padding: 7px 13px; border-radius: 20px;
  margin-bottom: 20px;
}
.iapa-eyebrow__dot {
  width: 6px; height: 6px; border-radius: 50%; background: var(--iapa-primary);
}

/* ---- landing hero ---- */

.iapa-hero { padding: 88px 0 100px; overflow: hidden; }
.iapa-hero__grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center;
}
.iapa-hero h1 {
  font-family: var(--iapa-serif); font-weight: 600;
  font-size: 47px; line-height: 1.12; margin-bottom: 20px; letter-spacing: -0.3px;
}
.iapa-hero h1 em { font-style: italic; color: var(--iapa-primary-dark); }
.iapa-hero__sub {
  font-size: 16.5px; color: var(--iapa-muted); max-width: 460px;
  margin-bottom: 30px; line-height: 1.65;
}
.iapa-hero__ctas {
  display: flex; align-items: center; gap: 16px; margin-bottom: 26px; flex-wrap: wrap;
}
.iapa-hero__trust {
  font-size: 12.5px; color: var(--iapa-muted-soft);
}

.iapa-hero-visual { position: relative; }
.iapa-browser {
  background: var(--iapa-surface); border: 1px solid var(--iapa-line);
  border-radius: 20px; box-shadow: 0 24px 60px rgba(15, 35, 32, 0.14); overflow: hidden;
}
.iapa-browser__bar {
  display: flex; align-items: center; gap: 6px; padding: 12px 16px;
  border-bottom: 1px solid var(--iapa-line); background: #fbfcfc;
}
.iapa-browser__bar span {
  width: 9px; height: 9px; border-radius: 50%; background: var(--iapa-line-strong);
}
.iapa-browser__body { padding: 22px; background: var(--iapa-paper); }
.iapa-mini-kpis {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 14px;
}
.iapa-mini-kpi {
  background: var(--iapa-surface); border: 1px solid var(--iapa-line);
  border-radius: 9px; padding: 12px 13px;
}
.iapa-mini-kpi__label { font-size: 10px; color: var(--iapa-muted); font-weight: 600; }
.iapa-mini-kpi__value {
  font-family: var(--iapa-mono); font-size: 17px; font-weight: 600;
  color: var(--iapa-ink); margin-top: 5px;
}
.iapa-mini-table {
  background: var(--iapa-surface); border: 1px solid var(--iapa-line);
  border-radius: 9px; padding: 6px;
}
.iapa-mini-row {
  display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 7px;
}
.iapa-mini-row__time {
  font-family: var(--iapa-mono); font-size: 11px; color: var(--iapa-muted); width: 44px;
}
.iapa-mini-row__avatar {
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--iapa-primary-tint); color: var(--iapa-primary-dark);
  font-family: var(--iapa-mono); font-size: 9.5px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.iapa-mini-row__name { font-size: 11.8px; font-weight: 600; color: var(--iapa-ink); flex: 1; }
.iapa-mini-row__pill {
  font-size: 9.5px; font-weight: 700; padding: 3px 8px; border-radius: 20px;
  background: var(--iapa-primary-tint); color: var(--iapa-primary-dark);
}
.iapa-float-badge {
  position: absolute; top: -18px; right: -22px;
  background: var(--iapa-surface); border: 1px solid var(--iapa-line);
  border-radius: 12px; padding: 12px 14px;
  box-shadow: 0 24px 60px rgba(15, 35, 32, 0.14);
  display: flex; align-items: center; gap: 10px;
}
.iapa-float-badge__icon {
  width: 32px; height: 32px; border-radius: 8px;
  background: var(--iapa-primary-tint); color: var(--iapa-primary-dark);
  display: flex; align-items: center; justify-content: center;
}
.iapa-float-badge__icon .iapa-icon { width: 16px; height: 16px; }
.iapa-float-badge__t { font-size: 11.5px; font-weight: 700; color: var(--iapa-ink); }
.iapa-float-badge__s { font-size: 10px; color: var(--iapa-muted); }

/* ---- logos / trust strip ---- */

.iapa-logos {
  padding: 44px 0; border-top: 1px solid var(--iapa-line);
  border-bottom: 1px solid var(--iapa-line); background: var(--iapa-paper);
}
.iapa-logos__label {
  text-align: center; font-size: 11.5px; font-weight: 700;
  letter-spacing: 0.6px; text-transform: uppercase;
  color: var(--iapa-muted-soft); margin-bottom: 26px;
}
.iapa-logos__row {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 24px;
}
.iapa-logos__item {
  font-family: var(--iapa-serif); font-weight: 600; font-size: 19px;
  color: var(--iapa-muted-soft); opacity: 0.75;
}

/* ---- features ---- */

.iapa-features { padding: 100px 0; }
.iapa-section-head {
  text-align: center; max-width: 600px; margin: 0 auto 56px;
}
.iapa-section-head h2 {
  font-family: var(--iapa-serif); font-weight: 600;
  font-size: 34px; line-height: 1.25; margin-bottom: 14px;
}
.iapa-section-head p { font-size: 15.5px; color: var(--iapa-muted); }
.iapa-feature-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px;
}
.iapa-feature {
  border: 1px solid var(--iapa-line); border-radius: 14px;
  padding: 28px 24px; background: var(--iapa-surface);
  transition: box-shadow 0.15s, border-color 0.15s;
}
.iapa-feature:hover {
  box-shadow: var(--iapa-shadow-sm); border-color: var(--iapa-line-strong);
}
.iapa-feature__icon {
  width: 44px; height: 44px; border-radius: 11px;
  background: var(--iapa-primary-tint); color: var(--iapa-primary-dark);
  display: flex; align-items: center; justify-content: center; margin-bottom: 18px;
}
.iapa-feature h3 {
  font-family: var(--iapa-font); font-size: 17px; font-weight: 600; margin-bottom: 9px;
}
.iapa-feature p { font-size: 13.5px; color: var(--iapa-muted); line-height: 1.6; }

/* ---- stats band ---- */

.iapa-stats {
  background: var(--iapa-ink); color: #dce8e4; padding: 76px 0;
  position: relative; overflow: hidden;
}
.iapa-stats__art { position: absolute; inset: 0; opacity: 0.7; pointer-events: none; }
.iapa-stats__grid {
  position: relative; z-index: 2;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; text-align: center;
}
.iapa-stats__num {
  font-family: var(--iapa-mono); font-size: 36px; font-weight: 600; color: #fff;
}
.iapa-stats__cap {
  font-size: 12.5px; color: #8fa69f; margin-top: 8px; font-weight: 500;
}

/* ---- testimonial / CTA ---- */

.iapa-quote { padding: 100px 0; }
.iapa-quote__card { max-width: 760px; margin: 0 auto; text-align: center; }
.iapa-quote__text {
  font-family: var(--iapa-serif); font-size: 27px; line-height: 1.5;
  color: var(--iapa-ink); margin-bottom: 30px; font-weight: 500;
}
.iapa-quote__attrib {
  display: flex; align-items: center; justify-content: center; gap: 12px;
}
.iapa-quote__name { font-size: 13.5px; font-weight: 700; color: var(--iapa-ink); text-align: left; }
.iapa-quote__role { font-size: 12px; color: var(--iapa-muted); text-align: left; }

.iapa-cta-final { padding: 0 0 100px; }
.iapa-cta-card {
  background: var(--iapa-primary-tint); border-radius: 20px;
  padding: 64px 40px; text-align: center;
}
.iapa-cta-card h2 {
  font-family: var(--iapa-serif); font-size: 32px; margin-bottom: 14px;
}
.iapa-cta-card p {
  font-size: 15px; color: var(--iapa-ink-soft); margin-bottom: 30px;
}
.iapa-cta-card .iapa-hero__ctas { justify-content: center; }

/* ---- site footer ---- */

.iapa-site-foot {
  border-top: 1px solid var(--iapa-line); padding: 56px 0 30px;
}
.iapa-site-foot__grid {
  display: grid; grid-template-columns: 1.6fr repeat(3, 1fr);
  gap: 32px; margin-bottom: 44px;
}
.iapa-site-foot__brand-name {
  font-weight: 800; font-size: 17px; color: var(--iapa-ink);
  margin-bottom: 10px; display: block;
}
.iapa-site-foot__brand-copy {
  font-size: 13px; color: var(--iapa-muted); max-width: 260px; line-height: 1.6;
}
.iapa-site-foot__col h4 {
  font-size: 12px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.4px; color: var(--iapa-muted-soft); margin-bottom: 14px;
}
.iapa-site-foot__col a {
  display: block; font-size: 13.3px; color: var(--iapa-ink-soft); margin-bottom: 10px;
}
.iapa-site-foot__col a:hover { color: var(--iapa-primary-dark); }
.iapa-site-foot__bottom {
  display: flex; align-items: center; justify-content: space-between;
  padding-top: 26px; border-top: 1px solid var(--iapa-line);
  font-size: 12px; color: var(--iapa-muted-soft); flex-wrap: wrap; gap: 12px;
}
.iapa-site-foot__brand-inline {
  display: flex; align-items: center; gap: 9px;
  font-weight: 800; font-size: 14.5px; color: var(--iapa-ink-soft);
}

/* ---- directory page ---- */

.iapa-page-hero { padding: 56px 0 34px; text-align: center; }
.iapa-page-hero h1 {
  font-family: var(--iapa-serif); font-size: 38px; line-height: 1.2;
  margin: 0 auto 14px; max-width: 620px;
}
.iapa-page-hero p {
  font-size: 15.5px; color: var(--iapa-muted); max-width: 520px; margin: 0 auto;
}

.iapa-how {
  display: flex; align-items: center; justify-content: center;
  gap: 36px; padding: 22px 0 44px; flex-wrap: wrap;
}
.iapa-how__step {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; color: var(--iapa-ink-soft); font-weight: 600;
}
.iapa-how__num {
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--iapa-ink); color: #fff;
  font-family: var(--iapa-mono); font-size: 11px;
  display: flex; align-items: center; justify-content: center;
}
.iapa-how__sep { color: var(--iapa-line-strong); }

.iapa-filter {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 18px; background: var(--iapa-paper); border: 1px solid var(--iapa-line);
  border-radius: 14px; margin-bottom: 32px;
}
.iapa-filter__search {
  display: flex; align-items: center; gap: 9px;
  background: var(--iapa-surface); border: 1px solid var(--iapa-line);
  border-radius: 9px; padding: 10px 13px; flex: 1; min-width: 220px;
}
.iapa-filter__search input {
  border: none; outline: none; width: 100%; font-size: 13.8px;
  background: none; color: var(--iapa-ink);
}
.iapa-filter__search input::placeholder { color: var(--iapa-muted-soft); }
.iapa-filter__search .iapa-icon { width: 16px; height: 16px; color: var(--iapa-muted-soft); }
.iapa-filter__chips { display: flex; gap: 8px; flex-wrap: wrap; }
.iapa-chip {
  padding: 9px 15px; border-radius: 20px; font-size: 12.6px; font-weight: 600;
  border: 1px solid var(--iapa-line); background: var(--iapa-surface); color: var(--iapa-muted);
}
.iapa-chip:hover { border-color: var(--iapa-line-strong); color: var(--iapa-ink); }
.iapa-chip.is-active {
  background: var(--iapa-ink); color: #fff; border-color: var(--iapa-ink);
}

.iapa-result-count {
  font-size: 12.5px; color: var(--iapa-muted); margin-bottom: 18px;
}
.iapa-result-count b { color: var(--iapa-ink-soft); }

.iapa-prac-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 22px; padding-bottom: 80px;
}
.iapa-prac {
  border: 1px solid var(--iapa-line); border-radius: 14px;
  background: var(--iapa-surface); overflow: hidden;
  display: flex; flex-direction: column;
  transition: box-shadow 0.15s, border-color 0.15s;
}
.iapa-prac:hover {
  box-shadow: var(--iapa-shadow-sm); border-color: var(--iapa-line-strong);
}
.iapa-prac__top {
  padding: 24px 22px 18px; display: flex; gap: 14px; align-items: flex-start;
}
.iapa-prac__avatar {
  width: 56px; height: 56px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--iapa-mono); font-weight: 700; font-size: 17px;
  background: var(--iapa-primary-tint); color: var(--iapa-primary-dark);
}
.iapa-prac__avatar--gold { background: #f1e8d2; color: #b08d3e; }
.iapa-prac__avatar--clay { background: #f0e1da; color: #a15a3e; }
.iapa-prac__name {
  font-size: 16.5px; font-weight: 700; color: var(--iapa-ink);
}
.iapa-prac__cred { font-size: 12px; color: var(--iapa-muted); margin-top: 1px; }
.iapa-prac__body { padding: 0 22px 20px; flex: 1; }
.iapa-prac__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.iapa-prac__tag {
  font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: 20px;
  background: var(--iapa-primary-tint); color: var(--iapa-primary-dark);
}
.iapa-prac__bio {
  font-size: 13px; color: var(--iapa-muted); line-height: 1.6; margin-bottom: 14px;
}
.iapa-prac__meta {
  display: flex; align-items: center; gap: 6px;
  font-size: 12px; color: var(--iapa-muted); margin-bottom: 6px;
}
.iapa-prac__meta .iapa-icon { width: 14px; height: 14px; color: var(--iapa-muted-soft); }
.iapa-prac__foot {
  padding: 16px 22px; border-top: 1px solid var(--iapa-line);
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  background: #fbfcfc;
}
.iapa-prac__slot-label {
  font-size: 10px; color: var(--iapa-muted-soft); font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.3px;
}
.iapa-prac__slot-value {
  font-family: var(--iapa-mono); font-size: 12.8px; color: var(--iapa-ink-soft);
  font-weight: 600; margin-top: 2px;
}
.iapa-prac__foot .iapa-btn { padding: 9px 15px; font-size: 12.8px; }

.iapa-trust-band {
  border-top: 1px solid var(--iapa-line); background: var(--iapa-paper); padding: 56px 0;
}
.iapa-trust-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; text-align: center;
}
.iapa-trust__icon {
  width: 44px; height: 44px; border-radius: 12px;
  background: var(--iapa-surface); border: 1px solid var(--iapa-line);
  color: var(--iapa-primary-dark);
  display: flex; align-items: center; justify-content: center; margin: 0 auto 14px;
}
.iapa-trust-item h3 {
  font-family: var(--iapa-font); font-size: 15px; font-weight: 600; margin-bottom: 6px;
}
.iapa-trust-item p {
  font-size: 12.8px; color: var(--iapa-muted); max-width: 240px; margin: 0 auto; line-height: 1.6;
}

/* ---- auth split panel ---- */

.iapa-auth { display: grid; grid-template-columns: 1fr 1fr; min-height: 100vh; min-height: 100dvh; }
.iapa-auth__brand {
  background: var(--iapa-ink); color: #dce8e4; position: relative; overflow: hidden;
  display: flex; flex-direction: column; justify-content: space-between;
  padding: 44px 48px;
}
.iapa-auth__art {
  position: absolute; inset: 0; z-index: 1; opacity: 0.9; pointer-events: none;
}
.iapa-auth__brand-top,
.iapa-auth__quote,
.iapa-auth__brand-foot {
  position: relative; z-index: 2;
}
.iapa-auth__brand-top {
  display: flex; align-items: center; gap: 11px;
}
.iapa-auth__brand-name { font-weight: 700; font-size: 17px; color: #fff; }
.iapa-auth__brand-sub {
  font-size: 11px; color: #8fa69f; letter-spacing: 0.6px; text-transform: uppercase; margin-top: 1px;
}
.iapa-auth__quote { max-width: 420px; }
.iapa-auth__quote-eyebrow {
  font-size: 11.5px; letter-spacing: 1px; text-transform: uppercase;
  color: #5edcb4; font-weight: 700; margin-bottom: 16px;
}
.iapa-auth__quote h2 {
  font-size: 26px; line-height: 1.35; font-weight: 600; color: #f2f7f5;
  margin: 0 0 20px; letter-spacing: -0.2px; font-family: var(--iapa-font);
}
.iapa-auth__quote p { font-size: 13.5px; color: #9bb2ac; line-height: 1.6; margin: 0; }
.iapa-auth__brand-foot { font-size: 11.5px; color: #6e8580; }

.iapa-auth__form {
  display: flex; align-items: center; justify-content: center; padding: 40px 32px;
  background: var(--iapa-paper);
}
.iapa-auth__card { width: 100%; max-width: 380px; }
.iapa-auth__card h1 {
  font-size: 24px; font-weight: 700; letter-spacing: -0.2px; margin: 0 0 6px;
  font-family: var(--iapa-font);
}
.iapa-auth__sub { font-size: 13px; color: var(--iapa-muted); margin-bottom: 28px; }
.iapa-auth__sub a { color: var(--iapa-primary-dark); font-weight: 600; }

.iapa-consent {
  margin: 18px 0 20px;
  padding: 14px 16px;
  border: 1px solid var(--iapa-line);
  border-radius: 10px;
  background: var(--iapa-paper);
}
.iapa-consent__notice {
  margin: 0 0 12px;
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--iapa-muted);
}
.iapa-consent__label {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 13px;
  line-height: 1.45;
  color: var(--iapa-ink);
  cursor: pointer;
}
.iapa-consent__label input {
  margin-top: 3px;
  flex-shrink: 0;
}

.iapa-auth__dev-hint {
  margin: 0 0 14px;
  padding: 10px 12px;
  border-radius: 8px;
  background: #fff8e6;
  border: 1px solid #f0dca0;
  font-size: 13px;
  color: #6b4f00;
}

.iapa-body p.iapa-auth__sub--above-action {
  margin: 4px 0 10px;
  text-align: left;
}
.iapa-auth__or {
  display: flex; align-items: center; gap: 12px;
  margin: 22px 0;
  color: var(--iapa-muted-soft); font-size: 12px; font-weight: 600;
}
.iapa-auth__or::before,
.iapa-auth__or::after {
  content: '';
  flex: 1; height: 1px; background: var(--iapa-line);
}

.iapa-field-input {
  display: flex; align-items: center; gap: 9px;
  border: 1px solid var(--iapa-line); border-radius: 9px;
  padding: 11px 13px; background: var(--iapa-surface);
  transition: border-color 0.15s;
}
.iapa-field-input:focus-within {
  border-color: var(--iapa-primary);
  box-shadow: 0 0 0 3px var(--iapa-primary-tint);
}
.iapa-field-input .iapa-icon { width: 16px; height: 16px; color: var(--iapa-muted-soft); }
.iapa-field-input input {
  border: none; outline: none; width: 100%; font-size: 13.5px;
  color: var(--iapa-ink); background: none; margin: 0; padding: 0;
}
.iapa-field-input input::placeholder { color: var(--iapa-muted-soft); }

/* Fixed +91 country code — never part of the editable value. */
.iapa-phone-input {
  display: flex; align-items: stretch;
  border: 1px solid var(--iapa-line); border-radius: 9px;
  background: var(--iapa-surface); overflow: hidden;
  transition: border-color 0.15s;
}
.iapa-phone-input:focus-within {
  border-color: var(--iapa-primary);
  box-shadow: 0 0 0 3px var(--iapa-primary-tint);
}
.iapa-phone-input__prefix {
  display: inline-flex; align-items: center; flex-shrink: 0;
  padding: 0 12px; font-family: var(--iapa-mono); font-size: 13.5px;
  font-weight: 600; color: var(--iapa-ink-soft);
  background: var(--iapa-paper); border-right: 1px solid var(--iapa-line);
  user-select: none; pointer-events: none;
}
.iapa-phone-input > input {
  border: none; outline: none; flex: 1; min-width: 0;
  padding: 11px 13px; font-family: var(--iapa-mono); font-size: 13.5px;
  color: var(--iapa-ink); background: transparent; margin: 0;
}
.iapa-phone-input > input::placeholder { color: var(--iapa-muted-soft); }
.iapa-phone-input--readonly { background: var(--iapa-paper); }
.iapa-phone-input--readonly .iapa-phone-input__prefix { background: #eef2f0; }
.iapa-phone-input--readonly > input {
  color: var(--iapa-muted); cursor: default;
}

.iapa-field { margin-bottom: 18px; }
.iapa-field > label {
  display: block; font-size: 12.5px; font-weight: 600;
  color: var(--iapa-ink-soft); margin-bottom: 8px;
}
.iapa-field select,
.iapa-field textarea,
.iapa-field > input {
  width: 100%; border: 1px solid var(--iapa-line); border-radius: 9px;
  padding: 11px 14px; font-family: inherit; font-size: 13.5px;
  color: var(--iapa-ink); background: var(--iapa-surface);
  box-sizing: border-box;
}
.iapa-field select:focus,
.iapa-field textarea:focus,
.iapa-field > input:focus {
  outline: none; border-color: var(--iapa-primary);
  box-shadow: 0 0 0 3px var(--iapa-primary-tint);
}
.iapa-field textarea { min-height: 88px; resize: vertical; }
.iapa-field-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 16px;
  row-gap: 0;
}
.iapa-field-row > .iapa-field { min-width: 0; }
.iapa-form {
  padding: 20px 22px 22px;
}
.iapa-form__section + .iapa-form__section {
  margin-top: 4px; padding-top: 18px; border-top: 1px solid var(--iapa-line);
}
.iapa-form__label {
  font-size: 11px; font-weight: 700; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--iapa-muted-soft);
  margin-bottom: 14px;
}
.iapa-field-hint {
  font-size: 12.5px;
  color: var(--iapa-muted-soft);
  margin: -6px 0 14px;
}
.iapa-field-hint.is-error { color: #b42318; }
.iapa-pw-advice {
  margin-top: 8px;
  padding: 10px 12px;
  border: 1px solid var(--iapa-line);
  border-radius: var(--iapa-radius-sm);
  background: var(--iapa-paper);
}
.iapa-pw-advice[hidden] { display: none !important; }
.iapa-pw-advice__text {
  margin: 0 0 8px;
  font-size: 12.5px;
  color: var(--iapa-muted);
}
.iapa-pw-advice ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.iapa-pw-advice li {
  position: relative;
  padding-left: 18px;
  margin: 4px 0 0;
  font-size: 12.5px;
  color: var(--iapa-muted-soft);
}
.iapa-pw-advice li::before {
  content: "•";
  position: absolute;
  left: 0;
  top: 0;
}
.iapa-pw-advice li.is-ok { color: var(--iapa-primary-dark); }
.iapa-pw-advice li.is-ok::before { content: "✓"; }
.iapa-pw-advice li.is-miss { color: var(--iapa-muted); }
.iapa-pw-advice[data-strength="3"] {
  border-color: var(--iapa-line-strong);
  background: var(--iapa-primary-tint);
}
.iapa-pw-advice[data-strength="3"] .iapa-pw-advice__text {
  color: var(--iapa-primary-dark);
}
.iapa-form__foot {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin-top: 4px; padding-top: 18px; border-top: 1px solid var(--iapa-line);
}
.iapa-form__foot .iapa-auth__msg { margin: 0; min-height: 0; }
.iapa-panel__body > .iapa-field:last-of-type { margin-bottom: 14px; }
.iapa-panel__body > .iapa-auth__msg { margin-top: 10px; margin-bottom: 0; }
.iapa-panel__body > .iapa-actions { margin-bottom: 0; }
.iapa-drawer {
  border: 1px solid var(--iapa-line); border-radius: var(--iapa-radius);
  background: var(--iapa-surface); padding: 18px; margin-bottom: 18px;
}
.iapa-drawer[hidden] { display: none !important; }
.iapa-drawer__title {
  font-size: 15px; font-weight: 700; margin: 0 0 14px;
}

/* ---- modals ---- */
body.iapa-modal-open { overflow: hidden; }
.iapa-modal {
  position: fixed; inset: 0; z-index: 80;
  display: flex; align-items: center; justify-content: center;
  padding: 24px 16px;
}
.iapa-modal[hidden] { display: none !important; }
.iapa-modal__backdrop {
  position: absolute; inset: 0;
  background: rgba(15, 35, 32, 0.45);
}
.iapa-modal__dialog {
  position: relative; z-index: 1;
  width: min(560px, 100%);
  max-height: min(88vh, 840px);
  display: flex;
  flex-direction: column;
  overflow: visible;
  background: var(--iapa-surface);
  border: 1px solid var(--iapa-line);
  border-radius: 16px;
  box-shadow: 0 24px 60px rgba(15, 35, 32, 0.22);
}
.iapa-modal--sm .iapa-modal__dialog {
  width: min(400px, 100%);
}
.iapa-modal__head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding: 16px 18px 0;
  flex-shrink: 0;
}
.iapa-modal__title {
  margin: 0; font-size: 17px; font-weight: 700;
}
.iapa-modal__close {
  border: none; background: transparent; cursor: pointer;
  font-size: 24px; line-height: 1; color: var(--iapa-muted);
  padding: 4px 8px;
}
.iapa-modal__close:hover { color: var(--iapa-ink); }
.iapa-modal__body {
  padding: 14px 18px 18px;
  overflow: auto;
  min-height: 0;
}

.iapa-modal--otp .iapa-modal__backdrop {
  background: rgba(8, 16, 14, 0.78);
}

.iapa-modal--otp .iapa-modal__dialog {
  width: min(420px, 100%);
  border-radius: 20px;
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.38);
}

.iapa-modal--otp .iapa-modal__head {
  padding: 22px 24px 0;
}

.iapa-modal--otp .iapa-modal__title {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.iapa-modal--otp .iapa-modal__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border-radius: 8px;
  font-size: 0;
}

.iapa-modal--otp .iapa-modal__close .iapa-icon {
  width: 18px;
  height: 18px;
  color: var(--iapa-muted);
}

.iapa-modal--otp .iapa-modal__close:hover {
  background: var(--iapa-paper);
}

.iapa-modal--otp .iapa-modal__close:hover .iapa-icon {
  color: var(--iapa-ink);
}

.iapa-modal--otp .iapa-modal__body {
  padding: 10px 24px 24px;
}

.iapa-modal__intro {
  margin: 0 0 18px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--iapa-muted);
}

.iapa-modal--otp .iapa-field {
  margin-bottom: 18px;
}

.iapa-modal--otp .iapa-field label {
  font-size: 13px;
  font-weight: 600;
  color: var(--iapa-ink);
}

.iapa-modal--otp .iapa-field-input {
  gap: 10px;
  border: none;
  padding: 0;
  background: transparent;
  box-shadow: none;
}

.iapa-modal--otp .iapa-field-input:focus-within {
  border-color: transparent;
  box-shadow: none;
}

.iapa-modal--otp .iapa-field-input .iapa-icon {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  color: var(--iapa-muted);
}

.iapa-modal--otp .iapa-field-input input {
  flex: 1;
  min-width: 0;
  border: 1px solid var(--iapa-primary-dark);
  border-radius: 10px;
  padding: 12px 14px;
  background: var(--iapa-surface);
  font-size: 14px;
}

.iapa-modal--otp .iapa-field-input input:focus {
  outline: none;
  border-color: var(--iapa-primary-dark);
  box-shadow: 0 0 0 3px var(--iapa-primary-tint);
}

.iapa-modal--otp .iapa-field-input input:focus-visible {
  outline: none;
}

.iapa-modal--otp .iapa-btn--otp {
  width: 100%;
  padding: 13px 18px;
  font-size: 14px;
  border-radius: 10px;
}

.iapa-modal .iapa-modal__body .iapa-btn,
.iapa-modal .iapa-modal__body a.iapa-btn {
  margin-top: 8px;
}

.iapa-modal--otp .iapa-auth__msg {
  margin-top: 12px;
  min-height: 1.2em;
}

.iapa-modal--otp .iapa-modal__actions {
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
}

.iapa-modal--otp .iapa-modal__actions .iapa-btn,
.iapa-modal--otp .iapa-modal__actions a.iapa-btn {
  flex: 1 1 0;
  min-width: 0;
  width: auto;
  justify-content: center;
  text-align: center;
  padding: 13px 18px;
  font-size: 14px;
  border-radius: 10px;
}

.iapa-otp-digits {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0 0 18px;
}

.iapa-otp-digit {
  width: 44px;
  height: 52px;
  padding: 0;
  text-align: center;
  font-size: 20px;
  font-weight: 600;
  font-family: var(--iapa-mono, 'IBM Plex Mono', monospace);
  border: 1px solid var(--iapa-line);
  border-radius: 10px;
  background: var(--iapa-surface);
  color: var(--iapa-ink);
}

.iapa-otp-digit:focus {
  outline: none;
  border-color: var(--iapa-primary-dark);
  box-shadow: 0 0 0 3px var(--iapa-primary-tint);
}

.iapa-otp-digits__sep {
  width: 8px;
  height: 2px;
  border-radius: 2px;
  background: var(--iapa-muted-soft);
  margin: 0 2px;
  flex-shrink: 0;
}

.iapa-day-chips {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.iapa-day-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 10px; border-radius: 999px;
  border: 1px solid var(--iapa-line); background: var(--iapa-paper);
  font-size: 12.5px; font-weight: 600; color: var(--iapa-ink-soft);
  cursor: pointer; user-select: none;
}
.iapa-day-chip:has(input:checked) {
  border-color: var(--iapa-primary);
  background: var(--iapa-primary-tint);
  color: var(--iapa-primary-dark);
}
.iapa-day-chip input { accent-color: var(--iapa-primary); }
.iapa-date-add {
  display: flex;
  align-items: stretch;
  gap: 10px;
}
.iapa-date-add input[type="date"],
.iapa-date-add input[type="number"] {
  flex: 1;
  min-width: 0;
  width: auto;
  border: 1px solid var(--iapa-line);
  border-radius: 9px;
  padding: 11px 14px;
  font-family: inherit;
  font-size: 13.5px;
  color: var(--iapa-ink);
  background: var(--iapa-surface);
  box-sizing: border-box;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.iapa-date-add input[type="date"]:focus,
.iapa-date-add input[type="number"]:focus {
  outline: none;
  border-color: var(--iapa-primary);
  box-shadow: 0 0 0 3px var(--iapa-primary-tint);
}
.iapa-date-add input[type="date"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  opacity: 0.55;
}
.iapa-date-add input[type="date"]::-webkit-calendar-picker-indicator:hover {
  opacity: 0.9;
}
.iapa-date-add .iapa-btn {
  flex-shrink: 0;
  align-self: stretch;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}
.iapa-field > .iapa-date-add + .iapa-date-chips + .iapa-field-hint,
.iapa-field > .iapa-date-add + .iapa-field-hint {
  margin-top: 8px;
  margin-bottom: 0;
}

/* ---- custom datepicker (branded calendar) ---- */
.iapa-datepicker {
  position: relative;
  flex: 1;
  min-width: 0;
}
.iapa-datepicker__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  margin: 0;
  padding: 11px 14px;
  border: 1px solid var(--iapa-line);
  border-radius: 9px;
  background: var(--iapa-surface);
  font: inherit;
  font-size: 13.5px;
  color: var(--iapa-ink);
  text-align: left;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.iapa-datepicker__trigger:hover {
  border-color: var(--iapa-line-strong);
}
.iapa-datepicker.is-open .iapa-datepicker__trigger,
.iapa-datepicker__trigger:focus {
  outline: none;
  border-color: var(--iapa-primary);
  box-shadow: 0 0 0 3px var(--iapa-primary-tint);
}
.iapa-datepicker__value.is-placeholder {
  color: var(--iapa-muted-soft);
}
.iapa-datepicker__icon {
  width: 18px;
  height: 18px;
  color: var(--iapa-muted);
  flex-shrink: 0;
}
.iapa-datepicker__pop {
  position: absolute;
  left: 0;
  top: calc(100% + 8px);
  z-index: 90;
  width: min(292px, calc(100vw - 48px));
  padding: 14px;
  border: 1px solid var(--iapa-line);
  border-radius: 14px;
  background: var(--iapa-surface);
  box-shadow: 0 16px 40px rgba(15, 35, 32, 0.16);
}
.iapa-datepicker.is-open-up .iapa-datepicker__pop {
  top: auto;
  bottom: calc(100% + 8px);
}
.iapa-datepicker__nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 12px;
}
.iapa-datepicker__month {
  font-size: 14px;
  font-weight: 700;
  color: var(--iapa-ink);
}
.iapa-datepicker__nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--iapa-line);
  border-radius: 8px;
  background: var(--iapa-paper);
  color: var(--iapa-ink-soft);
  cursor: pointer;
}
.iapa-datepicker__nav-btn:hover {
  background: var(--iapa-primary-tint);
  border-color: var(--iapa-primary);
  color: var(--iapa-primary-dark);
}
.iapa-datepicker__nav-btn .iapa-icon {
  width: 16px;
  height: 16px;
}
.iapa-datepicker__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}
.iapa-datepicker__dow {
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--iapa-muted-soft);
  padding: 4px 0 8px;
}
.iapa-datepicker__day {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 1;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 9px;
  background: transparent;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--iapa-ink-soft);
  cursor: pointer;
}
.iapa-datepicker__day.is-empty {
  visibility: hidden;
  pointer-events: none;
}
.iapa-datepicker__day:hover {
  background: var(--iapa-primary-tint);
  color: var(--iapa-primary-dark);
}
.iapa-datepicker__day.is-today {
  box-shadow: inset 0 0 0 1.5px var(--iapa-primary);
  color: var(--iapa-primary-dark);
}
.iapa-datepicker__day.is-selected,
.iapa-datepicker__day.is-selected:hover {
  background: var(--iapa-primary);
  color: #fff;
  box-shadow: none;
}
.iapa-datepicker__foot {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--iapa-line);
}
.iapa-datepicker__link {
  border: none;
  background: none;
  padding: 0;
  font: inherit;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--iapa-primary-dark);
  cursor: pointer;
}
.iapa-datepicker__link:hover {
  color: var(--iapa-primary);
}

/* ---- custom timepicker ---- */
.iapa-timepicker {
  position: relative;
  width: 100%;
}
.iapa-timepicker__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  margin: 0;
  padding: 11px 14px;
  border: 1px solid var(--iapa-line);
  border-radius: 9px;
  background: var(--iapa-surface);
  font: inherit;
  font-size: 13.5px;
  color: var(--iapa-ink);
  text-align: left;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.iapa-timepicker__trigger:hover {
  border-color: var(--iapa-line-strong);
}
.iapa-timepicker.is-open .iapa-timepicker__trigger,
.iapa-timepicker__trigger:focus {
  outline: none;
  border-color: var(--iapa-primary);
  box-shadow: 0 0 0 3px var(--iapa-primary-tint);
}
.iapa-timepicker__value.is-placeholder {
  color: var(--iapa-muted-soft);
}
.iapa-timepicker__icon {
  width: 18px;
  height: 18px;
  color: var(--iapa-muted);
  flex-shrink: 0;
}
.iapa-timepicker__pop {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  z-index: 90;
  border: 1px solid var(--iapa-line);
  border-radius: 14px;
  background: var(--iapa-surface);
  box-shadow: 0 16px 40px rgba(15, 35, 32, 0.16);
  overflow: hidden;
}
.iapa-timepicker.is-open-up .iapa-timepicker__pop {
  top: auto;
  bottom: calc(100% + 8px);
}
.iapa-timepicker__list {
  max-height: 240px;
  overflow-y: auto;
  padding: 6px;
  scrollbar-width: thin;
}
.iapa-timepicker__option {
  display: block;
  width: 100%;
  margin: 0;
  padding: 9px 12px;
  border: none;
  border-radius: 8px;
  background: transparent;
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--iapa-ink-soft);
  text-align: left;
  cursor: pointer;
}
.iapa-timepicker__option:hover {
  background: var(--iapa-primary-tint);
  color: var(--iapa-primary-dark);
}
.iapa-timepicker__option.is-selected,
.iapa-timepicker__option.is-selected:hover {
  background: var(--iapa-primary);
  color: #fff;
}
.iapa-date-chips {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-top: 10px; min-height: 0;
}
.iapa-date-chips:empty { display: none; }
.iapa-date-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 8px 5px 10px; border-radius: 999px;
  border: 1px solid var(--iapa-line); background: var(--iapa-paper);
  font-family: var(--iapa-mono); font-size: 12px; font-weight: 500;
  color: var(--iapa-ink-soft);
}
.iapa-date-chip__remove {
  border: none; background: transparent; cursor: pointer;
  color: var(--iapa-muted); font-size: 16px; line-height: 1;
  padding: 0 2px;
}
.iapa-date-chip__remove:hover { color: #b42318; }
.iapa-field__label {
  display: block; font-size: 12.5px; font-weight: 600;
  color: var(--iapa-ink-soft); margin-bottom: 6px;
}
.iapa-choice-row {
  display: flex; flex-wrap: wrap; gap: 10px;
}
.iapa-choice {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 12px; border-radius: 10px;
  border: 1px solid var(--iapa-line); background: var(--iapa-paper);
  font-size: 13px; font-weight: 600; color: var(--iapa-ink-soft);
  cursor: pointer;
}
.iapa-choice:has(input:checked) {
  border-color: var(--iapa-primary);
  background: var(--iapa-primary-tint);
  color: var(--iapa-primary-dark);
}
.iapa-choice input { accent-color: var(--iapa-primary); }
.iapa-toolbar {
  display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
  margin-bottom: 16px;
}
.iapa-toolbar .iapa-field { margin: 0; min-width: 160px; }
.iapa-cal-grid {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px;
}
.iapa-cal-dow {
  text-align: center; font-size: 11px; font-weight: 600;
  color: var(--iapa-muted-soft); text-transform: uppercase; padding: 6px 0;
  letter-spacing: 0.04em;
}
.iapa-cal-day {
  min-height: 68px; border: 1px solid var(--iapa-line); border-radius: 10px;
  padding: 8px; background: var(--iapa-surface); cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.iapa-cal-day:hover:not(.iapa-cal-day--muted) {
  border-color: var(--iapa-line-strong);
  background: #fafcfb;
}
.iapa-cal-day--muted {
  opacity: 0.35; cursor: default; pointer-events: none;
  background: transparent; border-color: transparent;
}
.iapa-cal-day--today {
  border-color: var(--iapa-primary);
  background: var(--iapa-primary-tint);
}
.iapa-cal-day--busy:not(.iapa-cal-day--today):not(.iapa-cal-day--selected) {
  background: linear-gradient(180deg, #fff 0%, #f3faf7 100%);
}
.iapa-cal-day--selected {
  border-color: var(--iapa-primary);
  box-shadow: 0 0 0 2px var(--iapa-primary);
  background: var(--iapa-surface);
}
.iapa-cal-day--today.iapa-cal-day--selected {
  background: var(--iapa-primary-tint);
}
.iapa-cal-day__num {
  font-family: var(--iapa-mono); font-size: 12.5px; font-weight: 600;
  color: var(--iapa-ink-soft); line-height: 1;
}
.iapa-cal-day--today .iapa-cal-day__num { color: var(--iapa-primary-dark); }
.iapa-cal-day__marks {
  display: flex; align-items: center; gap: 3px; flex-wrap: wrap;
  margin-top: 10px; min-height: 8px;
}
.iapa-cal-day__dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--iapa-primary);
}
.iapa-cal-day__dot--muted { background: var(--iapa-muted-soft); }
.iapa-cal-day__more {
  font-family: var(--iapa-mono); font-size: 10px; font-weight: 600;
  color: var(--iapa-primary-dark); margin-left: 1px;
}
.iapa-cal-nav {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--iapa-surface); border: 1px solid var(--iapa-line);
  border-radius: 999px; padding: 4px;
}
.iapa-cal-nav__label {
  min-width: 132px; text-align: center; font-size: 13px; font-weight: 600;
  color: var(--iapa-ink-soft); padding: 0 4px;
}
.iapa-cal-nav .iapa-btn--sm { border-radius: 999px; min-width: 34px; padding-left: 10px; padding-right: 10px; }
.iapa-cal-legend {
  display: flex; gap: 14px; align-items: center;
  font-size: 11.5px; color: var(--iapa-muted); font-weight: 500;
}
.iapa-cal-legend span { display: inline-flex; align-items: center; gap: 6px; }
.iapa-cal-legend__swatch {
  width: 10px; height: 10px; border-radius: 3px; display: inline-block;
  border: 1px solid var(--iapa-line);
}
.iapa-cal-legend__swatch--today {
  background: var(--iapa-primary-tint); border-color: var(--iapa-primary);
}
.iapa-cal-legend__swatch--busy {
  background: linear-gradient(180deg, #fff, #e8f5f0); border-color: var(--iapa-line-strong);
}
.iapa-day-list { display: flex; flex-direction: column; gap: 8px; }
.iapa-day-item {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  grid-template-areas:
    "time body status"
    "time body actions";
  gap: 4px 12px; align-items: center;
  padding: 12px 14px; border: 1px solid var(--iapa-line);
  border-radius: 10px; background: var(--iapa-surface);
}
.iapa-day-item--muted { opacity: 0.55; }
.iapa-day-item__time {
  grid-area: time; font-size: 12.5px; font-weight: 600;
  color: var(--iapa-primary-dark); align-self: start; padding-top: 2px;
}
.iapa-day-item__body { grid-area: body; min-width: 0; }
.iapa-day-item__status { grid-area: status; justify-self: end; }
.iapa-day-item__actions { grid-area: actions; justify-self: end; }
.iapa-day-item .iapa-person { gap: 10px; }
@media (max-width: 520px) {
  .iapa-day-item {
    grid-template-columns: 44px 1fr;
    grid-template-areas:
      "time body"
      "time status"
      "time actions";
  }
  .iapa-day-item__status,
  .iapa-day-item__actions { justify-self: start; }
}

.iapa-drawer--notes {
  margin-top: 14px;
  animation: iapa-drawer-in 0.18s ease;
}
.iapa-drawer__head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; margin-bottom: 6px;
}
.iapa-drawer__head .iapa-drawer__title { margin: 0; }
.iapa-drawer--notes .iapa-panel__sub { margin-bottom: 14px; }
@keyframes iapa-drawer-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}

.iapa-actions--tight { margin-top: 4px; gap: 8px; }
.iapa-field input:disabled {
  background: var(--iapa-paper); color: var(--iapa-muted); cursor: not-allowed;
}
.iapa-profile-card {
  display: flex; gap: 16px; align-items: center;
}
.iapa-profile-card__photo {
  width: 88px; height: 88px; border-radius: 18px; flex-shrink: 0;
  background: var(--iapa-primary-tint); color: var(--iapa-primary-dark);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--iapa-mono); font-weight: 700; font-size: 24px;
  border: 1px solid var(--iapa-line); box-shadow: var(--iapa-shadow-sm);
  background-size: cover; background-position: center;
}
.iapa-profile-card__photo.has-image {
  color: transparent; border-color: var(--iapa-line-strong);
}
.iapa-profile-card__meta { min-width: 0; }
.iapa-profile-card__id {
  font-size: 13px; font-weight: 600; color: var(--iapa-ink-soft);
  margin-bottom: 4px;
}
.iapa-profile-card__hint {
  font-size: 11.5px; color: var(--iapa-muted-soft); margin: 0 0 12px;
  line-height: 1.4;
}
.iapa-profile-card__upload {
  display: inline-flex !important; cursor: pointer;
}
.iapa-grid-2--cal > .iapa-panel { min-width: 0; }

.iapa-tabs { display: flex; gap: 6px; margin-bottom: 16px; flex-wrap: wrap; }
.iapa-tab {
  border: 1px solid var(--iapa-line); background: var(--iapa-surface);
  border-radius: 999px; padding: 7px 14px; font-size: 12.5px; font-weight: 600;
  color: var(--iapa-muted);
}
.iapa-tab.is-active {
  background: var(--iapa-primary); color: #fff; border-color: var(--iapa-primary);
}
@media (max-width: 700px) {
  .iapa-field-row { grid-template-columns: 1fr; }
  .iapa-cal-day { min-height: 52px; padding: 6px; }
  .iapa-cal-legend { display: none; }
  .iapa-cal-nav { width: 100%; justify-content: space-between; }
  .iapa-cal-nav__label { flex: 1; }
  .iapa-profile-card { flex-direction: column; align-items: flex-start; }
}

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; white-space: nowrap;
}
button.iapa-cal-day {
  font: inherit; text-align: left; color: inherit; display: block; width: 100%;
}

.iapa-auth__msg {
  margin-top: 14px; font-size: 13px; color: var(--iapa-muted); min-height: 1.2em;
}
.iapa-auth__msg.is-error { color: var(--iapa-red); }
.iapa-auth__secure {
  display: flex; align-items: center; gap: 7px; justify-content: center;
  margin-top: 26px; font-size: 11.5px; color: var(--iapa-muted-soft);
}
.iapa-auth__secure .iapa-icon { width: 13px; height: 13px; }
.iapa-auth__roles { display: flex; gap: 8px; margin-bottom: 20px; }
.iapa-auth__roles .iapa-btn { flex: 1; }

/* ---- compact public content (profile/book/etc) ---- */

.iapa-public-main {
  max-width: 40rem; margin: 0 auto; padding: 2.5rem 1.25rem 4rem;
}
.iapa-public-main--wide { max-width: 48rem; }

/* Legacy compact public helpers (kept for older snippets) */
.iapa-public {
  max-width: 40rem; margin: 0 auto; padding: 3rem 1.25rem 4rem;
}
.iapa-public--wide { max-width: 48rem; }
.iapa-public__brand {
  font-weight: 700; font-size: 1.25rem; color: var(--iapa-primary-dark);
  letter-spacing: 0.02em; margin-bottom: 1rem;
}
.iapa-public h1 {
  font-size: 1.75rem; font-weight: 700; letter-spacing: -0.02em;
  margin-bottom: 0.5rem;
}
.iapa-public__lead { color: var(--iapa-muted); margin-bottom: 1.5rem; }
.iapa-card {
  padding: 1.25rem; border: 1px solid var(--iapa-line);
  border-radius: var(--iapa-radius); background: var(--iapa-surface);
  margin-bottom: 1rem;
}
.iapa-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1rem; }

/* ==========================================================================
   Responsive & motion
   ========================================================================== */

@media (max-width: 1180px) {
  .iapa-grid-2 { grid-template-columns: 1fr; }
}

@media (max-width: 980px) {
  .iapa-shell__sidebar { transform: translateX(-100%); }
  .iapa-shell__sidebar.is-open { transform: translateX(0); }
  .iapa-shell__overlay.is-visible { display: block; }
  .iapa-shell__main { margin-left: 0; }
  .iapa-shell__menu-btn { display: flex; align-items: center; justify-content: center; }
  .iapa-shell__search { width: 220px; }
  .iapa-kpis { grid-template-columns: repeat(2, 1fr); }

  .iapa-hero__grid { grid-template-columns: 1fr; }
  .iapa-hero-visual { order: -1; }
  .iapa-feature-grid { grid-template-columns: repeat(2, 1fr); }
  .iapa-stats__grid { grid-template-columns: repeat(2, 1fr); row-gap: 28px; }
  .iapa-site-foot__grid { grid-template-columns: 1fr 1fr; }
  .iapa-prac-grid { grid-template-columns: repeat(2, 1fr); }
  .iapa-auth {
    grid-template-columns: 1fr;
    min-height: calc(100dvh - 72px - env(safe-area-inset-top, 0px));
  }
  .iapa-auth__brand { display: none; }
  .iapa-auth__form {
    min-height: 0;
    align-items: flex-start;
    padding: 24px 20px calc(24px + env(safe-area-inset-bottom, 0px));
  }
}

@media (max-width: 768px) {
  .iapa-site-nav__inner {
    grid-template-columns: 1fr auto;
    height: 60px;
  }
  .iapa-site-nav__links,
  .iapa-site-nav__right { display: none; }
  .iapa-site-nav__menu {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 10px;
  }
  .iapa-site-nav__drawer {
    padding: 4px 16px 16px;
    gap: 0;
  }
  .iapa-site-nav__drawer a,
  .iapa-site-nav__drawer-btn {
    min-height: 44px;
    padding: 12px 4px;
    border-bottom: 1px solid var(--iapa-line);
  }
  .iapa-site-nav__drawer-cta {
    margin-top: 12px;
    min-height: 44px;
    border-bottom: none;
  }

  .iapa-hero { padding: 36px 0 48px; }
  .iapa-hero-visual { order: 0; }
  .iapa-hero h1 { font-size: clamp(28px, 8vw, 36px); }
  .iapa-hero__sub { font-size: 15px; margin-bottom: 22px; }
  .iapa-hero__ctas,
  .iapa-cta-card .iapa-hero__ctas {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .iapa-hero__ctas .iapa-btn,
  .iapa-cta-card .iapa-hero__ctas .iapa-btn { width: 100%; }

  .iapa-features { padding: 56px 0; }
  .iapa-section-head { margin-bottom: 32px; }
  .iapa-section-head h2 { font-size: 26px; }
  .iapa-quote { padding: 56px 0; }
  .iapa-quote__text { font-size: 20px; }
  .iapa-cta-final { padding-bottom: 56px; }
  .iapa-site-foot { padding: 40px 0 24px; }
  .iapa-site-foot__col a {
    min-height: 44px;
    display: flex;
    align-items: center;
    margin-bottom: 0;
  }

  .iapa-btn {
    min-height: 44px;
    padding: 12px 16px;
  }
  .iapa-btn--lg { min-height: 48px; }
  .iapa-chip { min-height: 44px; }

  .iapa-field select,
  .iapa-field textarea,
  .iapa-field > input,
  .iapa-field-input input,
  .iapa-phone-input > input,
  .iapa-filter__search input,
  .iapa-shell__search input {
    font-size: 16px;
  }
  .iapa-phone-input__prefix { font-size: 16px; }
  .iapa-field-input { padding: 12px 13px; }
  .iapa-phone-input > input { padding: 12px 13px; }

  .iapa-filter { padding: 12px; }
  .iapa-filter__search { min-width: 0; width: 100%; }
  .iapa-actions .iapa-btn { width: 100%; }
  .iapa-form__foot .iapa-btn { width: 100%; }

  .iapa-public-main {
    padding: 1.5rem 1rem calc(2.5rem + env(safe-area-inset-bottom, 0px));
  }

  .iapa-mini-row { min-width: 0; }
  .iapa-mini-row__name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

@media (max-width: 640px) {
  .iapa-kpis,
  .iapa-kpis--2 { grid-template-columns: 1fr; }
  .iapa-shell__search { display: none; }
  .iapa-shell__content {
    padding: 16px 14px calc(40px + env(safe-area-inset-bottom, 0px));
  }
  .iapa-shell__topbar {
    height: 56px;
    padding: 0 max(12px, env(safe-area-inset-right, 0px)) 0 max(6px, env(safe-area-inset-left, 0px));
    gap: 8px;
  }
  .iapa-shell__profile { padding: 4px; }
  .iapa-shell__profile-text { display: none; }
  .iapa-shell__menu-btn {
    min-width: 44px;
    min-height: 44px;
  }
  .iapa-page-head { margin-bottom: 16px; align-items: flex-start; gap: 10px; }
  .iapa-page-head__meta { line-height: 1.45; }
  .iapa-kpis { gap: 12px; margin-bottom: 14px; }
  .iapa-kpi { padding: 16px; }
  .iapa-kpi__top { margin-bottom: 10px; }
  .iapa-grid-2 { gap: 14px; margin-bottom: 14px; }
  #js-upi-panel:not([hidden]) { margin-bottom: 14px; }
  .iapa-upi-body { padding: 16px 14px 18px; gap: 14px; }
  .iapa-table thead th,
  .iapa-table tbody td { padding: 10px 12px; }
  .iapa-table-wrap .iapa-table { min-width: 460px; }
  .iapa-table-wrap:has(.iapa-empty) .iapa-table { min-width: 0; }
  .iapa-access { padding: 12px 14px 16px; }
  .iapa-foot { padding: 16px 8px 8px; }
  .iapa-shell__nav-link { min-height: 44px; padding: 12px; }
  .iapa-shell__logout { min-height: 44px; }
  .iapa-queue__item { flex-wrap: wrap; }
  .iapa-queue__wait { margin-left: 0; text-align: left; }
  .iapa-queue__actions { margin-left: 0; width: 100%; }
  .iapa-queue__actions .iapa-btn { flex: 1; }

  .iapa-hero h1 { font-size: 30px; }
  .iapa-feature-grid { grid-template-columns: 1fr; }
  .iapa-stats__grid { grid-template-columns: 1fr 1fr; }
  .iapa-site-foot__grid { grid-template-columns: 1fr; }
  .iapa-float-badge { display: none; }
  .iapa-cta-card { padding: 36px 18px; }
  .iapa-prac-grid { grid-template-columns: 1fr; }
  .iapa-page-hero { padding: 32px 0 20px; }
  .iapa-page-hero h1 { font-size: 26px; }
  .iapa-how { gap: 12px; padding-bottom: 28px; }
  .iapa-how__sep { display: none; }
  .iapa-trust-grid { grid-template-columns: 1fr; }
  .iapa-wrap {
    padding: 0 max(16px, env(safe-area-inset-left, 0px)) 0 max(16px, env(safe-area-inset-right, 0px));
  }
  .iapa-auth__card h1 { font-size: 22px; }
  .iapa-logos__row { justify-content: center; gap: 16px 20px; }
  .iapa-logos__item { font-size: 16px; }

  .iapa-modal {
    padding: 0;
    align-items: flex-end;
  }
  .iapa-modal__dialog,
  .iapa-modal--sm .iapa-modal__dialog,
  .iapa-modal--otp .iapa-modal__dialog {
    width: 100%;
    max-height: min(92dvh, 100%);
    border-radius: 16px 16px 0 0;
  }
  .iapa-modal__body {
    padding-bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  }
  .iapa-modal__close {
    min-width: 44px;
    min-height: 44px;
  }
}

@media (max-width: 600px) {
  .iapa-kpis,
  .iapa-kpis--2 { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .iapa-skeleton::after { animation: none; }
  .iapa-shell__sidebar,
  .iapa-shell__topbar,
  .iapa-shell__nav-link,
  .iapa-btn,
  .iapa-feature,
  .iapa-prac { transition: none; }
}

/* ==========================================================================
   Platform admin spacing polish
   ========================================================================== */

.iapa-shell__content > .iapa-panel + .iapa-panel {
  margin-top: 18px;
}

.iapa-shell__content > .iapa-toolbar {
  margin: -4px 0 18px;
}

.iapa-panel__head {
  align-items: flex-start;
  flex-wrap: wrap;
  row-gap: 12px;
  padding: 16px 20px;
}

.iapa-panel__head > div:first-child {
  min-width: 0;
  flex: 1 1 220px;
}

.iapa-panel__head .iapa-field,
.iapa-panel__head .iapa-toolbar {
  margin: 0;
}

.iapa-panel__head .iapa-field {
  min-width: 180px;
}

.iapa-panel__head .iapa-toolbar {
  flex: 1 1 280px;
  justify-content: flex-end;
  margin-bottom: 0;
}

.iapa-panel__head p,
.iapa-body .iapa-panel__head p {
  margin: 2px 0 0;
  font-size: 11.5px;
  color: var(--iapa-muted);
  font-weight: 500;
  line-height: 1.45;
}

.iapa-panel > .iapa-empty,
.iapa-panel > .iapa-error,
.iapa-panel > [id^="js-"] > .iapa-empty,
.iapa-panel > [id^="js-"] > .iapa-error {
  padding: 28px 22px;
}

.iapa-panel > .iapa-kpis,
.iapa-panel > [id^="js-"] > .iapa-kpis {
  margin: 0;
  padding: 18px 20px 20px;
}

.iapa-panel > .iapa-table-wrap,
.iapa-panel > [id^="js-"] > .iapa-table-wrap {
  border-top: 0;
}

.iapa-panel > [id^="js-clinic-message"]:not(:empty),
.iapa-panel > #js-clinic-message:not(:empty) {
  padding: 12px 20px 0;
  font-size: 13px;
}

.iapa-platform-overview .iapa-kpis {
  margin-bottom: 0;
}

.iapa-platform-overview .iapa-empty,
.iapa-platform-overview .iapa-error {
  padding: 28px 8px;
}

.iapa-platform-practitioner-detail {
  margin-top: 18px;
}

.iapa-back-link {
  display: inline-block;
  margin-bottom: 10px;
  font-size: 13px;
  color: var(--iapa-muted);
  text-decoration: none;
}

.iapa-back-link:hover {
  color: var(--iapa-primary-dark);
}

.iapa-detail-list {
  display: grid;
  grid-template-columns: minmax(120px, 34%) 1fr;
  gap: 10px 16px;
  margin: 0;
}

.iapa-detail-list dt {
  margin: 0;
  font-size: 12.5px;
  color: var(--iapa-muted);
}

.iapa-detail-list dd {
  margin: 0;
  font-size: 13.5px;
  color: var(--iapa-ink);
  font-weight: 500;
}

.iapa-detail-note {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--iapa-line);
}

.iapa-detail-note h3 {
  margin: 0 0 8px;
  font-size: 12.5px;
  color: var(--iapa-muted);
  font-weight: 600;
}

.iapa-detail-note p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--iapa-ink);
}

.iapa-volume {
  display: grid;
  gap: 12px;
  padding: 18px 20px 20px;
}

.iapa-volume__row {
  display: grid;
  grid-template-columns: 110px minmax(120px, 1fr) 40px;
  align-items: center;
  gap: 12px;
}

.iapa-volume__track {
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(62, 143, 123, 0.13);
}

.iapa-volume__bar {
  height: 100%;
  border-radius: 999px;
  background: var(--iapa-primary);
}

.iapa-volume__count {
  font-family: var(--iapa-mono);
  font-size: 13px;
  font-weight: 600;
  text-align: right;
  color: var(--iapa-ink);
}

.iapa-toolbar--filters {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 14px;
  align-items: flex-end;
}

.iapa-toolbar--filters .iapa-field {
  margin: 0;
  min-width: 150px;
}

.iapa-toolbar--filters .iapa-btn {
  margin-bottom: 1px;
}

.iapa-combobox {
  position: relative;
}

.iapa-combobox__control input[type="search"] {
  width: 100%;
  border: 1px solid var(--iapa-line);
  border-radius: 9px;
  padding: 11px 14px;
  font-family: inherit;
  font-size: 13.5px;
  color: var(--iapa-ink);
  background: var(--iapa-surface);
}

.iapa-combobox__control input[type="search"]:focus {
  outline: none;
  border-color: var(--iapa-primary);
  box-shadow: 0 0 0 3px var(--iapa-primary-tint);
}

.iapa-combobox__list {
  position: absolute;
  z-index: 20;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  margin: 0;
  padding: 6px;
  list-style: none;
  max-height: 240px;
  overflow: auto;
  border: 1px solid var(--iapa-line);
  border-radius: 10px;
  background: var(--iapa-surface);
  box-shadow: var(--iapa-shadow);
}

.iapa-combobox__option {
  display: block;
  width: 100%;
  border: none;
  background: transparent;
  text-align: left;
  padding: 10px 12px;
  border-radius: 8px;
  cursor: pointer;
  font-family: inherit;
}

.iapa-combobox__option:hover,
.iapa-combobox__option.is-active {
  background: var(--iapa-primary-tint);
}

.iapa-combobox__option.is-disabled,
.iapa-combobox__option.is-disabled:hover {
  opacity: 0.55;
  cursor: not-allowed;
  background: transparent;
}

.iapa-combobox__option.is-disabled .iapa-combobox__option-name::after {
  content: ' · Not a member yet';
  font-weight: 500;
  color: var(--iapa-muted);
}

.iapa-combobox__option-name {
  display: block;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--iapa-ink);
}

.iapa-combobox__option-phone {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  color: var(--iapa-muted);
}

.iapa-combobox__hint,
.iapa-combobox__selected {
  margin: 8px 0 0;
  font-size: 12px;
  color: var(--iapa-muted);
}

.iapa-combobox__selected {
  padding: 10px 12px;
  border: 1px solid var(--iapa-line);
  border-radius: 9px;
  background: var(--iapa-paper);
  font-weight: 600;
  color: var(--iapa-ink);
}

.iapa-combobox__empty {
  padding: 10px 12px;
  font-size: 12.5px;
  color: var(--iapa-muted);
}

@media (max-width: 980px) {
  .iapa-panel__head .iapa-toolbar {
    justify-content: stretch;
  }
  .iapa-panel__head .iapa-toolbar .iapa-field,
  .iapa-panel__head .iapa-field {
    flex: 1 1 140px;
    min-width: 0;
  }
  .iapa-volume__row {
    grid-template-columns: 88px minmax(80px, 1fr) 32px;
    gap: 8px;
  }
}


/* Listing checklist (practitioner profile) */
.iapa-checklist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.iapa-checklist__item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
}
.iapa-checklist__mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  flex: 0 0 auto;
}
.iapa-checklist__item.is-met .iapa-checklist__mark {
  background: rgba(22, 163, 74, 0.15);
  color: #16a34a;
}
.iapa-checklist__item.is-missing .iapa-checklist__mark {
  background: rgba(217, 119, 6, 0.15);
  color: #d97706;
}
.iapa-checklist__item.is-missing .iapa-checklist__label {
  color: var(--iapa-muted, #6b7280);
}

/* Membership UPI upload — keep form air inside the card. */
#js-upi-panel:not([hidden]) {
  margin: 0 0 18px;
}
.iapa-upi-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 18px 20px 20px;
}
.iapa-upi-body > p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--iapa-ink-soft);
}
.iapa-upi-body > .iapa-field,
.iapa-upi-body > .iapa-actions,
.iapa-upi-body > .iapa-auth__msg,
.iapa-upi-body > .iapa-field-hint {
  margin: 0;
}
.iapa-upi-body > .iapa-actions { margin-top: 2px; }
.iapa-upi-body > .iapa-auth__msg { min-height: 0; }
.iapa-upi-body__shot { margin: 0; }
.iapa-upi-body__shot img {
  display: block;
  max-width: min(100%, 280px);
  height: auto;
  border-radius: 8px;
}
.iapa-field > input[type="file"] {
  min-height: 44px;
  padding: 10px 12px;
  background: var(--iapa-paper);
}

/* Phone-width polish layered on the existing breakpoints. */
@media (max-width: 480px) {
  .iapa-stats__grid { grid-template-columns: 1fr; row-gap: 20px; }
  .iapa-mini-kpis { grid-template-columns: 1fr; }
  .iapa-prac__foot {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .iapa-prac__foot .iapa-btn { width: 100%; }
  .iapa-page-head h1 { font-size: 20px; }
  .iapa-panel__head { padding: 14px 14px; }
  .iapa-form { padding: 16px 14px 18px; }
  .iapa-panel__body { padding: 16px 14px 18px; }
  .iapa-field { margin-bottom: 16px; }
  .iapa-field > label { margin-bottom: 8px; }
}

/* ---- client welcome dashboard + membership wizard + member login ---- */

.iapa-welcome { display: flex; flex-direction: column; gap: 18px; }
.iapa-welcome__hero {
  background: linear-gradient(135deg, var(--iapa-primary-dark) 0%, var(--iapa-primary) 58%, #1aa05f 100%);
  color: #fff;
  border-radius: var(--iapa-radius-lg);
  padding: 28px 28px 24px;
  position: relative;
  overflow: hidden;
}
.iapa-welcome__hero h1 {
  color: #fff;
  font-size: 28px;
  letter-spacing: -0.3px;
  margin: 0 0 8px;
}
.iapa-welcome__hero p { color: rgba(255,255,255,0.86); max-width: 560px; }
.iapa-welcome__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(260px, 0.8fr);
  gap: 16px;
}
.iapa-welcome__status {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
}
.iapa-welcome__badge {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--iapa-primary-tint);
  color: var(--iapa-primary-dark);
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 12px; font-weight: 700; letter-spacing: 0.4px;
}
.iapa-countdown {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px;
  margin-top: 14px;
}
.iapa-countdown__cell {
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 10px;
  text-align: center;
  padding: 10px 4px;
}
.iapa-countdown__n { font-size: 22px; font-weight: 800; font-variant-numeric: tabular-nums; }
.iapa-countdown__l { font-size: 10px; letter-spacing: 0.8px; text-transform: uppercase; opacity: 0.8; }
.iapa-quick {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px;
}
.iapa-quick__card {
  display: flex; flex-direction: column; gap: 8px;
  background: var(--iapa-surface);
  border: 1px solid var(--iapa-line);
  border-radius: var(--iapa-radius);
  padding: 16px;
  min-height: 128px;
  box-shadow: var(--iapa-shadow-sm);
}
.iapa-quick__card:hover { border-color: var(--iapa-primary); }
.iapa-quick__icon {
  width: 36px; height: 36px; border-radius: 10px;
  background: var(--iapa-primary-tint); color: var(--iapa-primary-dark);
  display: flex; align-items: center; justify-content: center;
}
.iapa-quick__card h3 { font-size: 15px; }
.iapa-quick__card p { font-size: 12.5px; color: var(--iapa-muted); }

.iapa-wizard { margin-bottom: 22px; }
.iapa-wizard__steps {
  display: flex; gap: 6px; overflow-x: auto; padding-bottom: 10px; margin-bottom: 8px;
}
.iapa-wizard__step {
  flex: 1 0 auto;
  min-width: 88px;
  text-align: center;
  font-size: 11px; font-weight: 600; color: var(--iapa-muted);
  padding: 8px 6px 10px;
  border-bottom: 2px solid var(--iapa-line);
}
.iapa-wizard__step.is-active { color: var(--iapa-primary-dark); border-bottom-color: var(--iapa-primary); }
.iapa-wizard__step.is-done { color: var(--iapa-primary); }
.iapa-kind-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.iapa-kind {
  display: flex; flex-direction: column; gap: 6px; text-align: left;
  border: 1px solid var(--iapa-line);
  background: var(--iapa-surface);
  border-radius: var(--iapa-radius);
  padding: 16px;
  cursor: pointer;
}
.iapa-kind.is-selected, .iapa-kind:hover { border-color: var(--iapa-primary); background: var(--iapa-primary-tint); }
.iapa-kind strong { font-size: 15px; }
.iapa-kind span { font-size: 12.5px; color: var(--iapa-muted); }
.iapa-kind em { font-style: normal; font-weight: 700; color: var(--iapa-primary-dark); }
.iapa-rules {
  max-height: 280px; overflow: auto;
  border: 1px solid var(--iapa-line); border-radius: 10px;
  padding: 12px 16px; background: var(--iapa-paper);
  font-size: 13px; line-height: 1.55;
}
.iapa-rules ol { padding-left: 18px; list-style: decimal; }
.iapa-choice-row { display: flex; gap: 10px; flex-wrap: wrap; }
.iapa-choice {
  border: 1px solid var(--iapa-line); background: #fff; border-radius: 10px;
  padding: 10px 14px; cursor: pointer; font-weight: 600;
}
.iapa-choice.is-selected { border-color: var(--iapa-primary); background: var(--iapa-primary-tint); }
.iapa-fee-hero {
  text-align: center; padding: 24px 12px;
}
.iapa-fee-hero__amount { font-size: 40px; font-weight: 800; color: var(--iapa-primary-dark); }
.iapa-status-banner {
  border: 1px solid var(--iapa-line);
  background: var(--iapa-amber-tint);
  border-radius: var(--iapa-radius);
  padding: 16px 18px;
  margin-bottom: 18px;
}

.iapa-auth-page .iapa-site-nav { display: none; }
.iapa-member-login {
  min-height: 100vh; min-height: 100dvh;
  display: flex; align-items: center; justify-content: center;
  padding: 32px 16px;
  background:
    radial-gradient(1200px 500px at 50% -10%, rgba(15,122,74,0.18), transparent 60%),
    var(--iapa-paper);
}
.iapa-member-login__card {
  width: 100%; max-width: 440px;
  background: #fff;
  border: 1px solid var(--iapa-line);
  border-radius: 18px;
  box-shadow: 0 18px 50px rgba(8, 38, 31, 0.08);
  padding: 28px 28px 24px;
}
.iapa-member-login__brand {
  display: flex; align-items: center; gap: 10px; margin-bottom: 18px;
}
.iapa-member-login__tabs {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  background: var(--iapa-paper);
  border-radius: 10px;
  padding: 4px;
  margin-bottom: 20px;
}
.iapa-member-login__tabs button {
  border: 0; background: transparent; border-radius: 8px;
  padding: 10px 8px; font-weight: 700; color: var(--iapa-muted);
}
.iapa-member-login__tabs button.is-active {
  background: #fff; color: var(--iapa-primary-dark); box-shadow: var(--iapa-shadow-sm);
}
.iapa-member-login h1 { font-size: 26px; margin-bottom: 6px; }
.iapa-member-login__lede { color: var(--iapa-muted); margin-bottom: 18px; }
.iapa-gender { display: flex; gap: 10px; }
.iapa-gender label {
  flex: 1; border: 1px solid var(--iapa-line); border-radius: 10px;
  padding: 10px; text-align: center; cursor: pointer; font-weight: 600;
}
.iapa-gender input { display: none; }
.iapa-gender label.is-on { border-color: var(--iapa-primary); background: var(--iapa-primary-tint); }

@media (max-width: 900px) {
  .iapa-welcome__grid, .iapa-quick, .iapa-kind-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .iapa-welcome__hero { padding: 22px 18px; }
  .iapa-welcome__hero h1 { font-size: 22px; }
  .iapa-member-login__card { padding: 22px 16px; }
}
