.clinical-page-title { display: grid; gap: 0.2rem; min-width: 0; }
.clinical-page-title h2 { margin: 0; }
.clinical-page-title p { color: var(--gray-500); font-size: 0.84rem; line-height: 1.4; margin: 0; max-width: 820px; }
.clinical-quick-nav { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 1rem; }
.clinical-quick-nav a { align-items: center; background: white; border: 1px solid var(--gray-200); border-radius: 6px; color: var(--gray-700); display: inline-flex; font-size: 0.8rem; font-weight: 600; min-height: 34px; padding: 0.35rem 0.65rem; text-decoration: none; }
.clinical-quick-nav a:hover, .clinical-quick-nav a.active { border-color: var(--primary); color: var(--primary); }
.clinical-grid { display: grid; gap: 1rem; }
.clinical-grid.two { grid-template-columns: minmax(320px, 0.85fr) minmax(420px, 1.15fr); }
.clinical-grid.calendar-workspace { grid-template-columns: minmax(680px, 1.5fr) minmax(340px, 0.65fr); align-items: start; }
.clinical-grid.charge-workspace { grid-template-columns: minmax(340px, 0.78fr) minmax(520px, 1.22fr); align-items: start; }
.clinical-grid.encounter-workspace { grid-template-columns: minmax(340px, 0.78fr) minmax(520px, 1.22fr); align-items: start; }
.clinical-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.clinical-toolbar { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: end; margin-bottom: 1rem; }
.clinical-toolbar .form-group { min-width: 180px; margin: 0; }
.clinical-card-list { display: grid; gap: 0.6rem; }
.clinical-scroll-list { max-height: min(68vh, 720px); overflow: auto; padding-right: 0.15rem; }
.clinical-row { border: 1px solid var(--gray-200); background: white; border-radius: 6px; padding: 0.75rem; cursor: pointer; }
.clinical-row:hover { border-color: var(--primary); background: var(--gray-50); }
.clinical-row.active { border-color: var(--primary); box-shadow: inset 3px 0 0 var(--primary); }
.clinical-row-title { align-items: flex-start; display: flex; justify-content: space-between; gap: 0.75rem; font-weight: 600; color: var(--gray-800); min-width: 0; }
.clinical-row-title > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.clinical-row-meta { margin-top: 0.3rem; color: var(--gray-500); font-size: 0.78rem; line-height: 1.35; overflow-wrap: anywhere; }
.clinical-row-meta strong { color: var(--gray-700); font-weight: 600; }
/* BL1: patient-reported (portal check-in) medications surfaced in the Intake list, visually
   distinct from chart medications so staff can tell what still needs review/add. */
.encounter-intake-portal-meds-header { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: baseline; }
.encounter-intake-portal-meds-header span { color: var(--gray-500); font-size: 0.72rem; font-weight: 500; }
.encounter-intake-portal-med-row { background: #fffbeb; border-left: 3px solid #fcd34d; border-radius: 6px; padding-left: 0.5rem; }
.portal-kiosk-code-card { cursor: default; }
.portal-kiosk-code { color: var(--primary); font-size: 1.35rem; letter-spacing: 0.08em; }
.clinical-status { display: inline-flex; align-items: center; min-height: 22px; padding: 0.1rem 0.45rem; border-radius: 4px; background: var(--gray-100); color: var(--gray-700); font-size: 0.72rem; white-space: nowrap; }
.clinical-status.ready_for_review, .clinical-status.checked_in, .clinical-status.in_progress { background: #eff6ff; color: #1d4ed8; }
.clinical-status.approved, .clinical-status.billed, .clinical-status.signed { background: #ecfdf5; color: #047857; }
.clinical-status.returned, .clinical-status.cancelled { background: #fef2f2; color: #991b1b; }
.clinical-status.no_show { background: #fff7ed; color: #9a3412; }
.clinical-status.unsigned { background: #fff7ed; color: #9a3412; }
.clinical-form { display: grid; gap: 0.75rem; }
.clinical-form.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.clinical-form.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.clinical-actions {
  --action-button-font-size: 0.875rem;
  --action-button-min-height: var(--button-height, 2.5rem);
  --action-button-padding: 0 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: var(--button-gap, 0.5rem);
  align-items: center;
}
.clinical-actions input { max-width: 260px; }
.quick-patient-setup { border: 1px solid var(--gray-200); border-radius: 6px; padding: 0.6rem; }
.quick-patient-setup summary { color: var(--primary); cursor: pointer; font-weight: 700; }
.quick-patient-setup .clinical-form { margin-top: 0.6rem; }
.clinical-note-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.clinical-note-grid textarea { min-height: 120px; resize: vertical; }
.clinical-table-wrap { margin-top: 1rem; overflow-x: auto; }
.charge-workspace .clinical-table-wrap { overflow: visible; }
.clinical-table { table-layout: fixed; width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.clinical-table th { background: var(--gray-100); color: var(--gray-600); text-align: left; font-weight: 600; padding: 0.5rem; }
.clinical-table td { border-bottom: 1px solid var(--gray-200); padding: 0.45rem; vertical-align: top; }
.clinical-table input { width: 100%; min-width: 0; padding: 0.35rem; font-size: 0.82rem; }
.clinical-table .charge-code { width: 22%; }
.clinical-table .charge-modifier { width: 10%; }
.clinical-table .charge-dx { width: 12%; }
.clinical-table .charge-units { width: 12%; }
.clinical-table .charge-amount { width: 16%; }
.clinical-table .charge-action { width: 14%; }
.clinical-empty { color: var(--gray-500); padding: 1rem; text-align: center; border: 1px dashed var(--gray-300); border-radius: 6px; background: var(--gray-50); }
.clinical-alert { display: none; margin-bottom: 1rem; }
.clinical-alert.show { display: block; }
.calendar-shell-card { overflow: hidden; }
.calendar-shell-header { align-items: flex-start; border-bottom: 1px solid var(--gray-200); display: flex; gap: 1rem; justify-content: space-between; margin: -1rem -1rem 0; padding: 0.9rem 1rem; }
.calendar-shell-header h3 { color: var(--gray-900); font-size: 1rem; margin: 0; }
.calendar-shell-header p { color: var(--gray-500); font-size: 0.78rem; margin: 0.1rem 0 0; }
.calendar-nav-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 0.35rem; justify-content: flex-end; }
.calendar-control-bar { align-items: end; display: flex; flex-wrap: wrap; gap: 0.65rem; padding: 0.85rem 0 0.75rem; }
.calendar-control-bar > input { border: 1px solid var(--gray-300); border-radius: 6px; color: var(--gray-700); min-height: 36px; padding: 0.45rem 0.55rem; }
.calendar-control-bar .form-group { margin: 0; min-width: 220px; }
.calendar-availability-browser { background: #f8fafc; border: 1px solid var(--gray-200); border-radius: 8px; display: grid; gap: 0.65rem; margin-bottom: 0.8rem; padding: 0.75rem; }
.calendar-availability-header { align-items: center; display: flex; gap: 0.75rem; justify-content: space-between; }
.calendar-availability-header div:first-child { display: grid; gap: 0.08rem; min-width: 0; }
.calendar-availability-header strong { color: var(--gray-900); font-size: 0.9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-availability-header span { color: var(--gray-500); font-size: 0.72rem; overflow-wrap: anywhere; }
.calendar-availability-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 0.35rem; justify-content: flex-end; }
.calendar-availability-month { display: grid; gap: 0.35rem; grid-template-columns: repeat(7, minmax(72px, 1fr)); }
.calendar-availability-dow { color: var(--gray-500); font-size: 0.65rem; font-weight: 800; padding: 0 0.25rem; text-align: center; text-transform: uppercase; }
.calendar-availability-day { background: white; border: 1px solid var(--gray-200); border-radius: 6px; color: var(--gray-700); cursor: pointer; display: grid; gap: 0.1rem; min-height: 62px; padding: 0.45rem; text-align: left; }
.calendar-availability-day:hover, .calendar-availability-day.active { border-color: var(--primary); box-shadow: inset 0 -3px 0 var(--primary); }
.calendar-availability-day.outside { background: #f1f5f9; color: var(--gray-400); }
.calendar-availability-day.open { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.calendar-availability-day.full { background: #fff7ed; border-color: #fed7aa; color: #9a3412; }
.calendar-availability-day strong { color: inherit; font-size: 0.9rem; line-height: 1; }
.calendar-availability-day span { font-size: 0.65rem; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-availability-day em { color: var(--gray-500); font-size: 0.62rem; font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-focus-bar { align-items: center; background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 7px; display: flex; gap: 0.75rem; justify-content: space-between; margin-bottom: 0.75rem; padding: 0.55rem 0.65rem; }
.calendar-focus-bar div { display: grid; gap: 0.08rem; min-width: 0; text-align: center; }
.calendar-focus-bar strong { color: var(--gray-900); font-size: 0.86rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-focus-bar span { color: var(--gray-500); font-size: 0.72rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-day-strip { align-items: stretch; display: grid; gap: 0.45rem; grid-template-columns: 58px repeat(7, minmax(96px, 1fr)); margin-bottom: 0.75rem; min-width: 820px; }
.calendar-day-strip-gutter { align-items: end; color: var(--gray-500); display: flex; font-size: 0.68rem; font-weight: 700; justify-content: flex-end; padding: 0 0.1rem 0.55rem 0; text-transform: uppercase; }
.calendar-day-card { background: white; border: 1px solid var(--gray-200); border-radius: 7px; color: var(--gray-700); cursor: pointer; display: grid; gap: 0.05rem; min-height: 72px; padding: 0.55rem; text-align: left; }
.calendar-day-card:hover, .calendar-day-card.active { border-color: var(--primary); box-shadow: inset 0 -3px 0 var(--primary); }
.calendar-day-card.today { background: #eff6ff; }
.calendar-day-card span { color: var(--gray-500); font-size: 0.68rem; font-weight: 700; text-transform: uppercase; }
.calendar-day-card strong { color: var(--gray-900); font-size: 1.25rem; line-height: 1; }
.calendar-day-card em { color: var(--gray-500); font-size: 0.72rem; font-style: normal; }
.calendar-grid-board { border: 1px solid var(--gray-200); border-radius: 8px; overflow-x: auto; overflow-y: hidden; background: white; }
.calendar-grid-body { display: grid; grid-template-columns: 58px repeat(7, minmax(96px, 1fr)); min-height: 640px; min-width: 820px; position: relative; }
.calendar-provider-grid-body { display: grid; grid-template-columns: 58px repeat(var(--provider-lane-count), minmax(150px, 1fr)); grid-template-rows: auto 1fr; min-height: 2360px; min-width: max(860px, calc(58px + var(--provider-lane-count) * 150px)); position: relative; }
.calendar-provider-header-gutter { align-items: center; background: var(--gray-50); border-bottom: 1px solid var(--gray-200); border-right: 1px solid var(--gray-200); color: var(--gray-500); display: flex; font-size: 0.68rem; font-weight: 700; justify-content: flex-end; min-height: 54px; padding: 0.45rem 0.35rem; text-align: right; text-transform: uppercase; }
.calendar-provider-header { background: white; border-bottom: 1px solid var(--gray-200); border-right: 1px solid var(--gray-200); display: grid; gap: 0.12rem; min-height: 54px; padding: 0.45rem 0.55rem; }
.calendar-provider-header strong { color: var(--gray-900); font-size: 0.82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-provider-header span { color: var(--gray-500); font-size: 0.68rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-time-gutter { border-right: 1px solid var(--gray-200); color: var(--gray-500); display: grid; font-size: 0.67rem; grid-template-rows: repeat(var(--calendar-hour-count), 1fr); text-align: right; }
.calendar-time-gutter div { border-bottom: 1px solid var(--gray-100); padding: 0.25rem 0.35rem 0 0; }
.calendar-day-column { border-right: 1px solid var(--gray-200); display: grid; grid-template-rows: repeat(var(--calendar-hour-count), 1fr); position: relative; }
.calendar-day-column:last-child { border-right: 0; }
.calendar-day-column.active { background: #f8fbff; }
.calendar-hour-line { border-bottom: 1px solid var(--gray-100); min-height: 58px; }
.calendar-provider-grid-body .calendar-hour-line { min-height: 96px; }
.calendar-event { border: 1px solid #bfdbfe; border-left: 4px solid var(--primary); border-radius: 7px; background: #eff6ff; color: #1e3a8a; cursor: pointer; display: grid; gap: 0.05rem; left: 5px; overflow: hidden; padding: 0.3rem 0.4rem; position: absolute; right: 5px; text-align: left; z-index: 1; }
.calendar-event[draggable="true"] { cursor: grab; }
.calendar-event[draggable="true"]:active { cursor: grabbing; }
.calendar-event:hover, .calendar-event.active { box-shadow: 0 6px 16px rgba(37, 99, 235, 0.2); z-index: 2; }
.calendar-event span { font-size: 0.64rem; font-weight: 700; }
.calendar-event strong { font-size: 0.74rem; line-height: 1.15; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event em { font-size: 0.64rem; font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event .calendar-chip-row { flex-wrap: nowrap; gap: 0.15rem; overflow: hidden; }
.calendar-event .calendar-chip { font-size: 0.56rem; min-height: 15px; padding: 0.02rem 0.22rem; }
.calendar-event .calendar-chip[role="button"] { cursor: pointer; }
.calendar-event.checked_in, .calendar-event.in_progress { background: #e0f2fe; border-color: #7dd3fc; border-left-color: #0284c7; color: #075985; }
.calendar-event.cancelled { background: #fef2f2; border-color: #fecaca; border-left-color: #dc2626; color: #991b1b; text-decoration: line-through; }
.calendar-event.no_show { background: #fff7ed; border-color: #fed7aa; border-left-color: #ea580c; color: #9a3412; }
.calendar-event.completed, .calendar-event.signed { background: #ecfdf5; border-color: #bbf7d0; border-left-color: #059669; color: #065f46; }
.calendar-event.conflict { background: #fef2f2; border-color: #fca5a5; border-left-color: #b91c1c; color: #7f1d1d; }
.calendar-chip-row { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.45rem; }
.calendar-chip { align-items: center; border-radius: 4px; display: inline-flex; font-size: 0.68rem; font-weight: 700; line-height: 1.15; min-height: 20px; padding: 0.12rem 0.42rem; white-space: nowrap; }
.calendar-chip.success { background: #dcfce7; color: #166534; }
.calendar-chip.warning { background: #fef3c7; color: #92400e; }
.calendar-chip.danger { background: #fee2e2; color: #991b1b; }
.calendar-opening-block { background: #dcfce7; border: 1px solid #22c55e; border-left: 4px solid #16a34a; border-radius: 7px; color: #14532d; cursor: pointer; display: grid; gap: 0.02rem; left: 5px; overflow: hidden; padding: 0.25rem 0.35rem; position: absolute; right: 5px; text-align: left; z-index: 1; }
.calendar-opening-block:hover, .calendar-opening-block:focus-visible { background: #bbf7d0; border-color: #15803d; box-shadow: 0 5px 14px rgba(22, 101, 52, 0.22); outline: none; z-index: 4; }
.calendar-opening-block[ondrop] { outline: 1px solid rgba(34, 197, 94, 0.24); outline-offset: -3px; }
.calendar-opening-block span { font-size: 0.62rem; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-opening-block strong { font-size: 0.7rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-opening-block em { font-size: 0.6rem; font-style: normal; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-provider-slot-block { align-items: center; background: #ecfdf5; border: 1px solid #86efac; border-left: 3px solid #16a34a; border-radius: 4px; color: #14532d; cursor: pointer; display: flex; gap: 0.3rem; justify-content: space-between; left: 5px; min-height: 20px; overflow: hidden; padding: 0.1rem 0.35rem; position: absolute; right: 5px; text-align: left; z-index: 1; }
.calendar-provider-slot-block:hover, .calendar-provider-slot-block:focus-visible { background: #bbf7d0; border-color: #15803d; box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.18); outline: none; z-index: 5; }
.calendar-provider-slot-block.active { background: #16a34a; border-color: #166534; color: white; z-index: 4; }
.calendar-provider-slot-block strong { font-size: 0.66rem; line-height: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-provider-slot-block span { font-size: 0.58rem; font-weight: 800; line-height: 1; text-transform: uppercase; }
.calendar-availability-band { align-content: start; background: linear-gradient(#dcfce7, #bbf7d0); border-color: #16a34a; border-left: 5px solid #15803d; box-shadow: 0 5px 14px rgba(22, 101, 52, 0.18); padding-top: 0.4rem; }
.calendar-week-opening-block { opacity: 0.92; right: 7px; }
.calendar-provider-slots-bar { background: #f0fdf4; border-bottom: 2px solid #bbf7d0; display: grid; grid-template-columns: 58px repeat(var(--provider-lane-count), minmax(150px, 1fr)); min-width: max(860px, calc(58px + var(--provider-lane-count) * 150px)); }
.calendar-provider-slots-bar-gutter { background: var(--gray-50); border-right: 1px solid var(--gray-200); }
.calendar-provider-slot-col { border-right: 1px solid var(--gray-200); padding: 0.5rem; }
.calendar-provider-slot-col:last-child { border-right: 0; }
.provider-slot-picker { background: white; border: 1px solid #bbf7d0; border-radius: 8px; display: grid; gap: 0.45rem; max-height: 320px; overflow-y: auto; padding: 0.55rem; }
.provider-slot-picker-heading { align-items: center; display: flex; justify-content: space-between; gap: 0.5rem; }
.provider-slot-picker-heading strong { color: #14532d; font-size: 0.76rem; }
.provider-slot-picker-heading span { color: var(--gray-500); font-size: 0.66rem; font-weight: 800; }
.provider-slot-button-grid { display: grid; gap: 0.35rem; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); }
.provider-slot-button { background: linear-gradient(#f0fdf4, #dcfce7); border: 1px solid #86efac; border-radius: 7px; color: #14532d; cursor: pointer; display: grid; gap: 0.05rem; min-height: 54px; padding: 0.35rem 0.45rem; text-align: left; }
.provider-slot-button:hover, .provider-slot-button:focus-visible { border-color: #15803d; box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.18), 0 5px 12px rgba(22, 101, 52, 0.18); outline: none; }
.provider-slot-button.active { background: linear-gradient(#16a34a, #15803d); border-color: #166534; color: white; }
.provider-slot-button strong { font-size: 0.78rem; line-height: 1; }
.provider-slot-button span, .provider-slot-button em { font-size: 0.64rem; font-style: normal; font-weight: 750; line-height: 1.1; }
.provider-slot-picker-more { color: var(--gray-500); font-size: 0.66rem; font-weight: 700; }
/* Open-slots picker embedded in the schedule form (click a 15-min slot to fill the time). */
.appointment-slot-panel { margin: 0 0 0.85rem; }
.appointment-slot-picker-empty { background: #f8fafc; border: 1px dashed var(--gray-300); border-radius: 8px; color: var(--gray-600); font-size: 0.78rem; padding: 0.7rem 0.8rem; }
.calendar-provider-empty { align-content: start; background: #f8fafc; border: 1px dashed var(--gray-300); border-radius: 8px; color: var(--gray-600); display: grid; gap: 0.45rem; left: 10px; min-height: 118px; padding: 0.8rem; position: absolute; right: 10px; text-align: left; top: 14px; z-index: 1; }
.calendar-provider-empty strong { color: var(--gray-800); font-size: 0.82rem; }
.calendar-provider-empty span { font-size: 0.72rem; line-height: 1.25; }
.calendar-provider-empty-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 0.35rem; }
.calendar-resource-block { background: #fef2f2; border: 1px solid #fca5a5; border-left: 4px solid #dc2626; border-radius: 7px; color: #7f1d1d; cursor: pointer; display: grid; gap: 0.02rem; left: 5px; overflow: hidden; padding: 0.3rem 0.4rem; position: absolute; right: 5px; text-align: left; z-index: 2; }
.calendar-resource-block:hover { box-shadow: 0 6px 16px rgba(220, 38, 38, 0.18); z-index: 4; }
.calendar-resource-block span { font-size: 0.62rem; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-resource-block strong { font-size: 0.72rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-resource-block em { font-size: 0.62rem; font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-legend { align-items: center; display: flex; flex-wrap: wrap; gap: 0.75rem; padding-top: 0.65rem; }
.calendar-legend span { align-items: center; color: var(--gray-500); display: inline-flex; font-size: 0.72rem; gap: 0.3rem; }
.calendar-legend i { border-radius: 3px; display: inline-block; height: 10px; width: 10px; }
.calendar-legend .scheduled { background: var(--primary); }
.calendar-legend .checked_in { background: #0284c7; }
.calendar-legend .cancelled { background: #dc2626; }
.calendar-legend .no_show { background: #ea580c; }
.calendar-agenda-list { display: grid; gap: 0.7rem; margin-bottom: 0.9rem; }
.calendar-agenda-heading { align-items: center; background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 7px; display: flex; justify-content: space-between; padding: 0.65rem 0.75rem; }
.calendar-agenda-heading span { color: var(--gray-700); font-size: 0.82rem; font-weight: 700; }
.calendar-agenda-heading strong { color: var(--primary-dark); font-size: 0.78rem; }
.patient-search-wrapper { position: relative; }
.patient-search-results { background: #fff; border: 1px solid var(--gray-300); border-radius: 5px; box-shadow: 0 2px 8px rgba(0,0,0,0.10); left: 0; max-height: 200px; overflow-y: auto; position: absolute; right: 0; top: 100%; z-index: 120; }
.patient-search-result { cursor: pointer; font-size: 0.85rem; line-height: 1.4; padding: 0.35rem 0.6rem; }
.patient-search-result:hover { background: var(--blue-50,#eff6ff); }
.schedule-navigator { border: 1px solid var(--gray-200); border-radius: 7px; display: grid; gap: 0.65rem; margin-bottom: 0.9rem; padding: 0.75rem; }
.scheduling-flow-panel { align-items: center; display: grid; gap: 0.45rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 0.9rem; }
.scheduling-step { align-items: center; background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 7px; color: var(--gray-600); display: flex; gap: 0.45rem; min-height: 42px; padding: 0.45rem 0.55rem; }
.scheduling-step strong { align-items: center; background: white; border: 1px solid var(--gray-200); border-radius: 50%; display: inline-flex; font-size: 0.7rem; height: 22px; justify-content: center; width: 22px; }
.scheduling-step span { font-size: 0.72rem; font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.scheduling-step.done { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.scheduling-step.done strong { border-color: #22c55e; color: #166534; }
.schedule-jump-section { display: grid; gap: 0.45rem; }
.schedule-jump-heading { align-items: center; display: flex; justify-content: space-between; gap: 0.5rem; }
.schedule-jump-heading span { color: var(--gray-800); font-size: 0.82rem; font-weight: 700; }
.schedule-jump-heading strong { color: var(--gray-500); font-size: 0.72rem; }
.schedule-chip-row { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.schedule-chip { background: white; border: 1px solid var(--gray-200); border-radius: 6px; color: var(--gray-700); cursor: pointer; display: inline-grid; gap: 0.03rem; max-width: 150px; min-height: 42px; min-width: 96px; padding: 0.35rem 0.45rem; text-align: left; }
.schedule-chip:hover, .schedule-chip.active { border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary); }
.schedule-chip.opening { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.schedule-chip strong { font-size: 0.72rem; line-height: 1; }
.schedule-chip span { font-size: 0.66rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.schedule-empty-chip { background: var(--gray-50); border: 1px dashed var(--gray-300); border-radius: 6px; color: var(--gray-500); font-size: 0.72rem; padding: 0.45rem 0.55rem; }
.schedule-secondary-tools { border-top: 1px solid var(--gray-200); display: grid; gap: 0.55rem; padding-top: 0.6rem; }
.schedule-secondary-tools summary { color: var(--gray-600); cursor: pointer; font-size: 0.74rem; font-weight: 800; }
.schedule-secondary-tools[open] { gap: 0.65rem; }
.provider-load-list { display: grid; gap: 0.4rem; }
.provider-load-row { background: white; border: 1px solid var(--gray-200); border-radius: 6px; color: var(--gray-700); cursor: pointer; display: grid; gap: 0.08rem; padding: 0.5rem 0.6rem; text-align: left; width: 100%; }
.provider-load-row:hover { border-color: var(--primary); background: var(--gray-50); }
.provider-load-row.conflict { background: #fef2f2; border-color: #fca5a5; color: #7f1d1d; }
.provider-load-row.blocked { background: #fff7ed; border-color: #fed7aa; color: #9a3412; }
.provider-load-row strong { color: var(--gray-900); font-size: 0.76rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.provider-load-row span, .provider-load-row em { color: var(--gray-500); font-size: 0.66rem; font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.schedule-warnings { margin-bottom: 0.9rem; }
.schedule-warning { background: #fff7ed; border: 1px solid #fed7aa; border-radius: 7px; color: #9a3412; display: grid; gap: 0.18rem; padding: 0.65rem 0.75rem; }
.schedule-warning.ok { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.schedule-warning strong { font-size: 0.78rem; }
.schedule-warning span { font-size: 0.7rem; line-height: 1.25; }
.schedule-warning.eligibility-gate { margin-top: 0.5rem; }
.schedule-warning.eligibility-gate.warn { background: #fffbeb; border-color: #fcd34d; color: #92400e; }
.schedule-warning.eligibility-gate.block { background: #fef2f2; border-color: #fca5a5; color: #991b1b; }
.eligibility-gate-actions { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.35rem; }
.overbook-guardrail-panel { background: #fff7ed; border: 1px solid #fdba74; border-radius: 7px; display: grid; gap: 0.5rem; margin-bottom: 0.9rem; padding: 0.65rem 0.75rem; }
.overbook-guardrail-panel[hidden] { display: none; }
.overbook-guardrail-panel strong { color: #7c2d12; font-size: 0.82rem; }
.overbook-guardrail-panel span { color: #9a3412; font-size: 0.72rem; line-height: 1.35; }
.overbook-guardrail-panel textarea { min-height: 48px; resize: vertical; }
.clinical-check-row { align-items: center; color: var(--gray-700); display: flex; font-size: 0.78rem; font-weight: 700; gap: 0.45rem; }
.clinical-check-row input { width: auto; }
.selected-slot-summary { background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 7px; display: grid; gap: 0.5rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 0.9rem; padding: 0.65rem 0.75rem; }
.selected-slot-summary.ready { background: #f0fdf4; border-color: #86efac; }
.selected-slot-summary div { display: grid; gap: 0.1rem; min-width: 0; }
.selected-slot-summary span { color: var(--gray-500); font-size: 0.66rem; font-weight: 800; text-transform: uppercase; }
.selected-slot-summary strong { color: var(--gray-900); font-size: 0.78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.selected-slot-summary.ready strong { color: #14532d; }
.inline-appointment-actions { align-items: center; display: flex !important; flex-wrap: wrap; gap: 0.35rem !important; grid-column: 1 / -1; }
.inline-appointment-actions .btn { min-height: var(--button-height-sm, 2rem) !important; }
.smart-defaults-panel { align-items: center; background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 7px; display: grid; gap: 0.5rem; grid-template-columns: minmax(0, 1fr) auto; margin-bottom: 0.9rem; padding: 0.65rem 0.75rem; }
.smart-defaults-panel[hidden] { display: none; }
.smart-defaults-panel div { display: grid; gap: 0.1rem; min-width: 0; }
.smart-defaults-panel strong { color: #0c4a6e; font-size: 0.82rem; }
.smart-defaults-panel span, .smart-defaults-panel p { color: #0369a1; font-size: 0.72rem; line-height: 1.3; margin: 0; overflow-wrap: anywhere; }
.smart-defaults-panel .btn { min-height: var(--button-height-sm, 2rem) !important; white-space: nowrap; }
.appointment-context-banner { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 7px; color: #1e3a8a; display: grid; gap: 0.1rem; margin-bottom: 0.9rem; padding: 0.65rem 0.75rem; }
.appointment-context-banner strong { font-size: 0.8rem; }
.appointment-context-banner span { font-size: 0.72rem; line-height: 1.25; }
.next-best-action-panel { background: #f7fee7; border: 1px solid #bef264; border-radius: 7px; display: grid; gap: 0.55rem; margin-bottom: 0.9rem; padding: 0.7rem; }
.next-best-action-header { align-items: start; display: flex; gap: 0.6rem; justify-content: space-between; }
.next-best-action-header div { display: grid; gap: 0.1rem; min-width: 0; }
.next-best-action-header strong { color: #365314; font-size: 0.84rem; }
.next-best-action-header span { color: #4d7c0f; font-size: 0.72rem; line-height: 1.25; }
.next-best-action-role { background: #ecfccb; border: 1px solid #bef264; border-radius: 999px; color: #3f6212; font-size: 0.68rem; font-weight: 800; padding: 0.18rem 0.45rem; white-space: nowrap; }
.next-best-action-list { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.next-best-action-list .btn { min-height: var(--button-height-sm, 2rem) !important; }
.next-best-action-panel.muted { background: var(--gray-50); border-color: var(--gray-200); }
.next-best-action-panel.muted .next-best-action-header strong { color: var(--gray-700); }
.next-best-action-panel.muted .next-best-action-header span { color: var(--gray-500); }
.clinical-command-palette { align-items: flex-start; background: rgba(15, 23, 42, 0.42); display: flex; inset: 0; justify-content: center; padding: 9vh 1rem 1rem; position: fixed; z-index: 200; }
.clinical-command-palette[hidden] { display: none; }
.clinical-command-shell { background: white; border: 1px solid var(--gray-200); border-radius: 8px; box-shadow: 0 18px 48px rgba(15, 23, 42, 0.24); display: grid; gap: 0.65rem; max-width: 620px; padding: 0.8rem; width: min(620px, 100%); }
.clinical-command-head { align-items: center; display: flex; gap: 0.6rem; justify-content: space-between; }
.clinical-command-head strong { color: var(--gray-900); font-size: 0.95rem; }
.clinical-command-shell input { border: 1px solid var(--gray-300); border-radius: 7px; color: var(--gray-900); font-size: 0.95rem; min-height: 42px; padding: 0.55rem 0.7rem; width: 100%; }
.clinical-command-list { display: grid; gap: 0.35rem; max-height: min(420px, 58vh); overflow: auto; }
.clinical-command-row { background: white; border: 1px solid var(--gray-200); border-radius: 7px; color: var(--gray-700); cursor: pointer; display: grid; gap: 0.12rem; min-height: 52px; padding: 0.58rem 0.7rem; text-align: left; width: 100%; }
.clinical-command-row:hover, .clinical-command-row:focus { border-color: var(--primary); box-shadow: inset 3px 0 0 var(--primary); outline: none; }
.clinical-command-row:disabled { background: var(--gray-50); color: var(--gray-400); cursor: not-allowed; }
.clinical-command-row strong { color: var(--gray-900); font-size: 0.84rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.clinical-command-row span { color: var(--gray-600); font-size: 0.74rem; line-height: 1.3; overflow-wrap: anywhere; }
.clinical-command-row:disabled strong, .clinical-command-row:disabled span { color: var(--gray-400); }
.clinical-command-empty { color: var(--gray-500); font-size: 0.82rem; padding: 0.8rem; text-align: center; }
.calendar-guide-panel { align-items: flex-start; background: rgba(15, 23, 42, 0.36); display: flex; inset: 0; justify-content: flex-end; padding: 5rem 1rem 1rem; position: fixed; z-index: 190; }
.calendar-guide-panel[hidden] { display: none; }
.calendar-guide-shell { background: white; border: 1px solid var(--gray-200); border-radius: 8px; box-shadow: 0 18px 48px rgba(15, 23, 42, 0.22); display: grid; gap: 0.7rem; max-width: 380px; padding: 0.85rem; width: min(380px, 100%); }
.calendar-guide-head { align-items: center; display: flex; gap: 0.6rem; justify-content: space-between; }
.calendar-guide-head strong { color: var(--gray-900); font-size: 0.95rem; }
.calendar-guide-list { display: grid; gap: 0.45rem; }
.calendar-guide-step { background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 7px; color: var(--gray-700); cursor: pointer; display: grid; gap: 0.12rem; min-height: 54px; padding: 0.55rem 0.65rem; text-align: left; width: 100%; }
.calendar-guide-step:hover, .calendar-guide-step:focus-visible { background: white; border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary); outline: none; }
.calendar-guide-step strong { color: var(--gray-900); font-size: 0.8rem; }
.calendar-guide-step span { color: var(--gray-500); font-size: 0.72rem; line-height: 1.25; }
.quick-schedule-panel { background: #f8fafc; border: 1px solid var(--gray-200); border-radius: 7px; display: grid; gap: 0.55rem; margin-bottom: 0.9rem; padding: 0.7rem; }
.quick-schedule-header { display: block; min-width: 0; }
.quick-schedule-copy { display: grid; gap: 0.08rem; min-width: 0; }
.quick-schedule-header strong { color: var(--gray-900); font-size: 0.86rem; }
.quick-schedule-header span { color: var(--gray-500); font-size: 0.7rem; font-weight: 800; text-transform: uppercase; }
.quick-schedule-actions { display: grid; gap: 0.35rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.quick-schedule-actions .btn { min-width: 0; white-space: normal; width: 100%; }
.quick-schedule-panel textarea { min-height: 58px; resize: vertical; }
.quick-schedule-preview { background: white; border: 1px solid var(--gray-200); border-radius: 6px; color: var(--gray-600); display: grid; font-size: 0.76rem; gap: 0.35rem; line-height: 1.35; min-height: 54px; padding: 0.6rem; }
.quick-schedule-preview.ready { border-color: #86efac; color: #14532d; }
.quick-schedule-preview.blocked { border-color: #fca5a5; color: #7f1d1d; }
.quick-schedule-preview strong { color: inherit; font-size: 0.82rem; }
.quick-schedule-preview ul { margin: 0; padding-left: 1.1rem; }
.quick-schedule-preview li { margin: 0.08rem 0; }
.appointment-duration-bar { align-items: center; background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 7px; display: flex; flex-wrap: wrap; gap: 0.4rem; padding: 0.55rem 0.65rem; }
.appointment-duration-bar > span { color: var(--gray-700); font-size: 0.78rem; font-weight: 800; margin-right: 0.15rem; }
.appointment-duration-bar .btn.active { border-color: var(--primary); box-shadow: inset 0 -2px 0 var(--primary); color: var(--primary); }
.appointment-duration-bar em { color: var(--gray-500); font-size: 0.72rem; font-style: normal; font-weight: 700; margin-left: auto; white-space: nowrap; }
.appointment-context-grid { background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 7px; padding: 0.65rem; }
.resource-block-panel { border: 1px solid var(--gray-200); border-radius: 7px; display: grid; gap: 0.6rem; padding: 0.75rem; }
.resource-block-panel select { border: 1px solid var(--gray-300); border-radius: 6px; font-size: 0.72rem; min-height: 32px; padding: 0.25rem 0.4rem; }
.clinical-actions.compact {
  --action-button-font-size: 0.78rem;
  --action-button-min-height: var(--button-height-sm, 2rem);
  --action-button-padding: 0 0.65rem;
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-end;
}
.clinical-actions.compact .btn,
.provider-template-provider-actions .btn,
.provider-template-row-actions .btn {
  font-size: var(--action-button-font-size, 0.78rem) !important;
  min-height: var(--action-button-min-height, var(--button-height-sm, 2rem)) !important;
  padding: var(--action-button-padding, 0 0.65rem) !important;
}
.resource-block-list { display: grid; gap: 0.45rem; max-height: 210px; overflow: auto; }
.resource-block-row { align-items: center; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 6px; display: flex; gap: 0.5rem; justify-content: space-between; padding: 0.55rem 0.65rem; }
.resource-block-row div { display: grid; gap: 0.08rem; min-width: 0; }
.resource-block-row strong { color: #7c2d12; font-size: 0.78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.resource-block-row span { color: #9a3412; font-size: 0.68rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.provider-openings-panel { border: 1px solid var(--gray-200); border-radius: 7px; display: grid; gap: 0.6rem; padding: 0.75rem; }
.provider-openings-header { align-items: center; display: flex; justify-content: space-between; gap: 0.5rem; }
.provider-openings-header span { color: var(--gray-800); font-size: 0.86rem; font-weight: 700; }
.provider-openings-list { display: grid; gap: 0.45rem; max-height: 260px; overflow: auto; }
.provider-opening-row { background: white; border: 1px solid var(--gray-200); border-radius: 6px; color: var(--gray-700); cursor: pointer; display: grid; gap: 0.15rem; padding: 0.55rem 0.65rem; text-align: left; width: 100%; }
.provider-opening-row:hover, .provider-opening-row.active { border-color: var(--primary); background: var(--gray-50); box-shadow: inset 0 0 0 1px var(--primary); }
.provider-opening-row.opening { border-left: 4px solid #22c55e; }
.provider-opening-row.appointment { background: #eff6ff; border-color: #bfdbfe; border-left: 4px solid #2563eb; }
.provider-opening-row.appointment em { color: #1d4ed8; }
.provider-opening-row strong { color: var(--gray-900); font-size: 0.84rem; }
.provider-opening-row span { color: var(--gray-500); font-size: 0.72rem; line-height: 1.3; overflow-wrap: anywhere; }
.provider-opening-row em { color: #166534; font-size: 0.7rem; font-style: normal; font-weight: 800; }
.waitlist-row { cursor: default; }
.waitlist-row:hover { border-color: var(--gray-200); background: white; }
.waitlist-row-main { align-items: center; display: flex; gap: 0.5rem; justify-content: space-between; min-width: 0; }
.waitlist-row-main strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.waitlist-no-match { background: var(--gray-100); border-radius: 4px; color: var(--gray-500); display: inline-flex; font-size: 0.68rem; font-weight: 700; min-height: 24px; padding: 0.2rem 0.45rem; white-space: nowrap; }
.cancel-waitlist-offer { background: #fff7ed; border: 1px solid #fdba74; border-radius: 7px; display: grid; gap: 0.45rem; margin-top: 0.55rem; padding: 0.6rem; }
.cancel-waitlist-offer[hidden] { display: none; }
.cancel-waitlist-offer strong { color: #7c2d12; font-size: 0.82rem; }
.cancel-waitlist-offer span { color: #9a3412; font-size: 0.72rem; line-height: 1.35; }
.cancel-waitlist-row { align-items: center; display: flex; gap: 0.5rem; justify-content: space-between; min-width: 0; }
.cancel-confirm-panel.cancel-waitlist-offer { background: #fef2f2; border-color: #fca5a5; }
.cancel-confirm-reason { color: #991b1b; display: grid; font-size: 0.72rem; gap: 0.25rem; }
.cancel-confirm-reason input { border: 1px solid #fca5a5; border-radius: 5px; font-size: 0.78rem; padding: 0.35rem 0.45rem; }
.cancel-confirm-actions { display: flex; gap: 0.5rem; }
.encounter-note-locked { background: #fef3c7; border: 1px solid #fcd34d; border-radius: 7px; color: #92400e; font-size: 0.8rem; font-weight: 600; margin-bottom: 0.85rem; padding: 0.6rem 0.75rem; }
.encounter-note-locked[hidden] { display: none; }
.encounter-amendment-panel { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; margin-top: 1rem; padding: 0.85rem; }
.encounter-amendment-panel[hidden] { display: none; }
.encounter-amendment-panel h4 { color: #334155; }
.encounter-charge-gate { align-items: center; background: #fef2f2; border: 1px solid #fca5a5; border-radius: 8px; color: #991b1b; display: flex; flex-wrap: wrap; font-size: 0.82rem; gap: 0.6rem; margin-bottom: 1rem; padding: 0.7rem 0.85rem; }
.encounter-charge-gate[hidden] { display: none; }
.encounter-charge-gate .btn { margin-left: auto; }
.charge-validation-errors { background: #fef2f2; border: 1px solid #fca5a5; border-radius: 8px; color: #991b1b; font-size: 0.82rem; margin-top: 0.75rem; padding: 0.7rem 0.85rem; }
.charge-validation-errors[hidden] { display: none; }
.charge-validation-errors ul { margin: 0.35rem 0 0; padding-left: 1.1rem; }
.charge-validation-errors li { margin: 0.15rem 0; }
.provider-calendar-card { overflow: hidden; }
.provider-calendar-action-row { --action-button-font-size: 0.875rem; --action-button-min-height: var(--button-height, 2.5rem); --action-button-padding: 0 1rem; align-items: center; background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 7px; display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 0 0 0.75rem; padding: 0.65rem; }
.provider-calendar-action-row .btn { white-space: nowrap; }
.provider-calendar-summary { background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 7px; color: var(--gray-700); font-size: 0.82rem; font-weight: 700; margin-bottom: 0.75rem; padding: 0.65rem 0.75rem; }
.provider-availability-grid { border: 1px solid var(--gray-200); border-radius: 8px; display: grid; overflow: hidden; }
.provider-hour-row { display: grid; grid-template-columns: 72px 1fr; min-height: 48px; }
.provider-hour-row + .provider-hour-row { border-top: 1px solid var(--gray-200); }
.provider-hour-label { align-items: center; background: var(--gray-50); border-right: 1px solid var(--gray-200); color: var(--gray-600); display: flex; font-size: 0.72rem; font-weight: 800; justify-content: flex-end; padding: 0.45rem 0.55rem; text-align: right; }
.provider-quarter-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.provider-quarter-slot { background: #f8fafc; border: 0; border-right: 1px solid var(--gray-100); color: var(--gray-600); cursor: pointer; display: grid; gap: 0.05rem; min-height: 48px; padding: 0.38rem 0.45rem; text-align: left; }
.provider-quarter-slot:last-child { border-right: 0; }
.provider-quarter-slot:hover { box-shadow: inset 0 0 0 2px var(--primary); }
.provider-quarter-slot.available { background: #d1fae5; color: #065f46; }
.provider-quarter-slot.unavailable { background: #e2e8f0; color: #64748b; }
.provider-quarter-slot.unavailable.reasoned { background: #fff7ed; color: #9a3412; }
.provider-quarter-slot strong { font-size: 0.7rem; line-height: 1; }
.provider-quarter-slot span { font-size: 0.62rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.provider-availability-undo-status { color: var(--gray-500); font-size: 0.74rem; font-weight: 700; margin: -0.25rem 0 0.7rem; min-height: 1rem; }
.provider-template-tabs { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 0.75rem; }
.provider-template-tab { background: white; border: 1px solid var(--gray-200); border-radius: 6px; color: var(--gray-700); cursor: pointer; font-size: 0.76rem; font-weight: 700; min-height: 34px; padding: 0.35rem 0.65rem; }
.provider-template-tab.active, .provider-template-tab:hover { border-color: var(--primary); color: var(--primary); box-shadow: inset 0 -2px 0 var(--primary); }
.provider-template-scope { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 7px; color: #1e40af; font-size: 0.82rem; font-weight: 700; margin-bottom: 0.75rem; padding: 0.65rem 0.75rem; }
.provider-template-apply-context { align-items: center; background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 7px; display: flex; flex-wrap: wrap; gap: 0.45rem 0.75rem; justify-content: space-between; margin-bottom: 0.75rem; padding: 0.6rem 0.75rem; }
.provider-template-apply-context strong { color: var(--gray-800); font-size: 0.78rem; }
.provider-template-apply-context span { color: var(--gray-600); font-size: 0.78rem; overflow-wrap: anywhere; }
.provider-template-provider-picker { min-width: 260px; }
.provider-template-provider-picker select { min-height: 118px; }
.provider-template-provider-actions { --action-button-font-size: 0.78rem; --action-button-min-height: var(--button-height-sm, 2rem); --action-button-padding: 0 0.65rem; align-items: center; display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.4rem; }
.provider-template-range-bar { align-items: end; background: white; border: 1px solid var(--gray-200); border-radius: 7px; display: flex; flex-wrap: wrap; gap: 0.55rem; margin: 0 0 0.75rem; padding: 0.65rem; }
.provider-template-range-bar .form-group { margin: 0; min-width: 132px; }
.provider-template-range-bar input { border: 1px solid var(--gray-300); border-radius: 6px; color: var(--gray-700); min-height: 34px; padding: 0.35rem 0.45rem; width: 100%; }
.provider-template-pattern-bar { align-items: end; background: #f8fafc; border: 1px solid var(--gray-200); border-radius: 7px; display: flex; flex-wrap: wrap; gap: 0.55rem; margin: 0 0 0.75rem; padding: 0.65rem; }
.provider-template-pattern-bar .form-group { margin: 0; min-width: 150px; }
.provider-template-pattern-bar select { border: 1px solid var(--gray-300); border-radius: 6px; color: var(--gray-700); min-height: 34px; padding: 0.35rem 0.45rem; width: 100%; }
.provider-template-pattern-days { align-items: center; display: flex; flex-wrap: wrap; gap: 0.3rem; min-height: 34px; }
.provider-template-pattern-day { align-items: center; background: white; border: 1px solid var(--gray-200); border-radius: 6px; color: var(--gray-700); cursor: pointer; display: inline-flex; gap: 0.25rem; min-height: 32px; padding: 0.25rem 0.45rem; }
.provider-template-pattern-day.active { background: #eff6ff; border-color: var(--primary); color: var(--primary); }
.provider-template-pattern-day input { margin: 0; }
.provider-template-pattern-day span { font-size: 0.72rem; font-weight: 800; }
.provider-template-week-summary { display: grid; gap: 0.45rem; grid-template-columns: repeat(7, minmax(88px, 1fr)); margin: 0 0 0.75rem; }
.provider-template-day-summary { background: white; border: 1px solid var(--gray-200); border-radius: 7px; color: var(--gray-700); cursor: pointer; display: grid; gap: 0.08rem; min-height: 58px; padding: 0.45rem 0.55rem; text-align: left; }
.provider-template-day-summary:hover, .provider-template-day-summary.active { border-color: var(--primary); box-shadow: inset 0 -3px 0 var(--primary); }
.provider-template-day-summary strong { color: var(--gray-900); font-size: 0.78rem; }
.provider-template-day-summary span, .provider-template-day-summary em { color: var(--gray-500); font-size: 0.68rem; font-style: normal; line-height: 1.05; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.provider-template-grid-head { align-items: center; background: var(--gray-50); border: 1px solid var(--gray-200); border-bottom: 0; border-radius: 8px 8px 0 0; color: var(--gray-600); display: grid; font-size: 0.68rem; font-weight: 800; gap: 0; grid-template-columns: 72px repeat(4, minmax(0, 1fr)) 156px; overflow: hidden; text-align: center; text-transform: uppercase; }
.provider-template-grid-head span { border-right: 1px solid var(--gray-200); padding: 0.4rem 0.45rem; }
.provider-template-grid-head span:last-child { border-right: 0; }
.provider-template-week-grid { border-radius: 0 0 8px 8px; }
.provider-template-hour-row { grid-template-columns: 72px 1fr 156px; }
.provider-template-row-actions { --action-button-font-size: 0.78rem; --action-button-min-height: var(--button-height-sm, 2rem); --action-button-padding: 0 0.65rem; align-items: center; background: var(--gray-50); border-left: 1px solid var(--gray-200); display: grid; gap: 0.25rem; grid-template-columns: 1fr; padding: 0.35rem; }
.provider-template-row-actions .btn { white-space: nowrap; }
.clinical-suggestions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin-top: 0.75rem; }
.clinical-suggestion { border: 1px solid var(--gray-200); border-radius: 6px; padding: 0.55rem; background: white; }
.clinical-suggestion-code { font-weight: 700; color: var(--gray-800); }
.clinical-suggestion-meta { margin-top: 0.2rem; font-size: 0.75rem; color: var(--gray-500); }
.clinical-suggestion .btn { margin-top: 0.4rem; }
.clinical-suggestion.accepted { border-color: #86efac; background: #f0fdf4; }
.accepted-diagnoses { grid-column: 1 / -1; margin-top: 0.5rem; font-size: 0.8rem; color: #166534; background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 6px; padding: 0.5rem 0.65rem; }
.coding-lookup-cell { position: relative; }
.form-group .coding-lookup-results, .coding-lookup-cell .coding-lookup-results { background: white; border: 1px solid var(--gray-200); border-radius: 7px; box-shadow: 0 10px 24px rgba(15, 23, 42, 0.14); display: none; left: 0; max-height: min(260px, 42vh); overflow: auto; position: absolute; right: 0; top: calc(100% + 4px); z-index: 20; }
.form-group .coding-lookup-results.dropup, .coding-lookup-cell .coding-lookup-results.dropup { bottom: calc(100% + 4px); top: auto; }
.form-group .coding-lookup-results.active, .coding-lookup-cell .coding-lookup-results.active { display: block; }
.coding-lookup-row { background: white; border: 0; border-bottom: 1px solid var(--gray-100); color: var(--gray-700); cursor: pointer; display: grid; gap: 0.1rem; padding: 0.55rem 0.65rem; text-align: left; width: 100%; }
.coding-lookup-row:hover { background: var(--gray-50); }
.coding-lookup-row strong { color: var(--gray-900); font-size: 0.84rem; }
.coding-lookup-row span { color: var(--gray-700); font-size: 0.76rem; line-height: 1.25; }
.coding-lookup-row em, .coding-lookup-empty { color: var(--gray-500); font-size: 0.7rem; font-style: normal; }
.coding-lookup-empty { padding: 0.65rem; }
.clinical-evidence-grid { display: grid; gap: 0.75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 0.75rem; }
.clinical-evidence { background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 6px; padding: 0.65rem; }
.clinical-evidence span { color: var(--gray-500); display: block; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; }
.clinical-evidence strong { color: var(--gray-900); display: block; font-size: 0.9rem; margin-top: 0.15rem; overflow-wrap: anywhere; }
.ehr-hero { background: #0f172a; border-radius: 8px; color: white; display: grid; gap: 0.75rem; margin-bottom: 1rem; padding: 1.25rem; }
.ehr-hero h2 { color: white; font-size: 1.65rem; margin: 0; }
.ehr-hero p { color: #cbd5e1; margin: 0; max-width: 760px; }
.ehr-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.25rem; }
.ehr-actions a { background: white; border-radius: 6px; color: #0f172a; font-weight: 600; padding: 0.5rem 0.75rem; text-decoration: none; }
.ehr-actions a.secondary { background: rgba(255, 255, 255, 0.12); color: white; }
.ehr-kpi-grid { display: grid; gap: 0.75rem; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 1rem; }
.ehr-kpi { background: white; border: 1px solid var(--gray-200); border-radius: 7px; padding: 0.85rem; }
.ehr-kpi strong { color: var(--gray-900); display: block; font-size: 1.45rem; line-height: 1; }
.ehr-kpi span { color: var(--gray-500); display: block; font-size: 0.78rem; margin-top: 0.3rem; }
.ehr-workflow-grid { display: grid; gap: 0.9rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ehr-workflow-card { background: white; border: 1px solid var(--gray-200); border-radius: 8px; color: var(--gray-700); display: grid; gap: 0.45rem; min-height: 150px; padding: 1rem; text-decoration: none; }
.ehr-workflow-card:hover { border-color: var(--primary); box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08); }
.ehr-workflow-card h3 { color: var(--gray-900); font-size: 1rem; margin: 0; }
.ehr-workflow-card p { font-size: 0.82rem; line-height: 1.45; margin: 0; }
.ehr-workflow-card .ehr-card-meta { color: var(--primary); font-size: 0.74rem; font-weight: 700; margin-top: auto; }
@media (max-width: 1100px) {
  .clinical-grid.two, .clinical-grid.three, .clinical-grid.calendar-workspace, .clinical-grid.charge-workspace, .clinical-grid.encounter-workspace, .clinical-note-grid, .clinical-suggestions, .ehr-kpi-grid, .ehr-workflow-grid { grid-template-columns: 1fr; }
  .clinical-scroll-list { max-height: none; overflow: visible; padding-right: 0; }
}
@media (max-width: 720px) {
  .calendar-shell-header { align-items: stretch; flex-direction: column; }
  .calendar-nav-actions { justify-content: stretch; }
  .calendar-nav-actions .btn { flex: 1; }
  .calendar-availability-header { align-items: stretch; flex-direction: column; }
  .calendar-availability-actions .btn { flex: 1; }
  .calendar-availability-month { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calendar-availability-dow { display: none; }
  .calendar-day-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; }
  .calendar-day-strip-gutter { display: none; }
  .calendar-control-bar > input, .calendar-control-bar .form-group, .calendar-control-bar .btn { width: 100%; }
  .selected-slot-summary { grid-template-columns: 1fr; }
  .inline-appointment-actions .btn { flex: 1; }
  .provider-calendar-action-row { align-items: stretch; flex-direction: column; }
  .provider-calendar-action-row .btn { width: 100%; }
  .appointment-duration-bar .btn, .appointment-duration-bar em { flex: 1; margin-left: 0; text-align: center; }
  .quick-schedule-actions { grid-template-columns: 1fr; }
  .smart-defaults-panel { align-items: stretch; grid-template-columns: 1fr; }
  .smart-defaults-panel .btn { width: 100%; }
  .provider-template-range-bar .form-group, .provider-template-range-bar .btn, .provider-template-pattern-bar .form-group, .provider-template-pattern-bar .btn { width: 100%; }
  .provider-template-pattern-days { width: 100%; }
  .clinical-form.cols-2, .clinical-form.cols-3, .clinical-evidence-grid { grid-template-columns: 1fr; }
  .provider-hour-row { grid-template-columns: 1fr; }
  .provider-hour-label { border-bottom: 1px solid var(--gray-200); border-right: 0; justify-content: flex-start; }
  .provider-quarter-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .provider-template-week-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .provider-template-grid-head { display: none; }
  .provider-template-hour-row { grid-template-columns: 1fr; }
  .provider-template-row-actions { border-left: 0; border-top: 1px solid var(--gray-200); grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .clinical-actions { align-items: stretch; flex-direction: column; }
  .clinical-actions .btn, .clinical-actions input { width: 100%; max-width: none; }
  .clinical-table-wrap { overflow: visible; }
  .clinical-table, .clinical-table thead, .clinical-table tbody, .clinical-table tr, .clinical-table td { display: block; width: 100%; }
  .clinical-table thead { display: none; }
  .clinical-table tr { border: 1px solid var(--gray-200); border-radius: 6px; margin-bottom: 0.75rem; padding: 0.5rem; }
  .clinical-table td { border-bottom: 0; padding: 0.4rem 0; }
  .clinical-table td::before { color: var(--gray-500); content: attr(data-label); display: block; font-size: 0.72rem; font-weight: 600; margin-bottom: 0.2rem; }
}

/* ---------------------------------------------------------------------------
   INPUT HINTS ARE BLUE, NOT GREY.
   Founder 2026-08-04: "the fields that have input examples which are light gray,
   that's hard to distinguish from actual data. Make all the defaulted hints blue
   throughout all screens."

   styles.css is loaded by 75 of the 85 UI pages and had NO placeholder rule at all, so
   every hint fell back to the browser default - a grey close enough to entered text that a
   clinician cannot tell an example from a real value at a glance. On a clinical screen that
   is a safety question, not a styling preference.

   Deliberately softer than --primary (#2563eb): a hint rendered in full link-blue reads as
   an entered value or something clickable. This is unmistakably blue and unmistakably not
   data. Change it here and it changes everywhere.

   opacity:1 is required - Firefox applies its own opacity to placeholders and would
   re-grey this.
   --------------------------------------------------------------------------- */
:root {
  --input-hint: #4a7fd4;
}

input::placeholder,
textarea::placeholder,
select::placeholder,
.form-control::placeholder,
[contenteditable][data-placeholder]::before {
  color: var(--input-hint);
  opacity: 1;
}

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder { color: var(--input-hint); opacity: 1; }

input::-moz-placeholder,
textarea::-moz-placeholder { color: var(--input-hint); opacity: 1; }

input:-ms-input-placeholder,
textarea:-ms-input-placeholder { color: var(--input-hint); opacity: 1; }
