/*
 * This is a manifest file for Sprockets.
 *
 * Stylesheets are NOT auto-bundled here (no require_tree) — they're loaded
 * explicitly, in a deliberate order, via the stylesheet_link_tag calls in
 * app/views/layouts/application.html.erb. This avoids the same CSS file
 * loading twice (once bundled here, once as its own <link> tag) and makes
 * the cascade order predictable instead of "whatever's alphabetically last
 * in this folder wins".
 *
 * If you add a new global stylesheet, add it to the stylesheet_link_tag
 * list in the layout, in the position where you want it in the cascade.
 *



 */
.workspace{

    opacity:.45;

    pointer-events:none;

    transition:.25s;

}

.workspace.active{

    opacity:1;

    pointer-events:auto;

}


.patient-search-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:10px 14px;
    border:1px solid #e5e7eb;
    border-radius:8px;
    margin-top:8px;
    background:#fff;
}

.patient-search-row:hover{
    background:#f8fafc;
}

.patient-search-details{
    display:flex;
    flex-direction:column;
    gap:3px;
}

.patient-result-row{

    display:grid;

    grid-template-columns:

        170px
        1fr
        70px
        80px
        170px
        70px
        90px;

    align-items:center;

    gap:12px;

    padding:10px 14px;

    border-bottom:1px solid #edf2f7;

    transition:.2s;

}

.patient-result-row:hover{

    background:#f8fbff;

}

.patient-col{

    font-size:13px;

    color:#334155;

    white-space:nowrap;

    overflow:hidden;

    text-overflow:ellipsis;

}

.patient-col.uhid{

    font-weight:700;

    color:#1d4ed8;

}

.patient-col.name{

    font-weight:600;

    color:#111827;

}

.patient-col.action{

    text-align:right;

}

.patient-search-details small{
    color:#64748b;
}

.patient-search-box{
    padding:16px;
    margin-bottom:12px;
}

.patient-search-header{
    margin-bottom:12px;
}

.patient-search-title{
    margin:0;
    font-size:18px;
    font-weight:600;
}

.patient-search-subtitle{
    margin-top:2px;
    font-size:13px;
    color:#64748b;
}

.patient-search-toolbar{
    display:flex;
    gap:12px;
    align-items:center;
}

.patient-search-toolbar .eu-input{
    flex:1;
}

.patient-search-results{
    margin-top:12px;
}

.patient-summary-container{
    margin-top:12px;
}
.patient-search-box{
    padding:16px;
    margin-bottom:12px;
}

.patient-search-header{
    margin-bottom:12px;
}

.patient-search-title{
    margin:0;
    font-size:18px;
    font-weight:600;
}

.patient-search-subtitle{
    margin-top:2px;
    font-size:13px;
    color:#64748b;
}

.patient-search-toolbar{
    display:flex;
    gap:12px;
    align-items:center;
}

.patient-search-toolbar .eu-input{
    flex:1;
}

.patient-search-results{
    margin-top:12px;
}

.patient-summary-container{
    margin-top:12px;
}
.abdm-encounter__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px 16px;
  margin: 0 0 16px;
}

.abdm-encounter__type {
  display: flex;
  align-items: center;
  gap: 8px;
}

.abdm-card-sheet {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 12px auto;
}

.abdm-encounter__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

#abdm_gateway_logs[aria-busy="true"] {
  opacity: 0.55;
}

.abdm-log-periods {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 8px 16px 10px;
}

.abdm-log-period {
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 10px;
  border: 1px solid var(--eu-border);
  border-radius: 999px;
  background: var(--eu-bg);
  color: var(--eu-text);
  font-size: 0.75rem;
  line-height: 1;
  text-decoration: none;
}

.abdm-log-period.is-active {
  border-color: var(--eu-primary);
  background: var(--eu-primary);
  color: var(--eu-bg);
}

.abdm-log-link {
  padding: 0;
  border: 0;
  background: none;
  color: var(--eu-primary);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.75rem;
  line-height: 1.35;
  text-align: left;
  text-decoration: underline;
  cursor: pointer;
  word-break: break-all;
}

.abdm-log-sheet {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
}

.abdm-log-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  font-size: 0.8125rem;
}

.abdm-log-path {
  margin: 0;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.75rem;
  word-break: break-all;
}

.abdm-log-sheet h2 {
  margin: 0 0 6px;
  font-size: 0.875rem;
}

.abdm-log-body {
  margin: 0;
  padding: 12px;
  overflow: auto;
  max-height: 36vh;
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 0.75rem;
  line-height: 1.45;
  background: var(--eu-surface);
  border: 1px solid var(--eu-border);
  border-radius: 8px;
}

.abdm-fhir-body {
  max-height: none;
}

.abdm-record-sheet {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px;
}

.abdm-record {
  padding: 16px;
  border: 1px solid var(--eu-border);
  border-radius: 8px;
  background: var(--eu-surface);
}

.abdm-record-head h2 {
  margin: 0 0 8px;
  font-size: 1rem;
}

.abdm-record-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
  margin: 0;
  font-size: 0.8125rem;
}

.abdm-record h3 {
  margin: 14px 0 6px;
  font-size: 0.8125rem;
  font-weight: 600;
}

.abdm-record-narrative {
  margin: 0 0 8px;
}

.abdm-record-rows {
  display: grid;
  grid-template-columns: minmax(9rem, 16rem) 1fr;
  gap: 4px 12px;
  margin: 0;
}

.abdm-record-rows dt,
.abdm-record-rows dd {
  margin: 0;
  font-size: 0.8125rem;
}

.abdm-record-rows dt {
  color: var(--eu-text-muted);
}

.abdm-record-rows dt.abdm-record-solo {
  grid-column: 1 / -1;
  color: inherit;
}

.abdm-consent-list {
  overflow-x: auto;
}

.abdm-consent-line {
  display: grid;
  grid-template-columns: 8.5rem 13rem 11.5rem 12.5rem 6.5rem minmax(12rem, 1fr);
  gap: 8px 12px;
  align-items: center;
  min-width: 68rem;
  padding: 10px 16px;
}

.abdm-consent-line--head {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--eu-text-muted);
  border-bottom: 1px solid var(--eu-border);
}

.abdm-consent-kind {
  font-weight: 600;
}

.abdm-consent-types {
  display: block;
  margin-top: 2px;
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--eu-text-muted);
}

.abdm-consent-action {
  justify-self: start;
}

.abdm-nrces-errors {
  margin: 0.25rem 0 0;
  padding-left: 1rem;
  color: var(--eu-danger);
  font-size: 0.75rem;
}

.abdm-care-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.abdm-care-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--eu-border);
}

.abdm-care-head h3 {
  margin: 0;
}

.abdm-care-form,
.abdm-care-pack {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 16px 20px 20px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
}

.abdm-care-pack {
  border-top: 1px solid var(--eu-border);
}

.abdm-care-form .eu-field,
.abdm-care-form .eu-card__actions,
.abdm-care-pack .eu-field,
.abdm-care-pack .eu-card__actions {
  margin: 0;
  width: 100%;
}

.abdm-care-form .eu-input,
.abdm-care-form select.eu-input,
.abdm-care-form .eu-btn,
.abdm-care-pack .eu-input,
.abdm-care-pack select.eu-input,
.abdm-care-pack .eu-btn {
  width: 100%;
  box-sizing: border-box;
}

.abdm-care-row--linked td {
  background: var(--eu-success-bg);
}

.abdm-encounter__ready-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
/* ADT Admission Workbench */
.adt-wb {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.adt-wb__toolbar,
.adt-wb__actions,
.adt-wb__queue-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.adt-wb__journey-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 0.75rem;
}

.adt-wb__journey-card {
  border: 1px solid var(--eu-border, #d0d7de);
  border-radius: 8px;
  padding: 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  background: var(--eu-surface, #fff);
}

.adt-wb__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0.5rem 0 1rem;
}

.adt-wb__queue {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.adt-wb__queue-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.adt-wb__queue-row:last-child {
  border-bottom: 0;
}

.adt-wb__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

@media (min-width: 960px) {
  .adt-wb__grid {
    grid-template-columns: 1.2fr 0.8fr;
  }
}

.adt-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.adt-timeline__item {
  padding-left: 0.75rem;
  border-left: 3px solid var(--chk-accent, #0f766e);
}

.adt-timeline__when {
  font-size: 0.75rem;
  color: var(--eu-muted, #64748b);
}

.adt-timeline__label {
  font-weight: 600;
}

.adt-readonly {
  background: var(--eu-surface-muted, #f8fafc);
  cursor: default;
}

.adt-bed-search {
  position: relative;
}

.adt-payer-info__warning {
  margin: 0.75rem 0 0;
  font-size: 0.8125rem;
  color: var(--eu-danger, #b91c1c);
}

/* Bed search row + map button */
.adt-bed-search__row {
  display: flex;
  gap: 0.5rem;
  align-items: flex-end;
}

.adt-bed-search__filters {
  display: grid;
  grid-template-columns: minmax(140px, 0.45fr) 1fr;
  gap: 0.5rem;
  flex: 1;
}

.adt-bed-search__map-btn {
  white-space: nowrap;
  flex-shrink: 0;
}

body.adt-bed-map-modal-open {
  overflow: hidden;
}

/* Bed map modal */
.adt-bed-map-modal[hidden] {
  display: none !important;
}

.adt-bed-map-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.adt-bed-map-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
}

.adt-bed-map-modal__panel {
  position: relative;
  width: min(960px, 100%);
  max-height: calc(100vh - 2rem);
  display: flex;
  flex-direction: column;
  background: var(--eu-surface, #fff);
  border-radius: 12px;
  box-shadow: 0 24px 48px rgba(15, 23, 42, 0.18);
  overflow: hidden;
}

.adt-bed-map-modal__header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.adt-bed-map-modal__header h3 {
  margin: 0;
  font-size: 1.05rem;
}

.adt-bed-map-modal__sub {
  margin: 0.2rem 0 0;
  color: var(--eu-muted, #64748b);
  font-size: 0.85rem;
}

.adt-bed-map-modal__close {
  border: 0;
  background: transparent;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: var(--eu-muted, #64748b);
}

.adt-bed-map-modal__toolbar {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  padding: 0.85rem 1.25rem 0;
}

.adt-bed-map-modal__filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  padding: 0.75rem 1.25rem;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.adt-bed-map-modal__filters-label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--eu-muted, #64748b);
  margin-right: 0.25rem;
}

.adt-bed-map-modal__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.55rem;
  border: 1px solid var(--eu-border, #d0d7de);
  border-radius: 999px;
  background: var(--eu-surface, #fff);
  font-size: 0.75rem;
  cursor: pointer;
}

.adt-bed-map-modal__chip.is-active {
  border-color: var(--chk-accent, #0f766e);
  background: rgba(15, 118, 110, 0.08);
  color: var(--chk-accent, #0f766e);
  font-weight: 600;
}

.adt-bed-map-modal__chip-swatch {
  width: 10px;
  height: 10px;
  border-radius: 2px;
  display: inline-block;
}

.adt-bed-map-modal__chip-count {
  min-width: 1rem;
  text-align: center;
  font-weight: 700;
}

.adt-bed-map-modal__body {
  flex: 1;
  overflow: auto;
  padding: 1rem 1.25rem;
  min-height: 220px;
}

.adt-bed-map-modal__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(108px, 1fr));
  gap: 0.65rem;
}

.adt-bed-map-modal__hint {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--eu-muted, #64748b);
  text-align: center;
  padding: 2rem 1rem;
}

.adt-bed-map-modal__footer {
  padding: 0.75rem 1.25rem 1rem;
  border-top: 1px solid var(--eu-border, #e2e8f0);
}

/* Graphical bed tiles */
.adt-bed-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  padding: 0.65rem 0.45rem;
  border: 2px solid transparent;
  border-radius: 10px;
  background: var(--eu-surface-muted, #f8fafc);
  cursor: pointer;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.adt-bed-tile:not(:disabled):hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.1);
}

.adt-bed-tile:disabled {
  opacity: 0.72;
  cursor: not-allowed;
}

.adt-bed-tile--available:not(:disabled) {
  border-color: #16a34a;
  background: #f0fdf4;
}

.adt-bed-tile--occupied {
  background: #fef2f2;
}

.adt-bed-tile--reserved {
  background: #fffbeb;
}

.adt-bed-tile--cleaning {
  background: #fff7ed;
}

.adt-bed-tile--maintenance,
.adt-bed-tile--blocked {
  background: #f1f5f9;
}

.adt-bed-tile--hold {
  background: #f5f3ff;
}

.adt-bed-tile__number {
  font-size: 0.8rem;
  font-weight: 700;
}

.adt-bed-tile__status {
  font-size: 0.68rem;
  color: var(--eu-muted, #64748b);
  text-align: center;
}

.adt-bed-tile__rate {
  font-size: 0.65rem;
  color: var(--eu-muted, #64748b);
}

.adt-bed-tile__svg {
  width: 56px;
  height: 38px;
}

.adt-bed-tile__svg--available .adt-bed-tile__headboard,
.adt-bed-tile__svg--available .adt-bed-tile__mattress { fill: #16a34a; }
.adt-bed-tile__svg--available .adt-bed-tile__pillow { fill: #bbf7d0; }
.adt-bed-tile__svg--available .adt-bed-tile__leg { stroke: #15803d; }

.adt-bed-tile__svg--occupied .adt-bed-tile__headboard,
.adt-bed-tile__svg--occupied .adt-bed-tile__mattress { fill: #dc2626; }
.adt-bed-tile__svg--occupied .adt-bed-tile__pillow { fill: #fecaca; }
.adt-bed-tile__svg--occupied .adt-bed-tile__leg { stroke: #b91c1c; }

.adt-bed-tile__svg--reserved .adt-bed-tile__headboard,
.adt-bed-tile__svg--reserved .adt-bed-tile__mattress { fill: #ca8a04; }
.adt-bed-tile__svg--reserved .adt-bed-tile__pillow { fill: #fde68a; }
.adt-bed-tile__svg--reserved .adt-bed-tile__leg { stroke: #a16207; }

.adt-bed-tile__svg--cleaning .adt-bed-tile__headboard,
.adt-bed-tile__svg--cleaning .adt-bed-tile__mattress { fill: #f59e0b; }
.adt-bed-tile__svg--cleaning .adt-bed-tile__pillow { fill: #fde68a; }
.adt-bed-tile__svg--cleaning .adt-bed-tile__leg { stroke: #d97706; }

.adt-bed-tile__svg--maintenance .adt-bed-tile__headboard,
.adt-bed-tile__svg--maintenance .adt-bed-tile__mattress,
.adt-bed-tile__svg--blocked .adt-bed-tile__headboard,
.adt-bed-tile__svg--blocked .adt-bed-tile__mattress { fill: #334155; }
.adt-bed-tile__svg--maintenance .adt-bed-tile__pillow,
.adt-bed-tile__svg--blocked .adt-bed-tile__pillow { fill: #94a3b8; }
.adt-bed-tile__svg--maintenance .adt-bed-tile__leg,
.adt-bed-tile__svg--blocked .adt-bed-tile__leg { stroke: #1e293b; }

.adt-bed-tile__svg--hold .adt-bed-tile__headboard,
.adt-bed-tile__svg--hold .adt-bed-tile__mattress { fill: #7c3aed; }
.adt-bed-tile__svg--hold .adt-bed-tile__pillow { fill: #ddd6fe; }
.adt-bed-tile__svg--hold .adt-bed-tile__leg { stroke: #6d28d9; }

.adt-bed-tile__leg {
  stroke-width: 2;
  stroke-linecap: round;
}

.adt-bed-tile__badge { fill: currentColor; }
.adt-bed-tile__badge-stroke {
  stroke: currentColor;
  stroke-width: 1.5;
  fill: none;
}
.adt-bed-tile__badge--available { fill: #16a34a; }
.adt-bed-tile__badge--occupied { fill: #dc2626; }
.adt-bed-tile__badge--reserved { fill: #ca8a04; }

@media (max-width: 720px) {
  .adt-bed-search__row {
    flex-direction: column;
    align-items: stretch;
  }

  .adt-bed-map-modal__toolbar {
    grid-template-columns: 1fr;
  }

  .adt-bed-map-modal__grid {
    grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
  }
}

.adt-bed-search__menu {
  position: absolute;
  z-index: 20;
  left: 0;
  right: 0;
  margin-top: 0.25rem;
  max-height: 240px;
  overflow: auto;
  border: 1px solid var(--eu-border, #d0d7de);
  border-radius: 8px;
  background: var(--eu-surface, #fff);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

.adt-bed-search__item,
.adt-bed-search__empty {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  padding: 0.65rem 0.85rem;
  border: 0;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.adt-bed-search__item:last-child {
  border-bottom: 0;
}

.adt-bed-search__item:hover,
.adt-bed-search__item.is-active {
  background: var(--eu-surface-muted, #f1f5f9);
}

.adt-bed-search__item span {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.adt-bed-search__item small {
  color: var(--eu-muted, #64748b);
}

.adt-payer-info {
  margin-top: 0.75rem;
  padding: 0.75rem;
  border: 1px solid var(--eu-border, #d0d7de);
  border-radius: 8px;
  background: var(--eu-surface-muted, #f8fafc);
}

.adt-payer-info__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 0.75rem;
}

.adt-payer-info__label {
  margin: 0;
  font-size: 0.75rem;
  color: var(--eu-muted, #64748b);
}

.adt-payer-info__value {
  margin: 0.15rem 0 0;
  font-weight: 600;
}

.adt-payer-info__warning {
  margin: 0.75rem 0 0;
  font-size: 0.8125rem;
  color: var(--eu-danger, #b91c1c);
}
/* ADT Bed Management Workbench */
.adt-beds .adt-beds-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.65rem;
  margin-bottom: 1rem;
}

.adt-beds-kpi {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.75rem 0.85rem;
  border-radius: 10px;
  border: 1px solid transparent;
  text-decoration: none;
  color: inherit;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.adt-beds-kpi:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08);
}

.adt-beds-kpi.is-active {
  box-shadow: 0 0 0 2px var(--chk-accent, #0f766e);
}

.adt-beds-kpi__label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.85;
}

.adt-beds-kpi__value {
  font-size: 1.45rem;
  font-weight: 800;
  line-height: 1.1;
}

.adt-beds-kpi--total { background: #eff6ff; border-color: #bfdbfe; color: #1e3a8a; }
.adt-beds-kpi--occupied { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.adt-beds-kpi--available { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.adt-beds-kpi--reserved { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.adt-beds-kpi--blocked { background: #f1f5f9; border-color: #cbd5e1; color: #334155; }
.adt-beds-kpi--cleaning { background: #fff7ed; border-color: #fed7aa; color: #9a3412; }
.adt-beds-kpi--maintenance { background: #f8fafc; border-color: #94a3b8; color: #1e293b; }
.adt-beds-kpi--temporary { background: #f5f3ff; border-color: #ddd6fe; color: #5b21b6; }
.adt-beds-kpi--waiting { background: #fdf4ff; border-color: #f5d0fe; color: #86198f; }

.adt-beds-map {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.adt-beds-map__ward {
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 10px;
  padding: 0.85rem;
  background: var(--eu-surface, #fff);
}

.adt-beds-map__ward-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.adt-beds-map__ward-title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
}

.adt-beds-map__ward-meta {
  font-size: 0.75rem;
  color: var(--eu-muted, #64748b);
}

.adt-beds-map__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  gap: 0.55rem;
}

.adt-beds-map__empty {
  margin: 0;
  padding: 2rem 1rem;
  text-align: center;
  color: var(--eu-muted, #64748b);
}

.adt-beds-map__note {
  margin: 0 0 0.75rem;
  font-size: 0.8rem;
  color: var(--eu-muted, #64748b);
}

.adt-beds-map .adt-bed-tile {
  text-decoration: none;
  color: inherit;
  width: 100%;
}

.adt-beds-map .adt-bed-tile.is-dimmed {
  opacity: 0.28;
  filter: grayscale(0.35);
}

.adt-beds-map .adt-bed-tile.is-highlighted {
  box-shadow: 0 0 0 2px var(--chk-accent, #0f766e);
}

.adt-beds-list-toggle {
  margin: 0.75rem 0 0;
}

@media (max-width: 720px) {
  .adt-beds .adt-beds-kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .adt-beds-map__grid {
    grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
  }
}
/* ADT Enterprise Command Center — discharge workbench + shared patient header */

.adt-cc {
  padding-bottom: 5rem;
}

.adt-cc__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 1rem;
  align-items: start;
}

.adt-cc__main {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
}

.adt-cc__sidebar {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  position: sticky;
  top: 0.75rem;
}

.adt-cc__section-head h3 {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
  font-weight: 600;
}

/* Patient header dashboard */
.adt-patient-header {
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 10px;
  padding: 0.85rem 1rem;
  margin-bottom: 1rem;
}

.adt-patient-header__top {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
  margin-bottom: 0.75rem;
}

.adt-patient-header__name {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 700;
}

.adt-patient-header__meta {
  margin: 0.15rem 0 0;
  font-size: 0.8rem;
  color: var(--eu-text-muted, #64748b);
}

.adt-patient-header__alerts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-end;
}

.adt-patient-header__badge {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.2rem 0.45rem;
  border-radius: 999px;
  border: 1px solid transparent;
}

.adt-patient-header__badge--danger { background: #fef2f2; color: #991b1b; border-color: #fecaca; }
.adt-patient-header__badge--warning { background: #fffbeb; color: #92400e; border-color: #fde68a; }
.adt-patient-header__badge--info { background: #eff6ff; color: #1e40af; border-color: #bfdbfe; }
.adt-patient-header__badge--success { background: #f0fdf4; color: #166534; border-color: #bbf7d0; }

.adt-patient-header__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem 0.75rem;
  margin: 0;
}

.adt-patient-header__cell dt {
  margin: 0;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--eu-text-muted, #64748b);
}

.adt-patient-header__cell dd {
  margin: 0.1rem 0 0;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.3;
  word-break: break-word;
}

/* Workflow progress */
.adt-cc-workflow {
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 10px;
  padding: 0.85rem 1rem;
}

.adt-cc-workflow__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.5rem;
}

.adt-cc-workflow__head h3 {
  margin: 0;
  font-size: 0.95rem;
}

.adt-cc-workflow__pct {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--eu-accent, #2563eb);
}

.adt-cc-workflow__bar {
  height: 6px;
  background: #e2e8f0;
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 0.75rem;
}

.adt-cc-workflow__bar-fill {
  display: block;
  height: 100%;
  width: var(--adt-progress, 0%);
  background: linear-gradient(90deg, #2563eb, #16a34a);
  border-radius: 999px;
}

.adt-cc-workflow__steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
}

.adt-cc-workflow__step {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.78rem;
  color: #64748b;
}

.adt-cc-workflow__step.is-complete { color: #166534; font-weight: 600; }
.adt-cc-workflow__step.is-current { color: #1d4ed8; font-weight: 700; }

.adt-cc-workflow__arrow { display: none; }

/* Stage cards */
.adt-cc__stage-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.65rem;
}

.adt-cc-stage {
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 8px;
  padding: 0.65rem 0.75rem;
  background: #fff;
}

.adt-cc-stage--success { border-left: 3px solid #16a34a; background: #f8fff9; }
.adt-cc-stage--warning { border-left: 3px solid #f59e0b; background: #fffbeb; }
.adt-cc-stage--neutral { border-left: 3px solid #94a3b8; }

.adt-cc-stage__head {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: flex-start;
  margin-bottom: 0.5rem;
}

.adt-cc-stage__title {
  margin: 0;
  font-size: 0.88rem;
}

.adt-cc-stage__status {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 0.15rem 0.4rem;
  border-radius: 4px;
}

.adt-cc-stage__status--success { background: #dcfce7; color: #166534; }
.adt-cc-stage__status--warning { background: #fef3c7; color: #92400e; }
.adt-cc-stage__status--neutral { background: #f1f5f9; color: #475569; }

.adt-cc-stage__meta {
  display: grid;
  gap: 0.35rem;
  margin: 0;
  font-size: 0.75rem;
}

.adt-cc-stage__meta dt {
  font-size: 0.62rem;
  text-transform: uppercase;
  color: #64748b;
  font-weight: 700;
}

.adt-cc-stage__meta dd { margin: 0; font-weight: 600; }

.adt-cc-stage__notes {
  margin: 0.5rem 0 0;
  font-size: 0.75rem;
  color: #475569;
}

.adt-cc-stage__form {
  display: flex;
  gap: 0.35rem;
  margin-top: 0.5rem;
  flex-wrap: wrap;
}

/* Checklist */
.adt-cc-checklist {
  background: #fff;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 10px;
  padding: 0.75rem 1rem;
}

.adt-cc-checklist__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.5rem;
}

.adt-cc-checklist__head h3 { margin: 0; font-size: 0.95rem; }
.adt-cc-checklist__stats { font-size: 0.75rem; color: #64748b; font-weight: 600; }

.adt-cc-checklist__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}

.adt-cc-checklist__item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  padding: 0.35rem 0.5rem;
  border-radius: 6px;
  background: #f8fafc;
}

.adt-cc-checklist__item.is-done {
  background: #f0fdf4;
  color: #166534;
}

.adt-cc-checklist__icon {
  font-size: 1rem;
  line-height: 1;
  width: 1.1rem;
  text-align: center;
}

.adt-cc-checklist__label { flex: 1; }
.adt-cc-checklist__time { font-size: 0.7rem; color: #64748b; }
.adt-cc-checklist__form { margin: 0; }

/* Sidebar */
.adt-cc-sidebar__panel {
  background: #fff;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 10px;
  padding: 0.65rem 0.75rem;
}

.adt-cc-sidebar__title {
  margin: 0 0 0.5rem;
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #475569;
}

.adt-cc-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}

.adt-cc-timeline__when {
  font-size: 0.68rem;
  color: #64748b;
}

.adt-cc-timeline__label {
  font-size: 0.78rem;
  font-weight: 600;
}

.adt-cc-quicklinks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.35rem;
}

.adt-cc-quicklinks__link {
  font-size: 0.75rem;
  padding: 0.35rem 0.5rem;
  border-radius: 6px;
  background: #f1f5f9;
  text-decoration: none;
  color: #1e293b;
  font-weight: 600;
}

.adt-cc-quicklinks__link:hover {
  background: #e2e8f0;
}

.adt-cc-dept-grid {
  display: grid;
  gap: 0.35rem;
}

.adt-cc-dept {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.35rem 0.5rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
}

.adt-cc-dept--success { background: #dcfce7; color: #166534; }
.adt-cc-dept--warning { background: #fef3c7; color: #92400e; }
.adt-cc-dept--neutral { background: #f1f5f9; color: #475569; }

/* Danger zone */
.adt-cc-danger {
  border: 1px dashed #fecaca;
  border-radius: 8px;
  background: #fffafa;
}

.adt-cc-danger__summary {
  cursor: pointer;
  padding: 0.6rem 0.75rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: #991b1b;
}

.adt-cc-danger__body {
  padding: 0 0.75rem 0.75rem;
}

.adt-cc-danger__form { margin-top: 0.5rem; }
.adt-cc-danger__unlock { margin-top: 0.75rem; padding-top: 0.75rem; border-top: 1px solid #fecaca; }

/* Sticky action bar */
.adt-cc-actionbar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 40;
  background: rgba(255, 255, 255, 0.96);
  border-top: 1px solid var(--eu-border, #e2e8f0);
  box-shadow: 0 -4px 20px rgba(15, 23, 42, 0.08);
  backdrop-filter: blur(6px);
}

.adt-cc-actionbar__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0.65rem 1rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.adt-cc-actionbar__hint {
  flex: 1;
  font-size: 0.8rem;
  color: #475569;
}

.adt-cc-actionbar__primary {
  margin-left: auto;
}

.adt-cc-actionbar__form { margin: 0; display: inline; }

.adt-dc-finance {
  margin: 0.75rem 0 1rem;
  padding: 0.75rem 1rem;
  border-radius: 0.5rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  background: var(--eu-surface, #fff);
}

.adt-dc-finance--blocked {
  border-color: var(--chk-warning, #f59e0b);
  background: color-mix(in srgb, var(--chk-warning, #f59e0b) 8%, white);
}

.adt-dc-finance--clear {
  border-color: var(--chk-success, #16a34a);
  background: color-mix(in srgb, var(--chk-success, #16a34a) 6%, white);
}

.adt-dc-finance__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}

.adt-dc-finance__title {
  margin: 0;
  font-size: 0.95rem;
}

.adt-dc-finance__status {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 0.15rem 0.45rem;
  border-radius: 0.25rem;
  background: var(--eu-surface-2, #f1f5f9);
}

.adt-dc-finance--blocked .adt-dc-finance__status {
  background: #fef3c7;
  color: #92400e;
}

.adt-dc-finance--clear .adt-dc-finance__status {
  background: #dcfce7;
  color: #166534;
}

.adt-dc-finance__metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}

.adt-dc-finance__label {
  display: block;
  font-size: 0.7rem;
  color: var(--eu-text-muted, #64748b);
}

.adt-dc-finance__warn {
  margin: 0.5rem 0 0;
  font-size: 0.8rem;
  color: #92400e;
}

.adt-dc-finance__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.adt-dc-finance-override {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.5rem;
}

.adt-dc-finance-override .eu-input {
  min-width: 14rem;
}

@media (max-width: 900px) {
  .adt-dc-finance__metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Clinical summary */
.adt-cc-clinical {
  background: #fff;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 10px;
  padding: 0.75rem 1rem;
}

.adt-cc-clinical__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem 1rem;
  margin: 0;
}

.adt-cc-clinical__row dt {
  margin: 0;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--eu-text-muted, #64748b);
}

.adt-cc-clinical__row dd {
  margin: 0.15rem 0 0;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.35;
}

@media (max-width: 1100px) {
  .adt-cc__layout {
    grid-template-columns: 1fr;
  }

  .adt-cc__sidebar {
    position: static;
  }

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

@media (max-width: 640px) {
  .adt-patient-header__grid {
    grid-template-columns: 1fr;
  }

  .adt-cc-actionbar__inner {
    flex-wrap: wrap;
  }
}
/* ADT Reports — enterprise results tables + executive command center */
.adt-reports__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0 0 1rem;
}

.adt-reports__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0 0 0.75rem;
}

.adt-reports__toolbar--executive {
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 10px;
  background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
}

.adt-reports__export-group,
.adt-reports__saved-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}

.adt-reports__saved-tab {
  font-size: 0.78rem;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  border: 1px solid var(--eu-border, #e5e7eb);
  color: var(--eu-muted, #64748b);
  cursor: default;
}

.adt-reports__saved-tab.is-active {
  background: var(--eu-primary, #2563eb);
  border-color: var(--eu-primary, #2563eb);
  color: #fff;
}

.adt-reports__filters {
  margin: 0;
}

.adt-reports__filter-actions {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.adt-reports__range {
  margin: 0 0 0.75rem;
}

.adt-reports .eu-results-table {
  margin-top: 0.75rem;
}

/* Date presets */
.adt-reports__presets {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0 0 0.75rem;
}

.adt-reports__preset-chip {
  font-size: 0.78rem;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  border: 1px solid var(--eu-border, #e5e7eb);
  text-decoration: none;
  color: var(--eu-text, #0f172a);
  background: #fff;
}

.adt-reports__preset-chip:hover {
  border-color: var(--eu-primary, #2563eb);
  color: var(--eu-primary, #2563eb);
}

.adt-reports__preset-chip.is-active {
  background: var(--eu-primary, #2563eb);
  border-color: var(--eu-primary, #2563eb);
  color: #fff;
}

/* Executive hero — gauge + KPIs */
.adt-reports__executive-hero {
  margin-bottom: 0.85rem;
}

.adt-reports__gauge-kpi-row {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 0.75rem;
  align-items: stretch;
}

.adt-reports__kpi-panel .eu-kpi-grid {
  height: 100%;
}

/* Circular occupancy gauge */
.adt-reports-gauge {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.85rem;
  border-radius: 12px;
  border: 1px solid var(--eu-border, #e5e7eb);
  background: #fff;
  text-decoration: none;
  color: inherit;
  min-height: 180px;
}

.adt-reports-gauge:hover {
  box-shadow: 0 0 0 2px var(--eu-primary, #2563eb);
  transform: translateY(-1px);
}

.adt-reports-gauge__ring {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: conic-gradient(
    var(--gauge-color, #16a34a) 0deg calc(var(--gauge-pct, 0) * 3.6deg),
    #e5e7eb calc(var(--gauge-pct, 0) * 3.6deg) 360deg
  );
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.adt-reports-gauge--success { --gauge-color: #16a34a; }
.adt-reports-gauge--warning { --gauge-color: #d97706; }
.adt-reports-gauge--danger { --gauge-color: #dc2626; }

.adt-reports-gauge__inner {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.adt-reports-gauge__value {
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.1;
}

.adt-reports-gauge__label {
  font-size: 0.68rem;
  color: var(--eu-muted, #64748b);
}

.adt-reports-gauge__meta {
  text-align: center;
}

.adt-reports-gauge__status {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
}

.adt-reports-gauge__status--healthy {
  background: #dcfce7;
  color: #166534;
}

.adt-reports-gauge__status--busy {
  background: #fef3c7;
  color: #92400e;
}

.adt-reports-gauge__status--critical {
  background: #fee2e2;
  color: #991b1b;
}

.adt-reports-gauge__detail {
  display: block;
  font-size: 0.72rem;
  color: var(--eu-muted, #64748b);
  margin-top: 0.2rem;
}

/* Trend charts */
.adt-reports__charts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}

.adt-reports-chart {
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 8px;
  padding: 0.55rem 0.65rem;
  background: #fff;
}

.adt-reports-chart__header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 0.45rem;
}

.adt-reports-chart__title {
  font-size: 0.78rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--eu-text, #0f172a);
}

.adt-reports-chart__title:hover {
  color: var(--eu-primary, #2563eb);
}

.adt-reports-chart__total {
  font-size: 0.85rem;
  font-weight: 700;
}

.adt-reports-chart__bars {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 64px;
}

.adt-reports-chart__bar-wrap {
  flex: 1;
  height: 100%;
  display: flex;
  align-items: flex-end;
}

.adt-reports-chart__bar {
  width: 100%;
  border-radius: 2px 2px 0 0;
  background: var(--chart-color, #2563eb);
  min-height: 4px;
}

.adt-reports-chart--success { --chart-color: #16a34a; }
.adt-reports-chart--info { --chart-color: #2563eb; }
.adt-reports-chart--warning { --chart-color: #d97706; }

/* Split panels */
.adt-reports__split-panels {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 0.75rem;
  margin: 0.75rem 0;
}

/* Alerts */
.adt-reports-alerts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.adt-reports-alerts__item {
  padding: 0.5rem 0.65rem;
  border-radius: 8px;
  border-left: 3px solid var(--eu-border, #e5e7eb);
  background: #f8fafc;
  font-size: 0.82rem;
}

.adt-reports-alerts__item--danger { border-left-color: #dc2626; background: #fef2f2; }
.adt-reports-alerts__item--warning { border-left-color: #d97706; background: #fffbeb; }
.adt-reports-alerts__item--info { border-left-color: #2563eb; background: #eff6ff; }

.adt-reports-alerts__link {
  color: inherit;
  text-decoration: none;
}

.adt-reports-alerts__link:hover {
  text-decoration: underline;
}

/* AI insights framework */
.adt-reports-insights {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.adt-reports-insights__card {
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 8px;
  padding: 0.6rem 0.7rem;
  background: #fff;
}

.adt-reports-insights__card--success { border-color: #bbf7d0; }
.adt-reports-insights__card--warning { border-color: #fde68a; }
.adt-reports-insights__card--danger { border-color: #fecaca; }

.adt-reports-insights__heading {
  margin: 0 0 0.25rem;
  font-size: 0.82rem;
  font-weight: 600;
}

.adt-reports-insights__body {
  margin: 0;
  font-size: 0.78rem;
  color: var(--eu-muted, #64748b);
  line-height: 1.4;
}

/* Async frames + skeleton */
.adt-reports-async-frame {
  display: block;
  min-height: 48px;
}

.adt-reports-skeleton {
  padding: 1rem;
  border: 1px dashed var(--eu-border, #e5e7eb);
  border-radius: 8px;
  color: var(--eu-muted, #64748b);
  font-size: 0.82rem;
}

.adt-reports__pagination {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-top: 0.5rem;
}

.adt-reports__page-info {
  font-size: 0.78rem;
  color: var(--eu-muted, #64748b);
}

/* Colorful KPI cards */
.adt-reports .eu-kpi-grid {
  gap: 0.65rem;
}

.adt-reports .eu-kpi {
  padding: 0.85rem 1rem;
  border-radius: 10px;
}

.adt-reports .eu-kpi::before {
  opacity: 1;
  height: 4px;
}

.adt-reports .eu-kpi__icon {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.adt-reports .eu-kpi--info {
  background: linear-gradient(180deg, #eff6ff 0%, #fff 55%);
  border-color: #bfdbfe;
}
.adt-reports .eu-kpi--info::before { background: var(--eu-info, #2563eb); }

.adt-reports .eu-kpi--success {
  background: linear-gradient(180deg, #f0fdf4 0%, #fff 55%);
  border-color: #bbf7d0;
}
.adt-reports .eu-kpi--success::before { background: var(--eu-success, #16a34a); }

.adt-reports .eu-kpi--warning {
  background: linear-gradient(180deg, #fffbeb 0%, #fff 55%);
  border-color: #fde68a;
}
.adt-reports .eu-kpi--warning::before { background: var(--eu-warning, #d97706); }

.adt-reports .eu-kpi--danger {
  background: linear-gradient(180deg, #fef2f2 0%, #fff 55%);
  border-color: #fecaca;
}
.adt-reports .eu-kpi--danger::before { background: var(--eu-danger, #dc2626); }

.adt-reports .eu-kpi--info .eu-kpi__value { color: #1d4ed8; }
.adt-reports .eu-kpi--success .eu-kpi__value { color: #166534; }
.adt-reports .eu-kpi--warning .eu-kpi__value { color: #92400e; }
.adt-reports .eu-kpi--danger .eu-kpi__value { color: #991b1b; }

.adt-reports a.eu-kpi--link {
  text-decoration: none;
  color: inherit;
  display: block;
  cursor: pointer;
}

.adt-reports a.eu-kpi--link:hover {
  box-shadow: 0 0 0 2px var(--eu-primary, #2563eb);
  transform: translateY(-2px);
}

#adt-reports-wards {
  scroll-margin-top: 1rem;
}

@media (max-width: 1100px) {
  .adt-reports__gauge-kpi-row {
    grid-template-columns: 1fr;
  }

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

  .adt-reports__split-panels {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .adt-reports__charts,
  .adt-reports-insights {
    grid-template-columns: 1fr;
  }
}

@media print {
  .adt-reports__toolbar--executive,
  .adt-reports__presets,
  .adt-reports__filters-card,
  .adt-reports-async-frame[src] {
    display: none;
  }
}
/* Ward Dashboard — operational cockpit (Phase 10) */
/* Ward cockpit header dashboard */
.adt-ward-header {
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #d0d7de);
  border-radius: 10px;
  padding: 0.85rem 1rem;
  margin-bottom: 0.75rem;
  border-left: 4px solid var(--eu-accent, #2563eb);
}

.adt-ward-header__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 0.65rem;
}

.adt-ward-header__name {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.adt-ward-header__hierarchy {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.2rem;
  margin-top: 0.2rem;
  font-size: 0.78rem;
  color: var(--eu-muted, #64748b);
}

.adt-ward-header__sep {
  opacity: 0.55;
}

.adt-ward-header__band {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  white-space: nowrap;
}

.adt-ward-header__band--available { background: #dcfce7; color: #166534; }
.adt-ward-header__band--near_full { background: #ffedd5; color: #9a3412; }
.adt-ward-header__band--critical { background: #fee2e2; color: #991b1b; }
.adt-ward-header__band--full { background: #7f1d1d; color: #fff; }
.adt-ward-header__band--empty { background: #f1f5f9; color: #475569; }

.adt-ward-header__capacity {
  margin-bottom: 0.5rem;
}

.adt-ward-header__bar {
  height: 8px;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
}

.adt-ward-header__bar-fill {
  display: block;
  height: 100%;
  width: var(--adt-ward-pct, 0%);
  border-radius: inherit;
}

.adt-ward-header__bar-fill--available { background: #16a34a; }
.adt-ward-header__bar-fill--near_full { background: #ea580c; }
.adt-ward-header__bar-fill--critical,
.adt-ward-header__bar-fill--full { background: #dc2626; }
.adt-ward-header__bar-fill--empty { background: #94a3b8; }

.adt-ward-header__pct {
  margin: 0.3rem 0 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--eu-muted, #475569);
}

.adt-ward-header .adt-ward-bed-preview {
  margin: 0.45rem 0 0.65rem;
}

.adt-ward-header__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.45rem 0.75rem;
  margin: 0;
}

.adt-ward-header__cell dt {
  margin: 0;
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--eu-muted, #64748b);
}

.adt-ward-header__cell dd {
  margin: 0.08rem 0 0;
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.25;
}

.adt-ward-header__cell--occupied dd { color: #dc2626; }
.adt-ward-header__cell--available dd { color: #16a34a; }
.adt-ward-header__cell--critical dd { color: #dc2626; }
.adt-ward-header__cell--expected_dc dd { color: #ea580c; }

.adt-ward-header__alerts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.65rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--eu-border, #e2e8f0);
}

.adt-ward-dash__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 1rem;
}

.adt-ward-dash__alerts {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.adt-ward-dash__alert-strip {
  margin: 0 0 1rem;
}

.adt-ward-dash__alert-title {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
}

.adt-ward-dash__alert-empty {
  margin: 0 0 0.75rem;
}

.adt-ward-dash__alert-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.adt-ward-dash__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.7rem;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid transparent;
  line-height: 1.2;
}

.adt-ward-dash__chip--danger {
  background: #fef2f2;
  color: #991b1b;
  border-color: #fecaca;
}

.adt-ward-dash__chip--warning {
  background: #fff7ed;
  color: #9a3412;
  border-color: #fed7aa;
}

.adt-ward-dash__chip--info {
  background: #eff6ff;
  color: #1e40af;
  border-color: #bfdbfe;
}

.adt-ward-dash__chip-mark {
  font-size: 0.9rem;
}

.adt-ward-dash__cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1rem;
}

.adt-ward-card {
  border: 1px solid var(--eu-border, #d0d7de);
  border-radius: 8px;
  padding: 0.85rem 1rem;
  background: var(--eu-surface, #fff);
}

.adt-ward-card--critical {
  border-color: var(--eu-danger, #b42318);
}

.adt-ward-card--isolation {
  border-style: dashed;
}

.adt-ward-card__head {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.adt-ward-card__name {
  margin: 0;
  font-size: 1rem;
}

.adt-ward-card__uhid {
  font-size: 0.85rem;
  color: var(--eu-muted, #667085);
}

.adt-ward-card__meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.35rem 0.75rem;
  margin: 0 0 0.75rem;
}

.adt-ward-card__meta dt {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--eu-muted, #667085);
}

.adt-ward-card__meta dd {
  margin: 0;
  font-size: 0.9rem;
}

.adt-ward-card__alerts {
  margin: 0 0 0.75rem;
  padding-left: 1.1rem;
  font-size: 0.85rem;
  color: var(--eu-danger, #b42318);
}

.adt-ward-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.adt-ward-dash__room {
  margin-bottom: 1rem;
}

.adt-ward-dash__room-title {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
}

.adt-ward-dash__timeline {
  margin: 0;
  padding-left: 1.2rem;
}

.adt-ward-dash__timeline time {
  display: inline-block;
  min-width: 11rem;
  color: var(--eu-muted, #667085);
  font-size: 0.85rem;
}

/* Index workbench — ward tiles */
.adt-ward-dash__filters {
  margin-bottom: 0.5rem;
}

.adt-ward-dash__filter-actions {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.adt-ward-dash__results-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin: 1.25rem 0 0.75rem;
}

.adt-ward-dash__ward-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1rem;
}

.adt-ward-tile {
  border: 1px solid var(--eu-border, #d0d7de);
  border-radius: 10px;
  padding: 0;
  background: var(--eu-surface, #fff);
  display: flex;
  flex-direction: column;
  border-left-width: 4px;
  overflow: visible;
  position: relative;
}

.adt-ward-tile--available { border-left-color: #16a34a; }
.adt-ward-tile--near_full { border-left-color: #ea580c; }
.adt-ward-tile--critical { border-left-color: #dc2626; }
.adt-ward-tile--full { border-left-color: #b91c1c; box-shadow: inset 0 0 0 1px #fecaca; }
.adt-ward-tile--empty { border-left-color: #94a3b8; }

.adt-ward-tile__hit {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  padding: 1rem 1rem 0.5rem;
  text-decoration: none;
  color: inherit;
}

.adt-ward-tile__hit:hover {
  background: #f8fafc;
}

.adt-ward-tile__head {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: flex-start;
}

.adt-ward-tile__title {
  margin: 0;
  font-size: 1.05rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.adt-ward-tile__hierarchy {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.2rem;
  margin-top: 0.25rem;
  font-size: 0.75rem;
  color: var(--eu-muted, #667085);
}

.adt-ward-tile__crumb-sep {
  opacity: 0.6;
}

.adt-ward-tile__band {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  white-space: nowrap;
}

.adt-ward-tile__band--available { background: #dcfce7; color: #166534; }
.adt-ward-tile__band--near_full { background: #ffedd5; color: #9a3412; }
.adt-ward-tile__band--critical { background: #fee2e2; color: #991b1b; }
.adt-ward-tile__band--full { background: #7f1d1d; color: #fff; }
.adt-ward-tile__band--empty { background: #f1f5f9; color: #475569; }

.adt-ward-tile__capacity {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.adt-ward-tile__beds {
  margin: 0;
  font-weight: 600;
}

.adt-ward-tile__bar {
  height: 10px;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
}

.adt-ward-tile__bar-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  min-width: 0;
}

.adt-ward-tile__bar-fill--available { background: #16a34a; }
.adt-ward-tile__bar-fill--near_full { background: #ea580c; }
.adt-ward-tile__bar-fill--critical,
.adt-ward-tile__bar-fill--full { background: #dc2626; }
.adt-ward-tile__bar-fill--empty { background: #94a3b8; }

.adt-ward-tile__pct {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--eu-muted, #475569);
}

.adt-ward-tile__workload {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.35rem;
  margin: 0;
  padding: 0.45rem 0.5rem;
  background: #f8fafc;
  border-radius: 8px;
}

.adt-ward-tile__workload dt {
  font-size: 0.6rem;
  text-transform: uppercase;
  color: var(--eu-muted, #667085);
}

.adt-ward-tile__workload dd {
  margin: 0;
  font-weight: 700;
  font-size: 0.95rem;
}

.adt-ward-tile__stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.45rem 0.65rem;
  margin: 0;
}

.adt-ward-tile__stats dt {
  font-size: 0.65rem;
  text-transform: uppercase;
  color: var(--eu-muted, #667085);
}

.adt-ward-tile__stats dd {
  margin: 0;
  font-weight: 600;
  font-size: 0.95rem;
}

.adt-ward-tile__stats .is-available { color: #16a34a; }
.adt-ward-tile__stats .is-occupied { color: #dc2626; }
.adt-ward-tile__stats .is-reserved { color: #ca8a04; }
.adt-ward-tile__stats .is-cleaning { color: #d97706; }
.adt-ward-tile__stats .is-blocked { color: #334155; }

.adt-ward-tile__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin-top: auto;
  padding: 0.65rem 1rem 1rem;
}

.adt-ward-tile__more {
  position: relative;
}

.adt-ward-tile__more > summary {
  list-style: none;
  cursor: pointer;
}

.adt-ward-tile__more > summary::-webkit-details-marker {
  display: none;
}

.adt-ward-tile__more-menu {
  position: absolute;
  right: 0;
  bottom: calc(100% + 0.25rem);
  z-index: 5;
  min-width: 10rem;
  margin: 0;
  padding: 0.35rem 0;
  list-style: none;
  background: #fff;
  border: 1px solid var(--eu-border, #d0d7de);
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
}

.adt-ward-tile__more-link {
  display: block;
  padding: 0.4rem 0.75rem;
  color: inherit;
  text-decoration: none;
  font-size: 0.85rem;
}

.adt-ward-tile__more-link:hover {
  background: #f1f5f9;
}

.adt-ward-dash__pager {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 1rem;
}

/* Mini bed preview + heatmap */
.adt-ward-bed-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
}

.adt-ward-bed-preview__cell,
.adt-ward-bed-preview__swatch {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 2px;
  background: #cbd5e1;
}

.adt-ward-bed-preview__cell--occupied,
.adt-ward-heatmap__cell--occupied { background: #dc2626; }
.adt-ward-bed-preview__cell--available,
.adt-ward-heatmap__cell--available { background: #16a34a; }
.adt-ward-bed-preview__cell--reserved,
.adt-ward-heatmap__cell--reserved { background: #ca8a04; }
.adt-ward-bed-preview__cell--cleaning,
.adt-ward-heatmap__cell--cleaning { background: #f59e0b; }
.adt-ward-bed-preview__cell--blocked,
.adt-ward-heatmap__cell--blocked,
.adt-ward-bed-preview__cell--maintenance,
.adt-ward-heatmap__cell--maintenance { background: #334155; }
.adt-ward-bed-preview__cell--hold,
.adt-ward-heatmap__cell--hold { background: #7c3aed; }

.adt-ward-bed-preview__legend,
.adt-ward-bed-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.85rem;
  margin: 0.25rem 0 0;
  padding: 0;
  list-style: none;
  font-size: 0.8rem;
  color: var(--eu-muted, #475569);
}

.adt-ward-bed-legend li {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-weight: 500;
}

.adt-ward-bed-preview__swatch {
  width: 12px;
  height: 12px;
}

.adt-ward-heatmap {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(52px, 1fr));
  gap: 0.4rem;
}

.adt-ward-heatmap__cell {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  border-radius: 6px;
  text-decoration: none;
  color: #fff;
  font-size: 0.7rem;
  font-weight: 600;
}

.adt-ward-heatmap__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.85rem;
  margin-top: 0.75rem;
}

@media (max-width: 720px) {
  .adt-ward-dash__ward-grid {
    grid-template-columns: 1fr;
  }

  .adt-ward-tile__stats {
    grid-template-columns: repeat(2, 1fr);
  }

  .adt-ward-tile__workload {
    grid-template-columns: repeat(2, 1fr);
  }

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

  .adt-ward-dash__results-head {
    flex-direction: column;
    align-items: flex-start;
  }
}
:root {
  --app-font-sans: "Inter", "Noto Sans", "Noto Sans Devanagari", "Noto Sans Telugu", "Noto Sans Tamil", system-ui, sans-serif;
  --app-font-mono: "JetBrains Mono", monospace;
  --app-bg: #f4f7fb;
  --app-bg-elevated: #ffffff;
  --app-bg-subtle: #eef3f8;
  --app-bg-muted: #e2e8f0;
  --app-text: #0f172a;
  --app-text-soft: #475569;
  --app-text-muted: #64748b;
  --app-border: rgba(148, 163, 184, 0.22);
  --app-border-strong: rgba(148, 163, 184, 0.35);
  --app-primary: #2563eb;
  --app-primary-strong: #1d4ed8;
  --app-accent: #0f766e;
  --app-success: #15803d;
  --app-warning: #d97706;
  --app-danger: #dc2626;
  --app-sidebar-bg: #102849;
  --app-sidebar-text: rgba(203, 213, 225, 0.88);
  --app-sidebar-muted: rgba(148, 163, 184, 0.72);
  --app-sidebar-border: rgba(148, 163, 184, 0.14);
  --app-sidebar-hover: rgba(255, 255, 255, 0.055);
  --app-sidebar-hover-accent: rgba(45, 212, 191, 0.45);
  --app-sidebar-active-bg: rgba(45, 212, 191, 0.14);
  --app-sidebar-active-accent: #2dd4bf;
  --app-sidebar-active-text: #f8fafc;
  --app-sidebar-width: 252px; /* enterprise band 240–260px */
  --app-sidebar-collapsed-width: 64px;
  --app-sidebar-pad-x: 12px;
  --app-sidebar-item-height: 38px;
  --app-sidebar-subitem-height: 35px;
  --app-sidebar-icon-size: 17px;
  --app-sidebar-icon-glyph: 17px;
  --app-sidebar-font-size: 13px;
  --app-sidebar-font-weight: 500;
  --app-sidebar-font-active-weight: 600;
  --app-sidebar-section-size: 10px;
  --app-sidebar-section-weight: 600;
  --app-sidebar-submenu-size: 13px;
  --app-sidebar-badge-size: 10px;
  --app-shadow: 0 18px 48px rgba(15, 23, 42, 0.08);
  --app-radius-lg: 18px;
  --app-radius-md: 14px;
  --app-radius-sm: 10px;
  --app-topbar-height: 72px;
}

:root[data-theme="dark"] {
  --app-bg: #09111f;
  --app-bg-elevated: #111c2d;
  --app-bg-subtle: #162235;
  --app-bg-muted: #1d2a40;
  --app-text: #e5edf8;
  --app-text-soft: #c4d1e1;
  --app-text-muted: #8da0b8;
  --app-border: rgba(100, 116, 139, 0.28);
  --app-border-strong: rgba(148, 163, 184, 0.4);
  --app-primary: #60a5fa;
  --app-primary-strong: #3b82f6;
  --app-accent: #2dd4bf;
  --app-success: #22c55e;
  --app-warning: #f59e0b;
  --app-danger: #f87171;
  --app-sidebar-bg: #0b1f39;
  --app-sidebar-text: rgba(226, 232, 240, 0.9);
  --app-sidebar-muted: rgba(148, 163, 184, 0.74);
  --app-sidebar-border: rgba(100, 116, 139, 0.28);
  --app-sidebar-hover: rgba(255, 255, 255, 0.07);
  --app-sidebar-hover-accent: rgba(94, 234, 212, 0.5);
  --app-sidebar-active-bg: rgba(45, 212, 191, 0.14);
  --app-sidebar-active-accent: #5eead4;
  --app-sidebar-active-text: #f8fafc;
  --app-shadow: 0 24px 56px rgba(2, 6, 23, 0.42);
}

* {
  box-sizing: border-box;
}

html, body {
  min-height: 100%;
}

body.app-body {
  margin: 0;
  font-family: var(--app-font-sans);
  background: var(--app-bg);
  color: var(--app-text);
}

a {
  color: inherit;
}

summary {
  list-style: none;
}

summary::-webkit-details-marker {
  display: none;
}

::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

::-webkit-scrollbar-thumb {
  background: rgba(148, 163, 184, 0.45);
  border-radius: 999px;
}

.sidebar-scroll {
  scrollbar-width: thin;
  scrollbar-color: rgba(148, 163, 184, 0.28) transparent;
}

.sidebar-scroll::-webkit-scrollbar {
  width: 4px;
}

.sidebar-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.sidebar-scroll::-webkit-scrollbar-thumb {
  background: rgba(148, 163, 184, 0.28);
  border-radius: 999px;
}

.sidebar-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(148, 163, 184, 0.48);
}

.top-nav-scroll,
.hospital-menu-scroll {
  scrollbar-width: thin;
  scrollbar-color: rgba(148, 163, 184, 0.45) transparent;
}

.top-nav-scroll::-webkit-scrollbar,
.hospital-menu-scroll::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.top-nav-scroll::-webkit-scrollbar-track,
.hospital-menu-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.top-nav-scroll::-webkit-scrollbar-thumb,
.hospital-menu-scroll::-webkit-scrollbar-thumb {
  background: rgba(148, 163, 184, 0.35);
  border-radius: 999px;
}

.top-nav-scroll::-webkit-scrollbar-thumb:hover,
.hospital-menu-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(148, 163, 184, 0.6);
}

.app-shell {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: stretch;
  background: var(--app-bg);
}

.app-shell__overlay {
  display: none;
}

.app-shell__workspace {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.app-shell__main {
  flex: 1;
  min-width: 0;
  overflow: auto;
  padding: 24px;
}




.app-sidebar {
  --sb-pad-x: var(--app-sidebar-pad-x);
  width: var(--app-sidebar-width);
  flex: 0 0 var(--app-sidebar-width);
  position: sticky;
  top: 0;
  height: 100vh;
  max-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--app-sidebar-bg);
  color: var(--app-sidebar-text);
  border-right: 1px solid var(--app-sidebar-border);
  box-shadow: none;
  z-index: 25;
  transition: width 0.16s ease, flex-basis 0.16s ease;
}

.app-sidebar__rail {
  flex: 0 0 auto;
  height: 2px;
  background: linear-gradient(90deg, #60a5fa 0%, #2dd4bf 100%);
  opacity: 0.75;
}

.app-sidebar__brand {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px var(--sb-pad-x);
  border-bottom: 1px solid var(--app-sidebar-border);
  min-height: 52px;
  background: var(--app-sidebar-bg);
}

.app-sidebar__nav {
  flex: 1 1 auto;
  min-height: 0;
  padding: 6px var(--sb-pad-x) 8px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  min-width: 0;
  -webkit-overflow-scrolling: touch;
}

.app-sidebar__bottom {
  flex: 0 0 auto;
  margin-top: auto;
  border-top: 1px solid var(--app-sidebar-border);
  background: var(--app-sidebar-bg);
  padding: 8px var(--sb-pad-x);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.app-sidebar__workspace,
.app-sidebar__footer {
  padding: 0;
  margin: 0;
  border: 0;
}

.app-brand-mark {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  flex: 0 0 28px;
  background: linear-gradient(135deg, #3b82f6, #0d9488);
  color: #fff;
  font-weight: 700;
  font-size: 11px;
  box-shadow: none;
}

.app-brand-copy {
  min-width: 0;
  flex: 1 1 auto;
}

.app-brand-copy__title {
  font-size: 11px;
  font-weight: 700;
  color: #f8fafc;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}

.app-brand-copy__subtitle {
  margin-top: 1px;
  font-size: 9.5px;
  font-weight: 450;
  line-height: 1.2;
  color: var(--app-sidebar-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.app-nav-group {
  margin: 0;
}

.app-nav-group + .app-nav-group {
  margin-top: 4px;
  padding-top: 4px;
  border-top: 1px solid rgba(255, 255, 255, 0.045);
}

.app-nav-group--root {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.app-nav-group__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 28px;
  padding: 4px 6px 4px 8px;
  margin: 0 0 2px;
  font-size: var(--app-sidebar-section-size);
  font-weight: var(--app-sidebar-section-weight);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(148, 163, 184, 0.82);
  cursor: pointer;
  border-radius: 6px;
  background: transparent;
  border: 0;
  user-select: none;
  transition: color 0.1s ease, background 0.1s ease;
}

.app-nav-group__summary:hover {
  color: rgba(226, 232, 240, 0.94);
  background: rgba(255, 255, 255, 0.03);
}

.app-nav-group__summary:focus {
  outline: none;
}

.app-nav-group__summary:focus-visible {
  outline: 2px solid rgba(96, 165, 250, 0.75);
  outline-offset: 1px;
  color: #f8fafc;
}

.app-nav-group.is-active-group > .app-nav-group__summary {
  color: rgba(203, 213, 225, 0.96);
}

.app-nav-group__title {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.app-nav-group__dot {
  width: 5px;
  height: 5px;
  border-radius: 999px;
  flex: 0 0 5px;
  opacity: 0.85;
}

.app-nav-group__label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-nav-group__meta {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex: 0 0 auto;
}

.app-nav-group__count {
  min-width: 1.1rem;
  height: 16px;
  padding: 0 5px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.06);
  font-size: var(--app-sidebar-badge-size);
  font-weight: 600;
  letter-spacing: 0;
  color: rgba(148, 163, 184, 0.78);
  line-height: 1;
}

.app-nav-group__chevron {
  display: grid;
  place-items: center;
  width: 14px;
  height: 14px;
  color: rgba(148, 163, 184, 0.75);
  transition: transform 0.14s ease, color 0.14s ease;
}

.app-nav-group__chevron-svg {
  display: block;
}

.app-nav-group[open] > .app-nav-group__summary .app-nav-group__chevron {
  transform: rotate(180deg);
  color: rgba(45, 212, 191, 0.9);
}

.app-nav-group__summary:hover .app-nav-group__chevron {
  color: rgba(226, 232, 240, 0.9);
}

.app-nav-group__items {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 0 0 2px;
}

.app-nav-link-form {
  width: 100%;
  margin: 0;
  padding: 0;
  display: block;
}

.app-nav-link {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-width: 0;
  min-height: var(--app-sidebar-item-height);
  height: var(--app-sidebar-item-height);
  padding: 0 10px 0 12px;
  margin: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: rgba(186, 198, 212, 0.9);
  font: inherit;
  font-size: var(--app-sidebar-font-size);
  font-weight: var(--app-sidebar-font-weight);
  line-height: 1.25;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.1s ease, color 0.1s ease;
}

/* Module section children = compact submenu density */
.app-nav-group:not(.app-nav-group--root) .app-nav-link {
  min-height: var(--app-sidebar-subitem-height);
  height: var(--app-sidebar-subitem-height);
  font-size: var(--app-sidebar-submenu-size);
}

.app-nav-link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  bottom: 7px;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: transparent;
  transition: background 0.1s ease;
}

.app-nav-group:not(.app-nav-group--root) .app-nav-link::before {
  top: 6px;
  bottom: 6px;
}

.app-nav-link:hover {
  background: var(--app-sidebar-hover);
  color: #f1f5f9;
}

.app-nav-link:hover::before {
  background: var(--app-sidebar-hover-accent);
}

.app-nav-link:focus {
  outline: none;
}

.app-nav-link:focus-visible {
  outline: 2px solid rgba(96, 165, 250, 0.8);
  outline-offset: 1px;
  z-index: 1;
  background: var(--app-sidebar-hover);
  color: #f8fafc;
}

.app-nav-link.is-active {
  background: var(--app-sidebar-active-bg);
  color: var(--app-sidebar-active-text);
  font-size: var(--app-sidebar-font-size);
  font-weight: var(--app-sidebar-font-active-weight);
}

.app-nav-group:not(.app-nav-group--root) .app-nav-link.is-active {
  font-size: var(--app-sidebar-font-size);
}

.app-nav-link.is-active::before {
  background: var(--app-sidebar-active-accent);
}

.app-nav-link.is-active:hover {
  background: rgba(45, 212, 191, 0.18);
}

.app-nav-link--todo,
.app-nav-link.is-disabled {
  color: rgba(148, 163, 184, 0.4);
  font-weight: 500;
  opacity: 0.72;
}

.app-nav-link--todo:hover,
.app-nav-link.is-disabled:hover {
  background: rgba(245, 158, 11, 0.06);
  color: rgba(252, 211, 77, 0.82);
  opacity: 0.9;
}

.app-nav-link--todo:hover::before,
.app-nav-link.is-disabled:hover::before {
  background: rgba(245, 158, 11, 0.5);
}

.app-nav-link__icon {
  width: var(--app-sidebar-icon-size);
  height: var(--app-sidebar-icon-size);
  border-radius: 4px;
  display: grid;
  place-items: center;
  flex: 0 0 var(--app-sidebar-icon-size);
  font-size: var(--app-sidebar-icon-glyph);
  line-height: 1;
  color: rgba(148, 163, 184, 0.88);
  background: transparent;
}

.app-nav-link:hover .app-nav-link__icon,
.app-nav-link:focus-visible .app-nav-link__icon {
  color: rgba(226, 232, 240, 0.98);
  background: transparent;
}

.app-nav-link.is-active .app-nav-link__icon {
  color: var(--app-sidebar-active-accent);
  background: transparent;
}

.app-nav-link__svg {
  width: var(--app-sidebar-icon-glyph);
  height: var(--app-sidebar-icon-glyph);
  display: block;
  flex-shrink: 0;
}

.app-nav-link__label {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-nav-link__badge {
  flex: 0 0 auto;
  margin-left: auto;
  min-width: 1.15rem;
  height: 16px;
  padding: 0 5px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.07);
  color: rgba(148, 163, 184, 0.9);
  font-size: var(--app-sidebar-badge-size);
  font-weight: 600;
  line-height: 1;
}

.app-nav-link.is-active .app-nav-link__badge {
  background: rgba(45, 212, 191, 0.16);
  color: rgba(204, 251, 241, 0.95);
}

.app-nav-link__badge--wip {
  background: rgba(245, 158, 11, 0.12);
  color: rgba(252, 211, 77, 0.82);
  font-size: var(--app-sidebar-badge-size);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.app-workspace-chip {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 36px;
  padding: 6px 10px;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.07);
  background: rgba(255, 255, 255, 0.03);
  color: inherit;
  text-decoration: none;
  transition: background 0.1s ease, border-color 0.1s ease;
}

.app-workspace-chip:hover {
  background: var(--app-sidebar-hover);
  border-color: rgba(255, 255, 255, 0.12);
}

.app-workspace-chip:focus {
  outline: none;
}

.app-workspace-chip:focus-visible {
  outline: 2px solid rgba(96, 165, 250, 0.8);
  outline-offset: 1px;
}

.app-workspace-chip__icon {
  flex: 0 0 var(--app-sidebar-icon-size);
  width: var(--app-sidebar-icon-size);
  height: var(--app-sidebar-icon-size);
  border-radius: 5px;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(148, 163, 184, 0.9);
}

.app-workspace-chip__icon .app-nav-link__svg {
  width: 14px;
  height: 14px;
}

.app-workspace-chip__copy {
  min-width: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

.app-workspace-chip__label {
  font-size: 11px;
  font-weight: 600;
  color: #e2e8f0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}

.app-workspace-chip__hint {
  font-size: 9px;
  font-weight: 450;
  color: var(--app-sidebar-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}

.app-workspace-chip__caret {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: rgba(148, 163, 184, 0.55);
  opacity: 0.9;
}

.app-workspace-chip:hover .app-workspace-chip__caret {
  color: rgba(226, 232, 240, 0.9);
}

.app-user-chip {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px;
  padding: 4px 4px 4px 6px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.app-user-chip__avatar {
  width: 22px;
  height: 22px;
  border-radius: 5px;
  display: grid;
  place-items: center;
  font-size: 8px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #3b82f6, #0d9488);
}

.app-user-chip__copy {
  min-width: 0;
}

.app-user-chip__name {
  color: #f1f5f9;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}

.app-user-chip__role {
  color: var(--app-sidebar-muted);
  font-size: 9px;
  font-weight: 450;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}

.app-user-chip__logout {
  width: 24px;
  height: 24px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 5px;
  color: var(--app-sidebar-text);
  background: transparent;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: background 0.1s ease, color 0.1s ease;
}

.app-user-chip__logout:hover {
  background: var(--app-sidebar-hover);
  color: #fff;
}

.app-user-chip__logout:focus {
  outline: none;
}

.app-user-chip__logout:focus-visible {
  outline: 2px solid rgba(96, 165, 250, 0.8);
  outline-offset: 1px;
}

.app-sidebar-collapse-icon {
  transition: transform 0.16s ease;
}

.app-icon-button.is-collapsed .app-sidebar-collapse-icon {
  transform: rotate(180deg);
}

.app-topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: var(--app-topbar-height);
  padding: 14px 24px;
  background: color-mix(in srgb, var(--app-bg-elevated) 88%, transparent);
  border-bottom: 1px solid var(--app-border);
  backdrop-filter: blur(14px);
}

.app-topbar__left,
.app-topbar__right {
  display: flex;
  align-items: center;
  gap: 10px;
}

.app-topbar__left {
  flex: 1;
  min-width: 0;
}

.app-icon-button {
  position: relative;
  width: 42px;
  height: 42px;
  border: 1px solid var(--app-border);
  border-radius: 14px;
  display: inline-grid;
  place-items: center;
  color: var(--app-text-soft);
  background: var(--app-bg-elevated);
  text-decoration: none;
  cursor: pointer;
  transition: border-color 0.18s ease, transform 0.18s ease, background 0.18s ease;
}

.app-icon-button:hover,
.app-chip--interactive:hover {
  border-color: var(--app-primary);
  transform: translateY(-1px);
}

.app-icon-button__badge {
  position: absolute;
  top: 6px;
  right: 5px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--app-danger);
  color: white;
  font-size: 9px;
  font-weight: 800;
  line-height: 1;
}

.app-chip {
  min-height: 42px;
  padding: 0 14px;
  border: 1px solid var(--app-border);
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--app-bg-elevated);
  color: var(--app-text-soft);
  font-size: 12px;
  font-weight: 700;
}

.app-chip--subtle {
  background: var(--app-bg-subtle);
}

.app-chip--interactive {
  cursor: pointer;
}

.app-dropdown {
  position: relative;
}

.app-dropdown__menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  min-width: 280px;
  padding: 10px;
  border: 1px solid var(--app-border);
  border-radius: 18px;
  background: var(--app-bg-elevated);
  box-shadow: var(--app-shadow);
}

.app-dropdown__title {
  padding: 6px 10px 12px;
  font-size: 11px;
  font-weight: 800;
  color: var(--app-text-muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.app-dropdown__item {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 10px;
  border-radius: 12px;
  text-decoration: none;
}

.app-dropdown__item:hover,
.app-dropdown__item.is-active {
  background: var(--app-bg-subtle);
}

.app-dropdown__item strong,
.app-dropdown__item small {
  display: block;
}

.app-dropdown__item strong {
  font-size: 12px;
  color: var(--app-text);
}

.app-dropdown__item small {
  margin-top: 3px;
  font-size: 11px;
  color: var(--app-text-muted);
}

.app-dropdown__badge {
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: white;
  font-size: 11px;
  font-weight: 800;
  background: linear-gradient(135deg, var(--app-primary), var(--app-accent));
}

.app-search {
  position: relative;
  flex: 1;
  max-width: 680px;
}

.app-search__field {
  position: relative;
  display: flex;
  align-items: center;
}

.app-search__icon {
  position: absolute;
  left: 16px;
  top: 50%;
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--app-text-muted);
  z-index: 1;
}

.app-search__hint {
  position: absolute;
  inset-block: 0;
  right: 12px;
  width: 24px;
  height: 24px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 800;
  background: var(--app-bg-subtle);
}

.app-search__input {
  display: block;
  width: 100%;
  height: 48px;
  padding: 0 48px 0 52px;
  border: 1px solid var(--app-border);
  border-radius: 18px;
  background: var(--app-bg-elevated);
  color: var(--app-text);
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  outline: none;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.app-search__input:focus {
  border-color: rgba(37, 99, 235, 0.5);
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.08);
}

.app-search__results {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  right: 0;
  border: 1px solid var(--app-border);
  border-radius: 20px;
  background: var(--app-bg-elevated);
  box-shadow: var(--app-shadow);
  max-height: 540px;
  overflow: auto;
  z-index: 60;
}
.app-search__section + .app-search__section {
  border-top: 1px solid var(--app-border);
}

.app-search__section-title {
  padding: 14px 16px 10px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--app-text-muted);
  text-transform: uppercase;
}

.app-search__item {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 12px 16px;
  text-decoration: none;
  transition: background 0.15s ease;
}

.app-search__item:hover,
.app-search__item.is-active {
  background: var(--app-bg-subtle);
}

.app-search__item-icon {
  width: 36px;
  height: 36px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  font-size: 12px;
  font-weight: 800;
  background: color-mix(in srgb, var(--app-primary) 14%, var(--app-bg-subtle));
  color: var(--app-primary-strong);
}

.app-search__item strong,
.app-search__item small {
  display: block;
}

.app-search__item strong {
  font-size: 13px;
  color: var(--app-text);
}

.app-search__item small {
  margin-top: 3px;
  font-size: 11px;
  color: var(--app-text-muted);
}

.app-search__empty {
  padding: 22px 16px;
  color: var(--app-text-muted);
  text-align: center;
  font-size: 13px;
}

.app-topnav {
  display: none;
  position: sticky;
  top: var(--app-topbar-height);
  z-index: 15;
  padding: 10px 24px 12px;
  border-bottom: 1px solid var(--app-border);
  background: color-mix(in srgb, var(--app-bg-elevated) 92%, transparent);
  backdrop-filter: blur(12px);
}

.app-topnav__scroll {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  overflow: visible;
}

.app-topnav__group {
  position: relative;
  flex: 0 0 auto;
  padding-bottom: 8px;
  margin-bottom: -8px;
}

/* Topnav module pills + dropdowns are now Tailwind-class driven (see _topnav.html.erb).
   Legacy .app-topnav__group[open], __summary, __menu rules were removed because the
   markup no longer uses <details>/<summary>; hover/focus-within drives the dropdown. */

.app-topnav__menu .top-nav-scroll {
  display: grid;
  gap: 4px;
}

.app-topnav__item {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 40px;
  padding: 0 12px;
  border-radius: 12px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  color: var(--app-text-soft);
}

.app-topnav__item:hover,
.app-topnav__item.is-active {
  background: var(--app-bg-subtle);
  color: var(--app-text);
}

.app-topnav__item-icon {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 800;
  background: color-mix(in srgb, var(--app-primary) 14%, var(--app-bg-subtle));
  color: var(--app-primary-strong);
}

.shell-flash-stack {
  position: fixed;
  top: 18px;
  right: 18px;
  z-index: 80;
  display: grid;
  gap: 10px;
}

.shell-flash {
  min-width: 280px;
  max-width: 380px;
  padding: 14px;
  border: 1px solid var(--app-border);
  border-radius: 18px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 24px;
  gap: 10px;
  align-items: start;
  background: var(--app-bg-elevated);
  color: var(--app-text-soft);
  box-shadow: var(--app-shadow);
}

.shell-flash--notice {
  border-color: rgba(21, 128, 61, 0.2);
}

.shell-flash--alert {
  border-color: rgba(220, 38, 38, 0.2);
}

.shell-flash__icon {
  width: 28px;
  height: 28px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  font-size: 12px;
  font-weight: 800;
  color: white;
  background: linear-gradient(135deg, var(--app-primary), var(--app-accent));
}

.shell-flash--alert .shell-flash__icon {
  background: linear-gradient(135deg, #fb7185, #ef4444);
}

.shell-flash p {
  margin: 2px 0 0;
  font-size: 13px;
  font-weight: 600;
}

.shell-flash__dismiss {
  border: 0;
  background: transparent;
  color: var(--app-text-muted);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.app-locale-switcher {
  position: relative;
}

.app-locale-switcher__trigger {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 36px;
  padding: 0 10px;
  border: 1px solid var(--app-border);
  border-radius: 8px;
  background: var(--app-bg-elevated);
  color: var(--app-text);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  list-style: none;
}

.app-locale-switcher__trigger::-webkit-details-marker {
  display: none;
}

.app-locale-switcher__menu {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  z-index: 40;
  min-width: 196px;
  max-height: 320px;
  overflow: auto;
  padding: 4px;
  border: 1px solid var(--app-border);
  border-radius: 8px;
  background: var(--app-bg-elevated);
}

.app-locale-switcher__sep {
  height: 1px;
  margin: 4px 8px;
  background: var(--app-border);
}

.app-locale-switcher__form {
  margin: 0;
}

.app-locale-switcher__option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 32px;
  padding: 0 10px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--app-text);
  font-size: 13px;
  font-weight: 500;
  text-align: left;
  cursor: pointer;
}

.app-locale-switcher__option.is-active {
  font-weight: 600;
  background: var(--app-bg-subtle);
}

.app-locale-switcher__option:hover {
  background: var(--app-bg-subtle);
}

.locale-dual {
  max-width: 720px;
}

.locale-dual__preview {
  margin: 0 0 12px;
  color: var(--eu-text, var(--app-text));
  font-size: 14px;
  font-weight: 600;
}

.locale-dual-form__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
}

.hidden {
  display: none !important;
}


:root.sidebar-collapsed .app-shell {
  display: flex;
}

:root.sidebar-collapsed .app-sidebar {
  width: var(--app-sidebar-collapsed-width);
  flex-basis: var(--app-sidebar-collapsed-width);
  --sb-pad-x: 4px;
}

:root.sidebar-collapsed .app-brand-copy,
:root.sidebar-collapsed .app-nav-group__summary,
:root.sidebar-collapsed .app-nav-link__label,
:root.sidebar-collapsed .app-nav-link__badge,
:root.sidebar-collapsed .app-workspace-chip__copy,
:root.sidebar-collapsed .app-workspace-chip__caret,
:root.sidebar-collapsed .app-user-chip__copy,
:root.sidebar-collapsed .app-user-chip__logout {
  display: none !important;
}

:root.sidebar-collapsed details.app-nav-group > .app-nav-group__items {
  display: flex !important;
}

:root.sidebar-collapsed .app-sidebar__brand {
  justify-content: center;
  padding: 8px 4px;
  min-height: 44px;
}

:root.sidebar-collapsed .app-sidebar__nav {
  padding: 4px var(--sb-pad-x) 4px;
}

:root.sidebar-collapsed .app-sidebar__bottom {
  padding: 4px var(--sb-pad-x) 6px;
  align-items: center;
  gap: 4px;
}

:root.sidebar-collapsed .app-nav-group {
  margin: 0;
  padding-top: 0;
  border-top: 0;
}

:root.sidebar-collapsed .app-nav-group + .app-nav-group {
  margin-top: 2px;
  padding-top: 2px;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

:root.sidebar-collapsed .app-nav-group__items {
  align-items: center;
  gap: 1px;
}

:root.sidebar-collapsed .app-nav-link {
  justify-content: center;
  width: 100%;
  padding: 0;
  gap: 0;
}

:root.sidebar-collapsed .app-nav-link::before {
  top: 8px;
  bottom: 8px;
  width: 3px;
  border-radius: 0 3px 3px 0;
}

:root.sidebar-collapsed .app-workspace-chip {
  justify-content: center;
  width: 100%;
  min-height: 28px;
  padding: 4px 0;
}

:root.sidebar-collapsed .app-user-chip {
  grid-template-columns: 1fr;
  justify-items: center;
  width: 100%;
  padding: 4px 0;
  border: 0;
  background: transparent;
}

:root.sidebar-collapsed .app-brand-mark,
:root.sidebar-collapsed .app-user-chip__avatar,
:root.sidebar-collapsed .app-workspace-chip__icon {
  margin: 0 auto;
}

@media (max-width: 1023px) {
  :root.sidebar-collapsed .app-sidebar {
    width: min(320px, 86vw);
    flex-basis: min(320px, 86vw);
    --sb-pad-x: 8px;
  }

  :root.sidebar-collapsed .app-brand-copy,
  :root.sidebar-collapsed .app-nav-group__summary,
  :root.sidebar-collapsed .app-nav-link__label,
  :root.sidebar-collapsed .app-nav-link__badge,
  :root.sidebar-collapsed .app-workspace-chip__copy,
  :root.sidebar-collapsed .app-workspace-chip__caret,
  :root.sidebar-collapsed .app-user-chip__copy,
  :root.sidebar-collapsed .app-user-chip__logout {
    display: revert !important;
  }

  :root.sidebar-collapsed .app-nav-link {
    justify-content: flex-start;
    padding: 0 10px 0 12px;
    gap: 10px;
  }

  :root.sidebar-collapsed .app-user-chip {
    grid-template-columns: 24px minmax(0, 1fr) auto;
    padding: 4px 4px 4px 6px;
    border: 1px solid rgba(255, 255, 255, 0.06);
    background: rgba(255, 255, 255, 0.03);
  }
}

:root[data-nav-mode="top"] .app-shell {
  display: block;
}

:root[data-nav-mode="top"] .app-sidebar {
  display: none;
}

:root[data-nav-mode="top"] .app-topnav {
  display: block;
}

:root[data-nav-mode="side"] .app-topnav {
  display: none;
}

@media (max-width: 1279px) {
  .app-chip--subtle {
    display: none;
  }
}

@media (max-width: 1023px) {
  .app-shell {
    display: block;
  }

  .app-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: min(320px, 86vw);
    flex-basis: min(320px, 86vw);
    transform: translateX(-100%);
    transition: transform 0.22s ease;
    z-index: 40;
  }

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

  .app-shell__overlay {
    position: fixed;
    inset: 0;
    z-index: 30;
    background: rgba(15, 23, 42, 0.46);
  }

  .app-shell.is-sidebar-open .app-shell__overlay {
    display: block;
  }

  .app-icon-button--desktop {
    display: none;
  }

  .app-topbar {
    padding-inline: 16px;
  }

  .app-shell__main {
    padding: 16px;
  }

  .app-topbar__right {
    gap: 8px;
  }

  .app-chip {
    display: none;
  }
}

@media (max-width: 767px) {
  .app-topbar {
    flex-wrap: wrap;
    align-items: stretch;
    gap: 12px;
  }

  .app-topbar__left,
  .app-topbar__right {
    width: 100%;
  }

  .app-topbar__right {
    justify-content: flex-end;
  }

  .app-search {
    max-width: none;
  }

  .shell-flash-stack {
    left: 12px;
    right: 12px;
  }

  .shell-flash {
    min-width: 0;
    max-width: none;
  }
}

/* Shared dark theme overrides for existing utility-heavy screens */
:root[data-theme="dark"] .bg-white,
:root[data-theme="dark"] .card,
:root[data-theme="dark"] .stat-card,
:root[data-theme="dark"] .section-card,
:root[data-theme="dark"] .s-card,
:root[data-theme="dark"] .kpi-card,
:root[data-theme="dark"] .qa-card,
:root[data-theme="dark"] .quick-action {
  background: var(--app-bg-elevated) !important;
  color: var(--app-text) !important;
  border-color: var(--app-border) !important;
}

:root[data-theme="dark"] .bg-slate-50,
:root[data-theme="dark"] .bg-gray-50,
:root[data-theme="dark"] .bg-slate-100,
:root[data-theme="dark"] .bg-gray-100,
:root[data-theme="dark"] .data-table thead th,
:root[data-theme="dark"] .data-table tbody tr:hover {
  background: var(--app-bg-subtle) !important;
}

:root[data-theme="dark"] .text-gray-900,
:root[data-theme="dark"] .text-gray-800,
:root[data-theme="dark"] .text-slate-900,
:root[data-theme="dark"] .text-slate-800,
:root[data-theme="dark"] .page-title,
:root[data-theme="dark"] .sora {
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .text-gray-700,
:root[data-theme="dark"] .text-gray-600,
:root[data-theme="dark"] .text-slate-700,
:root[data-theme="dark"] .text-slate-600,
:root[data-theme="dark"] .page-subtitle,
:root[data-theme="dark"] .data-table tbody td {
  color: var(--app-text-soft) !important;
}

:root[data-theme="dark"] .text-gray-500,
:root[data-theme="dark"] .text-gray-400,
:root[data-theme="dark"] .text-slate-500,
:root[data-theme="dark"] .text-slate-400,
:root[data-theme="dark"] .form-label {
  color: var(--app-text-muted) !important;
}

:root[data-theme="dark"] .border,
:root[data-theme="dark"] .border-gray-100,
:root[data-theme="dark"] .border-gray-200,
:root[data-theme="dark"] .border-slate-100,
:root[data-theme="dark"] .border-slate-200,
:root[data-theme="dark"] .border-slate-50,
:root[data-theme="dark"] .section-header,
:root[data-theme="dark"] .s-head,
:root[data-theme="dark"] .data-table thead th,
:root[data-theme="dark"] .data-table tbody tr {
  border-color: var(--app-border) !important;
}

:root[data-theme="dark"] input,
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea,
:root[data-theme="dark"] .form-input,
:root[data-theme="dark"] .btn-secondary,
:root[data-theme="dark"] .inventory-action-link {
  background: var(--app-bg-subtle) !important;
  color: var(--app-text) !important;
  border-color: var(--app-border-strong) !important;
}

:root[data-theme="dark"] .btn-secondary:hover,
:root[data-theme="dark"] .inventory-action-link:hover {
  background: var(--app-bg-muted) !important;
}

/* Clinical module design system alignment */
body.module-clinical {
  background:
    radial-gradient(1200px 600px at 10% -10%, rgba(37, 99, 235, 0.09), transparent 60%),
    radial-gradient(900px 500px at 110% 10%, rgba(96, 165, 250, 0.08), transparent 60%),
    linear-gradient(180deg, #f4f8fc 0%, #edf3f9 100%);
}

:root.dark body.module-clinical {
  background:
    radial-gradient(1200px 600px at 10% -10%, rgba(59, 130, 246, 0.08), transparent 60%),
    radial-gradient(900px 500px at 110% 10%, rgba(15, 118, 110, 0.05), transparent 60%),
    linear-gradient(180deg, #081120 0%, #0d1728 100%);
}

body.module-clinical .app-shell__main {
  padding: 28px;
}

body.module-clinical .page,
body.module-clinical .max-w-2xl.mx-auto,
body.module-clinical .max-w-3xl.mx-auto,
body.module-clinical .max-w-4xl.mx-auto {
  display: grid;
  gap: 24px;
}

body.module-clinical .page-header,
body.module-clinical .flex.items-center.justify-between.mb-5,
body.module-clinical .flex.items-center.justify-between.mb-6,
body.module-clinical .flex.justify-between.items-center.mb-5,
body.module-clinical .mb-6.flex.items-center.justify-between,
body.module-clinical .mb-5.flex.items-center.gap-4,
body.module-clinical .flex.items-center.gap-4.mb-6,
body.module-clinical .flex.items-center.gap-4.mb-5 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin: 0;
}

body.module-clinical .page-title {
  margin: 0;
  color: #0f172a;
  font-size: var(--eu-font-page, 20px);
  font-weight: var(--eu-font-page-weight, 700);
  line-height: 1.2;
  letter-spacing: -0.02em;
}

body.module-clinical .page-subtitle,
body.module-clinical .breadcrumb,
body.module-clinical .breadcrumb span {
  color: #64748b;
}

body.module-clinical .page-subtitle {
  margin-top: 8px;
  font-size: var(--eu-font-page-sub, 13px);
  font-weight: var(--eu-font-page-sub-weight, 400);
}

body.module-clinical .breadcrumb {
  margin-bottom: 10px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

body.module-clinical .card,
body.module-clinical .bg-white.rounded-2xl,
body.module-clinical .bg-white.rounded-3xl,
body.module-clinical .bg-white.rounded-xl {
  border: 1px solid #d9e3ef !important;
  border-radius: 24px !important;
  background: rgba(255, 255, 255, 0.96) !important;
  box-shadow: 0 8px 26px rgba(15, 23, 42, 0.05) !important;
}

body.module-clinical .card-header {
  padding: 20px 24px;
  border-bottom: 1px solid #e2e8f0;
}

body.module-clinical .card-body,
body.module-clinical .card.p-6,
body.module-clinical .card.p-5,
body.module-clinical .card.p-4 {
  padding: 24px !important;
}

body.module-clinical .card-body.flush {
  padding: 0 !important;
}

body.module-clinical .card-title {
  color: #0f172a;
  font-size: 1rem;
  font-weight: 700;
}

body.module-clinical .btn,
body.module-clinical a.btn,
body.module-clinical button.btn {
  min-height: 44px;
  padding: 0 18px;
  border-radius: 14px;
  border: 1px solid #d9e3ef;
  background: #fff;
  color: #334155;
  font-size: 0.9rem;
  font-weight: 600;
  gap: 8px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

body.module-clinical .btn:hover,
body.module-clinical a.btn:hover,
body.module-clinical button.btn:hover {
  background: #f8fbff;
  border-color: #bfdbfe;
  color: #1d4ed8;
}

body.module-clinical .btn.accent,
body.module-clinical .btn.primary,
body.module-clinical .btn-success {
  border-color: #2563eb;
  background: #2563eb;
  color: #fff;
}

body.module-clinical .btn.accent:hover,
body.module-clinical .btn.primary:hover,
body.module-clinical .btn-success:hover {
  border-color: #1d4ed8;
  background: #1d4ed8;
  color: #fff;
}

body.module-clinical .btn.ghost {
  background: #fff;
  color: #475569;
}

body.module-clinical .mb-5 > a.text-sm,
body.module-clinical .mb-6 > a.text-sm,
body.module-clinical .mb-5.flex.items-center.gap-4 > a,
body.module-clinical .mb-6.flex.items-center.gap-4 > a,
body.module-clinical .max-w-3xl.mx-auto.space-y-5 > div:first-child a.text-xs,
body.module-clinical .max-w-2xl.mx-auto.space-y-5 > div:first-child a.text-xs {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid #d9e3ef;
  border-radius: 14px;
  background: #fff;
  color: #475569 !important;
  font-weight: 600;
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

body.module-clinical .text-right.space-x-2 a,
body.module-clinical .text-right.space-x-2 .button_to,
body.module-clinical td .flex.gap-1 a,
body.module-clinical td .flex.gap-2 a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid #d9e3ef;
  border-radius: 12px;
  background: #fff;
  color: #475569 !important;
  font-size: 0.78rem;
  font-weight: 700;
  text-decoration: none;
}

body.module-clinical .text-right.space-x-2 .button_to,
body.module-clinical .text-right.space-x-2 .button_to form {
  display: inline-flex;
}

body.module-clinical .btn-danger {
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid #fecdd3;
  border-radius: 14px;
  background: #fff1f2;
  color: #be123c;
  font-weight: 600;
}

body.module-clinical .btn-danger:hover {
  background: #ffe4e6;
}

body.module-clinical .text-primary {
  color: #0f172a !important;
}

body.module-clinical .stat-pill {
  border: 1px solid #d9e3ef;
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.96);
  padding: 20px;
  box-shadow: 0 8px 26px rgba(15, 23, 42, 0.05);
}

body.module-clinical .sp-icon {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: #eff6ff;
}

body.module-clinical .sp-num {
  margin-top: 18px;
  color: #0f172a;
  font-size: 1.8rem;
  font-weight: 800;
  line-height: 1;
}

body.module-clinical .sp-label {
  margin-top: 10px;
  color: #0f172a;
  font-weight: 700;
}

body.module-clinical .sp-sub {
  margin-top: 4px;
  color: #64748b;
  font-size: 0.88rem;
}

body.module-clinical .badge {
  border-radius: 999px;
  padding: 5px 12px;
  font-size: 0.76rem;
  font-weight: 600;
}

body.module-clinical .form-label,
body.module-clinical label.form-label,
body.module-clinical form label:not(.inline-flex):not(.flex) {
  display: block;
  margin-bottom: 8px;
  color: #64748b;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

body.module-clinical .required::after {
  content: " *";
  color: #2563eb;
}

body.module-clinical .form-input,
body.module-clinical .form-select,
body.module-clinical .form-textarea,
body.module-clinical .input-field,
body.module-clinical input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):not(.app-topbar__search-input):not(.app-search__input):not(.eu-input),
body.module-clinical select:not(.eu-select),
body.module-clinical textarea:not(.eu-textarea) {
  width: 100%;
  min-height: 48px;
  border: 1px solid #d9e3ef !important;
  border-radius: 14px !important;
  background: #fff !important;
  color: #0f172a !important;
  padding: 0 16px;
  font-size: 0.92rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

body.module-clinical textarea:not(.eu-textarea),
body.module-clinical .form-textarea {
  min-height: 128px;
  padding: 14px 16px;
}

body.module-clinical .form-input:focus,
body.module-clinical .form-select:focus,
body.module-clinical .form-textarea:focus,
body.module-clinical .input-field:focus,
body.module-clinical input:not(.app-search__input):not(.eu-input):focus,
body.module-clinical select:not(.eu-select):focus,
body.module-clinical textarea:not(.eu-textarea):focus {
  outline: none;
  border-color: #3b82f6 !important;
  box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.12);
}

body.module-clinical .alert,
body.module-clinical .alert-danger,
body.module-clinical .bg-red-50 {
  border-radius: 18px;
  border: 1px solid #fecaca !important;
  background: #fff1f2 !important;
  color: #be123c !important;
  padding: 16px 18px;
}

body.module-clinical table.data {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
}

body.module-clinical table.data th {
  padding: 16px 24px;
  border-bottom: 1px solid #dbe5f0;
  background: #f8fbff;
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
}

body.module-clinical table.data td {
  padding: 20px 24px;
  border-bottom: 1px solid #e2e8f0;
  color: #0f172a;
  font-size: 0.93rem;
}

body.module-clinical table.data tbody tr:hover td {
  background: rgba(239, 246, 255, 0.72);
}

body.module-clinical table.data tbody tr:last-child td {
  border-bottom: none;
}

body.module-clinical .tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 6px;
  border-radius: 18px;
  background: #eef4ff;
}

body.module-clinical .tab {
  border-radius: 14px;
  padding: 10px 16px;
  color: #64748b;
  font-weight: 600;
}

body.module-clinical .tab.active,
body.module-clinical .tab[aria-selected="true"] {
  background: #fff;
  color: #1d4ed8;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}

body.module-clinical .pagination,
body.module-clinical nav[aria-label="Pagination"] {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

body.module-clinical .pagination a,
body.module-clinical .pagination span,
body.module-clinical nav[aria-label="Pagination"] a,
body.module-clinical nav[aria-label="Pagination"] span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 14px;
  border: 1px solid #d9e3ef;
  border-radius: 12px;
  background: #fff;
  color: #475569;
  font-weight: 600;
}

body.module-clinical .pagination .current,
body.module-clinical nav[aria-label="Pagination"] .current {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
}

body.module-clinical .page > .card[style*="margin-bottom"] .card-body form[style*="display: flex"],
body.module-clinical .page > .card[style*="margin-bottom"] .card-body[style*="display: flex"] > form {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-end !important;
  gap: 12px !important;
}

body.module-clinical .page > .card[style*="margin-bottom"] .card-body[style*="display: flex"] {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 12px !important;
}

body.module-clinical .page > .card[style*="margin-bottom"] .card-body form[style*="display: flex"] > div,
body.module-clinical .page > .card[style*="margin-bottom"] .card-body[style*="display: flex"] > form > div {
  flex: 0 0 auto;
}

body.module-clinical .page > .card[style*="margin-bottom"] .card-body form[style*="display: flex"] .form-input,
body.module-clinical .page > .card[style*="margin-bottom"] .card-body form[style*="display: flex"] .form-select,
body.module-clinical .page > .card[style*="margin-bottom"] .card-body form[style*="display: flex"] input,
body.module-clinical .page > .card[style*="margin-bottom"] .card-body form[style*="display: flex"] select,
body.module-clinical .page > .card[style*="margin-bottom"] .card-body[style*="display: flex"] > form .form-input,
body.module-clinical .page > .card[style*="margin-bottom"] .card-body[style*="display: flex"] > form input,
body.module-clinical .page > .card[style*="margin-bottom"] .card-body[style*="display: flex"] > form select {
  width: auto !important;
  min-width: 140px;
}

body.module-clinical .page > .card[style*="margin-bottom"] .card-body[style*="display: flex"] > form {
  margin-left: auto;
}

body.module-clinical .clinical-filter-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

body.module-clinical .clinical-filter-search,
body.module-clinical .clinical-filter-field,
body.module-clinical .clinical-filter-actions {
  width: 100%;
}

body.module-clinical .clinical-filter-search {
  position: relative;
}

body.module-clinical .clinical-filter-search-icon {
  pointer-events: none;
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  color: #94a3b8;
  z-index: 1;
}

body.module-clinical .clinical-filter-search .form-input,
body.module-clinical .clinical-filter-search input,
body.module-clinical .clinical-filter-search select {
  width: 100% !important;
  padding-left: 44px !important;
}

body.module-clinical .clinical-filter-field .form-input,
body.module-clinical .clinical-filter-field .form-select,
body.module-clinical .clinical-filter-field input,
body.module-clinical .clinical-filter-field select {
  min-width: 160px;
}

body.module-clinical .clinical-filter-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: flex-start;
}

body.module-clinical .clinical-filter-button {
  min-height: 48px;
  white-space: nowrap;
}

body.module-clinical .clinical-filter-submit {
  min-height: 48px;
  border: 1px solid #2563eb;
  border-radius: 14px;
  background: #2563eb !important;
  color: #fff !important;
  font-weight: 700;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

body.module-clinical .clinical-filter-submit:hover {
  border-color: #1d4ed8;
  background: #1d4ed8 !important;
  color: #fff !important;
}

body.module-clinical .overflow-x-auto,
body.module-clinical .overflow-auto {
  scrollbar-width: thin;
  scrollbar-color: rgba(148, 163, 184, 0.5) transparent;
}

:root.dark body.module-clinical .page-title,
:root.dark body.module-clinical .card-title {
  color: #f8fafc;
}

:root.dark body.module-clinical .page-subtitle,
:root.dark body.module-clinical .breadcrumb,
:root.dark body.module-clinical .breadcrumb span,
:root.dark body.module-clinical .form-label,
:root.dark body.module-clinical form label:not(.inline-flex):not(.flex) {
  color: #94a3b8 !important;
}

:root.dark body.module-clinical .card,
:root.dark body.module-clinical .bg-white.rounded-2xl,
:root.dark body.module-clinical .bg-white.rounded-3xl,
:root.dark body.module-clinical .bg-white.rounded-xl {
  border-color: rgba(71, 85, 105, 0.52) !important;
  background: rgba(15, 23, 42, 0.9) !important;
  box-shadow: 0 10px 30px rgba(2, 6, 23, 0.35) !important;
}

:root.dark body.module-clinical .card-header,
:root.dark body.module-clinical table.data th,
:root.dark body.module-clinical table.data td,
:root.dark body.module-clinical .pagination a,
:root.dark body.module-clinical .pagination span,
:root.dark body.module-clinical nav[aria-label="Pagination"] a,
:root.dark body.module-clinical nav[aria-label="Pagination"] span {
  border-color: rgba(71, 85, 105, 0.48) !important;
}

:root.dark body.module-clinical table.data th,
:root.dark body.module-clinical .tabs {
  background: rgba(15, 23, 42, 0.92) !important;
}

:root.dark body.module-clinical table.data td,
:root.dark body.module-clinical .pagination a,
:root.dark body.module-clinical .pagination span,
:root.dark body.module-clinical nav[aria-label="Pagination"] a,
:root.dark body.module-clinical nav[aria-label="Pagination"] span {
  background: rgba(15, 23, 42, 0.88) !important;
  color: #e2e8f0;
}

:root.dark body.module-clinical table.data tbody tr:hover td {
  background: rgba(30, 41, 59, 0.82) !important;
}

:root.dark body.module-clinical .form-input,
:root.dark body.module-clinical .form-select,
:root.dark body.module-clinical .form-textarea,
:root.dark body.module-clinical .input-field,
:root.dark body.module-clinical input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):not(.app-topbar__search-input):not(.app-search__input):not(.eu-input),
:root.dark body.module-clinical select:not(.eu-select),
:root.dark body.module-clinical textarea:not(.eu-textarea) {
  border-color: rgba(71, 85, 105, 0.55) !important;
  background: rgba(15, 23, 42, 0.92) !important;
  color: #f8fafc !important;
}

body.module-clinical .app-search__input,
:root.dark body.module-clinical .app-search__input {
  padding-left: 52px !important;
  padding-right: 48px !important;
}

:root.dark body.module-clinical .btn,
:root.dark body.module-clinical .btn.ghost,
:root.dark body.module-clinical .pagination a,
:root.dark body.module-clinical nav[aria-label="Pagination"] a {
  border-color: rgba(71, 85, 105, 0.55);
  background: rgba(15, 23, 42, 0.92);
  color: #cbd5e1;
}

:root.dark body.module-clinical .btn:hover,
:root.dark body.module-clinical .btn.ghost:hover {
  background: rgba(30, 41, 59, 0.95);
  color: #fff;
}

:root.dark body.module-clinical .btn.accent,
:root.dark body.module-clinical .btn.primary,
:root.dark body.module-clinical .btn-success {
  background: #3b82f6;
  border-color: #3b82f6;
  color: #fff;
}

:root.dark body.module-clinical .clinical-filter-search-icon {
  color: #64748b;
}

:root.dark body.module-clinical .clinical-filter-submit {
  border-color: #3b82f6;
  background: #3b82f6 !important;
  color: #fff !important;
}

:root.dark body.module-clinical .btn-danger {
  border-color: rgba(190, 24, 93, 0.5);
  background: rgba(76, 5, 25, 0.6);
  color: #fda4af;
}

:root.dark body.module-clinical .mb-5 > a.text-sm,
:root.dark body.module-clinical .mb-6 > a.text-sm,
:root.dark body.module-clinical .mb-5.flex.items-center.gap-4 > a,
:root.dark body.module-clinical .mb-6.flex.items-center.gap-4 > a,
:root.dark body.module-clinical .max-w-3xl.mx-auto.space-y-5 > div:first-child a.text-xs,
:root.dark body.module-clinical .max-w-2xl.mx-auto.space-y-5 > div:first-child a.text-xs,
:root.dark body.module-clinical .text-right.space-x-2 a,
:root.dark body.module-clinical td .flex.gap-1 a,
:root.dark body.module-clinical td .flex.gap-2 a {
  border-color: rgba(71, 85, 105, 0.55);
  background: rgba(15, 23, 42, 0.92);
  color: #cbd5e1 !important;
}

:root.dark body.module-clinical .text-primary,
:root.dark body.module-clinical .sp-num,
:root.dark body.module-clinical .sp-label {
  color: #f8fafc !important;
}

:root.dark body.module-clinical .stat-pill {
  border-color: rgba(71, 85, 105, 0.52);
  background: rgba(15, 23, 42, 0.88);
  box-shadow: 0 10px 30px rgba(2, 6, 23, 0.35);
}

:root.dark body.module-clinical .sp-icon {
  background: rgba(30, 41, 59, 0.95);
}

:root.dark body.module-clinical .sp-sub {
  color: #94a3b8;
}

@media (max-width: 900px) {
  body.module-clinical .app-shell__main {
    padding: 20px;
  }

  body.module-clinical .page-header,
  body.module-clinical .flex.items-center.justify-between.mb-5,
  body.module-clinical .flex.items-center.justify-between.mb-6,
  body.module-clinical .flex.justify-between.items-center.mb-5,
  body.module-clinical .mb-6.flex.items-center.justify-between,
  body.module-clinical .mb-5.flex.items-center.gap-4,
  body.module-clinical .flex.items-center.gap-4.mb-6,
  body.module-clinical .flex.items-center.gap-4.mb-5 {
    flex-direction: column;
    align-items: stretch;
  }

  body.module-clinical table.data th,
  body.module-clinical table.data td {
    padding-left: 16px;
    padding-right: 16px;
  }
}

@media (min-width: 1024px) {
  body.module-clinical .clinical-filter-form {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
  }

  body.module-clinical .clinical-filter-search {
    flex: 1 1 320px;
    min-width: 0;
  }

  body.module-clinical .clinical-filter-field,
  body.module-clinical .clinical-filter-actions {
    width: auto;
    flex: 0 0 auto;
  }

  body.module-clinical .clinical-filter-actions {
    margin-left: 0;
    align-self: center;
    flex-wrap: nowrap;
  }
}
/* Appointment dashboard — PEUF / enterprise_ui aligned */

.appt-dashboard {
  width: 100%;
}

.appt-dashboard .eu-kpi-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.appt-dashboard__filters .eu-card__body {
  padding: 16px 18px;
}

.appt-filter-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.appt-filter-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px 14px;
  width: 100%;
}

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

.appt-filter-field--actions {
  justify-content: flex-end;
}

.appt-filter-field {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.appt-filter-field .eu-input,
.appt-filter-field .eu-select {
  width: 100%;
  box-sizing: border-box;
}

.appt-modal__panel--wide {
  width: min(640px, 100%);
}

.appt-modal__panel--sheet {
  display: flex;
  flex-direction: column;
  max-height: min(88vh, 720px);
  padding: 0;
  overflow: hidden;
}

.appt-modal__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px 10px;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
  flex: 0 0 auto;
}

.appt-modal__header h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
}

.appt-modal__header .appt-modal__sub {
  margin: 2px 0 0;
}

.appt-modal__x {
  border: 0;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  color: var(--eu-text-muted, #64748b);
  padding: 0 4px;
}

.appt-modal__form {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1 1 auto;
}

.appt-modal__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 12px 16px;
}

.appt-modal__footer {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  align-items: center;
  padding: 10px 16px;
  border-top: 1px solid var(--eu-border, #e2e8f0);
  background: var(--eu-surface, #fff);
  flex: 0 0 auto;
}

.appt-modal__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 12px;
}

.appt-modal .eu-field--tight {
  margin-bottom: 8px;
}

.appt-slot-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 6px 10px;
  margin-bottom: 6px;
}

.appt-slot-toolbar .eu-label {
  margin: 0;
}

.appt-slot-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(76px, 1fr));
  gap: 6px;
  max-height: 160px;
  overflow-y: auto;
  padding: 6px;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 8px;
  background: var(--eu-surface-2, #f8fafc);
}

.appt-slot {
  padding: 6px 4px;
}

.appt-schedule-context {
  margin-bottom: 8px;
  padding: 8px 10px;
  font-size: 11px;
}

@media (max-width: 640px) {
  .appt-modal__row {
    grid-template-columns: 1fr;
  }

  .appt-modal__panel--sheet {
    max-height: 92vh;
  }

  .appt-slot-grid {
    max-height: 140px;
  }
}

.appt-slot-grid__hint {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 12px;
  color: var(--eu-text-muted, #64748b);
}

.appt-slot {
  border: 1px solid var(--eu-border, #e2e8f0);
  background: #fff;
  border-radius: 8px;
  padding: 8px 6px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.appt-slot--leave {
  border-color: #c4b5fd;
  background: #f5f3ff;
  color: #5b21b6;
}

.appt-slot__time {
  display: block;
  font-size: 12px;
  font-weight: 700;
}

.appt-slot__occ {
  display: block;
  font-size: 10px;
  font-weight: 500;
  opacity: 0.85;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 84px;
}

.appt-slot-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-bottom: 8px;
  font-size: 11px;
}

.appt-slot-legend__item::before {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 3px;
  margin-right: 5px;
  vertical-align: -1px;
  border: 1px solid transparent;
}

.appt-slot-legend__item--available::before { background: #f0fdf4; border-color: #86efac; }
.appt-slot-legend__item--overbook::before { background: #fffbeb; border-color: #fcd34d; }
.appt-slot-legend__item--full::before { background: #fff1f2; border-color: #fda4af; }
.appt-slot-legend__item--leave::before { background: #f5f3ff; border-color: #c4b5fd; }

.appt-schedule-context {
  margin-bottom: 12px;
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--eu-surface-2, #f8fafc);
  border: 1px solid var(--eu-border, #e2e8f0);
  font-size: 12px;
  line-height: 1.45;
}

.appt-schedule-context__line + .appt-schedule-context__line {
  margin-top: 4px;
}

.appt-ctx-leave {
  color: #6d28d9;
  font-weight: 600;
}

.appt-slot--available {
  border-color: #86efac;
  background: #f0fdf4;
  color: #166534;
}

.appt-slot--overbook {
  border-color: #fcd34d;
  background: #fffbeb;
  color: #92400e;
}

.appt-slot--full {
  border-color: #fda4af;
  background: #fff1f2;
  color: #9f1239;
}

.appt-slot--past {
  opacity: 0.45;
  cursor: not-allowed;
}

.appt-slot.is-selected {
  outline: 2px solid #2563eb;
  outline-offset: 1px;
}

.appt-slot.is-pack {
  box-shadow: inset 0 0 0 2px #2563eb;
  font-weight: 700;
}

.appt-pack-preview {
  margin: 8px 0 0;
  padding: 8px 10px;
  font-size: 13px;
  line-height: 1.4;
  color: #1e3a8a;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
}

.appt-pack-preview.is-warn {
  color: #9a3412;
  background: #fff7ed;
  border-color: #fed7aa;
}

.appt-override-box {
  padding: 10px 12px;
  border-radius: 8px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
}

.appt-override-box__msg {
  margin: 0 0 8px;
  font-size: 13px;
  color: #9a3412;
  font-weight: 600;
}

.appt-qr svg {
  margin: 12px auto;
  display: inline-block;
}

.appt-filter-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: flex-start;
  padding-top: 2px;
}

.appt-tabs {
  display: flex;
  gap: 4px;
  margin: 0 0 14px;
  padding: 4px;
  background: var(--eu-surface-2, #f1f5f9);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 10px;
  width: fit-content;
  max-width: 100%;
}

.appt-tabs__item {
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--eu-muted, #64748b);
  text-decoration: none;
}

.appt-tabs__item:hover {
  color: var(--eu-text, #0f172a);
  background: rgba(255, 255, 255, 0.7);
}

.appt-tabs__item.is-active {
  color: var(--eu-text, #0f172a);
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}

.appt-group-hint {
  margin: 0 0 12px;
  font-size: 13px;
  color: var(--eu-muted, #64748b);
  line-height: 1.45;
}

.appt-bulk-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  margin-bottom: 10px;
  background: var(--eu-surface-2, #f1f5f9);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 10px;
}

.appt-bulk-bar[hidden] {
  display: none !important;
}

.appt-bulk-bar__count {
  font-size: 13px;
  color: var(--eu-text, #0f172a);
}

.appt-col-check {
  width: 36px;
  text-align: center;
}

.appt-check {
  width: 15px;
  height: 15px;
  cursor: pointer;
}

.appt-inline-form {
  display: inline;
  margin: 0;
}

.appt-check-label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13px;
  line-height: 1.35;
  color: var(--eu-text, #0f172a);
  cursor: pointer;
}

.appt-check-label input {
  margin-top: 2px;
}

.appt-series-field {
  margin-top: 4px;
  padding: 10px 12px;
  background: var(--eu-surface-2, #f8fafc);
  border-radius: 8px;
}

.appt-week-grid {
  display: grid;
  gap: 12px;
}

.appt-week-grid--1 {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

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

/* —— Filter drawer + context —— */
.appt-filter-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.appt-filter-trigger__icon {
  font-size: 16px;
  line-height: 1;
}

.appt-title-meta {
  font-weight: 500;
  color: var(--eu-muted, #64748b);
  font-size: 0.85em;
}

.eu-page-header--compact .eu-page-subtitle {
  display: none;
}

.appt-week .eu-page-header {
  align-items: center;
  margin-bottom: 12px;
}

.appt-week .eu-page-header--compact .eu-breadcrumb {
  margin-bottom: 2px;
}

.appt-week .appt-header-actions {
  flex-wrap: nowrap;
  align-items: center;
}

.appt-week .appt-header-actions .eu-btn,
.appt-week .appt-header-actions summary.eu-btn {
  list-style: none;
}

.appt-week .appt-header-actions summary.eu-btn::-webkit-details-marker {
  display: none;
}

.appt-related {
  position: relative;
}

.appt-related > summary {
  list-style: none;
  cursor: pointer;
}

.appt-related > summary::-webkit-details-marker {
  display: none;
}

.appt-related__menu {
  position: absolute;
  right: 0;
  top: calc(100% + 4px);
  min-width: 180px;
  padding: 6px;
  background: #fff;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  z-index: 40;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.appt-related__link {
  display: block;
  padding: 8px 10px;
  border-radius: 6px;
  font-size: 13px;
  color: var(--eu-text, #0f172a);
  text-decoration: none;
}

.appt-related__link:hover {
  background: #f1f5f9;
}

.appt-header-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
}

.appt-chrome {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 12px;
  margin: 0 0 10px;
  padding: 8px 10px;
  background: #f8fafc;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 10px;
}

.appt-chrome__context {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.appt-chrome__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.appt-context-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: var(--eu-field-h-sm, 32px);
  padding: 0 10px;
  box-sizing: border-box;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #e2e8f0;
  font-size: 12px;
  color: var(--eu-muted, #64748b);
}

.appt-context-chip strong {
  color: var(--eu-text, #0f172a);
  font-weight: 700;
}

.appt-context-chip--btn {
  cursor: pointer;
  font: inherit;
}

.appt-context-chip--btn:hover {
  border-color: #93c5fd;
  background: #eff6ff;
}

.appt-span-seg {
  display: inline-flex;
  align-items: center;
  height: var(--eu-field-h-sm, 32px);
  box-sizing: border-box;
  padding: 2px;
  background: #e2e8f0;
  border-radius: 8px;
}

.appt-span-seg__item {
  padding: 5px 10px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--eu-muted, #64748b);
  text-decoration: none;
}

.appt-span-seg__item.is-active {
  background: #fff;
  color: var(--eu-text, #0f172a);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}

.appt-cal-toolbar__nav {
  display: flex;
  align-items: center;
  gap: 6px;
}

.appt-cal-toolbar__title {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--eu-text, #0f172a);
  min-width: 7rem;
  text-align: center;
}

.appt-legend-details {
  margin: 0 0 10px;
  font-size: 12px;
  color: var(--eu-muted, #64748b);
}

.appt-legend-details > summary {
  cursor: pointer;
  font-weight: 600;
  user-select: none;
}

.appt-legend-details[open] > summary {
  margin-bottom: 6px;
}

.appt-cal-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.appt-cal-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
  color: var(--eu-muted, #64748b);
}

.appt-cal-legend__item::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 3px;
  border: 1px solid transparent;
}

.appt-cal-legend__item--scheduled::before { background: #dbeafe; border-color: #93c5fd; }
.appt-cal-legend__item--paid::before { background: #e0e7ff; border-color: #a5b4fc; }
.appt-cal-legend__item--arrived::before { background: #dcfce7; border-color: #86efac; }
.appt-cal-legend__item--progress::before { background: #fef3c7; border-color: #fcd34d; }
.appt-cal-legend__item--done::before { background: #f1f5f9; border-color: #cbd5e1; }
.appt-cal-legend__item--cancelled::before { background: #fee2e2; border-color: #fca5a5; }

.appt-cal-card--month {
  padding: 3px 6px;
  border-left-width: 3px;
}

.appt-cal-card--month .appt-cal-card__top {
  margin-bottom: 0;
}

.appt-cal-card--month .appt-cal-card__time {
  font-size: 10px;
}

.appt-cal-card--month .appt-cal-card__name {
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.appt-month-day__num-btn {
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  border-radius: 6px;
}

.appt-month-day__num-btn:disabled {
  cursor: default;
}

.appt-month-day__num-btn:not(:disabled):hover .appt-month-day__num {
  color: #1d4ed8;
}

.appt-month-day__more {
  display: block;
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
  font-size: 11px;
  font-weight: 600;
  color: #1d4ed8;
  padding: 2px 4px;
  cursor: pointer;
  border-radius: 4px;
}

.appt-month-day__more:hover {
  background: #eff6ff;
}

.appt-month-day__book,
.appt-week-day__book,
.appt-board__book {
  display: block;
  width: 100%;
  border: 1px dashed #cbd5e1;
  background: transparent;
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  color: #1d4ed8;
  padding: 6px 4px;
  cursor: pointer;
  border-radius: 6px;
  margin-top: 4px;
}

.appt-month-day__book:hover,
.appt-week-day__book:hover,
.appt-board__book:hover {
  background: #eff6ff;
  border-color: #93c5fd;
}

.appt-cal-card__hit {
  display: block;
  width: 100%;
  border: 0;
  background: transparent;
  padding: 0;
  text-align: left;
  cursor: pointer;
  color: inherit;
}

.appt-day-panel__toolbar {
  padding: 0 0 12px;
  margin-bottom: 8px;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.appt-quick-book__results {
  list-style: none;
  margin: 6px 0 0;
  padding: 0;
  max-height: 180px;
  overflow: auto;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 8px;
  background: #fff;
}

.appt-quick-book__results li {
  border-bottom: 1px solid #f1f5f9;
}

.appt-quick-book__results li:last-child {
  border-bottom: 0;
}

.appt-quick-book__hit {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
  padding: 8px 10px;
  cursor: pointer;
  font-size: 13px;
}

.appt-quick-book__hit:hover {
  background: #f8fafc;
}

.appt-quick-book__empty {
  padding: 10px;
  font-size: 12px;
  color: #64748b;
}

.appt-quick-book__picked {
  margin: 6px 0 0;
  font-size: 13px;
  font-weight: 600;
  color: #0f172a;
}

.appt-modal__hint {
  margin: 4px 0 0;
  font-size: 12px;
  color: #64748b;
}

.appt-month-day__duty {
  font-size: 10px;
  font-weight: 600;
  color: #64748b;
}

.appt-day-source {
  display: none !important;
}

.appt-day-panel__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.35);
  z-index: 80;
}

.appt-day-panel {
  position: fixed;
  top: 0;
  right: 0;
  width: min(420px, 94vw);
  height: 100vh;
  background: #fff;
  border-left: 1px solid var(--eu-border, #e2e8f0);
  box-shadow: -8px 0 24px rgba(15, 23, 42, 0.12);
  z-index: 90;
  display: flex;
  flex-direction: column;
}

.appt-day-panel[hidden],
.appt-day-panel__backdrop[hidden],
.appt-drawer[hidden],
.appt-drawer__backdrop[hidden],
.appt-quick-search__results[hidden] {
  display: none !important;
}

.appt-day-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.appt-day-panel__header h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
}

.appt-day-panel__body {
  padding: 14px 16px;
  overflow: auto;
  flex: 1;
}

.appt-day-panel__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.appt-board__empty-quiet {
  min-height: 24px;
}

.appt-drawer__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.35);
  z-index: 80;
}

.appt-drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: min(360px, 92vw);
  height: 100vh;
  background: #fff;
  border-left: 1px solid var(--eu-border, #e2e8f0);
  box-shadow: -8px 0 24px rgba(15, 23, 42, 0.12);
  z-index: 90;
  display: flex;
  flex-direction: column;
}

.appt-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.appt-drawer__header h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
}

.appt-drawer__x {
  border: 0;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  color: var(--eu-muted, #64748b);
}

.appt-drawer__form {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.appt-drawer__body {
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow: auto;
  flex: 1;
}

.appt-drawer__footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 14px 18px;
  border-top: 1px solid var(--eu-border, #e2e8f0);
}

/* —— Month calendar —— */
.appt-month {
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 12px;
  overflow: hidden;
}

.appt-month__dow {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  background: #f1f5f9;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.appt-month__dow-cell {
  padding: 8px 6px;
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--eu-muted, #64748b);
}

.appt-month__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.appt-month-day {
  min-height: 140px;
  border-right: 1px solid var(--eu-border, #e2e8f0);
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
  display: flex;
  flex-direction: column;
  background: #fff;
}

.appt-month-day:nth-child(7n) {
  border-right: 0;
}

.appt-month-day.is-outside {
  background: #f8fafc;
  opacity: 0.55;
}

.appt-month-day.is-today {
  background: linear-gradient(180deg, #dbeafe 0%, #eff6ff 45%, #fff 100%);
  box-shadow: inset 0 0 0 2px #2563eb;
}

.appt-month-day.is-leave {
  background: #faf5ff;
}

.appt-month-day__head {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 8px 4px;
}

.appt-month-day__num {
  font-size: 13px;
  font-weight: 700;
  color: var(--eu-text, #0f172a);
}

.appt-month-day.is-today .appt-month-day__num {
  color: #1d4ed8;
}

.appt-month-day__today-pill {
  display: inline-block;
  margin-left: 4px;
  padding: 1px 6px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #fff;
  background: #2563eb;
  vertical-align: middle;
}

.appt-month-day__leave {
  font-size: 10px;
  font-weight: 700;
  color: #7c3aed;
  text-transform: uppercase;
}

.appt-month-day__duty {
  font-size: 10px;
  font-weight: 600;
  color: #1d4ed8;
}

.appt-month-day__count {
  margin-left: auto;
  font-size: 10px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 999px;
  background: #dbeafe;
  color: #1e40af;
}

.appt-month-day__body {
  padding: 0 6px 6px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  overflow: auto;
  max-height: 220px;
}

.appt-month-day__empty {
  margin: auto 0;
  text-align: center;
  font-size: 11px;
  color: #cbd5e1;
}

.appt-month-day__more {
  font-size: 11px;
  font-weight: 600;
  color: #64748b;
  padding: 2px 4px;
}

.appt-month-day .appt-cal-card--compact {
  padding: 4px 6px;
}

.appt-month-day .appt-cal-card__actions .eu-btn {
  padding: 1px 5px;
  font-size: 10px;
}

.appt-week-day {
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 12px;
  min-height: 180px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.appt-week-day.is-today {
  border-color: #93c5fd;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.appt-week-day__head {
  padding: 10px 12px 8px;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
  background: #f8fafc;
}

.appt-week-day__dow {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--eu-muted, #64748b);
}

.appt-week-day__date {
  font-size: 16px;
  font-weight: 700;
  color: var(--eu-text, #0f172a);
}

.appt-week-day__duty {
  margin-top: 2px;
  font-size: 11px;
  color: #1d4ed8;
  font-weight: 600;
}

.appt-week-day__body {
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}

.appt-cal-card {
  border: 1px solid var(--eu-border, #e2e8f0);
  border-left-width: 3px;
  border-radius: 8px;
  padding: 8px 10px;
  background: #fff;
}

.appt-cal-card--scheduled { border-left-color: #3b82f6; background: #f8fbff; }
.appt-cal-card--paid { border-left-color: #6366f1; background: #f8f7ff; }
.appt-cal-card--arrived { border-left-color: #16a34a; background: #f3fdf6; }
.appt-cal-card--progress { border-left-color: #d97706; background: #fffbeb; }
.appt-cal-card--done { border-left-color: #94a3b8; background: #f8fafc; }
.appt-cal-card--cancelled { border-left-color: #dc2626; background: #fff5f5; opacity: 0.85; }

.appt-cal-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 4px;
}

.appt-cal-card__time {
  font-size: 12px;
  font-weight: 700;
  color: var(--eu-text, #0f172a);
}

.appt-cal-card__name {
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 2px;
}

.appt-cal-card__meta {
  font-size: 11px;
  color: var(--eu-muted, #64748b);
  margin-bottom: 6px;
}

.appt-cal-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.appt-cal-card--compact .appt-cal-card__actions .eu-btn {
  padding: 2px 6px;
  font-size: 11px;
}

.appt-board__cards {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.appt-opd-pill {
  display: inline-block;
  padding: 1px 6px;
  border-radius: 999px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 10px;
  font-weight: 700;
}

.appt-doctor-opd {
  margin-bottom: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #f8fafc;
  border: 1px dashed #cbd5e1;
}

.appt-doctor-opd__title {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--eu-muted, #64748b);
  margin-bottom: 6px;
}

.appt-doctor-opd__row {
  display: flex;
  flex-direction: column;
  gap: 1px;
  font-size: 12px;
  margin-bottom: 4px;
}

.appt-doctor-opd__row span {
  color: var(--eu-muted, #64748b);
  font-size: 11px;
}

.appt-doctor-opd--week {
  margin-bottom: 12px;
}

.appt-doctor-opd__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.appt-duty-chip {
  display: inline-flex;
  flex-direction: column;
  gap: 2px;
  padding: 6px 8px;
  border-radius: 8px;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  font-size: 11px;
  color: #1e3a8a;
}

.appt-duty-chip.is-off {
  background: #f8fafc;
  border-color: #e2e8f0;
  color: #94a3b8;
}

.appt-board__meta {
  margin: 0 0 12px;
  font-size: 13px;
  color: var(--eu-text-muted, #64748b);
}

.appt-board__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}

.appt-board__col .eu-card__header,
.appt-board__unassigned .eu-card__header {
  padding: 12px 14px;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.appt-board__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.appt-board__item {
  display: flex;
  gap: 10px;
  padding: 8px 10px;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 8px;
  background: var(--eu-surface, #fff);
}

.appt-board__time {
  flex: 0 0 72px;
  font-size: 12px;
  font-weight: 700;
  color: var(--eu-text-muted, #64748b);
}

.appt-board__body {
  min-width: 0;
  flex: 1;
}

.appt-board__meta-line {
  margin-top: 2px;
  font-size: 11px;
  color: var(--eu-text-muted, #64748b);
}

.appt-board__empty-col {
  margin: 0;
  font-size: 12px;
  color: var(--eu-text-muted, #64748b);
  text-align: center;
  padding: 16px 0;
}

.appt-board__unassigned {
  margin-top: 4px;
}

@media (max-width: 1100px) {
  .appt-week-grid--1,
  .appt-week-grid--2 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

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

.appt-dashboard__results {
  flex: 1;
  min-width: 0;
}

.appt-dashboard__results .eu-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.appt-dashboard__results .eu-card__title {
  margin: 0;
}

.appt-dashboard__results .eu-card__subtitle {
  margin: 2px 0 0;
  color: var(--eu-text-muted, #64748b);
}

.appt-table-wrap {
  width: 100%;
  overflow-x: auto;
}

.appt-table {
  width: 100%;
  table-layout: auto;
  border-collapse: collapse;
}

.appt-table th,
.appt-table td {
  padding: 10px 12px;
  vertical-align: middle;
  white-space: nowrap;
}

.appt-table th {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #64748b);
  background: var(--eu-surface-2, #f8fafc);
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.appt-table td {
  font-size: 13px;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.appt-col-patient {
  white-space: normal;
  min-width: 140px;
  max-width: 220px;
}

.appt-col-sl,
.appt-col-ref {
  width: 56px;
}

.appt-col-actions {
  width: 1%;
  white-space: nowrap;
}

.appt-slot__date {
  font-weight: 600;
  font-size: 13px;
  line-height: 1.25;
}

.appt-slot__time {
  font-size: 11px;
  color: var(--eu-text-muted, #64748b);
  margin-top: 2px;
}

.appt-row-actions {
  display: inline-flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px;
}

.appt-empty {
  padding: 40px 16px !important;
  text-align: center;
  color: var(--eu-text-muted, #64748b);
  white-space: normal !important;
}

.appt-pagination {
  padding: 12px 18px;
  border-top: 1px solid var(--eu-border, #e2e8f0);
}

.eu-req {
  color: var(--eu-danger, #be123c);
}

.appt-modal[hidden] {
  display: none !important;
}

.appt-modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.appt-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
}

.appt-modal__panel {
  position: relative;
  z-index: 1;
  width: min(520px, 100%);
  background: var(--eu-surface, #fff);
  border-radius: 12px;
  padding: 20px 22px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.18);
  max-height: min(88vh, 640px);
  overflow: auto;
}

.appt-modal__panel h3 {
  margin: 0 0 4px;
  font-size: 16px;
  font-weight: 700;
}

.appt-modal__sub {
  margin: 0 0 10px;
  font-size: 13px;
  color: var(--eu-text-muted, #64748b);
}

.appt-modal .eu-field {
  margin-bottom: 8px;
}

.appt-modal__actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin-top: 10px;
}

/* Reschedule sheet: sticky footer, scroll body (must follow base panel rules) */
.appt-modal__panel.appt-modal__panel--sheet {
  display: flex;
  flex-direction: column;
  width: min(640px, 100%);
  max-height: min(88vh, 720px);
  padding: 0;
  overflow: hidden;
}

.print-only {
  display: none;
}

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

  .appt-dashboard .eu-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

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

  .appt-row-actions {
    flex-wrap: wrap;
  }
}

@media (max-width: 560px) {
  .appt-filter-grid {
    grid-template-columns: 1fr;
  }

  .appt-dashboard .eu-kpi-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media print {
  .no-print {
    display: none !important;
  }

  .print-only {
    display: block !important;
  }

  .appt-print-title {
    margin-bottom: 12px;
  }

  .appt-table {
    width: 100%;
    font-size: 11px;
  }

  .eu-page-header,
  .sidebar,
  .topbar,
  nav,
  .app-shell__sidebar {
    display: none !important;
  }
}

/* —— Calendar ops strip / chips / detail / quick search —— */
.appt-ops-strip {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 12px;
}

.appt-ops-strip__item {
  background: #fff;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 10px;
  padding: 8px 10px;
  min-height: 56px;
}

.appt-ops-strip__label {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
  margin-bottom: 4px;
}

.appt-ops-strip__value {
  font-size: 18px;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.1;
}

.appt-ops-strip__item--arrived { border-top: 3px solid #16a34a; }
.appt-ops-strip__item--waiting { border-top: 3px solid #2563eb; }
.appt-ops-strip__item--progress { border-top: 3px solid #d97706; }
.appt-ops-strip__item--cancelled { border-top: 3px solid #dc2626; }
.appt-ops-strip__item--revenue { border-top: 3px solid #0f766e; }

.appt-cal-legend--counts {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin: 0 0 14px;
  padding: 8px 0;
}

.appt-cal-legend--counts strong { font-weight: 700; }

.appt-quick-search {
  position: relative;
  min-width: 220px;
}

.appt-quick-search__input {
  font-size: 13px;
  min-width: 220px;
  height: var(--eu-field-h-sm, 32px);
  box-sizing: border-box;
}

.appt-quick-search__results {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 4px);
  z-index: 50;
  max-height: 240px;
}

.appt-cal-card__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  margin-top: 3px;
}

.appt-chip {
  display: inline-block;
  padding: 0 5px;
  border-radius: 4px;
  font-size: 9px;
  font-weight: 700;
  line-height: 16px;
  background: #f1f5f9;
  color: #475569;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.appt-chip--uhid { background: #f8fafc; color: #334155; }
.appt-chip--visit { background: #e0f2fe; color: #0369a1; }
.appt-chip--type { background: #f1f5f9; color: #475569; }
.appt-chip--paid { background: #dcfce7; color: #166534; }
.appt-chip--unpaid { background: #fee2e2; color: #991b1b; }
.appt-chip--billed { background: #fef3c7; color: #92400e; }
.appt-chip--corp { background: #ede9fe; color: #5b21b6; }
.appt-chip--vip { background: #fef3c7; color: #b45309; }
.appt-chip--status { background: #e2e8f0; color: #334155; }
.appt-chip--hold { background: #ffedd5; color: #c2410c; }
.appt-hold-badge { margin-left: 0.35rem; }

.appt-booking-type {
  border: 0;
  padding: 0;
  margin: 0 0 0.75rem;
}
.appt-booking-type__options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  margin-top: 0.35rem;
}
.appt-booking-type__option {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.9rem;
  color: #334155;
  cursor: pointer;
}

.appt-cal-card--month .appt-chip {
  font-size: 8px;
  line-height: 14px;
  padding: 0 4px;
}

.appt-cal-card__hit--full { margin-bottom: 6px; }

.appt-detail__section {
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #f1f5f9;
}

.appt-detail__section h3 {
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}

.appt-detail__name {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 700;
}

.appt-detail__dl {
  margin: 0;
  display: grid;
  gap: 6px;
}

.appt-detail__dl > div {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 8px;
  font-size: 13px;
}

.appt-detail__dl dt { margin: 0; color: #64748b; }
.appt-detail__dl dd { margin: 0; font-weight: 600; }
.appt-detail__muted { margin: 0; font-size: 13px; color: #64748b; }
.appt-detail__alerts { margin: 0; padding-left: 18px; font-size: 13px; color: #b45309; }
.appt-detail__visits { margin: 0; padding-left: 18px; font-size: 13px; }
.appt-detail__actions { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 4px; }

@media (max-width: 1100px) {
  .appt-ops-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .appt-ops-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.appt-detail__toolbar {
  position: sticky;
  top: 0;
  z-index: 2;
  margin: -4px 0 14px;
  padding: 10px 0 12px;
  background: #fff;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.appt-detail__toolbar-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
  margin-bottom: 8px;
}

.appt-detail__actions--toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

/* —— Daily list: actionable KPIs + primary filters + more menu —— */
a.eu-kpi--link {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}

a.eu-kpi--link:hover,
a.eu-kpi--link.is-active {
  box-shadow: 0 0 0 2px #2563eb;
  transform: translateY(-1px);
}

.eu-kpi--danger .eu-kpi__value { color: #b91c1c; }

.appt-primary-filters {
  background: #fff;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 12px;
  padding: 14px 16px;
  margin: 0 0 14px;
}

.appt-primary-filters__search {
  margin-bottom: 12px;
}

.appt-primary-filters__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px 12px;
}

.appt-advanced-filters {
  margin-top: 10px;
}

.appt-advanced-filters > summary {
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: #1d4ed8;
  list-style: none;
}

.appt-advanced-filters > summary::-webkit-details-marker { display: none; }

.appt-advanced-filters__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px 12px;
  margin-top: 10px;
}

.appt-primary-filters__actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

.appt-showing {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 6px 0 0;
  font-size: 13px;
  color: #64748b;
}

.appt-showing__label { font-weight: 600; }

.appt-showing__chip {
  display: inline-flex;
  padding: 2px 8px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #334155;
  font-size: 12px;
  font-weight: 600;
}

.appt-patient-cell__name {
  font-weight: 600;
}

.appt-patient-cell__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  margin-top: 3px;
  font-size: 11px;
  color: #64748b;
}

.appt-patient-cell__meta span:not(:last-child)::after {
  content: "·";
  margin-left: 8px;
  color: #cbd5e1;
}

.appt-more {
  position: relative;
  display: inline-block;
}

.appt-more > summary {
  list-style: none;
  cursor: pointer;
}

.appt-more > summary::-webkit-details-marker { display: none; }

.appt-more__menu {
  position: absolute;
  right: 0;
  top: calc(100% + 4px);
  min-width: 160px;
  padding: 6px;
  background: #fff;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  z-index: 30;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.appt-more__link,
.appt-more__btn {
  display: block;
  width: 100%;
  text-align: left;
  padding: 8px 10px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  font-size: 13px;
  color: #0f172a;
  text-decoration: none;
  cursor: pointer;
}

.appt-more__link:hover,
.appt-more__btn:hover {
  background: #f1f5f9;
}

.appt-more__form { margin: 0; }

@media (max-width: 1100px) {
  .appt-primary-filters__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .appt-primary-filters__grid,
  .appt-advanced-filters__grid {
    grid-template-columns: 1fr;
  }
}

/* Shared compact KPI summary (daily + weekly) */
.eu-kpi-summary,
.appt-ops-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 8px;
  margin: 0 0 8px;
}

.appt-week .appt-cal-legend--counts {
  margin: 0 0 10px;
  align-items: center;
}

.eu-kpi-summary__item,
a.eu-kpi-summary__item {
  display: block;
  background: #fff;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 10px;
  padding: 8px 10px;
  min-height: 52px;
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.12s ease, border-color 0.12s ease;
}

a.eu-kpi-summary__item:hover,
a.eu-kpi-summary__item.is-active {
  border-color: #93c5fd;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

.eu-kpi-summary__label {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
  margin-bottom: 4px;
}

.eu-kpi-summary__value {
  font-size: 18px;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.1;
}

.eu-kpi-summary__item--arrived { border-top: 3px solid #16a34a; }
.eu-kpi-summary__item--waiting,
.eu-kpi-summary__item--info { border-top: 3px solid #2563eb; }
.eu-kpi-summary__item--progress { border-top: 3px solid #d97706; }
.eu-kpi-summary__item--cancelled { border-top: 3px solid #dc2626; }
.eu-kpi-summary__item--revenue { border-top: 3px solid #0f766e; }

/* Daily / appointment Find panel — dense Search Workbench (shared PEUF classes) */
.appt-quick-filter.eu-search-panel {
  margin: 0 0 12px;
}

.appt-quick-filter.eu-search-panel .eu-card__body {
  /* dense panel padding comes from eu-search-panel--dense */
}

.appt-quick-filter .eu-search-dense__actions .eu-btn {
  white-space: nowrap;
}
/* IPD Billing shell placeholders until workbenches ship */
.billing-shell__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
}
.bill-print-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-bottom: 16px;
  padding: 12px 16px;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
}

.bill-print-outstanding {
  background: #fef3c7;
  border: 1px solid #f59e0b;
  color: #92400e;
  padding: 12px 16px;
  border-radius: 10px;
  margin-bottom: 16px;
  font-size: 14px;
}

.bill-print-shell {
  max-width: 900px;
  margin: 0 auto;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  font-size: 13px;
  line-height: 1.4;
  color: #1f2937;
  background: #fff;
}

.bill-print-shell * {
  box-sizing: border-box;
}

@page {
  size: A4;
  margin: 0;
}

@media print {
  .bill-print-shell { margin: 0; padding: 0; max-width: none; }
  .no-print { display: none !important; }
  .page { page-break-after: always; page-break-inside: avoid; }
  .app-shell__sidebar,
  .app-shell__topbar,
  .app-shell__topnav,
  .app-shell__overlay,
  .bill-print-toolbar {
    display: none !important;
  }
  .app-shell__main,
  .app-shell__workspace,
  .app-shell {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: none !important;
  }
}

.page {
  width: 210mm;
  padding: 8mm;
  background: #fff;
  position: relative;
  display: flex;
  flex-direction: column;
}


    /* ─ HEADER ─ */
    .invoice-header {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      margin-bottom: 6px;
      border-bottom: 2px solid #1e3a8a;
      padding-bottom: 4px;
    }

    .hospital-info h1 {
      font-size: 14px;
      font-weight: 700;
      color: #1e3a8a;
      margin: 0;
    }

    .hospital-info .subtitle {
      font-size: 8px;
      color: #6b7280;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      margin: 1px 0;
      font-weight: 600;
    }

    .hospital-details {
      font-size: 8px;
      color: #4b5563;
      line-height: 1.2;
    }

    .hospital-details div {
      margin: 0;
    }

    .bill-badge {
      display: inline-block;
      background: #fef3c7;
      color: #92400e;
      padding: 2px 6px;
      border-radius: 3px;
      font-size: 8px;
      font-weight: 700;
      text-transform: uppercase;
      margin-bottom: 2px;
    }

    .bill-details {
      text-align: right;
      font-size: 9px;
    }

    .bill-details-row {
      display: flex;
      justify-content: space-between;
      margin: 1px 0;
    }

    .bill-details-row .label {
      color: #6b7280;
      font-weight: 500;
      min-width: 80px;
    }

    .bill-details-row .value {
      font-weight: 600;
      color: #1f2937;
    }

    /* ─ PATIENT INFO ─ */
    .patient-info {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4px;
      margin-bottom: 4px;
      padding: 4px;
      background: #f9fafb;
      border-radius: 3px;
      font-size: 8px;
    }

    .patient-info-row {
      display: flex;
      justify-content: space-between;
      gap: 4px;
    }

    .patient-info-row .label {
      color: #6b7280;
      font-weight: 600;
      min-width: 60px;
    }

    .patient-info-row .value {
      color: #1f2937;
      font-weight: 500;
      text-align: right;
    }

    /* ─ ITEMS TABLE ─ */
    .items-table {
      width: 100%;
      margin-bottom: 4px;
      flex: 1;
      border-collapse: collapse;
      font-size: 8px;
    }

    .items-table thead {
      background: #1e3a8a;
      color: #fff;
    }

    .items-table th {
      padding: 3px 4px;
      text-align: left;
      font-size: 7px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      border: none;
    }

    .items-table th:nth-child(2),
    .items-table th:nth-child(3),
    .items-table th:nth-child(4),
    .items-table th:nth-child(5) {
      text-align: right;
    }

    .items-table td {
      padding: 2px 4px;
      border-bottom: 1px solid #e5e7eb;
      font-size: 8px;
    }

    .items-table tr:nth-child(even) {
      background: #f9fafb;
    }

    .items-table td:nth-child(2),
    .items-table td:nth-child(3),
    .items-table td:nth-child(4),
    .items-table td:nth-child(5) {
      text-align: right;
      font-family: 'Courier New', monospace;
    }

    .items-table td:nth-child(5) {
      font-weight: 600;
      color: #1e3a8a;
    }

    /* ─ TOTALS ─ */
    .totals-wrapper {
      display: flex;
      justify-content: space-between;
      margin-top: 12px;
      padding-top: 12px;
      border-top: 2px solid #e5e7eb;
    }

    .totals-box {
      width: 260px;
      margin-left: auto;
    }

    .totals-row {
      display: flex;
      justify-content: space-between;
      padding: 5px 0;
      font-size: 11px;
      border-bottom: 1px solid #e5e7eb;
    }

    .totals-row.total-line {
      background: #eff6ff;
      padding: 8px 6px;
      margin: 4px 0;
      border-radius: 4px;
      font-size: 13px;
      font-weight: 700;
      border: 1px solid #1e3a8a;
      color: #1e3a8a;
    }

    .totals-row .label {
      color: #6b7280;
      font-weight: 500;
    }

    .totals-row .amount {
      color: #1f2937;
      font-weight: 600;
    }

    /* ─ INTERIM WARNING ─ */
    .interim-note {
      background: #fef3c7;
      border: 1px solid #fde68a;
      border-radius: 5px;
      padding: 8px;
      margin: 10px 0;
      font-size: 10px;
      color: #92400e;
      font-weight: 600;
    }

    /* ─ FOOTER ─ */
    .page-footer {
      margin-top: auto;
      padding-top: 12px;
      border-top: 1px solid #e5e7eb;
      font-size: 9px;
      color: #6b7280;
      text-align: center;
      line-height: 1.4;
    }

    .footer-note {
      background: #f3f4f6;
      padding: 8px;
      border-radius: 4px;
      margin-bottom: 6px;
    }

    /* ─ UTILITIES ─ */
    .no-print {
      padding: 14px;
      background: #f0f9ff;
      border-bottom: 1px solid #bae6fd;
      margin-bottom: 12px;
      text-align: center;
    }

    .print-btn {
      background: #1e3a8a;
      color: #fff;
      border: none;
      padding: 10px 20px;
      border-radius: 6px;
      cursor: pointer;
      font-size: 12px;
      font-weight: 600;
    }

    .print-btn:hover {
      background: #1e40af;
    }

@media print {
  .app-shell__sidebar,
  .app-shell__topbar,
  .app-shell__topnav,
  .app-shell__overlay,
  .no-print,
  .bill-print-toolbar {
    display: none !important;
  }
  .app-shell__main,
  .app-shell__workspace,
  .app-shell {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: none !important;
  }
}

.billing-ux {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-lg);
  width: 100%;
}

.billing-ux__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--eu-space-lg);
  flex-wrap: wrap;
}

.billing-ux__header-actions {
  display: flex;
  align-items: center;
  gap: var(--eu-space-sm);
  flex-wrap: wrap;
}

.billing-ux__sticky {
  position: sticky;
  top: 16px;
  z-index: 20;
}

.billing-search {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-md);
}

.billing-search__panel {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.billing-search__panel-body {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-md);
  padding: var(--eu-space-lg);
}

.billing-search__grid,
.billing-search__grid--advanced {
  display: grid;
  gap: var(--eu-space-sm);
}

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

.billing-search__grid--advanced {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.billing-search__field {
  min-width: 0;
}

.billing-search__advanced {
  border-top: 1px solid var(--border);
  padding-top: var(--eu-space-md);
}

.billing-search__advanced summary {
  cursor: pointer;
  list-style: none;
  color: var(--blue);
  font-size: 13px;
  font-weight: 600;
}

.billing-search__advanced summary::-webkit-details-marker {
  display: none;
}

.billing-search__advanced-summary {
  display: inline-flex;
  align-items: center;
  gap: var(--eu-space-sm);
}

.billing-search__advanced-summary::after {
  content: "▾";
  font-size: 12px;
  color: var(--text-3);
}

.billing-search__advanced[open] .billing-search__advanced-summary::after {
  transform: rotate(180deg);
}

.billing-search__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--eu-space-sm);
  flex-wrap: wrap;
}

.billing-search__actions {
  display: inline-flex;
  align-items: center;
  gap: var(--eu-space-sm);
  flex-wrap: wrap;
}

.billing-search__hint {
  font-size: 12px;
  color: var(--text-3);
}

.billing-summary-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--eu-space-sm);
}

.billing-summary-strip__item {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  padding: 14px 16px;
}

.billing-summary-strip__label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-3);
  font-weight: 600;
}

.billing-summary-strip__value {
  margin-top: 6px;
  font-size: 24px;
  line-height: 1.1;
  font-weight: 700;
  color: var(--text);
}

.billing-summary-strip__value--accent {
  color: var(--teal);
}

.billing-summary-strip__value--danger {
  color: var(--red);
}

.billing-results-frame {
  display: block;
  min-width: 0;
  position: relative;
}

.billing-results-frame[busy] {
  min-height: 300px;
}

.billing-results-frame[busy]::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.72);
  z-index: 1;
}

.billing-results-frame[busy]::after {
  content: "Loading charge slips...";
  position: absolute;
  top: 24px;
  right: 24px;
  z-index: 2;
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--text-2);
  font-size: 12px;
  font-weight: 600;
  box-shadow: var(--shadow-sm);
}

.billing-results__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--eu-space-md);
  margin-bottom: var(--eu-space-sm);
  flex-wrap: wrap;
}

.billing-results__title {
  font-size: 20px;
  font-weight: 700;
  color: var(--text);
}

.billing-results__meta {
  margin-top: 4px;
  color: var(--text-3);
  font-size: 12px;
}

.billing-results__table-wrap {
  overflow-x: auto;
  overflow-y: visible;
}

.billing-results__table tbody td:last-child {
  overflow: visible;
  position: relative;
  z-index: 1;
}

.billing-results__table tbody tr:hover td:last-child,
.billing-results__table tbody tr:focus-within td:last-child {
  z-index: 20;
}

.billing-results__table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.billing-results__table thead th {
  padding: 12px 14px;
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--text-3);
  background: var(--surface-2);
}

.billing-results__table tbody td {
  padding: 12px 14px;
  vertical-align: middle;
  font-size: 13px;
  color: var(--text-2);
}

.billing-results__table tbody tr:hover td {
  background: var(--surface-2);
}

.billing-results__row--cancelled td {
  background: color-mix(in srgb, #64748b 8%, var(--surface));
  color: var(--text-3);
  opacity: 0.92;
}

.billing-results__row--cancelled:hover td {
  background: color-mix(in srgb, #64748b 12%, var(--surface));
}

.billing-results__row--cancelled .billing-results__col--primary,
.billing-results__row--cancelled .billing-results__money,
.billing-results__row--cancelled .billing-results__outstanding-value {
  text-decoration: line-through;
  color: var(--text-3);
}

.billing-results__row--cancelled .billing-results__cancelled-tag {
  text-decoration: none;
}

.billing-results__cancelled-tag {
  margin-top: 4px;
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #475569;
  background: #e2e8f0;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  padding: 2px 8px;
}

.billing-results__outstanding-value--cancelled {
  text-decoration: none !important;
  color: #64748b !important;
  font-weight: 600;
}

.badge.slate,
.billing-results__status--cancelled {
  background: #e2e8f0 !important;
  color: #334155 !important;
  border: 1px solid #94a3b8;
  font-weight: 700;
}

.billing-results__col--primary {
  color: var(--text);
  font-weight: 600;
}

.billing-results__col--secondary {
  color: var(--text-3);
  font-size: 12px;
}

.billing-results__money {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.billing-results__outstanding {
  text-align: right;
}

.billing-results__outstanding-value {
  color: var(--red);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.billing-results__outstanding-detail {
  margin-top: 3px;
  font-size: 11px;
  color: var(--text-3);
}

.billing-results__action-row {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: nowrap;
  white-space: nowrap;
  position: relative;
  z-index: 1;
}

.billing-results__action-row .eu-action-menu {
  position: relative;
  z-index: 2;
}

.billing-results__action-row .eu-action-menu__panel {
  min-width: 168px;
  top: auto;
  bottom: calc(100% + 4px);
  z-index: 80;
}

/* Hover bridge so the menu stays open long enough to click */
.billing-results__action-row .eu-action-menu__panel::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 10px;
}

.billing-results__action-row .eu-action-menu__item {
  width: 100%;
  text-align: left;
}

.billing-results__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-2);
  text-decoration: none;
  transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.billing-results__icon:hover {
  background: var(--surface-2);
  border-color: var(--border-strong);
  color: var(--text);
}

.billing-results__icon--accent {
  color: var(--teal);
}

.billing-results__icon--danger {
  color: var(--red);
}

.billing-results__icon--danger:hover {
  background: color-mix(in srgb, var(--red) 12%, var(--surface));
  border-color: color-mix(in srgb, var(--red) 35%, var(--border));
  color: var(--red);
}

.billing-results__pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--eu-space-sm);
  padding: 12px 16px;
  border-top: 1px solid var(--border);
  flex-wrap: wrap;
}

.billing-results__page-info {
  color: var(--text-3);
  font-size: 12px;
}

.billing-empty {
  border: 1px dashed var(--border-strong);
  border-radius: var(--radius-lg);
  background: var(--surface);
  text-align: center;
  padding: 40px 24px;
}

.billing-empty__icon {
  font-size: 28px;
  color: var(--text-3);
}

.billing-empty__title {
  margin-top: 12px;
  font-size: 18px;
  font-weight: 700;
  color: var(--text);
}

.billing-empty__text {
  margin-top: 6px;
  font-size: 13px;
  color: var(--text-3);
  max-width: 540px;
  margin-left: auto;
  margin-right: auto;
}

.billing-empty__skeletons {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.billing-empty__skeleton {
  height: 42px;
}

.page.billing-detail {
  max-width: none;
  padding: 12px 16px 16px;
}

.billing-detail {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}

.billing-detail__toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.billing-detail__identity {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
}

.billing-detail__identity-text {
  min-width: 0;
}

.billing-detail__nav {
  display: inline-flex;
  align-items: center;
  gap: var(--eu-space-sm);
  flex-wrap: wrap;
}

.billing-detail__title {
  margin: 0;
  font-size: 20px;
  line-height: 1.2;
  font-weight: 700;
  color: var(--text);
}

.billing-detail__meta {
  display: flex;
  gap: var(--eu-space-md);
  align-items: center;
  flex-wrap: wrap;
  margin-top: var(--eu-space-sm);
  color: var(--text-3);
  font-size: 13px;
}

.billing-detail__action-groups {
  display: flex;
  align-items: flex-start;
  gap: var(--eu-space-md);
  flex-wrap: wrap;
  justify-content: flex-end;
}

.billing-detail__group {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-xs);
}

.billing-detail__group-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-3);
  font-weight: 600;
}

.billing-detail__group-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--eu-space-sm);
  flex-wrap: wrap;
}

.billing-detail__context,
.billing-detail__hero,
.billing-detail__timeline,
.billing-detail__summary-grid,
.billing-detail__patient-grid,
.billing-detail__meta-grid {
  display: grid;
  gap: var(--eu-space-sm);
}

.billing-detail__context {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 8px 20px;
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface-2);
}

.billing-detail__context > .pt-avatar {
  align-self: center;
}

.billing-detail__due {
  margin-left: auto;
  text-align: right;
  align-self: flex-start;
}

.billing-detail__due-value {
  font-size: 22px;
  font-weight: 800;
  line-height: 1.1;
  color: var(--red);
  font-variant-numeric: tabular-nums;
}

.billing-detail__due-value--clear {
  color: var(--green);
}

.billing-detail__due-value--info {
  color: var(--blue);
}

.billing-detail__hero {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.billing-detail__hero-card {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  padding: 18px;
}

.billing-detail__hero-card--due {
  border-color: var(--red);
}

.billing-detail__hero-card--corporate {
  border-color: var(--blue);
}

.billing-detail__eyebrow {
  font-size: 11px;
  color: var(--text-3);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
}

.billing-detail__hero-value {
  margin-top: 8px;
  font-size: 32px;
  line-height: 1.05;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.billing-detail__hero-value--danger {
  color: var(--red);
}

.billing-detail__hero-value--info {
  color: var(--blue);
}

.billing-detail__hero-note {
  margin-top: 6px;
  color: var(--text-3);
  font-size: 12px;
}

.billing-detail__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.72fr);
  grid-template-areas:
    "items collect"
    "summary progress";
  gap: 12px;
  align-items: start;
}

.billing-detail__main,
.billing-detail__sidebar {
  display: contents;
}

.billing-detail__items { grid-area: items; }
.billing-detail__summary { grid-area: summary; }
.billing-detail__collect { grid-area: collect; }
.billing-detail__progress-card { grid-area: progress; }

.billing-detail__layout:not(:has(.billing-detail__collect)) {
  grid-template-areas:
    "items progress"
    "summary progress";
}

.billing-detail__layout > :not(.billing-detail__items):not(.billing-detail__summary):not(.billing-detail__collect):not(.billing-detail__progress-card) {
  grid-column: 1 / -1;
}

.billing-detail__items .data th:nth-child(3),
.billing-detail__items .data td:nth-child(3) {
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.billing-detail__items .data th:nth-child(n + 4),
.billing-detail__items .data td:nth-child(n + 4) {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.billing-detail__items .data td div,
.billing-detail__summary [style*="Courier"] {
  font-family: inherit;
  font-variant-numeric: tabular-nums;
}

.billing-collect__tally {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}

.billing-collect__tally-item {
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.billing-collect__tally-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-3);
}

.billing-collect__tally-value {
  margin-top: 2px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--text);
}

.billing-collect__line {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 12px;
  align-items: end;
}

.billing-detail__collect .form-group {
  margin-bottom: 0;
}

.billing-collect__line-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 6px;
}

.billing-collect__footer {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  flex-wrap: wrap;
}

.billing-detail__collect .card-header {
  align-items: flex-start;
}

.billing-detail__collect .card-header,
.billing-detail__items .card-header,
.billing-detail__summary .card-header,
.billing-detail__progress-card .card-header {
  padding: 10px 12px;
}

.billing-detail__collect .card-body,
.billing-detail__summary .card-body {
  padding: 12px;
}

.billing-detail__timeline {
  padding: 10px 12px;
}

.billing-detail__timeline-step {
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: 12px;
  align-items: start;
}

.billing-detail__timeline-step + .billing-detail__timeline-step {
  margin-top: 12px;
}

.billing-detail__timeline-marker {
  position: relative;
  width: 12px;
  height: 12px;
  border-radius: 999px;
  border: 2px solid var(--border-strong);
  background: var(--surface);
  margin-top: 2px;
}

.billing-detail__timeline-step:not(:last-child) .billing-detail__timeline-marker::after {
  content: "";
  position: absolute;
  top: 14px;
  left: 3px;
  width: 2px;
  height: 28px;
  background: var(--border);
}

.billing-detail__timeline-step.is-complete .billing-detail__timeline-marker {
  border-color: var(--green);
  background: var(--green);
}

.billing-detail__timeline-step.is-current .billing-detail__timeline-marker {
  border-color: var(--amber);
  background: var(--amber-soft);
}

.billing-detail__timeline-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
}

.billing-detail__timeline-copy {
  margin-top: 2px;
  font-size: 12px;
  color: var(--text-3);
}

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

.billing-detail__summary-item {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-2);
  padding: 12px 14px;
}

.billing-detail__summary-item--highlight {
  background: var(--surface);
}

.billing-detail__summary-value {
  margin-top: 4px;
  font-size: 20px;
  font-weight: 700;
  color: var(--text);
  font-variant-numeric: tabular-nums;
}

.billing-detail__summary-value--accent {
  color: var(--teal);
}

.billing-detail__summary-value--success {
  color: var(--green);
}

.billing-detail__summary-value--danger {
  color: var(--red);
}

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

.billing-detail__field {
  min-width: 0;
}

.billing-detail__field-value {
  margin-top: 3px;
  color: var(--text);
  font-size: 14px;
  font-weight: 600;
}

.billing-detail__field-value--mono {
  font-family: "Courier New", monospace;
}

.billing-detail__field-value--subtle {
  color: var(--text-2);
  font-weight: 500;
}

.billing-detail__progress {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}

.billing-detail__progress-bar {
  margin-top: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--border);
  overflow: hidden;
}

.billing-detail__progress-fill {
  height: 100%;
  border-radius: 999px;
  background: var(--amber);
}

.billing-detail__progress-fill.is-complete {
  background: var(--green);
}

.billing-detail__link {
  color: var(--teal);
  text-decoration: none;
  font-weight: 600;
}

.billing-detail__link:hover {
  text-decoration: underline;
}

.billing-payment {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-lg);
  width: 100%;
}

.billing-payment__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--eu-space-lg);
  flex-wrap: wrap;
}

.billing-payment__header-actions {
  display: flex;
  align-items: center;
  gap: var(--eu-space-sm);
  flex-wrap: wrap;
}

.billing-payment__hero {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(280px, 0.9fr);
  gap: var(--eu-space-sm);
}

.billing-payment__hero-card {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  padding: 18px;
  min-width: 0;
}

.billing-payment__hero-card--due {
  border-color: var(--red);
  background: var(--red-soft);
}

.billing-payment__hero-title {
  margin-top: 6px;
  font-size: 22px;
  line-height: 1.15;
  font-weight: 700;
  color: var(--text);
}

.billing-payment__hero-meta {
  margin-top: 4px;
  font-size: 13px;
  color: var(--text-3);
}

.billing-payment__hero-metrics {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

.billing-payment__hero-metrics div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--eu-space-sm);
  font-size: 13px;
  color: var(--text-3);
}

.billing-payment__hero-metrics strong {
  color: var(--text);
  font-size: 15px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.billing-payment__outstanding {
  margin-top: 8px;
  font-size: 34px;
  line-height: 1.05;
  font-weight: 800;
  color: var(--red);
  font-variant-numeric: tabular-nums;
}

.billing-payment__workspace {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(320px, 0.8fr);
  gap: var(--eu-space-lg);
  align-items: start;
}

.billing-payment__main {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-md);
  min-width: 0;
}

.billing-payment__sidebar {
  position: sticky;
  top: 16px;
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-sm);
}

.billing-payment__table-wrap {
  overflow-x: auto;
}

.billing-payment__table thead th {
  font-size: 11px;
  color: var(--text-3);
  letter-spacing: 0.08em;
}

.billing-payment__table tbody td {
  padding-top: 12px;
  padding-bottom: 12px;
}

.billing-payment__service {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
}

.billing-payment__service-meta {
  margin-top: 3px;
  font-size: 11px;
  color: var(--text-3);
}

.billing-payment__num {
  text-align: right;
  font-size: 13px;
  color: var(--text-2);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.billing-payment__num--strong {
  color: var(--text);
  font-weight: 700;
}

.billing-payment__num--soft {
  color: var(--green);
  font-weight: 600;
}

.billing-payment__num--danger {
  color: var(--red);
  font-weight: 700;
}

.billing-payment__form-card {
  padding: 18px;
}

.billing-payment__form {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-md);
}

.billing-payment__summary-box {
  border: 1px solid var(--red);
  border-radius: var(--radius-lg);
  background: var(--red-soft);
  padding: 16px 18px;
}

.billing-payment__summary-value {
  margin-top: 8px;
  font-size: 30px;
  line-height: 1.05;
  font-weight: 800;
  color: var(--red);
  font-variant-numeric: tabular-nums;
}

.billing-payment__summary-note {
  margin-top: 6px;
  font-size: 12px;
  color: var(--text-3);
}

.billing-payment__field,
.billing-payment__field-grid {
  min-width: 0;
}

.billing-payment__field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--eu-space-sm);
}

.billing-payment__readonly {
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: 0 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-2);
  color: var(--text-2);
  font-size: 14px;
  font-weight: 600;
}

.billing-payment__readonly--strong {
  color: var(--teal);
  font-variant-numeric: tabular-nums;
}

.billing-payment__modes {
  display: grid;
  gap: 8px;
}

.billing-payment__mode-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 120px;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.billing-payment__mode-check {
  display: flex;
  align-items: center;
  justify-content: center;
}

.billing-payment__mode-check input {
  width: 18px;
  height: 18px;
  accent-color: var(--teal);
}

.billing-payment__mode-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
}

.billing-payment__mode-amount {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.billing-payment__balance-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--eu-space-sm);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-2);
  padding: 12px 14px;
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
}

.billing-payment__balance-strip strong {
  color: var(--red);
  font-size: 16px;
  font-variant-numeric: tabular-nums;
}

.billing-payment__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--eu-space-sm);
  flex-wrap: wrap;
}

.billing-payment__actions .btn[disabled] {
  opacity: 0.45;
  cursor: not-allowed;
}

.billing-payment__panel {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  overflow: hidden;
}

.billing-payment__panel-summary {
  cursor: pointer;
  list-style: none;
  padding: 14px 16px;
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  border-bottom: 1px solid transparent;
}

.billing-payment__panel[open] .billing-payment__panel-summary {
  border-bottom-color: var(--border);
}

.billing-payment__panel-summary::-webkit-details-marker {
  display: none;
}

.billing-payment__panel-body {
  padding: 14px 16px;
}

.billing-payment__info-grid {
  display: grid;
  gap: 12px;
}

.billing-payment__info-grid div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.billing-payment__info-grid span {
  color: var(--text-3);
  font-size: 12px;
}

.billing-payment__info-grid strong {
  color: var(--text);
  font-size: 13px;
  font-weight: 700;
  text-align: right;
}

.billing-payment__history {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.billing-payment__history-item {
  display: grid;
  gap: 3px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-2);
}

.billing-payment__history-item strong {
  color: var(--text);
  font-size: 14px;
  font-weight: 700;
}

.billing-payment__history-item span {
  color: var(--text-3);
  font-size: 12px;
}

.billing-payment__empty-copy {
  color: var(--text-3);
  font-size: 12px;
}

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

  .billing-search__grid--advanced,
  .billing-summary-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

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

@media (max-width: 900px) {
  .billing-detail__layout {
    display: flex;
    flex-direction: column;
  }

  .billing-detail__main,
  .billing-detail__sidebar {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .billing-detail__action-groups {
    justify-content: flex-start;
  }

  .billing-payment__workspace {
    grid-template-columns: 1fr;
  }

  .billing-payment__sidebar {
    position: static;
  }
}

@media (max-width: 768px) {
  .billing-search__grid,
  .billing-search__grid--advanced,
  .billing-summary-strip,
  .billing-detail__hero,
  .billing-detail__summary-grid,
  .billing-detail__patient-grid,
  .billing-detail__meta-grid,
  .billing-payment__hero,
  .billing-payment__field-grid {
    grid-template-columns: 1fr;
  }

  .billing-search__footer,
  .billing-results__header,
  .billing-results__pagination,
  .billing-detail__toolbar,
  .billing-payment__header,
  .billing-payment__actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .billing-results__table thead th,
  .billing-results__table tbody td {
    padding: 10px 12px;
  }

  .billing-detail__title {
    font-size: 22px;
  }

  .billing-detail__hero-value {
    font-size: 26px;
  }

  .billing-payment__outstanding,
  .billing-payment__summary-value {
    font-size: 26px;
  }

  .billing-payment__mode-row {
    grid-template-columns: 24px minmax(0, 1fr);
  }

  .billing-payment__mode-amount {
    grid-column: 1 / -1;
  }
}
.blood-labels-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

/* Yes/No questionnaire: horizontal radios (density) */
.blood-questionnaire__radios.eu-radio-row--inline {
  flex-direction: row;
  flex-wrap: wrap;
  gap: var(--eu-space-md, 12px) var(--eu-space-lg, 16px);
  margin-top: var(--eu-space-xs, 4px);
}

.blood-questionnaire__radios .eu-radio {
  min-width: 4.5rem;
}

.blood-collect__fit {
  margin: var(--eu-space-sm, 8px) 0 0;
}

.blood-collect__volume {
  display: flex;
  align-items: center;
  gap: var(--eu-space-sm, 8px);
}

.blood-collect__volume .eu-input {
  flex: 1 1 auto;
  min-width: 0;
}

.blood-collect__checks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--eu-space-sm, 8px);
}

.blood-collect__check {
  display: inline-flex;
  align-items: center;
  gap: var(--eu-space-sm, 8px);
  font-size: 14px;
}

.blood-collect__actions {
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--eu-space-sm, 8px);
}

.blood-collect-form .eu-card {
  margin-bottom: var(--eu-space-md, 16px);
}

.blood-tests-form .eu-card {
  margin-bottom: var(--eu-space-md, 16px);
}

.blood-tests__table {
  width: 100%;
  font-size: 13px;
}

.blood-tests__table th,
.blood-tests__table td {
  padding: 6px 8px;
  vertical-align: top;
}

.blood-tests__table .eu-input {
  min-width: 7rem;
  width: 100%;
}

.blood-tests__name {
  display: block;
  font-weight: 600;
}

.blood-tests__details summary {
  cursor: pointer;
  color: var(--eu-accent, #0f766e);
  font-size: 12px;
}

.blood-tests__summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--eu-space-sm, 8px);
  margin-bottom: var(--eu-space-sm, 8px);
}

.blood-tests__summary-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.blood-tests__unit-status {
  margin-top: var(--eu-space-sm, 8px);
}

.blood-tests__audit {
  margin: var(--eu-space-md, 16px) 0;
  padding: var(--eu-space-sm, 8px) var(--eu-space-md, 16px);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface, #fff);
}

.blood-tests__audit summary {
  cursor: pointer;
  font-weight: 600;
}

.blood-tests__audit-list {
  margin: var(--eu-space-sm, 8px) 0 0;
  padding-left: 1.1rem;
  font-size: 13px;
}

.blood-tests__actions {
  justify-content: flex-end;
  gap: var(--eu-space-sm, 8px);
}

.blood-segregate-form .eu-card {
  margin-bottom: var(--eu-space-md, 16px);
}

.blood-segregate__table {
  width: 100%;
  font-size: 13px;
}

.blood-segregate__table th,
.blood-segregate__table td {
  padding: 6px 8px;
  vertical-align: middle;
}

.blood-segregate__volume {
  display: flex;
  align-items: center;
  gap: 6px;
}

.blood-segregate__volume .eu-input {
  max-width: 6rem;
}

.blood-segregate__actions {
  justify-content: flex-end;
  gap: var(--eu-space-sm, 8px);
}

.blood-request-desk .eu-card {
  margin-bottom: var(--eu-space-md, 16px);
}

.blood-request-desk__steps {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 var(--eu-space-md, 16px);
}

.blood-request-desk__step {
  font-size: 12px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: var(--eu-radius-md, 8px);
  border: 1px solid var(--eu-border, #e2e8f0);
  background: var(--eu-surface, #fff);
  color: var(--eu-muted, #64748b);
}

.blood-request-desk__step--done {
  color: var(--eu-success, #166534);
  border-color: color-mix(in srgb, var(--eu-success, #166534) 35%, white);
  background: color-mix(in srgb, var(--eu-success, #166534) 10%, white);
}

.blood-request-desk__step--current {
  color: var(--eu-accent, #0f766e);
  border-color: color-mix(in srgb, var(--eu-accent, #0f766e) 40%, white);
  background: color-mix(in srgb, var(--eu-accent, #0f766e) 12%, white);
}

.blood-request-desk__pulse {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: var(--eu-space-md, 16px);
}

@media (max-width: 1100px) {
  .blood-request-desk__pulse {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.blood-request-desk__pulse-card {
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius-md, 8px);
  padding: 10px 12px;
  background: var(--eu-surface, #fff);
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.blood-request-desk__pulse-card strong {
  font-size: 15px;
}

.blood-request-desk__pulse-card--danger {
  border-color: color-mix(in srgb, var(--eu-danger, #b91c1c) 35%, white);
}

.blood-request-desk__pulse-card--warning {
  border-color: color-mix(in srgb, var(--eu-warning, #b45309) 35%, white);
}

.blood-request-desk__pulse-card--success {
  border-color: color-mix(in srgb, var(--eu-success, #166534) 35%, white);
}

.blood-request-desk__pulse-card--info {
  border-color: color-mix(in srgb, var(--eu-info, #1d4ed8) 35%, white);
}

.blood-request-desk__links {
  margin-bottom: var(--eu-space-md, 16px);
  flex-wrap: wrap;
}

.blood-request-desk__issue-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: var(--eu-space-md, 16px);
}

.blood-request-desk__xm-ro {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
}

.blood-request-desk__actions {
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  position: sticky;
  bottom: 0;
  padding: 10px 0;
  background: color-mix(in srgb, var(--eu-bg, #f8fafc) 92%, white);
  border-top: 1px solid var(--eu-border, #e2e8f0);
  z-index: 2;
}

.blood-request-desk__fallback {
  margin-top: var(--eu-space-md, 16px);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius-md, 8px);
  padding: 10px 12px;
  background: var(--eu-surface, #fff);
}

.blood-request-desk__fallback summary {
  cursor: pointer;
  font-weight: 600;
  list-style: none;
}

.blood-request-desk__fallback[open] summary {
  margin-bottom: 10px;
}

@media (max-width: 1100px) {
  .blood-request-desk__issue-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.blood-request-desk__check {
  display: inline-flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 14px;
}

.blood-request-desk__units {
  width: 100%;
  font-size: 13px;
}

.blood-request-desk__units th,
.blood-request-desk__units td {
  padding: 6px 8px;
}

.blood-request-desk__reaction-list {
  margin: 0 0 8px;
  padding-left: 1.1rem;
  font-size: 13px;
}

.blood-request-desk__reaction-form {
  margin-top: 8px;
}

.blood-request-desk__reaction-form .eu-field {
  margin-bottom: 8px;
}

.blood-xm-desk__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--eu-space-sm, 12px);
  margin-bottom: var(--eu-space-sm, 12px);
}

.blood-xm-desk__title-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.blood-xm-desk__photo {
  flex-shrink: 0;
}

.blood-xm-desk__steps {
  margin-bottom: var(--eu-space-sm, 12px);
}

.blood-xm-desk__summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: var(--eu-space-md, 16px);
}

.blood-xm-desk__summary-item {
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius-md, 8px);
  padding: 8px 12px;
  background: var(--eu-surface, #fff);
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.blood-xm-desk__tri {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: var(--eu-space-md, 16px);
}

.blood-xm-desk__mid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: var(--eu-space-md, 16px);
}

.blood-xm-desk__tri .eu-card,
.blood-xm-desk__mid .eu-card {
  margin-bottom: 0;
}

.blood-xm-desk__dl {
  display: grid;
  gap: 6px;
  margin: 0;
}

.blood-xm-desk__dl > div {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 8px;
  font-size: 13px;
}

.blood-xm-desk__dl dt {
  margin: 0;
  color: var(--eu-muted, #64748b);
  font-weight: 500;
}

.blood-xm-desk__dl dd {
  margin: 0;
  font-weight: 600;
}

.blood-xm-desk__dl--tight {
  margin-top: 8px;
}

.blood-xm-desk__dl--inline {
  grid-template-columns: 1fr;
}

.blood-xm-desk__dl--inline > div {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.blood-xm-desk__reqs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
  font-size: 13px;
}

.blood-xm-desk__reqs li {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 4px 0;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.blood-xm-desk__reqs li:last-child {
  border-bottom: 0;
}

.blood-xm-desk__immuno {
  font-size: 13px;
}

.blood-xm-desk__immuno .eu-input {
  min-width: 7rem;
}

.blood-xm-desk__immuno-actions {
  margin: 0 0 var(--eu-space-md, 16px);
}

.blood-xm-desk__units .eu-input--sm {
  min-width: 6.5rem;
  font-size: 12px;
  padding: 4px 6px;
}

.blood-xm-desk__interpretation {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px 12px;
  border-radius: var(--eu-radius-md, 8px);
  border: 1px solid var(--eu-border, #e2e8f0);
}

.blood-xm-desk__interpretation--compatible {
  border-color: color-mix(in srgb, var(--eu-success, #166534) 40%, white);
  background: color-mix(in srgb, var(--eu-success, #166534) 8%, white);
}

.blood-xm-desk__interpretation--pending {
  border-color: color-mix(in srgb, var(--eu-warning, #b45309) 40%, white);
  background: color-mix(in srgb, var(--eu-warning, #b45309) 8%, white);
}

.blood-xm-desk__interpretation--incompatible {
  border-color: color-mix(in srgb, var(--eu-danger, #b91c1c) 40%, white);
  background: color-mix(in srgb, var(--eu-danger, #b91c1c) 8%, white);
}

.blood-xm-desk__units-wrap {
  overflow-x: auto;
}

.blood-xm-desk__units {
  min-width: 1100px;
}

.blood-xm-desk__method {
  max-width: 260px;
  margin-bottom: var(--eu-space-sm, 12px);
}

.blood-xm-desk__links {
  margin-bottom: var(--eu-space-md, 16px);
}

.blood-xm-desk__audit {
  margin: 0 0 var(--eu-space-md, 16px);
}

.blood-xm-desk__audit summary {
  cursor: pointer;
  list-style: none;
  display: inline-flex;
}

.blood-xm-desk__audit[open] {
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius-md, 8px);
  padding: 12px;
  background: var(--eu-surface, #fff);
}

.blood-xm-desk__actions {
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  position: sticky;
  bottom: 0;
  padding: 10px 0;
  background: color-mix(in srgb, var(--eu-bg, #f8fafc) 92%, white);
  border-top: 1px solid var(--eu-border, #e2e8f0);
  z-index: 2;
}

.blood-xm-desk__cancel {
  margin-top: var(--eu-space-sm, 8px);
  padding-top: var(--eu-space-sm, 8px);
  border-top: 1px solid var(--eu-border, #e2e8f0);
}

.blood-xm-desk__cancel summary {
  cursor: pointer;
  list-style: none;
  display: inline-flex;
}

.blood-xm-desk__cancel-form {
  display: grid;
  gap: 8px;
  max-width: 420px;
  margin-top: 8px;
}

.eu-muted {
  color: var(--eu-muted, #64748b);
}

@media (max-width: 1100px) {
  .blood-xm-desk__summary,
  .blood-xm-desk__tri,
  .blood-xm-desk__mid {
    grid-template-columns: 1fr;
  }
}


.blood-daily-summary__filters {
  align-items: end;
  margin-bottom: 12px;
}

.blood-daily-summary__filters .eu-field--actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.blood-daily-summary__counts {
  width: 100%;
  font-size: 13px;
}

.blood-daily-summary__counts th {
  text-align: left;
  font-weight: 500;
  width: 70%;
}

.blood-daily-summary__detail {
  width: 100%;
  font-size: 13px;
}

.blood-daily-summary__reaction-count {
  margin: 0;
  font-size: 14px;
}

.blood-daily-summary__footer {
  margin-top: 12px;
}

.blood-print__group {
  font-size: 1.25rem;
  margin: 8px 0;
}

.blood-qc-desk__record {
  margin-bottom: 12px;
}

.blood-qc-desk__form {
  margin-top: 8px;
}

.blood-qc-desk__form .eu-field {
  margin-bottom: 8px;
}

.blood-qc-desk__equipment {
  width: 100%;
  font-size: 13px;
}

@media print {
  .blood-labels__no-print,
  .blood-daily-summary__no-print,
  .blood-labels-toolbar,
  .app-shell__sidebar,
  .app-shell__topbar,
  .app-shell__overlay,
  .app-topnav,
  .eu-flash,
  .eu-workflow-page__header .eu-btn,
  nav,
  aside {
    display: none !important;
  }

  .blood-daily-summary__sheet {
    display: block;
  }

  .blood-daily-summary__counts th,
  .blood-daily-summary__counts td {
    padding: 4px 8px;
    font-size: 12px;
  }

  .app-shell {
    display: block !important;
  }

  .app-shell__workspace,
  .app-shell__main {
    padding: 0 !important;
    margin: 0 !important;
  }

  .eu-card {
    break-inside: avoid;
    box-shadow: none !important;
    border: 1px solid var(--eu-border, #ccc) !important;
  }
}
/* Cashier Center / session workbench */
.ipb-cashier__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.75rem 0 1rem;
}

.ipb-cashier__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.ipb-cashier__open-form,
.ipb-cashier__filters {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.ipb-cashier-print {
  font-family: var(--eu-font-sans, system-ui, sans-serif);
  padding: 1.5rem;
  color: var(--chk-text, #0f172a);
}

.ipb-cashier-print h1 {
  font-size: 1.25rem;
  margin-bottom: 0.75rem;
}
/* CDA generate workbench — PEUF tokens only */

.cda-generate__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px 16px;
  margin: 0 0 16px;
}

.cda-generate__type {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-width: 220px;
}

.cda-generate__type .eu-label {
  margin: 0;
}

.cda-generate__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.cda-generate__action-form {
  display: inline;
  margin: 0;
}

.cda-generate__readiness {
  margin-bottom: 16px;
}

.cda-generate__readiness-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.cda-generate__narrative {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 16px;
}

.cda-row--missing {
  background: var(--eu-danger-bg, #fef2f2);
}

.cda-generate__saved {
  margin-bottom: 16px;
}

.cda-generate__saved-meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px 16px;
  margin: 0 0 12px;
}

.cda-generate__saved-meta dt {
  font-size: 0.75rem;
  color: var(--eu-text-muted, #6b7280);
}

.cda-generate__saved-meta dd {
  margin: 2px 0 0;
  font-size: 0.8125rem;
}

.cda-print__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
}

.cda-print-sheet {
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 8px;
  padding: 16px;
}

.cda-print-sheet__title {
  margin: 0 0 12px;
  font-size: 1.125rem;
  color: var(--eu-text, #111827);
  border-bottom: 2px solid var(--eu-accent, #0f766e);
  padding-bottom: 6px;
}

.cda-print-sheet__meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 16px;
  margin: 0 0 16px;
  font-size: 0.8125rem;
}

.cda-print-sheet__meta dt {
  color: var(--eu-text-muted, #6b7280);
  font-weight: 600;
}

.cda-print-sheet__meta dd {
  margin: 2px 0 0;
}

.cda-print-sheet__section h2 {
  margin: 16px 0 8px;
  font-size: 0.95rem;
  border-bottom: 1px solid var(--eu-border, #e5e7eb);
  padding-bottom: 4px;
}

.cda-print-sheet__narrative table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
}

.cda-print-sheet__narrative th,
.cda-print-sheet__narrative td {
  border: 1px solid var(--eu-border, #e5e7eb);
  padding: 4px 8px;
  text-align: left;
}

@media (max-width: 900px) {
  .cda-generate__saved-meta,
  .cda-print-sheet__meta {
    grid-template-columns: 1fr 1fr;
  }
}

@media print {
  body:has(#cda-print-sheet) .app-sidebar,
  body:has(#cda-print-sheet) .app-topbar,
  body:has(#cda-print-sheet) .eu-page-header,
  body:has(#cda-print-sheet) .cda-print__actions,
  body:has(#cda-print-sheet) .flash,
  body:has(#cda-print-sheet) .eu-flash {
    display: none !important;
  }

  body:has(#cda-print-sheet) #cda-print-sheet {
    border: 0;
    padding: 0;
  }
}
/* Referral engine workbench — PEUF tokens only */

.cl-ref-packet p {
  margin: 0 0 6px;
  font-size: 0.8125rem;
}

.cl-ref-more {
  margin-top: 12px;
}

.cl-ref-more summary {
  cursor: pointer;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--eu-text);
  margin-bottom: 8px;
}

.cl-ref-row--breached td {
  background: var(--eu-danger-bg, #fef2f2);
}

.cl-ref-row--approaching td {
  background: var(--eu-warning-bg, #fffbeb);
}

.cl-ref-row--on-track td {
  background: var(--eu-success-bg, #f0fdf4);
}

.cl-ref-consult .eu-field,
.cl-ref-date {
  gap: 4px;
  margin: 0 0 10px;
}

.cl-ref-check {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  font-size: 0.8125rem;
}
/* Patient Clinical Workspace shell (E1) — shared Doctor / Nursing / specialty packs.
   Tokens only — no screen-specific colour hardcodes beyond CSS variable fallbacks. */

.clw-workspace.eu-page {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: 100%;
  min-width: 0;
}

.clw-workspace.clinical-workbench {
  width: 100%;
}

.clw-referral-order {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 12px;
  padding: 8px 12px;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 8px;
}

.clw-referral-order__title {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--eu-text, #111827);
}

.clw-referral-order__help {
  margin: 2px 0 0;
  font-size: 0.75rem;
  color: var(--eu-text-muted, #6b7280);
}

/* —— Page / encounter header —— */
.clw-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  min-height: 0;
  padding: 0;
}

.clw-page-header__eyebrow {
  margin: 0;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-page-header__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
}

.clw-page-header__patient {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--eu-text-primary, #111827);
}

.clw-page-header__encounter {
  font-size: 0.8125rem;
  color: var(--eu-text-secondary, #6b7280);
  font-variant-numeric: tabular-nums;
}

.clw-page-header__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  flex-shrink: 0;
}

/* —— Chips —— */
.clw-chip {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.35;
  border: 1px solid transparent;
  white-space: nowrap;
}

.clw-chip--muted,
.clw-chip--neutral {
  background: var(--eu-surface-muted, #f3f4f6);
  color: var(--eu-text-secondary, #6b7280);
}

.clw-chip--success {
  background: var(--eu-success-bg, #ecfdf5);
  color: var(--eu-success-text, #065f46);
}

.clw-chip--info {
  background: var(--eu-info-bg, #eff6ff);
  color: var(--eu-info-text, #1e40af);
}

.clw-chip--warning {
  background: var(--eu-warning-bg, #fef3c7);
  color: var(--eu-warning-text, #92400e);
}

.clw-chip--danger {
  background: var(--eu-danger-bg, #fef2f2);
  color: var(--eu-danger-text, #991b1b);
}

/* —— Patient banner —— */
.clw-banner {
  display: grid;
  grid-template-columns: minmax(200px, 280px) minmax(0, 1fr) auto;
  grid-template-areas:
    "identity grid rail"
    "safety safety safety";
  gap: 8px 16px;
  align-items: start;
  padding: 10px 14px;
  background: var(--eu-surface-raised, #fff);
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
}

.clw-banner--compact {
  grid-template-areas: "identity grid rail";
  padding: 8px 12px;
  align-items: center;
}

.clw-banner__identity { grid-area: identity; }
.clw-banner__grid { grid-area: grid; }
.clw-banner__rail { grid-area: rail; }
.clw-banner__safety { grid-area: safety; }

.clw-banner__identity {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.clw-banner__avatar {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--chk-accent, #0f766e);
  background: var(--eu-accent-subtle, #ecfdf5);
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.clw-banner__avatar--photo .pt-avatar {
  width: 2.5rem;
  height: 2.5rem;
}

.clw-banner__identity-copy {
  min-width: 0;
}

.clw-banner__name {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--eu-text-primary, #111827);
  letter-spacing: -0.01em;
}

.clw-banner__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin-top: 2px;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-banner__dot {
  opacity: 0.5;
}

.clw-banner__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 6px 12px;
  align-content: start;
}

.clw-banner__cell {
  min-width: 0;
}

.clw-banner__label {
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--eu-text-muted, #9ca3af);
  line-height: 1.2;
}

.clw-banner__value {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--eu-text-primary, #111827);
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.clw-banner__rail {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  min-width: 0;
}

.clw-banner__badges,
.clw-banner__state {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 4px;
}

.clw-banner__badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.4;
}

.clw-banner__badge--success {
  background: var(--eu-success-bg, #ecfdf5);
  color: var(--eu-success-text, #065f46);
}

.clw-banner__badge--warning {
  background: var(--eu-warning-bg, #fef3c7);
  color: var(--eu-warning-text, #92400e);
}

.clw-banner__badge--danger {
  background: var(--eu-danger-bg, #fef2f2);
  color: var(--eu-danger-text, #991b1b);
}

.clw-banner__badge--info {
  background: var(--eu-info-bg, #eff6ff);
  color: var(--eu-info-text, #1e40af);
}

.clw-banner__safety {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px 12px;
  padding-top: 8px;
  border-top: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.clw-banner__safety-cell {
  min-width: 0;
  padding: 4px 8px;
  border-radius: var(--eu-radius-sm, 6px);
  border: 1px solid transparent;
}

.clw-banner__safety-cell--success {
  background: var(--eu-success-bg, #ecfdf5);
}

.clw-banner__safety-cell--warning {
  background: var(--eu-warning-bg, #fef3c7);
}

.clw-banner__safety-cell--danger {
  background: var(--eu-danger-bg, #fef2f2);
}

.clw-banner__safety-cell--info {
  background: var(--eu-info-bg, #eff6ff);
}

.clw-banner__safety-cell--muted {
  background: var(--eu-surface-muted, #f9fafb);
}

/* —— More menus —— */
.clw-more {
  position: relative;
}

.clw-more__summary {
  list-style: none;
  cursor: pointer;
}

.clw-more__summary::-webkit-details-marker {
  display: none;
}

.clw-more__menu,
.clw-toolbar__more-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 4px);
  z-index: 80;
  min-width: 280px;
  max-width: 22rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  padding: 8px;
  background: var(--eu-surface-raised, #fff);
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  box-shadow: var(--eu-shadow-md, 0 8px 24px rgba(15, 23, 42, 0.12));
}

.clw-more__item,
.clw-toolbar__menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 6px 10px;
  border-radius: 4px;
  font-size: 0.8125rem;
  text-decoration: none;
  color: var(--eu-text-primary, #111827);
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.clw-more__item:hover,
.clw-toolbar__menu-item:hover,
.clw-more__item:focus-visible,
.clw-toolbar__menu-item:focus-visible {
  background: var(--eu-surface-muted, #f3f4f6);
  outline: none;
}

.clw-toolbar__menu-form {
  display: block;
  width: 100%;
  margin: 0;
}

/* —— Action ribbon —— */
.clw-toolbar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  background: var(--eu-surface-raised, #fff);
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  overflow: visible;
}

.clw-toolbar:has(.clw-toolbar__more[open]) {
  z-index: 40;
}

.clw-toolbar__scroll {
  flex: 1 1 auto;
  min-width: 0;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.clw-toolbar__scroll::-webkit-scrollbar {
  display: none;
  height: 0;
}

.clw-toolbar__actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px;
}

.clw-toolbar__aside {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  margin-left: auto;
  position: relative;
  z-index: 30;
}

.clw-toolbar__group--exit {
  flex-shrink: 0;
  margin-left: 0;
}

.clw-toolbar__btn--exit {
  font-weight: 700;
}

.clw-toolbar__group {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.clw-toolbar__sep {
  width: 1px;
  height: 22px;
  background: var(--eu-border-subtle, #e5e7eb);
  margin: 0 2px;
  flex-shrink: 0;
}

.clw-toolbar__btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}

.clw-toolbar__btn--primary {
  font-weight: 600;
}

.clw-toolbar__btn--exit.eu-btn--danger,
.clw-toolbar__btn--exit {
  /* Close Visit remains danger variant from helper */
}

.clw-toolbar__icon {
  flex-shrink: 0;
}

.clw-toolbar__btn.is-disabled {
  opacity: 0.5;
  pointer-events: none;
}

.clw-toolbar__more {
  position: relative;
  flex-shrink: 0;
}

.clw-toolbar__more-summary {
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}

.clw-toolbar__more[open] .clw-toolbar__more-summary {
  border-color: var(--chk-accent, #0f766e);
}

.clw-toolbar__more-summary::-webkit-details-marker {
  display: none;
}

/* —— Timeline —— */
.clw-workspace__timeline-frame {
  display: block;
  min-height: 0;
}

.clw-workspace__skeleton {
  padding: 10px 14px;
  color: var(--eu-text-secondary, #6b7280);
  font-size: 0.8125rem;
  background: var(--eu-surface-raised, #fff);
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
}

.clw-timeline-shell {
  padding: 10px 14px;
  background: var(--eu-surface-raised, #fff);
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
}

.clw-timeline-shell__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.clw-timeline-shell__title {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-timeline-toolbar {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 8px;
}

.clw-timeline-toolbar__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px;
}

.clw-timeline-toolbar__search {
  flex: 0 0 50%;
  max-width: 50%;
  min-width: 0;
}

.clw-timeline-toolbar__submit {
  flex-shrink: 0;
  margin-bottom: 1px;
}

.clw-timeline-toolbar__more {
  font-size: 0.75rem;
}

.clw-timeline-toolbar__more summary {
  cursor: pointer;
  font-weight: 650;
  color: var(--eu-text-secondary, #4b5563);
  list-style: none;
}

.clw-timeline-toolbar__more summary::-webkit-details-marker {
  display: none;
}

.clw-timeline-toolbar__advanced {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
  padding: 8px 10px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface-muted, #f9fafb);
}

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

@media (max-width: 960px) {
  .clw-timeline-toolbar__search {
    flex-basis: 100%;
    max-width: 100%;
  }

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

.clw-timeline__facets {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
  margin-bottom: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
  -webkit-overflow-scrolling: touch;
}

.clw-timeline__facet {
  display: inline-flex;
  flex-shrink: 0;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--eu-text-secondary, #6b7280);
  background: var(--eu-surface-muted, #f3f4f6);
  border: 1px solid transparent;
}

.clw-timeline__facet.is-active,
.clw-timeline__facet:hover,
.clw-timeline__facet:focus-visible {
  color: var(--chk-accent, #0f766e);
  background: var(--eu-accent-subtle, #ecfdf5);
  border-color: var(--chk-accent, #0f766e);
  outline: none;
}

.clw-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 168px;
  overflow-y: auto;
}

.clw-timeline__item {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) minmax(72px, auto);
  gap: 6px 10px;
  padding: 6px 0;
  border-bottom: 1px solid var(--eu-border-subtle, #e5e7eb);
  font-size: 0.75rem;
}

.clw-timeline__item:last-child {
  border-bottom: none;
}

.clw-timeline__when {
  color: var(--eu-text-muted, #9ca3af);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.clw-timeline__headline {
  display: flex;
  align-items: baseline;
  gap: 6px;
  min-width: 0;
}

.clw-timeline__kind {
  flex-shrink: 0;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-timeline__kind--critical,
.clw-timeline__item--critical_result .clw-timeline__kind {
  color: var(--eu-danger-text, #991b1b);
}

.clw-timeline__kind--abnormal,
.clw-timeline__kind--urgent,
.clw-timeline__kind--warning {
  color: var(--eu-warning-text, #92400e);
}

.clw-timeline__label {
  color: var(--eu-text-primary, #111827);
  font-weight: 600;
  line-height: 1.3;
}

.clw-timeline__detail {
  color: var(--eu-text-secondary, #6b7280);
  margin-top: 1px;
  line-height: 1.3;
}

.clw-timeline__actor {
  color: var(--eu-text-secondary, #6b7280);
  text-align: right;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.clw-timeline-empty {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding: 8px 0 4px;
}

.clw-timeline-empty__icon {
  color: var(--eu-text-muted, #9ca3af);
  margin-bottom: 2px;
}

.clw-timeline-empty__title {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--eu-text-primary, #111827);
}

.clw-timeline-empty__body {
  margin: 0;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #6b7280);
}

/* —— Main body —— */
.clw-workspace__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
  gap: 12px;
  align-items: start;
}

.clw-workspace__primary {
  min-width: 0;
  background: var(--eu-surface-raised, #fff);
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  padding: 12px 14px;
}

.clw-workspace__primary--tabbed {
  padding: 0;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.clw-chart-tabs {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 2px;
  padding: 4px 8px 0;
  border-bottom: 1px solid var(--eu-border-subtle, #e5e7eb);
  background: var(--eu-surface-raised, #fff);
  position: sticky;
  top: 0;
  z-index: 6;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.clw-chart-tabs::-webkit-scrollbar {
  display: none;
  height: 0;
}

.clw-chart-tabs__tab {
  flex: 0 0 auto;
  padding: 7px 12px;
  border: 0;
  border-bottom: 3px solid transparent;
  margin-bottom: -1px;
  border-radius: var(--eu-radius-sm, 6px) var(--eu-radius-sm, 6px) 0 0;
  background: transparent;
  color: var(--eu-text-secondary, #6b7280);
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}

.clw-chart-tabs__tab:hover,
.clw-chart-tabs__tab:focus-visible {
  color: var(--chk-accent, #0f766e);
  background: var(--eu-surface-muted, #f3f4f6);
  outline: none;
}

.clw-chart-tabs__tab.is-active {
  color: #fff;
  background: var(--chk-accent, #0f766e);
  border-bottom-color: var(--chk-accent-strong, #115e59);
  font-weight: 700;
  box-shadow: inset 0 0 0 1px rgba(15, 118, 110, 0.35);
}

.clw-chart-tabs__panels {
  padding: 12px 14px;
  min-width: 0;
}

.clw-chart-tabs__panel[hidden] {
  display: none;
}

.clw-workspace__primary-frame {
  display: block;
  min-width: 0;
}

.clw-workspace__primary-frame:has(.eu-diagram-workbench) {
  min-height: min(72vh, 760px);
}

.clw-summary__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.clw-summary__title {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-summary__attention {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.clw-summary__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.clw-summary-tile {
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface-muted, #f9fafb);
}

.clw-summary-tile__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}

.clw-summary-tile__title {
  margin: 0;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-summary-tile__count {
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-summary-tile__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.clw-summary-tile__item {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.75rem;
  line-height: 1.3;
}

.clw-summary-tile__primary {
  color: var(--eu-text-primary, #111827);
  font-weight: 550;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.clw-summary-tile__secondary {
  color: var(--eu-text-secondary, #6b7280);
  flex-shrink: 0;
}

.clw-summary-tile__item--danger .clw-summary-tile__primary,
.clw-summary-tile__item--danger .clw-summary-tile__secondary {
  color: var(--eu-danger-text, #991b1b);
  font-weight: 650;
}

.clw-summary-tile__item--warning .clw-summary-tile__primary {
  color: var(--eu-warning-text, #92400e);
}

.clw-summary-tile__empty,
.clw-empty-compact {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.3;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-primary-empty {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 8px 0;
}

.clw-primary-empty__icon {
  color: var(--chk-accent, #0f766e);
  opacity: 0.85;
  margin-bottom: 4px;
}

.clw-primary-empty__title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 650;
  color: var(--eu-text-primary, #111827);
}

.clw-primary-empty__body {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--eu-text-secondary, #6b7280);
  max-width: 42rem;
  line-height: 1.4;
}

.clw-workspace__context {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.clw-context-shell,
.clw-audit-shell {
  background: var(--eu-surface-raised, #fff);
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  padding: 10px 12px;
}

.clw-context-shell__title,
.clw-audit-shell__title {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #9ca3af);
  margin-bottom: 6px;
}

.clw-context-panel {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.clw-context-section {
  border-bottom: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.clw-context-section:last-child {
  border-bottom: none;
}

.clw-context-section__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 0;
  cursor: pointer;
  list-style: none;
  font-size: 0.75rem;
  font-weight: 650;
  color: var(--eu-text-primary, #111827);
}

.clw-context-section__summary::-webkit-details-marker {
  display: none;
}

.clw-context-section__count {
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-context-section__body {
  padding: 0 0 8px;
}

.clw-context-section.is-empty .clw-context-section__body {
  padding: 0 0 4px;
}

.clw-context-section.is-empty .clw-context-section__value {
  font-size: 0.6875rem;
}

.clw-context-section__list {
  margin: 0;
  padding-left: 1rem;
  font-size: 0.75rem;
  color: var(--eu-text-primary, #111827);
  line-height: 1.4;
}

.clw-context-section__value {
  margin: 0;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #6b7280);
  line-height: 1.35;
}

/* —— AI —— */
.clw-ai-panel {
  background: var(--eu-surface-raised, #fff);
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  padding: 10px 12px;
}

.clw-ai-panel__head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}

.clw-ai-panel__head strong {
  font-size: 0.8125rem;
}

.clw-ai-panel__actions {
  margin: 6px 0;
  padding-left: 1.1rem;
  font-size: 0.75rem;
  color: var(--eu-text-primary, #111827);
  line-height: 1.45;
}

.clw-ai-panel__disclaimer {
  margin: 0;
  font-size: 0.6875rem;
  color: var(--eu-text-muted, #9ca3af);
}

/* —— Quick actions —— */
.clw-quick {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 10px;
  background: var(--eu-surface-muted, #f9fafb);
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
}

.clw-quick__label {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #9ca3af);
  white-space: nowrap;
}

.clw-quick__row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

/* —— Audit —— */
.clw-workspace__audit {
  min-width: 0;
}

.clw-audit__summary {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 10px;
  font-size: 0.8125rem;
}

.clw-audit__label {
  font-size: 0.75rem;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-audit__toggle {
  margin-top: 6px;
  cursor: pointer;
  list-style: none;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--chk-accent, #0f766e);
}

.clw-audit__toggle::-webkit-details-marker {
  display: none;
}

.clw-audit-list {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  max-height: 160px;
  overflow-y: auto;
}

.clw-audit-list__item {
  display: grid;
  grid-template-columns: minmax(80px, 120px) minmax(0, 1fr) auto;
  gap: 6px 10px;
  padding: 5px 0;
  border-bottom: 1px solid var(--eu-border-subtle, #e5e7eb);
  font-size: 0.75rem;
}

.clw-audit-list__item:last-child {
  border-bottom: none;
}

.clw-audit-list__who {
  font-weight: 600;
  color: var(--eu-text-primary, #111827);
}

.clw-audit-list__what {
  color: var(--eu-text-secondary, #6b7280);
}

.clw-audit-list__when {
  color: var(--eu-text-muted, #9ca3af);
  white-space: nowrap;
}

/* —— Legacy form surfaces still used by note/order frames —— */
.clw-form-section__title {
  margin: 0 0 8px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
  margin-bottom: 12px;
}

.clw-form-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.clw-form-field .eu-input,
.clw-form-field textarea.eu-input {
  width: 100%;
}

.clw-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.clw-problem-list {
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.clw-problem-list__item {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
}

.clw-problem-form {
  margin-top: 8px;
}

.clw-hx {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.clw-hx__section {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.clw-hx__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 1.5rem;
}

.clw-hx__title {
  margin: 0;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-hx__add {
  margin-left: auto;
}

.clw-hx__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.clw-hx__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 1.5rem;
  padding: 2px 8px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
}

.clw-hx__main {
  display: flex;
  flex-wrap: nowrap;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
  overflow: hidden;
}

.clw-hx__name {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 650;
  color: var(--eu-text-primary, #111827);
  white-space: nowrap;
}

.clw-hx__meta {
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #4b5563);
  white-space: nowrap;
}

.clw-hx__hint {
  margin: 0 0 8px;
  color: var(--eu-text-muted, #6b7280);
  font-size: 0.75rem;
  line-height: 1.35;
}

.clw-hx__badge {
  display: inline-flex;
  align-items: center;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--eu-surface-muted, #f3f4f6);
  color: var(--eu-text-secondary, #4b5563);
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.clw-hx__actions {
  display: flex;
  flex-shrink: 0;
  gap: 2px;
}

.clw-hx__empty {
  margin: 0;
  font-size: 0.75rem;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-hx__past {
  margin: 0;
  padding-top: 1px;
}

.clw-hx__past-summary {
  cursor: pointer;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-hx__past-list {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-note {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.clw-note__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.clw-note__heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.clw-note__title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--eu-text-primary, #111827);
}

.clw-note__meta {
  margin: 2px 0 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-note__recording {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.75rem;
  font-weight: 650;
  color: var(--eu-danger-text, #991b1b);
}

.clw-note__recording-dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 999px;
  background: var(--eu-danger-text, #991b1b);
}

.clw-note__ai {
  position: relative;
}

.clw-note__ai > summary {
  list-style: none;
  cursor: pointer;
}

.clw-note__ai > summary::-webkit-details-marker {
  display: none;
}

.clw-note__ai-menu {
  position: absolute;
  z-index: 5;
  top: calc(100% + 4px);
  left: 0;
  min-width: 12rem;
  margin: 0;
  padding: 4px;
  list-style: none;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface-raised, #fff);
  box-shadow: 0 8px 20px color-mix(in srgb, var(--eu-text-primary, #111827) 12%, transparent);
}

.clw-note__ai-item {
  display: block;
  width: 100%;
  padding: 6px 8px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--eu-text-primary, #111827);
  font: inherit;
  font-size: 0.8125rem;
  text-align: left;
  cursor: pointer;
}

.clw-note__ai-item:hover {
  background: color-mix(in srgb, var(--chk-accent, #0f766e) 10%, white);
}

.clw-note__assist-msg {
  margin: 0;
  padding: 4px 8px;
  border-radius: var(--eu-radius-sm, 6px);
  background: color-mix(in srgb, var(--chk-accent, #0f766e) 8%, white);
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-note__gaps {
  margin: 0;
  font-size: 0.75rem;
  color: var(--eu-warning-text, #92400e);
}

.clw-note__ai-disclaimer {
  margin: 0;
  font-size: 0.6875rem;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-note__toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 4px;
}

.clw-note__preview {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.clw-note__preview-row {
  display: grid;
  grid-template-columns: 7rem minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  padding: 4px 8px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
}

.clw-note__preview-label {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-note__preview-value {
  font-size: 0.8125rem;
  color: var(--eu-text-primary, #111827);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.clw-note__compose {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.clw-note__form {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.clw-soap {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.clw-soap__row {
  display: grid;
  grid-template-columns: 1.75rem minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  padding: 6px 8px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
}

.clw-soap__letter {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 6px;
  background: color-mix(in srgb, var(--chk-accent, #0f766e) 12%, white);
  color: var(--chk-accent, #0f766e);
  font-size: 0.8125rem;
  font-weight: 800;
}

.clw-soap__body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.clw-soap__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.clw-soap__label {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 650;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-soap__speak.is-recording {
  color: var(--eu-danger-text, #991b1b);
}

.clw-soap__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.clw-soap__chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  max-width: 100%;
  padding: 2px 8px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: 999px;
  background: var(--eu-surface-raised, #fff);
  color: var(--eu-text-primary, #111827);
  font: inherit;
  font-size: 0.6875rem;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.clw-soap__chip-src {
  font-weight: 700;
  color: var(--chk-accent, #0f766e);
}

.clw-soap__input {
  width: 100%;
  min-height: 2.5rem;
  resize: vertical;
  line-height: 1.35;
}

.clw-note__foot {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 4px;
  padding-top: 4px;
}

.clw-note__sign-form {
  display: inline;
  margin: 0;
}

.clw-scribe {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 0 8px;
}

.clw-scribe__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.clw-scribe__start {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.clw-scribe__dock {
  padding: 10px 12px;
  border: 1px solid color-mix(in srgb, var(--eu-danger, #dc2626) 35%, var(--eu-border, #e5e7eb));
  border-radius: var(--eu-radius-sm, 6px);
  background: color-mix(in srgb, var(--eu-danger, #dc2626) 6%, var(--eu-surface, #fff));
}

.clw-scribe__live {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8125rem;
}

.clw-scribe__dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 999px;
  background: var(--eu-danger, #dc2626);
  animation: eu-speech-pulse 1.1s ease-out infinite;
}

.clw-scribe__timer {
  margin-left: auto;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}

.clw-scribe__wave {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: 22px;
  margin: 8px 0;
}

.clw-scribe__wave span {
  display: block;
  width: 3px;
  height: 40%;
  border-radius: 2px;
  background: var(--eu-danger, #dc2626);
  animation: clw-scribe-bar 0.9s ease-in-out infinite;
}

.clw-scribe__wave span:nth-child(2) { animation-delay: 0.1s; height: 70%; }
.clw-scribe__wave span:nth-child(3) { animation-delay: 0.2s; height: 100%; }
.clw-scribe__wave span:nth-child(4) { animation-delay: 0.15s; height: 55%; }
.clw-scribe__wave span:nth-child(5) { animation-delay: 0.25s; height: 85%; }
.clw-scribe__wave span:nth-child(6) { animation-delay: 0.05s; height: 45%; }
.clw-scribe__wave span:nth-child(7) { animation-delay: 0.3s; height: 65%; }

.clw-scribe__live-text {
  margin: 0 0 8px;
  font-size: 0.8125rem;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-scribe__controls {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
}

.clw-scribe-suggest {
  margin: 0 0 10px;
  padding: 10px 12px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
}

.clw-scribe-suggest__title {
  margin: 0 0 2px;
  font-size: 0.875rem;
}

.clw-scribe-suggest__help {
  margin: 0 0 8px;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-scribe-suggest__cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 8px;
}

.clw-scribe-suggest__cols h4,
.clw-scribe-suggest ul {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.8125rem;
}

.clw-scribe-suggest__item {
  display: flex;
  gap: 6px;
  align-items: flex-start;
}

.clw-scribe-cmd {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
}

.clw-soap__head .eu-speech__btn {
  width: 1.5rem;
  height: 1.5rem;
}

.clw-soap__tools {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.eu-speech__btn.is-added {
  background: var(--eu-success, #15803d);
  border-color: var(--eu-success, #15803d);
  color: #fff;
}

.clw-scribe-pipe {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin: 0 0 8px;
  padding: 8px 10px;
  list-style: none;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  font-size: 0.75rem;
}

.clw-scribe-pipe li {
  color: var(--eu-text-secondary, #64748b);
}

.clw-scribe-pipe li.is-done {
  color: var(--eu-success, #15803d);
  font-weight: 650;
}

.clw-scribe-pipe li.is-done::before {
  content: "✓ ";
}

.clw-scribe-analyze {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
}

.clw-complete {
  margin: 10px 0 6px;
  padding: 8px 10px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
}

.clw-complete__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
}

.clw-complete__head h3 {
  margin: 0;
  font-size: 0.8125rem;
}

.clw-complete__bar {
  height: 6px;
  margin: 6px 0 8px;
  border-radius: 999px;
  background: var(--eu-border-subtle, #e5e7eb);
  overflow: hidden;
}

.clw-complete__bar > span {
  display: block;
  height: 100%;
  width: calc(var(--complete-pct, 0) * 1%);
  background: var(--chk-accent, #0f766e);
}

.clw-complete__list,
.clw-complete__map {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.75rem;
}

.clw-complete__map {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.clw-complete__list .is-done,
.clw-complete__map .is-done {
  color: var(--eu-success, #15803d);
}

.clw-complete__list .is-warn,
.clw-complete__map .is-warn {
  color: var(--eu-warning-text, #b45309);
}

.clw-complete__map li {
  display: flex;
  gap: 6px;
  min-width: 12rem;
}

@keyframes clw-scribe-bar {
  0%, 100% { transform: scaleY(0.45); }
  50% { transform: scaleY(1); }
}

@media (max-width: 720px) {
  .clw-scribe-suggest__cols {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .clw-note__preview-row {
    grid-template-columns: 1fr;
  }
}

.clw-rx {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.clw-rx__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.clw-rx__top.eu-form-grid {
  gap: 12px 16px;
  margin-bottom: 10px;
  align-items: start;
}

.clw-rx__review,
.clw-rx__search {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.clw-rx__search {
  padding: 10px 12px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface-raised, #fff);
}

.clw-rx__search-title {
  margin: 0;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-rx__title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--eu-text-primary, #111827);
}

.clw-rx__lede {
  margin: 2px 0 0;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-rx__lede--alert {
  color: var(--eu-danger-text, #991b1b);
  font-weight: 650;
}

.clw-rx__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.clw-rx__chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 1.5rem;
  padding: 0 8px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: 999px;
  background: var(--eu-surface, #fff);
  color: var(--eu-text-secondary, #4b5563);
  font-size: 0.75rem;
  font-weight: 650;
  text-decoration: none;
}

.clw-rx__chip.is-active {
  border-color: var(--chk-accent, #0f766e);
  background: color-mix(in srgb, var(--chk-accent, #0f766e) 10%, white);
  color: var(--eu-text-primary, #111827);
}

.clw-rx__chip-count,
.clw-rx__count {
  font-variant-numeric: tabular-nums;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-rx__more {
  font-size: 0.75rem;
}

.clw-rx__more summary {
  cursor: pointer;
  font-weight: 650;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-rx__filters {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 8px;
  margin-top: 6px;
}

.clw-rx__filters .eu-input {
  width: 9.5rem;
}

.clw-rx__row--critical {
  border-color: var(--eu-danger-border, #fecaca);
  background: var(--eu-danger-bg, #fef2f2);
}

.clw-rx__row--abnormal {
  border-color: var(--eu-warning-border, #fde68a);
  background: var(--eu-warning-bg, #fffbeb);
}

.clw-rx__value {
  font-size: 0.8125rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--eu-text-primary, #111827);
  white-space: nowrap;
}

.clw-rx__prev--up {
  color: var(--eu-danger-text, #991b1b);
}

.clw-rx__prev--down {
  color: var(--chk-accent, #0f766e);
}

.clw-rx__hist-link {
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: left;
  font: inherit;
}

.clw-rx__detail-value {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1rem;
  font-weight: 700;
}

.clw-rx__meta-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 12px;
  margin: 0;
}

.clw-rx__meta-list dt {
  margin: 0;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-rx__meta-list dd {
  margin: 0;
  font-size: 0.8125rem;
}

.clw-rx__trend {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.clw-rx__spark {
  width: 100%;
  height: 2rem;
  color: var(--eu-accent, var(--chk-accent, #0f766e));
}

.clw-rx__spark--inline {
  width: 5.5rem;
  height: 1.5rem;
  flex: 0 0 auto;
  align-self: center;
}

.clw-rx__chips--period {
  margin-bottom: 0;
}

.clw-rx__trends {
  margin: 4px 0 12px;
  padding-top: 4px;
  border-top: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.clw-rx__trend-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 12px;
}

.clw-rx__trend-card {
  padding: 12px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius, 8px);
  background: var(--eu-surface, #fff);
}

.clw-rx__trend-card.is-critical {
  border-color: color-mix(in srgb, var(--eu-danger, #b91c1c) 45%, var(--eu-border-subtle, #e5e7eb));
}

.clw-rx__trend-card.is-abnormal {
  border-color: color-mix(in srgb, var(--eu-warning, #d97706) 45%, var(--eu-border-subtle, #e5e7eb));
}

.clw-rx__trend-card-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 8px;
}

.clw-rx__trend-card-title {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
}

.clw-rx__trend-card-latest {
  margin: 0;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #4b5563);
  white-space: nowrap;
}

.clw-rx__trend-card .eu-trend {
  margin: 0;
}

.clw-rx__trend-card .eu-trend__svg {
  width: 100%;
  height: 120px;
}

.clw-rx__modal .eu-trend__svg {
  width: 100%;
  height: 140px;
}

.clw-landing__alerts {
  display: block;
  text-decoration: none;
  color: inherit;
}

.clw-modal {
  width: min(30.5rem, 94vw);
  padding: 0;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius, 8px);
  background: var(--eu-surface-raised, #fff);
  color: var(--eu-text-primary, #111827);
  overflow: visible;
}

/* Global margin reset cancels the UA dialog margin:auto, which pins dialogs to the top-left. */
dialog.clw-modal:not([open]) {
  display: none;
}

dialog.clw-modal[open] {
  position: fixed;
  inset: unset;
  top: 50%;
  left: 50%;
  margin: 0;
  transform: translate(-50%, -50%);
  width: min(30.5rem, calc(100vw - 2rem));
  max-height: 88vh;
}

.clw-modal::backdrop {
  background: color-mix(in srgb, var(--eu-text-primary, #111827) 28%, transparent);
}

.clw-modal__head,
.clw-modal__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 12px;
}

.clw-modal__head {
  border-bottom: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.clw-modal__foot {
  justify-content: flex-end;
  padding-top: 10px;
}

.clw-modal__title {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
}

.clw-modal__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 12px 12px;
  overflow: visible;
}

.clw-modal__fields {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 6px;
}

.clw-modal__fields .eu-input {
  max-width: 100%;
}

.clw-modal__confirm {
  margin-top: 6px;
  padding-top: 8px;
  border-top: 1px solid var(--eu-border-subtle, #e5e7eb);
  overflow: visible;
}

.clw-problems {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.clw-problems__lede {
  margin: 0 0 8px;
  font-size: 0.8125rem;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-problems__section {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.clw-problems__section--historical {
  padding-top: 10px;
  border-top: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.clw-problems__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 1.75rem;
}

.clw-problems__heading {
  margin: 0;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-problems__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.clw-problem-card {
  padding: 8px 10px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
}

.clw-problem-card__name {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--eu-text-primary, #111827);
}

.clw-problem-card__meta {
  margin: 2px 0 0;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-problem-card__actions {
  display: flex;
  justify-content: flex-end;
  gap: 4px;
  margin-top: 6px;
}

.clw-problem-card__edit {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.clw-problem-compose {
  padding: 8px 10px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
}

.clw-problem-compose__form,
.clw-problem-compose__fields {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.clw-problem-compose__fields .eu-input {
  max-width: 8rem;
}

.clw-allergy-fields .eu-input {
  max-width: 100%;
}

.clw-problem-compose__fields input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}

.clw-problem-compose__fields input[type="number"]::-webkit-outer-spin-button,
.clw-problem-compose__fields input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.clw-problem-compose__check {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
}

.clw-problem-compose__actions {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  margin-top: 8px;
}

.clw-problem-confirm {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.clw-problems__history {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.clw-problems__history-item {
  font-size: 0.8125rem;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-drawer--problems {
  width: min(26rem, 94vw);
  display: flex;
  flex-direction: column;
  max-height: 88vh;
}

.clw-drawer--problems .clw-drawer__head {
  align-items: flex-start;
}

.clw-drawer__heading {
  min-width: 0;
}

.clw-drawer__subtitle {
  margin: 2px 0 0;
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--eu-text-secondary, #4b5563);
}

.clw-drawer--problems .clw-drawer__body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}

.clw-form-field--full {
  grid-column: 1 / -1;
}

.clw-typeahead {
  position: relative;
  z-index: 1;
}

.clw-typeahead:has(.clw-typeahead__menu:not([hidden])) {
  z-index: 40;
}

.clw-order-catalog {
  display: none;
}

.clw-drawer__form {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 10px;
}

.clw-drawer__actions {
  margin-top: 10px;
}

.clw-vitals-form {
  margin-top: 10px;
}

.clw-vitals-form--drawer {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  margin: 0;
}

.clw-typeahead__menu {
  position: absolute;
  z-index: 3000;
  top: calc(100% + 2px);
  left: 0;
  right: 0;
  max-height: min(220px, 40vh);
  overflow: auto;
  background: var(--eu-surface-raised, #fff);
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  box-shadow: var(--eu-shadow-md, 0 12px 32px rgb(15 23 42 / 0.16));
}

.clw-typeahead__menu.is-floating {
  position: fixed;
  right: auto;
}

.clw-typeahead__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  width: 100%;
  padding: 6px 10px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  color: var(--eu-text-primary, #111827);
}

.clw-typeahead__name {
  font-size: 0.8125rem;
  font-weight: 650;
  color: var(--eu-text-primary, #111827);
}

.clw-typeahead__meta {
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--eu-text-muted, #9ca3af);
  font-variant-numeric: tabular-nums;
}

.clw-typeahead__item small {
  color: var(--eu-text-muted, #9ca3af);
  font-size: 0.6875rem;
}

.clw-typeahead__item.is-active,
.clw-typeahead__item:hover {
  background: var(--eu-surface-muted, #f3f4f6);
}

.clw-typeahead__empty {
  padding: 8px 10px;
  font-size: 0.75rem;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-typeahead__selected {
  margin: 4px 0 0;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-order-status__lede {
  margin: 0 0 var(--eu-space-sm);
  font-size: 0.75rem;
  color: var(--eu-text-muted);
}

.clw-order-lifecycle {
  display: flex;
  flex-wrap: wrap;
  gap: var(--eu-space-xs);
  list-style: none;
  margin: 0 0 var(--eu-space-sm);
  padding: 0;
}

.clw-order-lifecycle__step {
  display: flex;
  align-items: center;
  color: var(--eu-text-muted);
  font-size: 0.625rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.clw-order-lifecycle__step:not(:last-child)::after {
  content: "→";
  margin-left: var(--eu-space-xs);
  color: var(--eu-text-faint);
}

.clw-order-lifecycle__step.is-current,
.clw-order-lifecycle__step.is-hold {
  color: var(--eu-primary);
  font-weight: 700;
}

.clw-order-lifecycle__step.is-done {
  color: var(--eu-text);
}

.clw-order-lifecycle--legend {
  margin-bottom: var(--eu-space-md);
}

.clw-order-status.eu-table-wrap {
  overflow: visible;
}

.clw-order-status .eu-table {
  min-width: 0;
  width: 100%;
}

.clw-order-status .eu-table thead th,
.clw-order-status .eu-table tbody td {
  padding: 6px 8px;
  vertical-align: top;
}

.clw-order-status__number {
  font-family: ui-monospace, "JetBrains Mono", monospace;
  font-size: 0.75rem;
}

.clw-order-status__when {
  white-space: nowrap;
  font-size: 0.75rem;
  color: var(--eu-text-muted);
}

.clw-order-status__row--hold {
  background: var(--eu-surface-subtle);
}

.clw-order-progress {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.clw-order-progress__label {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--eu-text);
}

.clw-order-progress__label.is-hold {
  color: var(--eu-warning);
}

.clw-order-progress__dots {
  display: flex;
  gap: 3px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.clw-order-progress__dots li {
  list-style: none;
}

.clw-order-progress__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--eu-border);
}

.clw-order-progress__dot.is-done {
  background: var(--eu-primary);
  opacity: 0.45;
}

.clw-order-progress__dot.is-current,
.clw-order-progress__dot.is-hold {
  background: var(--eu-primary);
}

.clw-order-details {
  position: relative;
}

.clw-order-details > summary {
  list-style: none;
  cursor: pointer;
}

.clw-order-details > summary::-webkit-details-marker {
  display: none;
}

.clw-order-details__backdrop {
  display: none;
}

.clw-order-details[open] .clw-order-details__backdrop {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 80;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgb(15 23 42 / 0.32);
  cursor: pointer;
}

.clw-order-details__panel {
  position: absolute;
  right: 0;
  top: calc(100% + 4px);
  z-index: 20;
  width: min(28rem, 78vw);
  padding: var(--eu-space-sm);
  background: var(--eu-surface);
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm);
  box-shadow: var(--eu-shadow-md);
}

.clw-order-details[open] .clw-order-details__panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: auto;
  z-index: 81;
  width: min(28rem, 100vw);
  max-height: 100vh;
  overflow-y: auto;
  border-radius: 0;
  box-shadow: var(--eu-shadow-lg, 0 16px 40px rgb(15 23 42 / 0.2));
}

.clw-order-details__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 0 0 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--eu-border);
  position: sticky;
  top: 0;
  background: var(--eu-surface);
  z-index: 1;
}

.clw-order-details__title {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.clw-order-details__items-title {
  margin: 0 0 6px;
  font-size: 0.75rem;
  font-weight: 600;
}

.clw-order-details__items {
  list-style: none;
  margin: 0 0 var(--eu-space-sm);
  padding: 0;
}

.clw-order-details__items li {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 6px 0;
  border-top: 1px solid var(--eu-border);
  font-size: 0.8125rem;
}

.clw-order-mar-doses li {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.clw-order-mar-day {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  font-size: 0.75rem;
}

.clw-order-med-action {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0 0 10px;
}

.clw-order-details__meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--eu-space-xs) var(--eu-space-sm);
  margin: 0 0 var(--eu-space-sm);
}

.clw-order-details__meta dt {
  font-size: 0.625rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted);
}

.clw-order-details__meta dd {
  margin: 2px 0 0;
  font-size: 0.8125rem;
}

.clw-order-cancel {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-xs);
  margin-top: var(--eu-space-sm);
}

.clw-order-compose {
  margin-top: var(--eu-space-md);
}

.clw-order-compose__lede {
  margin: 0 0 var(--eu-space-sm);
  font-size: 0.8125rem;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-order-compose-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.clw-order-types {
  margin: 0;
  padding: 0;
  border: 0;
}

.clw-order-types__legend {
  margin-bottom: 6px;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-order-types__row,
.clw-order-quick__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.clw-order-type {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface-raised, #fff);
  color: var(--eu-text-primary, #111827);
  font-size: 0.8125rem;
  font-weight: 650;
  cursor: pointer;
}

.clw-order-type.is-active,
.clw-order-type:hover,
.clw-order-type:focus-visible {
  border-color: var(--chk-accent, #0f766e);
  background: var(--eu-accent-subtle, #ecfdf5);
  color: var(--chk-accent, #0f766e);
  outline: none;
}

.clw-order-search--hero {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.clw-order-picker.eu-form-grid {
  gap: 12px 16px;
  margin-top: 4px;
  align-items: start;
}

.clw-order-picker .clw-order-search {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.clw-order-search__label {
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.clw-order-search__field {
  position: relative;
}

.clw-order-search__icon {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  color: var(--eu-text-muted, #9ca3af);
  pointer-events: none;
}

.clw-order-search__input {
  min-height: 40px;
  padding-left: 34px;
  font-size: 0.9375rem;
}

.clw-order-quick {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 12px;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface-raised, #fff);
  max-height: 11rem;
  overflow: auto;
}

.clw-order-quick__group {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.clw-order-quick__title,
.clw-order-cart__title {
  margin: 0;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-order-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border: 1px solid var(--chk-accent, #0f766e);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-accent-subtle, #ecfdf5);
  color: var(--chk-accent, #0f766e);
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
}

.clw-order-chip:hover,
.clw-order-chip:focus-visible {
  background: var(--eu-surface-raised, #fff);
  outline: none;
}

.clw-order-chip.is-active {
  background: var(--chk-accent, #0f766e);
  color: var(--eu-surface-raised, #fff);
}

.clw-order-chip--set {
  border-color: var(--eu-border-subtle, #e5e7eb);
  background: var(--eu-surface-raised, #fff);
  color: var(--eu-text-primary, #111827);
  font-weight: 600;
}

.clw-order-chip__meta {
  font-size: 0.6875rem;
  font-weight: 500;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-order-quick__side {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.clw-order-quick__empty {
  margin: 0;
  font-size: 0.75rem;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-order-recent {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  max-height: 4.5rem;
  overflow: hidden;
}

.clw-order-recent__item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  padding: 1px 0;
  border: 0;
  background: transparent;
  color: var(--eu-text-primary, #111827);
  font-size: 0.75rem;
  cursor: pointer;
  text-align: left;
}

.clw-order-recent__item:hover,
.clw-order-recent__item:focus-visible {
  color: var(--chk-accent, #0f766e);
  outline: none;
}

.clw-order-recent__name {
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.clw-order-recent__when {
  flex-shrink: 0;
  color: var(--eu-text-muted, #9ca3af);
  font-weight: 500;
}

.clw-order-cart {
  margin: 6px 0 0;
  padding: 0;
  border: 0;
}

.clw-order-cart__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: flex-start;
}

.clw-order-cart__count {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 650;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-order-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  padding: 4px 4px 4px 10px;
  border: 1px solid var(--chk-accent, #0f766e);
  border-radius: 999px;
  background: var(--eu-accent-subtle, #ecfdf5);
  color: var(--chk-accent, #0f766e);
  line-height: 1.2;
}

.clw-order-tag__body {
  display: inline-flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
  padding: 1px 0;
}

.clw-order-tag__name {
  font-size: 0.75rem;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.clw-order-tag__meta {
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--eu-text-secondary, #6b7280);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.clw-order-tag__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.375rem;
  height: 1.375rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--chk-accent, #0f766e);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.clw-order-tag__remove:hover,
.clw-order-tag__remove:focus-visible {
  background: var(--chk-accent, #0f766e);
  color: var(--eu-surface-raised, #fff);
  outline: none;
}

.clw-order-footer {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.clw-order-footer__bar {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 10px 16px;
}

.clw-order-footer__priority {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 10rem;
}

.clw-order-footer__actions {
  margin-left: auto;
}

.clw-order-more-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 1.75rem;
  padding: 4px 12px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: 999px;
  background: var(--eu-surface-muted, #f3f4f6);
  color: var(--eu-text-secondary, #4b5563);
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  align-self: center;
}

.clw-order-more-toggle:hover,
.clw-order-more-toggle:focus-visible {
  border-color: var(--chk-accent, #0f766e);
  color: var(--chk-accent, #0f766e);
  background: var(--eu-accent-subtle, #ecfdf5);
  outline: none;
}

.clw-order-more-toggle.is-open {
  border-color: var(--chk-accent, #0f766e);
  background: var(--chk-accent, #0f766e);
  color: #fff;
  font-weight: 800;
}

.clw-order-more__body.eu-form-grid {
  gap: 8px 12px;
  margin: 0;
  padding: 8px 10px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface, #fff);
}

.clw-order-more__body[hidden] {
  display: none !important;
}

.clw-order-more__body .eu-field {
  gap: 2px;
  margin: 0;
}

.clw-order-more__body .eu-input {
  min-height: 2rem;
  height: 2rem;
  padding: 0 8px;
  font-size: 0.8125rem;
}

.clw-order-urgent {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 2rem;
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.8125rem;
}

.clw-order-cart-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.clw-rx-form {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.clw-rx-quick {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 10px;
  max-height: 9rem;
  overflow: auto;
  padding: 6px 8px;
}

.clw-rx-quick:has(.clw-rx-quick__fav) {
  grid-template-columns: 1fr;
}

.clw-rx-side {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.clw-rx-split.eu-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: 10px 14px;
  align-items: start;
}

.clw-rx-split {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: 10px 14px;
  align-items: start;
}

.clw-rx-compose {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.clw-rx-compose .clw-order-search {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.clw-rx-compose .clw-order-search__field {
  position: relative;
}

.clw-rx-compose .clw-order-search__icon {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
  pointer-events: none;
}

.clw-rx-compose .clw-order-search__input {
  padding-left: 34px;
  padding-right: 2.75rem;
}

.clw-rx-compose .clw-order-search__field .eu-speech {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  margin: 0;
}

.clw-rx-editor {
  padding: 8px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.clw-rx-editor__selected[hidden] {
  display: none !important;
}

.clw-rx-editor__selected {
  min-width: 0;
}

.clw-rx-editor__selected .clw-order-confirm__name {
  margin: 0;
  font-size: 0.8125rem;
}

.clw-rx-editor__selected .clw-order-confirm__meta {
  margin: 0;
  font-size: 0.6875rem;
}

.clw-rx-editor__stock[hidden] {
  display: none !important;
}

.clw-rx-editor__fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 8px;
}

.clw-rx-editor__fields .clw-rx-editor__stock {
  grid-column: 1 / -1;
}

.clw-rx-editor__fields .clw-form-field {
  min-width: 0;
}

.clw-rx-editor__fields .eu-label,
.clw-rx-editor__more .eu-label {
  margin-bottom: 2px;
  font-size: 0.6875rem;
}

.clw-rx-editor__fields .eu-input,
.clw-rx-editor__more .eu-input {
  min-height: 2rem;
  padding: 4px 8px;
  font-size: 0.8125rem;
}

.clw-rx-editor__more {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.clw-rx-editor__flags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
}

.clw-rx-editor__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: 2px;
}

.clw-rx-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  margin: 0;
}

.clw-rx-cart {
  min-width: 0;
  min-height: 0;
  padding: 8px 10px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface-raised, #fff);
}

.clw-rx-review {
  padding: 8px 10px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
}

.clw-rx-list__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.clw-rx-cart__empty {
  margin: 0;
  padding: 12px 4px;
  font-size: 0.75rem;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-rx-list__items,
.clw-rx-summary,
.clw-rx-signed-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.clw-rx-tag {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  padding: 6px 8px;
  border: 1px solid var(--chk-accent, #0f766e);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-accent-subtle, #ecfdf5);
}

.clw-rx-tag__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.clw-rx-tag__name {
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--chk-accent, #0f766e);
}

.clw-rx-tag__sig {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--eu-text-primary, #111827);
}

.clw-rx-tag__meta {
  font-size: 0.6875rem;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-rx-tag__actions {
  display: flex;
  flex-shrink: 0;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 2px;
}

.clw-rx-signed-list__item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.clw-rx-signed-list__item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.clw-rx-signed-list__item strong {
  display: block;
  font-size: 0.8125rem;
}

.clw-rx-list__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 2px;
}

.clw-rx-summary__item {
  font-size: 0.8125rem;
}

.clw-rx-override {
  margin: 8px 0;
}

.clw-rx-sign-actions,
.clw-rx-signed-actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

.clw-rx-context {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 2px 12px;
}

.clw-rx-context__patient,
.clw-rx-context__allergies {
  margin: 0;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-rx-context__allergies.is-alert {
  color: var(--eu-warning, #b45309);
  font-weight: 650;
}

.clw-rx-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.clw-vitals {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.clw-vitals__heading {
  margin: 0 0 4px;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-vitals__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px 12px;
  align-items: stretch;
}

.clw-vitals__tile {
  min-width: 0;
  min-height: 3.25rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 2px;
}

.clw-vitals__tile.is-empty .clw-vitals__val {
  color: var(--eu-text-muted, #9ca3af);
  font-weight: 600;
}

.clw-vitals__key {
  display: block;
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-vitals__val {
  font-size: 0.9375rem;
  font-weight: 700;
}

.clw-vitals__tile.is-abnormal .clw-vitals__val,
.clw-vitals td.is-abnormal {
  color: var(--eu-warning, #b45309);
}

.clw-vitals__unit,
.clw-vitals__flag {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-vitals__meta {
  margin: 6px 0 0;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-vitals__actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.clw-vitals__action-cluster {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.clw-vitals__action-cluster .button_to,
.clw-vitals__action-cluster form {
  margin: 0;
}

.clw-vitals__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.clw-vitals__spark,
.clw-vitals__chart {
  margin-top: 8px;
  color: var(--chk-accent, #0f766e);
}

.clw-vitals__svg {
  display: block;
  width: 100%;
  height: 12.5rem;
}

.clw-vitals__gridlines line {
  stroke: var(--eu-border-subtle, #e5e7eb);
  stroke-width: 1;
}

.clw-vitals__gridlines text,
.clw-vitals__axis-x text {
  fill: var(--eu-text-secondary, #6b7280);
  font-size: 10px;
}

.clw-vitals__line {
  stroke: currentColor;
  stroke-width: 2;
}

.clw-vitals__dots circle {
  fill: currentColor;
}

.clw-vitals__chart-meta {
  margin: 4px 0 0;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-vitals__record {
  border-top: 1px solid var(--eu-border-subtle, #e5e7eb);
  padding-top: 6px;
}

.clw-vitals-form--inline {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
}

.clw-vitals-form--inline .clw-vitals__heading {
  margin: 0;
}

.clw-vitals__record-body {
  min-height: 0;
}

/* PEUF eu-form-grid — dense aligned vitals entry */
.clw-vitals-form__grid.eu-form-grid {
  gap: 8px 12px;
  align-items: start;
}

.clw-vitals-form--inline .eu-field.clw-vitals-field {
  gap: 2px;
  margin: 0;
  min-width: 0;
}

.clw-vitals-form--inline .eu-field.clw-vitals-field .eu-label {
  margin: 0;
  line-height: 1.2;
  min-height: 1rem;
}

.clw-vitals-control {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  min-height: 2rem;
}

.clw-vitals-control__unit {
  flex: 0 0 2.75rem;
  width: 2.75rem;
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--eu-text-secondary, #6b7280);
  line-height: 1.2;
  white-space: nowrap;
}

.clw-vitals-form--inline .eu-input.clw-vitals-field__input {
  display: block;
  flex: 1 1 auto;
  width: 100% !important;
  min-width: 0;
  max-width: none;
  min-height: 2rem;
  height: 2rem;
  padding: 0 8px;
  font-size: 0.8125rem;
  box-sizing: border-box;
}

.clw-vitals-control--bp .clw-vitals-bp {
  flex: 1 1 auto;
  min-width: 0;
}

.clw-vitals__record-foot {
  position: sticky;
  bottom: 0;
  z-index: 2;
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  margin: 0;
  padding: 6px 0 0;
  background: var(--eu-surface-raised, #fff);
  border-top: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.clw-vitals-bp {
  display: flex;
  align-items: center;
  gap: 4px;
  width: 100%;
  min-width: 0;
}

.clw-vitals-bp__label {
  flex: 0 0 auto;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-vitals-bp__sep {
  flex: 0 0 auto;
  color: var(--eu-text-secondary, #6b7280);
  font-weight: 700;
}

.clw-vitals-bp .eu-input.clw-vitals-field__input {
  flex: 1 1 0;
  width: auto !important;
  min-width: 3rem;
}

.clw-vitals-field__input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}

.clw-vitals-field__input[type="number"]::-webkit-outer-spin-button,
.clw-vitals-field__input[type="number"]::-webkit-inner-spin-button {
  appearance: none;
  -webkit-appearance: none;
  margin: 0;
}

.clw-vitals-prev {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 4px;
  margin: 0;
  min-height: 0.875rem;
  font-size: 0.625rem;
  line-height: 1.2;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-vitals-prev__label {
  font-weight: 600;
}

.clw-vitals-prev__value,
.clw-vitals-prev__at {
  font-weight: 500;
}

.clw-vitals-prev.is-abnormal .clw-vitals-prev__value,
.clw-vitals-prev.is-abnormal .clw-vitals-prev__flag {
  color: var(--eu-warning, #b45309);
  font-weight: 700;
}

.clw-vitals-bmi {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 2rem;
  height: 2rem;
  padding: 0 8px;
  border: 1.5px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface-muted, #f3f4f6);
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--eu-text-primary, #111827);
  box-sizing: border-box;
}

.clw-vitals-form--inline .eu-field-error {
  margin: 0;
  font-size: 0.6875rem;
}

.clw-vitals-banner {
  margin: 0 0 10px;
  padding: 6px 8px;
  border-radius: var(--eu-radius-sm, 6px);
  font-size: 0.75rem;
  font-weight: 600;
}

.clw-vitals-banner--warn {
  background: var(--eu-warning-bg, #fffbeb);
  color: var(--eu-warning, #b45309);
}

.clw-vitals-banner--block {
  background: var(--eu-danger-bg, #fef2f2);
  color: var(--eu-danger-text, #991b1b);
}

.clw-vitals-banner--ok {
  background: var(--eu-success-bg, #ecfdf5);
  color: var(--eu-success, #15803d);
}

.clw-vitals-field .eu-input.is-warn {
  border-color: var(--eu-warning, #b45309);
}

.clw-vitals-field .eu-input.is-invalid {
  border-color: var(--eu-danger, #dc2626);
}

.clw-vitals-field .eu-field-error.is-warn {
  color: var(--eu-warning, #b45309);
}

@media (max-width: 900px) {
  .clw-vitals__grid,
  .clw-vitals-form__grid.eu-form-grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .clw-vitals-form__grid .eu-form-grid--span-2 {
    grid-column: span 2;
  }
}

@media (max-width: 900px) {
  .clw-rx-split {
    grid-template-columns: 1fr;
  }

  .clw-rx-quick,
  .clw-rx-quick:has(.clw-rx-quick__fav) {
    grid-template-columns: 1fr 1fr;
    max-height: none;
  }

  .clw-rx-editor__fields {
    grid-template-columns: 1fr 1fr;
  }
}

.clw-order-details-form {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 36rem;
}

.clw-order-details-form__title {
  margin: 0;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-order-confirm {
  padding: 8px 10px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-accent-subtle, #ecfdf5);
}

.clw-order-confirm__name {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--eu-text-primary, #111827);
}

.clw-order-confirm__meta {
  margin: 2px 0 0;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-order-prep-note {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--chk-accent, #0f766e);
}

.clw-order-details-form__row {
  display: grid;
  grid-template-columns: minmax(0, 12rem) auto;
  gap: 10px 16px;
  align-items: end;
}

.clw-order-indication {
  max-width: 28rem;
}

.clw-order-urgent {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
}

.clw-order-more {
  margin-top: 2px;
}

.clw-order-more > summary {
  cursor: pointer;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--chk-accent, #0f766e);
}

.clw-order-placed {
  margin-bottom: 10px;
  padding: 8px 10px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-accent-subtle, #ecfdf5);
}

.clw-order-placed--alert {
  background: var(--eu-danger-subtle, #fef2f2);
  border-color: var(--eu-danger, #b91c1c);
}

.clw-order-placed__title {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--eu-text-primary, #111827);
}

.clw-order-placed__number,
.clw-order-placed__status {
  margin: 2px 0 0;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-order-compose-toggle {
  margin-bottom: 10px;
}

.clw-order-compose-toggle > summary {
  list-style: none;
  display: inline-flex;
  cursor: pointer;
}

.clw-order-compose-toggle > summary::-webkit-details-marker {
  display: none;
}

.clw-order-compose-toggle__body {
  margin-top: 8px;
}

.clw-order-status__row--fresh {
  background: var(--eu-accent-subtle, #ecfdf5);
}

@media (max-width: 900px) {
  .clw-order-picker.eu-form-grid--2,
  .clw-order-quick,
  .clw-order-more__body.eu-form-grid--2,
  .clw-order-details-form__row {
    grid-template-columns: 1fr;
  }

  .clw-order-quick {
    max-height: none;
  }
}

.clw-order-compose > summary {
  list-style: none;
  display: inline-flex;
  cursor: pointer;
}

.clw-order-compose > summary::-webkit-details-marker {
  display: none;
}

.clw-order-compose[open] > summary {
  margin-bottom: var(--eu-space-sm);
}

@media (max-width: 1100px) {
  .clw-workspace__body {
    grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  }
}

@media (max-width: 1024px) {
  .clw-banner {
    grid-template-columns: 1fr;
    grid-template-areas:
      "identity"
      "rail"
      "grid"
      "safety";
  }

  .clw-banner__rail {
    align-items: flex-start;
  }

  .clw-banner__badges,
  .clw-banner__state {
    justify-content: flex-start;
  }

  .clw-workspace__body {
    grid-template-columns: 1fr;
  }

  .clw-form-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .clw-banner__grid,
  .clw-banner__safety,
  .clw-summary__grid {
    grid-template-columns: 1fr;
  }

  .clw-toolbar__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .clw-toolbar__btn {
    min-width: 36px;
    justify-content: center;
  }

  .clw-timeline__item,
  .clw-audit-list__item {
    grid-template-columns: 1fr;
  }

  .clw-timeline__actor,
  .clw-audit-list__when {
    text-align: left;
  }

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

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

  .clw-history__summary {
    grid-template-columns: 1fr;
  }
}

/* —— EMR_15 screen tip mini banner —— */
.clw-screen-tip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  padding: 6px 10px;
  margin-bottom: 10px;
  background: var(--eu-surface-muted, #f8fafc);
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  font-size: 0.6875rem;
}

.clw-screen-tip--sticky {
  position: sticky;
  top: 0;
  z-index: 12;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.06);
}

.clw-screen-tip__identity {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 180px;
}

.clw-screen-tip__who {
  min-width: 0;
}

.clw-screen-tip__name {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.2;
}

.clw-screen-tip__meta {
  display: block;
  color: var(--eu-text-secondary, #64748b);
  line-height: 1.2;
}

.clw-screen-tip__items {
  display: flex;
  flex: 1 1 320px;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}

.clw-screen-tip__item {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  max-width: 100%;
  padding: 3px 8px;
  border-radius: var(--eu-radius-sm, 6px);
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  background: var(--eu-surface-raised, #fff);
}

.clw-screen-tip__item--warning,
.clw-screen-tip__item.is-alert {
  border-color: color-mix(in srgb, var(--eu-warning, #d97706) 35%, var(--eu-border-subtle, #e5e7eb));
  background: var(--eu-warning-bg, #fffbeb);
}

.clw-screen-tip__item--danger {
  border-color: color-mix(in srgb, var(--eu-danger, #dc2626) 35%, var(--eu-border-subtle, #e5e7eb));
  background: var(--eu-danger-bg, #fef2f2);
}

.clw-screen-tip__item--info {
  border-color: color-mix(in srgb, var(--chk-accent, #0f766e) 25%, var(--eu-border-subtle, #e5e7eb));
}

.clw-screen-tip__label {
  font-weight: 600;
  color: var(--eu-text-secondary, #64748b);
  white-space: nowrap;
}

.clw-screen-tip__value {
  color: var(--eu-text-primary, #0f172a);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nur-patient-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 10px;
}

.nur-patient-bar__chart {
  margin-left: auto;
}

/* —— Clinical pulse (current situation) —— */
.clw-pulse {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}

.clw-pulse__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  min-width: 0;
  padding: 6px 8px;
  text-align: left;
  cursor: pointer;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface-raised, #fff);
  text-decoration: none;
  color: inherit;
}

.clw-pulse__item:hover,
.clw-pulse__item:focus-visible {
  border-color: var(--chk-accent, #0f766e);
  outline: none;
}

.clw-pulse__item--warning {
  background: var(--eu-warning-bg, #fef3c7);
}

.clw-pulse__item--danger,
.clw-pulse__item.is-alert {
  background: var(--eu-danger-bg, #fef2f2);
}

.clw-pulse__item--success {
  background: var(--eu-success-bg, #ecfdf5);
}

.clw-pulse__item--info {
  background: var(--eu-info-bg, #eff6ff);
}

.clw-pulse__label {
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #9ca3af);
}

.clw-pulse__value {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--eu-text-primary, #111827);
  line-height: 1.25;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.clw-pulse__item--danger .clw-pulse__value,
.clw-pulse__item.is-alert .clw-pulse__value {
  color: var(--eu-danger-text, #991b1b);
}

.clw-pulse__count {
  font-size: 0.625rem;
  font-weight: 600;
  color: var(--eu-text-secondary, #6b7280);
}

/* —— Visit state —— */
.clw-visit-state {
  display: flex;
  align-items: center;
  gap: 6px;
}

.clw-visit-state__form {
  margin: 0;
}

.clw-visit-state__chip {
  font-size: 0.75rem;
}

/* —— Single-column workspace —— */
.clw-workspace__body--single {
  grid-template-columns: minmax(0, 1fr);
}

.clw-landing__alerts {
  margin-bottom: 10px;
  padding: 8px 10px;
  border: 1px solid var(--eu-danger-text, #991b1b);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-danger-bg, #fef2f2);
}

.clw-landing__alerts-title {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-danger-text, #991b1b);
  margin-bottom: 4px;
}

/* —— Drawers —— */
.clw-drawer {
  width: min(28rem, 92vw);
  max-height: 80vh;
  margin: 0 0 0 auto;
  padding: 0;
  border: 0;
  border-left: 1px solid var(--eu-border-subtle, #e5e7eb);
  background: var(--eu-surface-raised, #fff);
  color: var(--eu-text-primary, #111827);
}

.clw-drawer--vitals {
  display: flex;
  flex-direction: column;
  height: 100vh;
  max-height: 100vh;
}

.clw-drawer--vitals .clw-drawer__head,
.clw-drawer--vitals .clw-drawer__foot {
  flex-shrink: 0;
}

.clw-drawer--vitals .clw-drawer__body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}

.clw-drawer::backdrop {
  background: color-mix(in srgb, var(--eu-text-primary, #111827) 28%, transparent);
}

.clw-drawer__head,
.clw-drawer__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.clw-drawer__foot {
  border-bottom: 0;
  border-top: 1px solid var(--eu-border-subtle, #e5e7eb);
  justify-content: flex-end;
}

.clw-drawer__title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 700;
}

.clw-drawer__body {
  padding: 10px 12px 14px;
  overflow: auto;
}

.clw-drawer__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.clw-drawer__row {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.8125rem;
  line-height: 1.35;
}

.clw-drawer__primary {
  font-weight: 600;
  min-width: 0;
}

.clw-drawer__secondary {
  color: var(--eu-text-secondary, #6b7280);
  flex-shrink: 0;
}

.clw-drawer__row--danger .clw-drawer__primary,
.clw-drawer__row--danger .clw-drawer__secondary {
  color: var(--eu-danger-text, #991b1b);
  font-weight: 650;
}

.clw-drawer__row--warning .clw-drawer__primary {
  color: var(--eu-warning-text, #92400e);
}

.clw-review-list {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.clw-review-list__item {
  padding: 8px 10px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
}

.clw-review-list__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

/* —— Secondary History / Documents / Media / Audit —— */
.clw-secondary {
  background: var(--eu-surface-raised, #fff);
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  padding: 8px 10px 10px;
}

.clw-secondary__tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
  margin-bottom: 8px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.clw-secondary__tabs::-webkit-scrollbar {
  display: none;
  height: 0;
}

.clw-secondary__tab {
  flex: 0 0 auto;
  padding: 5px 12px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--eu-surface-muted, #f3f4f6);
  color: var(--eu-text-secondary, #6b7280);
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}

.clw-secondary__tab:hover,
.clw-secondary__tab:focus-visible {
  color: var(--chk-accent, #0f766e);
  background: var(--eu-surface-muted, #f3f4f6);
  border-color: var(--eu-border-subtle, #e5e7eb);
  outline: none;
}

.clw-secondary__tab.is-active {
  background: var(--chk-accent, #0f766e);
  color: #fff;
  border-color: var(--chk-accent, #0f766e);
  font-weight: 700;
}

.clw-secondary__panel[hidden] {
  display: none;
}

.clw-history__episodes {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.clw-history__episode {
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  padding: 0 10px 8px;
  background: var(--eu-surface-muted, #f9fafb);
}

.clw-history__episode.is-current {
  border-color: color-mix(in srgb, var(--chk-accent, #0f766e) 35%, var(--eu-border-subtle, #e5e7eb));
}

.clw-history__episode-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  padding: 8px 0;
  cursor: pointer;
  list-style: none;
  font-size: 0.75rem;
}

.clw-history__episode-summary::-webkit-details-marker {
  display: none;
}

.clw-history__episode-title {
  font-weight: 700;
  color: var(--eu-text-primary, #111827);
}

.clw-history__episode-period,
.clw-history__episode-count {
  color: var(--eu-text-secondary, #6b7280);
}

.clw-history__episode-summary-text {
  margin: 0 0 6px;
  font-size: 0.6875rem;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-history__meta {
  margin: 0 0 4px;
  padding: 0 2px;
  font-size: 0.6875rem;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-history__body .clw-timeline {
  max-height: 240px;
}

.clw-history__list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.clw-history__encounter {
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  padding: 0 8px;
}

.clw-history__encounter.is-current {
  border-color: var(--chk-accent, #0f766e);
}

.clw-history__summary {
  display: grid;
  grid-template-columns: auto auto auto auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px 8px;
  padding: 6px 0;
  cursor: pointer;
  list-style: none;
  font-size: 0.75rem;
}

.clw-history__summary::-webkit-details-marker {
  display: none;
}

.clw-history__number {
  font-weight: 700;
  color: var(--eu-text-primary, #111827);
}

.clw-history__type,
.clw-history__who,
.clw-history__when {
  color: var(--eu-text-secondary, #6b7280);
}

.clw-history__body {
  padding: 0 0 8px;
}

@media (max-width: 1200px) {
  .clw-pulse {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.clw-banner__cell--warning .clw-banner__value {
  color: var(--eu-warning-text, #b45309);
}

.clw-banner__cell--success .clw-banner__value {
  color: var(--chk-accent, #0f766e);
}

.clw-journey {
  margin-bottom: 12px;
  padding: 10px 12px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface-raised, #fff);
}

.clw-journey__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.clw-journey__title {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
}

.clw-journey__lede {
  margin: 0;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-journey__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.clw-journey__item {
  display: grid;
  grid-template-columns: 3.25rem minmax(0, 1fr);
  gap: 8px;
  align-items: start;
}

.clw-journey__time {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--chk-accent, #0f766e);
  font-variant-numeric: tabular-nums;
}

.clw-journey__label {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--eu-text-primary, #111827);
}

.clw-journey__actor {
  margin: 0;
  font-size: 0.6875rem;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-rx__ai {
  margin: 0;
  padding: 8px 10px;
  border-left: 3px solid var(--chk-accent, #0f766e);
  background: var(--eu-accent-subtle, #ecfdf5);
  border-radius: 0 var(--eu-radius-sm, 6px) var(--eu-radius-sm, 6px) 0;
  max-height: 14rem;
  overflow-y: auto;
}

.clw-rx__ai-kicker {
  margin: 0 0 2px;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--chk-accent, #0f766e);
}

.clw-rx__ai-headline {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
}

.clw-rx__ai-lines {
  margin: 4px 0 0;
  padding-left: 1.1rem;
  font-size: 0.75rem;
}

.clw-rx__ai-note {
  margin: 6px 0 0;
  font-size: 0.6875rem;
  color: var(--eu-text-secondary, #6b7280);
}

.clw-order-search__field {
  position: relative;
}

.clw-order-search__field .eu-speech {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
}

.clw-nursing-task {
  display: inline-block;
  font-size: 0.75rem;
  margin-right: 6px;
}

.clw-nursing-task.is-open {
  font-weight: 600;
}

.eu-diagram-workbench {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: min(72vh, 800px);
}

.eu-diagram-workbench__patient {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 4px 0;
}

.eu-diagram-workbench__patient-copy {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
  font-size: 0.75rem;
  color: var(--eu-text-muted, #6b7280);
}

.eu-diagram-workbench__patient-copy strong {
  font-size: 0.875rem;
  color: var(--eu-text, #111827);
}

.eu-diagram-workbench__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.eu-diagram-workbench__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
}

.eu-diagram-workbench__grid {
  display: grid;
  grid-template-columns: minmax(200px, 26%) minmax(0, 1fr);
  gap: 8px;
  align-items: stretch;
  flex: 1 1 auto;
  min-height: 0;
}

.eu-diagram-workbench__rail {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  min-height: 0;
  padding: 8px;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 8px;
  background: var(--eu-bg, #F6F8FB);
}

.eu-diagram-workbench__rail-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.eu-diagram-workbench__rail-title {
  margin: 0;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-light, #6B7280);
}

.eu-diagram-workbench__filter {
  height: 32px;
  padding: 4px 8px;
}

.eu-diagram-workbench__list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1 1 auto;
  min-height: 120px;
  overflow-y: auto;
}

.eu-diagram-workbench__item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 3px 6px;
  border-radius: 6px;
  text-decoration: none;
  color: var(--eu-text, #1F2937);
  border: 1px solid transparent;
}

.eu-diagram-workbench__item.is-filtered {
  display: none !important;
}

.eu-diagram-workbench__item:hover,
.eu-diagram-workbench__item.is-active {
  background: var(--eu-card, #fff);
  border-color: var(--eu-primary, #0A4B78);
}

.eu-diagram-workbench__item.is-active {
  box-shadow: inset 3px 0 0 var(--eu-primary, #0A4B78);
}

.eu-diagram-workbench__item.is-attached .eu-diagram-workbench__item-title {
  font-weight: 700;
}

.eu-diagram-workbench__on-visit {
  margin-left: auto;
  font-size: 0.625rem;
  font-weight: 700;
  color: var(--eu-success, #198754);
  white-space: nowrap;
}

.eu-diagram-workbench__selected-flag {
  margin-left: auto;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-primary, #0A4B78);
  white-space: nowrap;
}

.eu-diagram-workbench__thumb {
  width: 32px;
  height: 32px;
  object-fit: cover;
  border-radius: 4px;
  border: 1px solid var(--eu-border, #e5e7eb);
  background: var(--eu-card, #fff);
  flex: 0 0 auto;
}

.eu-diagram-workbench__item-title {
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.2;
}

.eu-diagram-workbench__attached {
  margin: 0;
  padding-top: 6px;
  border-top: 1px solid var(--eu-border, #e5e7eb);
  max-height: 160px;
  overflow: auto;
}

.eu-diagram-workbench__attached > summary {
  cursor: pointer;
  list-style: none;
}

.eu-diagram-workbench__recent {
  margin: 6px 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 0.75rem;
}

.eu-diagram-workbench__recent-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 4px 0;
}

.eu-diagram-workbench__recent-item.is-active {
  font-weight: 600;
}

.eu-diagram-workbench__recent-link {
  display: flex;
  flex-direction: column;
  gap: 1px;
  color: inherit;
  text-decoration: none;
}

.eu-diagram-workbench__recent-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}

.eu-diagram-workbench__inline-form {
  display: inline;
  margin: 0;
}

.eu-link {
  background: none;
  border: 0;
  padding: 0;
  color: var(--eu-primary, #0A4B78);
  font: inherit;
  cursor: pointer;
  text-decoration: none;
}

.eu-link--danger {
  color: var(--eu-danger, #DC3545);
}

.eu-diagram-workbench__caption {
  min-width: 0;
  flex: 0 0 auto;
}

.eu-diagram-workbench__caption .eu-note-capture {
  margin: 0;
}

.eu-diagram-workbench__caption .eu-note-capture__tools {
  min-height: 0;
  margin-bottom: 2px;
}

.eu-diagram-workbench__caption .eu-note-capture textarea {
  min-height: 32px;
  max-height: 4.5rem;
  resize: vertical;
}

.eu-diagram-workbench__caption .eu-note-capture__disclaimer {
  display: none;
}

.eu-diagram-workbench__actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex: 0 0 auto;
}

.eu-diagram-markup {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1 1 auto;
  min-height: 0;
}

.eu-diagram-markup__groups .eu-btn--sm {
  height: 28px;
  min-height: 28px;
  padding: 0 8px;
  font-size: 0.75rem;
}

.eu-diagram-markup__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 6px 12px;
}

.eu-diagram-markup__title {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}

.eu-diagram-markup__title strong {
  font-size: 0.9375rem;
}

.eu-diagram-markup__groups {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 16px;
}

.eu-diagram-markup__group,
.eu-diagram-markup__viewbar {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 4px 6px;
}

.eu-diagram-markup__viewbar {
  flex-wrap: wrap;
}

.eu-diagram-markup__group-label {
  flex: 0 0 auto;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #6b7280);
  white-space: nowrap;
}

.eu-diagram-workbench__main,
.eu-diagram-workbench__form {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  height: 100%;
}

.eu-diagram-markup__tools,
.eu-diagram-markup__findings,
.eu-diagram-markup__inks,
.eu-diagram-markup__widths {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
  align-items: center;
  margin: 0;
  padding: 0;
  border: 0;
}

.eu-diagram-markup__ink {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 6px;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 999px;
  background: var(--eu-card, #fff);
  color: var(--eu-text, #1F2937);
  font-size: 0.6875rem;
  cursor: pointer;
}

.eu-diagram-markup__ink.is-active {
  border-color: var(--eu-primary, #0A4B78);
  box-shadow: 0 0 0 1px var(--eu-primary, #0A4B78);
}

.eu-diagram-markup__swatch {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid var(--eu-border, #e5e7eb);
}

.eu-diagram-markup__swatch--mark { background: var(--eu-danger, #DC3545); }
.eu-diagram-markup__swatch--caution { background: var(--eu-warning, #FFC107); }
.eu-diagram-markup__swatch--note { background: var(--eu-primary, #0A4B78); }
.eu-diagram-markup__swatch--ok { background: var(--eu-success, #198754); }
.eu-diagram-markup__swatch--ink { background: var(--eu-text, #1F2937); }

.eu-diagram-markup__widths .eu-btn.is-active,
.eu-diagram-markup__tools .eu-btn.is-active,
.eu-diagram-markup__findings .eu-btn.is-active {
  background: var(--eu-primary, #0A4B78);
  color: var(--eu-card, #fff);
  border-color: var(--eu-primary, #0A4B78);
}

.eu-diagram-markup__viewport {
  flex: 1 1 auto;
  width: 100%;
  min-height: 440px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: auto;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 8px;
  background: var(--eu-bg, #F6F8FB);
}

.eu-diagram-markup__world {
  position: relative;
  display: block;
  flex: 0 0 auto;
  margin: auto;
  line-height: 0;
  box-sizing: border-box;
}

.eu-diagram-markup__master {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: fill;
  pointer-events: none;
  user-select: none;
  background: var(--eu-card, #fff);
}

.eu-diagram-markup__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  cursor: crosshair;
  touch-action: none;
}

.eu-diagram-markup__zoom {
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  color: var(--eu-text-muted, #6b7280);
}

@media (max-width: 900px) {
  .eu-diagram-workbench__grid {
    grid-template-columns: 1fr;
  }

  .eu-diagram-workbench__toolbar {
    grid-template-columns: 1fr;
  }

  .eu-diagram-workbench__list {
    max-height: 160px;
  }

  .eu-diagram-markup__viewport {
    min-height: 320px;
  }
}

.clw-nursing-task.is-done {
  color: var(--eu-text-secondary, #6b7280);
}

.clw-hub-search {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  max-height: 80px;
}

.clw-hub-search .eu-input {
  flex: 1 1 16rem;
  min-width: 12rem;
}

.clw-hub-queue {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.clw-hub-queue__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  padding: 8px 0;
  border-bottom: 1px solid var(--eu-border, #e5e7eb);
}

.clw-hub-queue__row:last-child {
  border-bottom: 0;
}

.clw-hub-queue__main {
  flex: 1 1 12rem;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.clw-hub-queue__meta {
  font-size: 0.75rem;
  color: var(--eu-text-muted, #6b7280);
}

.clw-hub-queue__more {
  margin: 8px 0 0;
}

.clw-hub-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 8px;
}

.clw-hub-charts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.eu-trend {
  margin: 0;
  min-height: 148px;
}

.eu-trend--donut {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
}

.eu-trend__svg {
  width: 100%;
  height: 148px;
  display: block;
}

.eu-trend__svg--donut {
  width: 148px;
  height: 148px;
  flex: 0 0 148px;
}

.eu-trend__bar {
  fill: var(--eu-primary, #2563eb);
}

.eu-trend__bar--zero {
  fill: var(--eu-border, #e5e7eb);
}

.eu-trend__line {
  fill: none;
  stroke: var(--eu-primary, #2563eb);
  stroke-width: 2.5;
  stroke-linejoin: round;
  stroke-linecap: round;
}

.eu-trend__dot {
  fill: var(--eu-primary, #2563eb);
}

.eu-trend__tick {
  fill: var(--eu-text-muted, #6b7280);
  font-size: 8px;
}

.eu-trend__donut-track {
  fill: none;
  stroke: var(--eu-border, #e5e7eb);
  stroke-width: 16;
}

.eu-trend__arc {
  stroke-width: 16;
  transform-origin: 70px 70px;
  transform: rotate(-90deg);
}

.eu-trend__arc--0, .eu-trend__swatch--0 { stroke: var(--eu-primary, #2563eb); background: var(--eu-primary, #2563eb); }
.eu-trend__arc--1, .eu-trend__swatch--1 { stroke: var(--eu-success, #059669); background: var(--eu-success, #059669); }
.eu-trend__arc--2, .eu-trend__swatch--2 { stroke: var(--eu-warning, #d97706); background: var(--eu-warning, #d97706); }
.eu-trend__arc--3, .eu-trend__swatch--3 { stroke: var(--eu-danger, #dc2626); background: var(--eu-danger, #dc2626); }
.eu-trend__arc--4, .eu-trend__swatch--4 { stroke: var(--eu-info, #0284c7); background: var(--eu-info, #0284c7); }
.eu-trend__arc--5, .eu-trend__swatch--5 { stroke: var(--eu-text-muted, #64748b); background: var(--eu-text-muted, #64748b); }

.eu-trend__donut-total {
  fill: var(--eu-text, #111827);
  font-size: 18px;
  font-weight: 700;
}

.eu-trend__legend {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 0.75rem;
  color: var(--eu-text, #111827);
}

.eu-trend__legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
}

.eu-trend__swatch {
  width: 10px;
  height: 10px;
  border-radius: 2px;
  flex-shrink: 0;
}

.eu-trend__empty {
  margin: 0 0 8px;
  font-size: 0.8125rem;
  color: var(--eu-text-muted, #6b7280);
}

@media (max-width: 900px) {
  .clw-hub-links,
  .clw-hub-charts {
    grid-template-columns: 1fr;
  }
}
/* Corporate setup hub */
.corp-setup-guide {
  margin-bottom: 1.25rem;
  padding: 1rem 1.25rem;
  border: 1px solid color-mix(in srgb, var(--eu-accent, #0f766e) 25%, transparent);
  border-radius: 0.5rem;
  background: color-mix(in srgb, var(--eu-accent, #0f766e) 6%, transparent);
}

.corp-setup-guide__steps {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.corp-setup-guide__steps li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--eu-muted, #64748b);
  font-size: 0.875rem;
}

.corp-setup-guide__steps li.is-active {
  color: var(--eu-accent, #0f766e);
  font-weight: 600;
}

.corp-setup-guide__steps span {
  display: inline-flex;
  width: 1.5rem;
  height: 1.5rem;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #fff;
  border: 1px solid currentColor;
  font-size: 0.75rem;
  font-weight: 700;
}

.corp-setup-guide__hint {
  margin: 0.75rem 0 0;
  font-size: 0.8125rem;
  color: var(--eu-muted, #64748b);
}

.corp-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
  margin-bottom: 1.25rem;
}

@media (max-width: 900px) {
  .corp-steps { grid-template-columns: 1fr 1fr; }
}

.corp-steps__item {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.75rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0.5rem;
  background: #fff;
  text-decoration: none;
  color: inherit;
}

.corp-steps__item.is-active {
  border-color: var(--eu-accent, #0f766e);
  box-shadow: 0 0 0 1px var(--eu-accent, #0f766e);
}

.corp-steps__num {
  font-weight: 700;
  color: var(--eu-accent, #0f766e);
}

.corp-steps__label { font-weight: 600; font-size: 0.875rem; }
.corp-steps__status { font-size: 0.75rem; color: var(--eu-muted, #64748b); }

.corp-steps__item.is-complete .corp-steps__status { color: var(--eu-success, #15803d); }
.corp-steps__item.is-todo .corp-steps__status { color: var(--eu-warning, #b45309); }

.corp-advanced {
  margin: 1rem 0;
  padding: 0.75rem 1rem;
  border: 1px dashed var(--eu-border, #cbd5e1);
  border-radius: 0.5rem;
}

.corp-advanced summary {
  cursor: pointer;
  font-weight: 600;
  font-size: 0.875rem;
}

.corp-check {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.corp-rates-tip,
.corp-rates-note,
.corp-empty {
  font-size: 0.8125rem;
  color: var(--eu-muted, #64748b);
  margin: 0.75rem 0;
}

.corp-rates-table-wrap { max-height: 28rem; overflow: auto; }

.corp-rates-table .eu-input--dense {
  min-width: 5.5rem;
  padding: 0.35rem 0.5rem;
  font-size: 0.8125rem;
}

.corp-rates-table tr.is-configured {
  background: color-mix(in srgb, var(--eu-success, #15803d) 6%, transparent);
}

.corp-checklist {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
}

.corp-checklist li {
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.corp-add-search {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: flex-end;
}

.corp-add-search .eu-field {
  flex: 1 1 16rem;
  margin-bottom: 0;
}

.corp-hit-list {
  list-style: none;
  margin: 0.75rem 0 0;
  padding: 0;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0.5rem;
  max-height: 16rem;
  overflow: auto;
}

.corp-hit-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
  font-size: 0.875rem;
}

.corp-hit-list li:last-child { border-bottom: 0; }

.corp-hit-rate {
  display: inline-block;
  margin-left: 0.5rem;
  color: var(--eu-muted, #64748b);
  font-size: 0.8125rem;
}

.corp-add-selected {
  margin: 0 0 1rem;
  padding: 0.75rem 1rem;
  border-radius: 0.5rem;
  background: color-mix(in srgb, var(--eu-accent, #0f766e) 8%, transparent);
  font-size: 0.875rem;
}

.corp-add-rate-form {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--eu-border, #e2e8f0);
}
/* HIMS Design System — White + Light Blue palette */
:root {
  /* Cool white + light blue neutrals */
  --bg: #f1f6fb;
  --bg-2: #e6eef7;
  --surface: #ffffff;
  --surface-2: #f5f9fd;
  --surface-3: #e9f1fa;
  --border: #d6e2ef;
  --border-strong: #b6c6da;
  --text: #0f1c2e;
  --text-1: #0f1c2e;
  --text-2: #41506a;
  --text-3: #6f7e96;
  --text-4: #9eaabf;

  /* Light blue primary */
  --teal: #2563eb;
  --teal-2: #1d4ed8;
  --teal-soft: #dbe7fb;
  --teal-ink: #163a8a;

  /* Status colors retained but tuned cooler */
  --amber: #b45309;
  --amber-soft: #fcefcf;
  --amber-ink: #7a3a04;

  --red: #b91c1c;
  --red-soft: #fbe1e1;
  --green: #15803d;
  --green-soft: #dcefe1;
  --blue: #1e40af;
  --blue-soft: #d6e0f5;
  --violet: #5b21b6;
  --violet-soft: #e2d8f2;

  --ink: #0b1f3a;
  --ink-2: #14305a;

  --shadow-sm: 0 1px 2px rgba(40,36,28,0.06), 0 1px 1px rgba(40,36,28,0.04);
  --shadow-md: 0 4px 14px rgba(40,36,28,0.09), 0 1px 3px rgba(40,36,28,0.05);
  --shadow-lg: 0 16px 36px rgba(40,36,28,0.14), 0 2px 8px rgba(40,36,28,0.08);
  --shadow-inset: inset 0 1px 0 rgba(255,255,255,0.6);

  --radius-sm: 6px;
  --radius: 8px;
  --radius-lg: 12px;

  --nav-w: 240px;
  --nav-w-collapsed: 60px;
  --topbar-h: 48px;

  /* Medical indigo accent */
  --accent: oklch(48% .17 264);

  /* Group color tokens */
  --group-overview:    oklch(58% .04 260);
  --group-clinical:    oklch(60% .14 230);
  --group-diagnostics: oklch(60% .14 200);
  --group-operations:  oklch(62% .12 160);
  --group-finance:     oklch(64% .13 60);
  --group-insights:    oklch(60% .15 290);
  --group-admin:       oklch(58% .04 260);
}

[data-theme="dark"] {
  --bg: #0f1012;
  --surface: #17181b;
  --surface-2: #1c1e22;
  --surface-3: #23262b;
  --border: #2a2d33;
  --border-strong: #363a42;
  --text: #ececea;
  --text-1: #ececea;
  --text-2: #a7a59e;
  --text-3: #78766e;
  --text-4: #52504a;

  --teal: #2dd4bf;
  --teal-2: #14b8a6;
  --teal-soft: #0e2a28;
  --teal-ink: #99f6e4;

  --amber: #f59e0b;
  --amber-soft: #2a1f0c;
  --amber-ink: #fbbf24;

  --red: #f87171;
  --red-soft: #2a1413;
  --green: #4ade80;
  --green-soft: #102018;
  --blue: #60a5fa;
  --blue-soft: #0f1a2c;
  --violet: #a78bfa;
  --violet-soft: #1a1229;

  --shadow-sm: 0 1px 2px rgba(0,0,0,0.35);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.45);
  --shadow-lg: 0 12px 28px rgba(0,0,0,0.55);
}

* { box-sizing: border-box; }
html, body {
  margin: 0;
  padding: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}

body {
  background:
    radial-gradient(1200px 600px at 10% -10%, rgba(37,99,235,0.10), transparent 60%),
    radial-gradient(900px 500px at 110% 10%, rgba(96,165,250,0.08), transparent 60%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);
  background-attachment: fixed;
}

[data-theme="dark"] body {
  background:
    radial-gradient(1200px 600px at 10% -10%, rgba(45,212,191,0.05), transparent 60%),
    radial-gradient(900px 500px at 110% 10%, rgba(245,158,11,0.04), transparent 60%),
    linear-gradient(180deg, var(--bg) 0%, #0a0b0d 100%);
}

.mono { font-family: 'Courier New', monospace; }

button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; padding: 0; }
a { color: inherit; text-decoration: none; }
input, textarea, select { font-family: inherit; font-size: inherit; }

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 12px;
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-weight: 500;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  transition: background 0.08s, border-color 0.08s;
}

.btn:hover { background: var(--surface-3); border-color: var(--border-strong); }

.btn.primary {
  background: var(--text);
  color: var(--bg);
  border-color: var(--text);
}

.btn.primary:hover { background: var(--text-2); border-color: var(--text-2); }

.btn.accent {
  background: var(--teal);
  color: #fff;
  border-color: var(--teal);
}

.btn.accent:hover { background: var(--teal-2); border-color: var(--teal-2); }

.btn.ghost { border-color: transparent; background: transparent; }
.btn.ghost:hover { background: var(--surface-3); }

.btn.sm { height: 26px; padding: 0 8px; font-size: 12px; }
.btn svg { width: 14px; height: 14px; }

/* Cards */
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}

.card-header {
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.card-title {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: -0.005em;
  display: flex;
  align-items: center;
  gap: 8px;
}

.card-title-sub { font-size: 11px; color: var(--text-3); font-weight: 400; }
.card-body { padding: 16px; }
.card-body.flush { padding: 0; }

/* Badges */
.badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 11.5px;
  font-weight: 500;
  line-height: 1.4;
  white-space: nowrap;
}

.badge.dot::before {
  content: '';
  width: 5px; height: 5px; border-radius: 50%;
  background: currentColor;
}

.badge.teal { background: var(--teal-soft); color: var(--teal-ink); }
.badge.amber { background: var(--amber-soft); color: var(--amber-ink); }
.badge.red { background: var(--red-soft); color: var(--red); }
.badge.green { background: var(--green-soft); color: var(--green); }
.badge.blue { background: var(--blue-soft); color: var(--blue); }
.badge.violet { background: var(--violet-soft); color: var(--violet); }
.badge.gray { background: var(--surface-3); color: var(--text-2); }

/* Tables */
table.data {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

table.data th {
  text-align: left;
  padding: 11px 16px;
  font-size: 11px;
  font-weight: 600;
  color: var(--text-3);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  border-bottom: 1px solid var(--border);
  background: var(--surface-2);
}

table.data td {
  padding: 15px 16px;
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
  color: var(--text-2);
}

table.data tr:last-child td { border-bottom: none; }
table.data tbody tr:hover td { background: var(--surface-2); }

/* Stat cards */
.stat {
  padding: 14px 16px;
}

.stat-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-3);
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 6px;
}

.stat-value {
  font-size: 26px;
  font-weight: 600;
  letter-spacing: -0.02em;
  margin-top: 4px;
  font-family: 'Courier New', monospace;
}

.stat-value .unit { font-size: 13px; color: var(--text-3); margin-left: 3px; font-weight: 400; }

.stat-delta {
  font-size: 11px;
  margin-top: 4px;
  display: flex;
  align-items: center;
  gap: 4px;
  color: var(--text-3);
}

.stat-delta.up { color: var(--green); }
.stat-delta.down { color: var(--red); }

/* Grid helpers */
.grid { display: grid; gap: 16px; }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }

/* Alerts */
.alert-item {
  display: flex;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  align-items: flex-start;
}

.alert-item:last-child { border-bottom: none; }

.alert-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.alert-icon.red { background: var(--red-soft); color: var(--red); }
.alert-icon.amber { background: var(--amber-soft); color: var(--amber-ink); }
.alert-icon.blue { background: var(--blue-soft); color: var(--blue); }

.alert-main { flex: 1; min-width: 0; }
.alert-title { font-size: 13px; font-weight: 500; }
.alert-desc { font-size: 12px; color: var(--text-3); margin-top: 2px; }

/* Tabs */
.tabs {
  display: flex;
  gap: 2px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 20px;
}

.tab {
  padding: 10px 14px;
  font-size: 13px;
  color: var(--text-2);
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}

.tab:hover { color: var(--text); }

.tab.active { color: var(--text); font-weight: 500; }

.tab.active::after {
  content: '';
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: -1px;
  height: 2px;
  background: var(--teal);
}

/* Forms */
.form-group {
  margin-bottom: 16px;
}

.form-label {
  display: block;
  font-size: 13px;
  font-weight: 500;
  margin-bottom: 6px;
  color: var(--text);
}

.form-input,
.form-textarea,
.form-select {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-family: inherit;
  background: var(--surface);
  color: var(--text);
  transition: border-color 0.08s;
}

.form-input:hover,
.form-textarea:hover,
.form-select:hover {
  border-color: var(--border-strong);
}

.form-input:focus,
.form-textarea:focus,
.form-select:focus {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.form-textarea {
  resize: vertical;
  min-height: 100px;
}

.form-error {
  margin-top: 4px;
  font-size: 12px;
  color: var(--red);
}

.form-help {
  margin-top: 4px;
  font-size: 12px;
  color: var(--text-3);
}

/* Page layout */
.page {
  max-width: 1600px;
  margin: 0 auto;
  padding: 20px 28px 48px;
}

.page-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 20px;
  gap: 20px;
}

.page-title {
  font-size: var(--eu-font-page, 20px);
  font-weight: var(--eu-font-page-weight, 700);
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin: 0;
}

.page-subtitle {
  font-size: var(--eu-font-page-sub, 13px);
  font-weight: var(--eu-font-page-sub-weight, 400);
  color: var(--text-3);
  margin-top: 4px;
}

/* Breadcrumbs */
.breadcrumb {
  font-size: 12px;
  color: var(--text-3);
  margin-bottom: 6px;
  display: flex;
  gap: 6px;
  align-items: center;
}

.breadcrumb span { color: var(--text-4); }

/* Scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 10px; border: 2px solid var(--bg); }
::-webkit-scrollbar-thumb:hover { background: var(--border-strong); }

/* Responsive */
@media (max-width: 1100px) {
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  .page {
    padding: 16px 16px 32px;
  }

  .grid { gap: 12px; }
  .grid-4 { grid-template-columns: 1fr; }
  .grid-3 { grid-template-columns: 1fr; }
  .grid-2 { grid-template-columns: 1fr; }

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

  .page-title { font-size: var(--eu-font-page, 20px); }
}

/* App Layout Grid */
.app,
body.app-layout {
  display: grid;
  grid-template-columns: var(--nav-w) 1fr;
  grid-template-rows: var(--topbar-h) 1fr;
  grid-template-areas:
    "sidebar topbar"
    "sidebar main";
  height: 100vh;
  transition: grid-template-columns 0.2s ease;
}

.app.nav-collapsed,
body.app-layout.nav-collapsed {
  grid-template-columns: var(--nav-w-collapsed) 1fr;
}

.app.nav-top,
body.app-layout.nav-top {
  grid-template-columns: 1fr;
  grid-template-rows: var(--topbar-h) 1fr;
  grid-template-areas:
    "topbar"
    "main";
}

/* Sidebar */
.sidebar {
  grid-area: sidebar;
  background: linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
  color: #e6efff;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
  position: relative;
  border-right: 1px solid rgba(255,255,255,0.06);
}

[data-theme="dark"] .sidebar {
  background: linear-gradient(180deg, #0a0b0c 0%, #121316 100%);
}

.app.nav-top .sidebar {
  display: none;
}

.brand {
  height: var(--topbar-h);
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 16px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  flex-shrink: 0;
}

.brand-mark {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: linear-gradient(135deg, #60a5fa 0%, #2563eb 100%);
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: 700;
  font-size: 14px;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(37,99,235,0.4), inset 0 1px 0 rgba(255,255,255,0.2);
}

.brand-name {
  font-weight: 600;
  font-size: 15px;
  color: #f0f6ff;
}

.brand-sub {
  font-size: 10px;
  color: rgba(230,239,255,0.55);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Nav sections */
.nav-sections {
  flex: 1;
  overflow-y: auto;
  padding: 8px 8px 16px;
}

.nav-section {
  margin-top: 12px;
}

.nav-section-title {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(230,239,255,0.4);
  padding: 8px 10px 4px;
  font-weight: 600;
}

.nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  border-radius: var(--radius-sm);
  font-size: 13px;
  color: rgba(230,239,255,0.72);
  cursor: pointer;
  width: 100%;
  text-align: left;
  white-space: nowrap;
  transition: background 0.1s, color 0.1s;
  position: relative;
  border: none;
  background: none;
  font-weight: 500;
}

.nav-item:hover {
  background: rgba(255,255,255,0.06);
  color: #f0f6ff;
}

.nav-item.active {
  background: linear-gradient(90deg, rgba(96,165,250,0.22), rgba(96,165,250,0.06));
  color: #f0f6ff;
  font-weight: 500;
  box-shadow: inset 0 0 0 1px rgba(96,165,250,0.18);
}

.nav-item.active::before {
  content: '';
  position: absolute;
  left: -8px;
  top: 6px;
  bottom: 6px;
  width: 3px;
  background: linear-gradient(180deg, #93c5fd, #2563eb);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(96,165,250,0.6);
}

.nav-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  stroke-width: 1.75;
}

.nav-badge {
  margin-left: auto;
  font-size: 10px;
  padding: 1px 7px;
  border-radius: 10px;
  background: rgba(255,255,255,0.08);
  color: rgba(230,239,255,0.85);
  font-weight: 500;
}

.nav-badge.alert {
  background: rgba(245,158,11,0.18);
  color: #fbbf24;
}

/* Topbar */
.topbar {
  grid-area: topbar;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  padding: 0 20px;
  gap: 12px;
  z-index: 10;
}

.search {
  flex: 1;
  max-width: 520px;
  display: flex;
  align-items: center;
  gap: 8px;
  height: 34px;
  padding: 0 12px;
  background: var(--surface-3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--text-3);
  font-size: 13px;
  cursor: text;
}

.search:hover {
  border-color: var(--border-strong);
}

.search kbd {
  margin-left: auto;
  font-size: 10px;
  padding: 2px 6px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 4px;
  color: var(--text-3);
}

.topbar-spacer {
  flex: 1;
}

.topbar-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}

.icon-btn {
  width: 32px;
  height: 32px;
  border-radius: var(--radius-sm);
  display: grid;
  place-items: center;
  color: var(--text-2);
  position: relative;
  transition: background 0.08s;
  border: none;
  background: none;
  cursor: pointer;
}

.icon-btn:hover {
  background: var(--surface-3);
  color: var(--text);
}

.icon-btn .dot {
  position: absolute;
  top: 7px;
  right: 7px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--amber);
  border: 2px solid var(--surface);
}

.topbar-divider {
  width: 1px;
  height: 20px;
  background: var(--border);
  margin: 0 6px;
}

.env-chip {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border-radius: 6px;
  background: var(--green-soft);
  color: var(--green);
  font-size: 11px;
  font-family: 'Courier New', monospace;
}

.env-chip .pulse {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--green);
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}

/* Main content */
.main {
  grid-area: main;
  overflow-y: auto;
  background: var(--bg);
}

/* Hide old sidebar and topbar structure when new POC layout is used */
body.poc-layout .sidebar-bg,
body.poc-layout header {
  display: none;
}

body.poc-layout .flex.h-screen {
  display: none;
}

body.poc-layout {
  display: grid !important;
  grid-template-columns: var(--nav-w) 1fr;
  grid-template-rows: var(--topbar-h) 1fr;
  grid-template-areas:
    "sidebar topbar"
    "sidebar main";
  height: 100vh;
}

/* =============================================
   COMPONENT ADDITIONS & FIXES
   ============================================= */

/* Avatar / Initials circle used in tables */
.q-avatar {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: linear-gradient(135deg, var(--teal) 0%, var(--teal-2) 100%);
  color: #fff;
  font-weight: 700;
  font-size: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  letter-spacing: 0.02em;
}

/* Form select - same style as form-input */
.form-select {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-family: inherit;
  background: var(--surface);
  color: var(--text);
  transition: border-color 0.08s;
  appearance: auto;
}

.form-select:focus {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* Disabled button state */
.btn.disabled,
.btn[disabled] {
  opacity: 0.4;
  pointer-events: none;
}

/* Stat value color variants */
.stat-value.green { color: var(--green); }
.stat-value.red { color: var(--red); }
.stat-value.amber { color: var(--amber); }
.stat-value.blue { color: var(--blue); }
.stat-value.teal { color: var(--teal); }
.stat-value.gray { color: var(--text-3); }

/* Bar / Progress bar */
.bar {
  height: 6px;
  background: var(--surface-3);
  border-radius: 3px;
  overflow: hidden;
}

.bar-fill {
  height: 100%;
  border-radius: 3px;
  background: var(--teal);
  transition: width 0.6s ease;
}

/* Timeline list */
.tlist {
  padding: 8px 0;
}

.tlist-item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 10px 16px;
  position: relative;
}

.tlist-time {
  font-size: 11px;
  color: var(--text-3);
  font-family: 'Courier New', monospace;
  min-width: 44px;
  text-align: right;
  padding-top: 2px;
}

.tlist-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--border);
  margin-top: 5px;
  flex-shrink: 0;
}

.tlist-dot.teal { background: var(--teal); }
.tlist-dot.amber { background: var(--amber); }
.tlist-dot.red { background: var(--red); }
.tlist-dot.green { background: var(--green); }

.tlist-main { flex: 1; min-width: 0; }
.tlist-title { font-size: 13px; font-weight: 500; }
.tlist-desc { font-size: 12px; color: var(--text-3); margin-top: 2px; }

/* Alert time */
.alert-time {
  font-size: 11px;
  color: var(--text-3);
  flex-shrink: 0;
  font-family: 'Courier New', monospace;
}

/* Split main layout */
.split-main {
  grid-template-columns: 1fr 400px;
}

/* Context bar for patient chart */
.context-bar {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-bottom: 20px;
}

.ctx-avatar {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--teal) 0%, var(--teal-2) 100%);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
  flex-shrink: 0;
}

.ctx-main { flex: 1; min-width: 0; }
.ctx-name { font-weight: 600; font-size: 15px; }

.ctx-meta {
  font-size: 12px;
  color: var(--text-3);
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}

.ctx-meta span {
  display: flex;
  align-items: center;
  gap: 4px;
}

.ctx-stats {
  display: flex;
  gap: 10px;
}

.ctx-stat {
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: 6px;
  text-align: center;
  min-width: 52px;
}

.ctx-stat .k {
  font-size: 10px;
  color: var(--text-3);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.ctx-stat .v {
  font-size: 14px;
  font-weight: 600;
  margin-top: 2px;
  font-family: 'Courier New', monospace;
}

.ctx-stat .v.warn { color: var(--amber); }

/* Pagination */
.pagination {
  display: flex;
  gap: 6px;
  align-items: center;
  justify-content: center;
  padding: 12px;
}

.pagination .page,
.pagination .prev,
.pagination .next {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  border-radius: var(--radius-sm);
  font-size: 13px;
  border: 1px solid var(--border);
  color: var(--text);
  text-decoration: none;
  background: var(--surface);
  transition: all 0.15s;
}

.pagination .page:hover,
.pagination .prev:hover,
.pagination .next:hover {
  background: var(--surface-3);
  border-color: var(--border-strong);
}

.pagination .current {
  background: var(--teal);
  color: white;
  border-color: var(--teal);
}

.pagination .disabled {
  opacity: 0.4;
  pointer-events: none;
}

/* Chart legend */
.legend {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 0 4px;
}

.legend-item {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  color: var(--text-3);
}

.legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

/* ── Utility cluster (topbar icon group) ─────────────────────────────────── */
.app-utility-cluster {
  display: inline-flex;
  align-items: center;
  height: 36px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  padding: 0 3px;
  gap: 1px;
}

.app-utility-cluster__divider {
  width: 1px;
  height: 16px;
  background: var(--border);
  flex-shrink: 0;
  margin: 0 2px;
}

.app-utility-cluster button,
.app-utility-cluster a {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-2);
  transition: background 0.1s, color 0.1s;
  position: relative;
  border: none;
  background: transparent;
  cursor: pointer;
  text-decoration: none;
}

.app-utility-cluster button:hover,
.app-utility-cluster a:hover {
  background: var(--surface-3);
  color: var(--text);
}

/* ── Sidebar icon-only collapse (aligned with app_shell tokens) ───────────── */
html.sidebar-collapsed .app-sidebar {
  width: var(--app-sidebar-collapsed-width, var(--nav-w-collapsed));
}

html.sidebar-collapsed .app-sidebar .app-brand-copy,
html.sidebar-collapsed .app-sidebar .app-nav-link__label,
html.sidebar-collapsed .app-sidebar .app-nav-link__badge,
html.sidebar-collapsed .app-sidebar .app-nav-group__count,
html.sidebar-collapsed .app-sidebar .app-nav-group__summary,
html.sidebar-collapsed .app-sidebar .app-workspace-chip__copy,
html.sidebar-collapsed .app-sidebar .app-workspace-chip__caret,
html.sidebar-collapsed .app-sidebar .app-user-chip__copy,
html.sidebar-collapsed .app-sidebar .app-user-chip__logout {
  display: none !important;
}

html.sidebar-collapsed .app-sidebar details.app-nav-group > .app-nav-group__items {
  display: flex !important;
}

html.sidebar-collapsed .app-sidebar .app-nav-link {
  justify-content: center;
  padding-left: 0;
  padding-right: 0;
}

html.sidebar-collapsed .app-sidebar .app-workspace-chip,
html.sidebar-collapsed .app-sidebar .app-user-chip {
  justify-content: center;
}

html.sidebar-collapsed .app-sidebar .app-user-chip {
  padding: 6px;
}
.diet-shell {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.diet-actions,
.diet-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 8px;
}

.diet-label {
  font-size: 0.75rem;
  color: var(--eu-text-muted, #475569);
}

.diet-hint,
.diet-meta {
  color: var(--eu-text-muted, #475569);
  font-size: 0.8125rem;
}

.diet-patient {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 8px;
  background: var(--eu-surface, #fff);
}

.diet-patient-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: inherit;
}

.diet-table {
  width: 100%;
}

.diet-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--eu-surface-muted, #f1f5f9);
}

.diet-badge--active {
  background: var(--chk-accent-soft, #ccfbf1);
}

.diet-list {
  margin: 0 0 12px;
  padding-left: 16px;
}

.diet-masters {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.diet-form,
.diet-cancel {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 42rem;
}

.diet-chart-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.diet-chart-line .eu-input {
  max-width: 22rem;
}

.diet-chart-qty {
  max-width: 6rem;
}

@media (max-width: 1100px) {
  .diet-masters {
    grid-template-columns: 1fr;
  }
}
/* Discharge summary author + print — PEUF tokens only */

.ds-preview-page {
  max-width: 980px;
}

.ds-preview-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.ds-preview-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.ds-preview-frame {
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 10px;
  padding: 8px 4px 20px;
  overflow: auto;
}

.ds-print--preview {
  box-shadow: none;
}

.ds-print__template {
  font-size: 11px;
  color: #475569;
  margin-bottom: 4px;
  font-family: system-ui, sans-serif;
}

.ds-print-page {
  background: #f1f5f9;
  min-height: 100vh;
  padding: 16px;
}

.ds-print-page .ds-print {
  background: #fff;
  box-shadow: 0 1px 3px rgb(15 23 42 / 12%);
}

.ds-author-meta {
  margin-bottom: 16px;
  padding: 12px 16px;
}

.ds-author-meta__row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ds-author-meta .eu-muted {
  margin-left: 8px;
  color: var(--eu-muted, #64748b);
  font-size: 0.875rem;
}

.ds-author__layout {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 16px;
  min-height: 420px;
}

.ds-author__nav {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ds-author__nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  text-align: left;
  border: 1px solid var(--eu-border, #e2e8f0);
  background: var(--eu-surface, #fff);
  border-radius: 8px;
  padding: 10px 12px;
  cursor: pointer;
  color: var(--eu-text, #0f172a);
  font-size: 0.875rem;
}

.ds-author__nav-item.is-active,
.ds-author__nav-item[aria-current="step"] {
  border-color: var(--eu-accent, #0f766e);
  background: color-mix(in srgb, var(--eu-accent, #0f766e) 10%, white);
  font-weight: 600;
}

.ds-author__nav-idx {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: var(--eu-accent, #0f766e);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
}

.ds-author__panel {
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 10px;
  padding: 16px;
}

.ds-author__panel[hidden] {
  display: none !important;
}

.ds-author__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
  position: sticky;
  bottom: 0;
  background: var(--eu-bg, #f8fafc);
  padding: 12px 0;
}

.adt-dc-summary-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.adt-dc-summary-panel__actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

/* Print layout */
.ds-print {
  position: relative;
  max-width: 800px;
  margin: 0 auto;
  padding: 24px 28px 40px;
  color: #111827;
  font-family: "Source Serif 4", "Georgia", "Times New Roman", serif;
  font-size: 12.5px;
  line-height: 1.45;
  background: #fff;
}

.ds-print__toolbar {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
}

.ds-print__header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 2px solid #0f172a;
  padding-bottom: 12px;
  margin-bottom: 14px;
}

.ds-print__hospital {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.ds-print__addr {
  margin: 2px 0 0;
  color: #475569;
  font-size: 11px;
  font-family: system-ui, sans-serif;
}

.ds-print__docmeta {
  text-align: right;
  font-family: system-ui, sans-serif;
  font-size: 11px;
}

.ds-print__doctype {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 6px;
}

.ds-print__band {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px 12px;
  padding: 10px 12px;
  margin-bottom: 14px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-family: system-ui, sans-serif;
  font-size: 11px;
}

.ds-print__band span {
  display: block;
  color: #64748b;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.ds-print__section {
  margin-bottom: 12px;
}

.ds-print__section h2 {
  margin: 0 0 4px;
  font-size: 12px;
  font-family: system-ui, sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #0f172a;
  border-bottom: 1px solid #cbd5e1;
  padding-bottom: 2px;
}

.ds-print__section p,
.ds-print__section ul {
  margin: 0;
}

.ds-print__warn {
  margin-top: 8px !important;
  padding: 8px 10px;
  border-left: 3px solid #b91c1c;
  background: #fef2f2;
  font-family: system-ui, sans-serif;
}

.ds-print__footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: 28px;
  padding-top: 12px;
  border-top: 1px solid #cbd5e1;
  font-family: system-ui, sans-serif;
}

.ds-print__sign-line {
  width: 180px;
  border-top: 1px solid #0f172a;
  margin-bottom: 6px;
}

.ds-print__muted {
  color: #64748b;
  font-size: 10px;
}

.ds-print__watermark {
  position: fixed;
  top: 40%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-28deg);
  font-size: 72px;
  font-weight: 800;
  color: rgba(148, 163, 184, 0.25);
  pointer-events: none;
  z-index: 0;
  font-family: system-ui, sans-serif;
  letter-spacing: 0.2em;
}

.ds-print > *:not(.ds-print__watermark) {
  position: relative;
  z-index: 1;
}

@media print {
  .no-print { display: none !important; }
  .ds-print {
    max-width: none;
    padding: 0;
  }
  @page {
    size: A4;
    margin: 14mm 14mm 16mm;
  }
}

@media (max-width: 900px) {
  .ds-author__layout {
    grid-template-columns: 1fr;
  }
  .ds-print__band {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Discharge template library / designer */
.ds-tpl-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}

.ds-tpl-kpi {
  display: block;
  padding: 12px 14px;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 10px;
  background: var(--eu-surface, #fff);
  text-decoration: none;
  color: inherit;
}

.ds-tpl-kpi__value {
  display: block;
  font-size: 1.35rem;
  font-weight: 700;
}

.ds-tpl-kpi__label {
  font-size: 0.75rem;
  color: var(--eu-muted, #64748b);
}

.ds-tpl-filters {
  margin-bottom: 16px;
  padding: 12px 16px;
}

.ds-tpl-steps {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
}

.ds-tpl-steps__item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid var(--eu-border, #e2e8f0);
  font-size: 0.875rem;
}

.ds-tpl-steps__item.is-active {
  border-color: var(--eu-accent, #0f766e);
  background: color-mix(in srgb, var(--eu-accent, #0f766e) 12%, white);
  font-weight: 600;
}

.ds-tpl-steps__idx {
  width: 22px;
  height: 22px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--eu-accent, #0f766e);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
}

.ds-rte-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
  align-items: center;
}

.ds-rte-merge {
  display: flex;
  gap: 6px;
  margin-left: auto;
  align-items: center;
}

.ds-rte-editor {
  min-height: 320px;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 8px;
  padding: 14px 16px;
  background: #fff;
  line-height: 1.5;
}

.ds-rte-editor:focus {
  outline: 2px solid color-mix(in srgb, var(--eu-accent, #0f766e) 40%, white);
}

.ds-tpl-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

.ds-print__rich {
  margin: 12px 0 18px;
  font-family: "Source Serif 4", Georgia, serif;
  line-height: 1.5;
}

.ds-print__rich h2,
.ds-print__rich h3 {
  font-family: system-ui, sans-serif;
  margin: 12px 0 6px;
}

@media (max-width: 900px) {
  .ds-tpl-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ds-rte-merge { margin-left: 0; width: 100%; }
}

.ds-template-picker {
  margin-bottom: 16px;
  padding: 12px 16px;
}

.ds-template-picker__head {
  margin-bottom: 8px;
}

.ds-template-picker .eu-help--warn {
  color: var(--eu-warning-text, #b45309);
}

.ds-template-picker .eu-select {
  max-width: 40rem;
}

.ds-letter-workspace {
  padding: 12px 16px 16px;
  margin-bottom: 16px;
}

.ds-letter-workspace__head {
  margin-bottom: 12px;
}

.ds-letter-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 6px;
  font-size: 0.75rem;
}

.ds-letter-legend__auto::before,
.ds-letter-legend__fill::before {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 2px;
  margin-right: 6px;
  vertical-align: middle;
}

.ds-letter-legend__auto::before {
  background: color-mix(in srgb, var(--eu-accent, #0f766e) 25%, white);
  border: 1px solid var(--eu-accent, #0f766e);
}

.ds-letter-legend__fill::before {
  background: #fff;
  border: 1px dashed var(--eu-border, #94a3b8);
}

.ds-letter-workspace__meta {
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.ds-letter-workspace__body {
  background: #fff;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 8px;
  padding: 16px 18px;
  max-width: none;
  width: 100%;
}

.ds-letter-autofill {
  display: inline;
  padding: 0 2px;
  border-radius: 3px;
  background: color-mix(in srgb, var(--eu-accent, #0f766e) 12%, white);
  font-weight: 600;
}

.ds-letter-fill {
  display: inline-block;
  width: 100%;
  max-width: 100%;
  margin: 4px 0 8px;
  padding: 8px 10px;
  border: 1px dashed var(--eu-border, #94a3b8);
  border-radius: 6px;
  background: #fffbeb;
  font: inherit;
  line-height: 1.4;
}

.ds-letter-fill:focus {
  outline: 2px solid color-mix(in srgb, var(--eu-accent, #0f766e) 45%, white);
  border-style: solid;
  background: #fff;
}

.ds-letter-fill--area {
  min-height: 4.5rem;
  resize: vertical;
}

.ds-letter-fill--date {
  width: auto;
  min-width: 11rem;
}

.ds-author--letter .ds-author__actions {
  margin-top: 12px;
}

.ds-letter-wysiwyg {
  min-height: 560px;
  max-width: none;
  width: 100%;
  font-family: "Calibri", "Segoe UI", Georgia, "Source Serif 4", serif;
  line-height: 1.55;
}

.ds-letter-wysiwyg:focus {
  outline: 2px solid color-mix(in srgb, var(--eu-accent, #0f766e) 40%, white);
}

.ds-letter-workspace .ds-rte-toolbar {
  margin-bottom: 10px;
}

/* Specialty field editor (template designer) */
.ds-spec__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--eu-space-md, 16px);
  margin-bottom: var(--eu-space-sm, 12px);
}

.ds-spec__list {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-sm, 12px);
}

.ds-spec-field__bar {
  display: flex;
  align-items: center;
  gap: var(--eu-space-sm, 8px);
  margin-bottom: var(--eu-space-sm, 8px);
}

.ds-spec-field__idx {
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--eu-secondary, #ecfdf5);
  color: var(--eu-primary, #0f766e);
  font-size: 0.75rem;
  font-weight: 700;
}

.ds-spec-field__title {
  font-size: 0.875rem;
  font-weight: 600;
  flex: 1;
}

.ds-spec-field__ops {
  display: inline-flex;
  gap: 4px;
}

.ds-spec-field__required {
  display: flex;
  align-items: flex-end;
  padding-bottom: 0.35rem;
}

.ds-spec-preview {
  margin-bottom: var(--eu-space-md, 16px);
  padding: var(--eu-space-sm, 12px) var(--eu-space-md, 16px);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-bg, #f8fafc);
}

.ds-spec-preview__list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.875rem;
}

.ds-spec-preview__meta {
  color: var(--eu-muted, #64748b);
  margin-left: 0.35rem;
}

.ds-letter-specialty {
  margin-top: var(--eu-space-md, 16px);
  padding: var(--eu-space-md, 16px);
}

.ds-letter-specialty .eu-section-title {
  margin-top: 0;
}
.eu-cdss-packs {
  display: grid;
  gap: 16px;
}

.eu-cdss-packs__toolbar {
  display: flex;
  gap: 8px;
}

.eu-cdss-packs__blurb {
  margin: 0 0 12px;
  color: var(--eu-text-secondary);
  font-size: 0.875rem;
}

.eu-cdss-packs__rules {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
}

.eu-cdss-packs__rule {
  display: grid;
  gap: 6px;
  padding: 12px;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius, 8px);
  background: var(--eu-surface, #fff);
}

.eu-cdss-packs__summary {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.45;
}

.eu-cdss-packs__advice {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--eu-text-secondary);
}

.eu-cdss-packs__advice-label {
  font-weight: 600;
  color: var(--eu-text);
}
/*
 * enterprise_ui.css — HIMS Enterprise UI Upgrade
 *
 * PURPOSE: Complete visual upgrade for all forms, tables, cards, and layout.
 *          Drop-in replacement / addition that works alongside existing CSS.
 *          Uses the existing --app-* and design-system variables as base.
 *
 * COVERS:
 *   1. Enhanced CSS Variables & Tokens
 *   2. Page Layout & Header
 *   3. Cards — standard, flush, collapsible
 *   4. Forms — fields, labels, validation, sections
 *   5. Tables — enterprise-grade with actions, badges, sorting
 *   6. Buttons — full hierarchy
 *   7. Badges & Status indicators
 *   8. Empty states
 *   9. Filter bars
 *  10. Pagination
 *  11. Modal-style panels
 *  12. Stat/KPI blocks
 *  13. Tab bars
 *  14. Action menus
 *  15. Dark mode overrides
 *  16. Responsive
 */

/* ═══════════════════════════════════════════════════════════════
   1. ENHANCED TOKENS
   ═══════════════════════════════════════════════════════════════ */

:root {
  /* Refined spacing scale (no design-system equivalent — kept as-is, layout-only, no visual-identity conflict) */
  --eu-space-xs:   4px;
  --eu-space-sm:   8px;
  --eu-space-md:  16px;
  --eu-space-lg:  16px;
  --eu-space-xl:  32px;
  --eu-space-2xl: 48px;

  /* Radii — aliased to design-system.css so eu-* components match the rest of the app */
  --eu-radius-xs: var(--radius-sm);
  --eu-radius-sm: var(--radius);
  --eu-radius-md: var(--radius);
  --eu-radius-lg: var(--radius-lg);
  --eu-radius-xl: var(--radius-lg);

  /* Form field heights (layout-only, kept) */
  --eu-field-h:    44px;
  --eu-field-h-sm: 34px;
  --eu-field-h-lg: 52px;

  /* Shadows — aliased to design-system.css */
  --eu-shadow-xs: var(--shadow-sm);
  --eu-shadow-sm: var(--shadow-sm);
  --eu-shadow-md: var(--shadow-md);
  --eu-shadow-lg: var(--shadow-lg);
  --eu-shadow-xl: var(--shadow-lg);

  /* Surface — aliased to design-system.css */
  --eu-surface:        var(--surface);
  --eu-surface-raised: var(--surface);
  --eu-surface-subtle: var(--surface-2);
  --eu-surface-muted:  var(--surface-3);

  /* Borders — aliased to design-system.css */
  --eu-border:        var(--border);
  --eu-border-strong: var(--border-strong);
  --eu-border-focus:  var(--teal);

  /* Text — aliased to design-system.css */
  --eu-text:       var(--text);
  --eu-text-soft:  var(--text-2);
  --eu-text-muted: var(--text-3);
  --eu-text-faint: var(--text-4);

  /* Brand — aliased to design-system.css (--teal is the app's actual primary blue) */
  --eu-primary:       var(--teal);
  --eu-primary-dark:  var(--teal-2);
  --eu-primary-light: var(--teal-soft);
  --eu-primary-ring:  rgba(37,99,235,0.14);

  /* Semantic — aliased to design-system.css */
  --eu-success:       var(--green);
  --eu-success-bg:    var(--green-soft);
  --eu-success-border:#bbf7d0;
  --eu-warning:       var(--amber);
  --eu-warning-bg:    var(--amber-soft);
  --eu-warning-border:#fde68a;
  --eu-danger:        var(--red);
  --eu-danger-bg:     var(--red-soft);
  --eu-danger-border: #fecaca;
  --eu-info:          var(--blue);
  --eu-info-bg:       #ecfeff;
  --eu-info-border:   #a5f3fc;

  /* ── Button colours (SINGLE PLACE to rebrand all buttons) ─────────────
     Change these tokens to restyle every .eu-btn--* across the app.
     Do not hardcode hex values on individual screens. */
  --eu-btn-primary-bg:          var(--eu-primary);
  --eu-btn-primary-border:      var(--eu-primary);
  --eu-btn-primary-text:        #ffffff;
  --eu-btn-primary-hover-bg:    var(--eu-primary-dark);
  --eu-btn-primary-hover-border:var(--eu-primary-dark);
  --eu-btn-primary-shadow:      0 1px 3px rgba(37,99,235,0.25), var(--eu-shadow-xs);
  --eu-btn-primary-hover-shadow:0 3px 8px rgba(37,99,235,0.30);

  --eu-btn-secondary-bg:          var(--eu-surface);
  --eu-btn-secondary-border:      var(--eu-border-strong);
  --eu-btn-secondary-text:        var(--eu-text-soft);
  --eu-btn-secondary-hover-bg:    var(--eu-surface-subtle);
  --eu-btn-secondary-hover-border:var(--eu-primary);
  --eu-btn-secondary-hover-text:  var(--eu-primary);

  --eu-btn-ghost-bg:          transparent;
  --eu-btn-ghost-border:      transparent;
  --eu-btn-ghost-text:        var(--eu-text-soft);
  --eu-btn-ghost-hover-bg:    var(--eu-surface-subtle);
  --eu-btn-ghost-hover-text:  var(--eu-primary);

  --eu-btn-success-bg:          var(--eu-success);
  --eu-btn-success-border:      var(--eu-success);
  --eu-btn-success-text:        #ffffff;
  --eu-btn-success-hover-bg:    #166534;
  --eu-btn-success-hover-border:#166534;

  --eu-btn-danger-bg:          var(--eu-danger);
  --eu-btn-danger-border:      var(--eu-danger);
  --eu-btn-danger-text:        #ffffff;

  --eu-btn-warning-bg:          var(--eu-warning-bg);
  --eu-btn-warning-border:      var(--eu-warning-border);
  --eu-btn-warning-text:        var(--eu-warning);
  --eu-btn-warning-hover-bg:    var(--eu-warning);
  --eu-btn-warning-hover-border:var(--eu-warning);
  --eu-btn-warning-hover-text:  #ffffff;

  /* Transition */
  --eu-transition: 0.16s cubic-bezier(0.4, 0, 0.2, 1);
}


/* ═══════════════════════════════════════════════════════════════
   2. PAGE LAYOUT & HEADER
   ═══════════════════════════════════════════════════════════════ */
.eu-display {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 34px;
  padding: 4px 0;
}

.eu-display__label {
  width: 140px;
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--eu-text-secondary);
  text-transform: uppercase;
}

.eu-display__value {
  font-size: 14px;
  font-weight: 500;
  color: var(--eu-text-primary);
}
.eu-summary-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
}

.eu-summary-label {
  font-weight: 500;
  color: var(--eu-text-secondary);
}

.eu-summary-value {
  font-weight: 600;
}

.eu-summary-row--highlight {
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px solid var(--eu-border-color);
  font-size: 16px;
  font-weight: 700;
}



.eu-page {
  /* No max-width cap — .app-shell__main already insets content from the
     viewport (24-28px), so this fills the rest of the available width
     instead of stacking a second, narrower constraint on top of it. */
  width: 100%;
  margin: 0 auto;
  padding: var(--eu-space-lg) 16px var(--eu-space-2xl);
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-lg);
  box-sizing: border-box;
}

/* Past ~1800px the line length of full-width form rows starts to hurt
   readability, so cap only at very large/ultrawide monitors. */
@media (min-width: 1800px) {
  .eu-page {
    max-width: 1760px;
  }
}

/* Page header bar */
.eu-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 16px;
  flex-wrap: wrap;
  margin-bottom: var(--eu-space-md);
}

.eu-page-header__row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 16px;
  flex-wrap: wrap;
  width: 100%;
}

.eu-page-header__info {
  min-width: 0;
  flex: 1 1 240px;
}

.eu-page-header__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.clinical-workbench,
.eu-search-page.clinical-workbench {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.clinical-workbench__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  max-width: 100%;
}

.clinical-workbench .eu-results-frame,
.clinical-workbench .eu-card,
.clinical-workbench .eu-table-wrap {
  max-width: 100%;
  min-width: 0;
}

.clinical-workbench .eu-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.clinical-workbench .eu-table {
  width: 100%;
  min-width: 720px;
}

/* ── Rail Find drawer: KPIs top · full-width results · overlay Find (no push) ── */
.eu-search-page--rail .eu-search-page__body,
.eu-search-page--rail .clinical-workbench__body {
  gap: 12px;
}

.eu-search-rail {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  width: 100%;
  position: relative;
}

.eu-search-rail__kpis {
  min-width: 0;
}

.eu-search-rail__kpis .eu-kpi-summary,
.eu-search-rail__kpis .eu-summary-bar {
  margin: 0;
}

.eu-search-rail__workspace {
  position: relative;
  display: block;
  min-width: 0;
  width: 100%;
}

.eu-search-rail__main {
  min-width: 0;
  width: 100%;
  /* Room for the floating Find tab so Action column stays visible */
  padding-right: 48px;
  box-sizing: border-box;
}

/* Tight Find tab — floats on the right edge; does not reserve table columns */
.eu-search-rail__tab {
  position: absolute;
  top: 8px;
  right: 0;
  z-index: 30;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  width: 40px;
  min-height: 88px;
  padding: 12px 6px;
  margin: 0;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-right: none;
  border-radius: var(--eu-radius-sm, 8px) 0 0 var(--eu-radius-sm, 8px);
  background: var(--eu-surface, #fff);
  color: var(--eu-text-secondary, #4b5563);
  cursor: pointer;
  box-shadow: var(--eu-shadow-sm, 0 1px 2px rgba(0, 0, 0, 0.06));
}

.eu-search-rail__tab:hover {
  border-color: var(--eu-accent, #0f766e);
  color: var(--eu-accent, #0f766e);
}

.eu-search-rail__tab.is-open {
  border-color: var(--eu-accent, #0f766e);
  background: var(--eu-accent-bg, #f0fdfa);
  color: var(--eu-accent, #0f766e);
  right: min(320px, 92vw);
}

.eu-search-rail__tab--active:not(.is-open) {
  border-color: var(--eu-warning, #d97706);
}

.eu-search-rail__tab-icon {
  display: inline-flex;
  line-height: 0;
}

.eu-search-rail__tab-label {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.2;
}

.eu-search-rail__tab-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--eu-warning, #d97706);
}

.eu-search-rail__backdrop {
  position: fixed;
  inset: 0;
  z-index: 40;
  background: rgba(15, 23, 42, 0.28);
  border: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
}

.eu-search-rail__backdrop[hidden] {
  display: none !important;
}

/* Overlay drawer — floats over results; table layout unchanged */
.eu-search-rail__drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 50;
  width: min(320px, 92vw);
  max-width: 320px;
  overflow: auto;
  background: var(--eu-surface, #fff);
  border-left: 1px solid var(--eu-border, #e5e7eb);
  box-shadow: -8px 0 24px rgba(15, 23, 42, 0.12);
  padding: 12px;
  box-sizing: border-box;
}

.eu-search-rail__drawer[hidden] {
  display: none !important;
}

.eu-search-rail__drawer .eu-search-panel {
  margin: 0;
  border: 0;
  box-shadow: none;
  background: transparent;
}

.eu-search-rail__drawer .eu-card__header {
  padding: 4px 0 8px;
}

.eu-search-rail__drawer .eu-card__body {
  padding: 0;
}

.eu-search-rail__stack {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.eu-search-rail__field {
  min-width: 0;
  width: 100%;
}

.eu-search-rail__field .eu-field-slot,
.eu-search-rail__field .eu-field {
  width: 100%;
  max-width: 100%;
  margin: 0;
}

.eu-search-rail__field .eu-input,
.eu-search-rail__field .eu-select,
.eu-search-rail__field select.eu-input {
  width: 100%;
}

.eu-search-rail__actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 4px;
}

.eu-search-rail__actions .eu-btn {
  width: 100%;
  justify-content: center;
}

.eu-search-rail__advanced {
  margin-top: 4px;
}

body.eu-search-rail-open {
  overflow: hidden;
}

@media (max-width: 1100px) {
  .eu-search-rail__tab {
    top: 0;
    right: 0;
    flex-direction: row;
    width: auto;
    min-height: 0;
    padding: 8px 12px;
    border-right: 1px solid var(--eu-border, #e5e7eb);
    border-radius: var(--eu-radius-sm, 8px);
  }

  .eu-search-rail__tab.is-open {
    right: 12px;
    z-index: 60;
  }

  .eu-search-rail__tab-label {
    writing-mode: horizontal-tb;
    transform: none;
  }

  .eu-search-rail__actions {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .eu-search-rail__actions .eu-btn {
    width: auto;
    flex: 1 1 auto;
  }
}

.eu-search-dense__actions-slot {
  display: flex;
  align-items: flex-end;
}

.eu-search-dense__actions--inline {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding-bottom: 2px;
}

.eu-search-page--dense .eu-kpi,
.clinical-workbench .eu-kpi {
  padding: 10px 12px;
}

.eu-search-page--dense .eu-kpi__header,
.clinical-workbench .eu-kpi__header {
  margin-bottom: 6px;
}

.eu-search-page--dense .eu-kpi__value,
.clinical-workbench .eu-kpi__value {
  font-size: 1.375rem;
}

.eu-search-page--dense .eu-kpi__label,
.clinical-workbench .eu-kpi__label {
  letter-spacing: 0.04em;
}

/* Shared compact Clinical / FO KPI strip (also used by appointments) */
.eu-kpi-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 8px;
  margin: 0;
  min-width: 0;
  max-width: 100%;
}

.eu-kpi-summary__item,
a.eu-kpi-summary__item {
  display: block;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius-sm, 8px);
  padding: 8px 10px;
  min-height: 52px;
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.12s ease, border-color 0.12s ease;
}

a.eu-kpi-summary__item:hover,
a.eu-kpi-summary__item:focus-visible,
a.eu-kpi-summary__item.is-active {
  border-color: var(--eu-primary, #2563eb);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--eu-primary, #2563eb) 25%, transparent);
  outline: none;
}

.eu-kpi-summary__label {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #64748b);
  margin-bottom: 4px;
}

.eu-kpi-summary__value {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--eu-text, #0f172a);
  line-height: 1.1;
}

.eu-kpi-summary__item--info {
  border-top: 3px solid var(--eu-info);
  background: var(--eu-info-bg);
  border-color: var(--eu-info-border);
}
.eu-kpi-summary__item--warning {
  border-top: 3px solid var(--eu-warning);
  background: var(--eu-warning-bg);
  border-color: var(--eu-warning-border);
}
.eu-kpi-summary__item--danger {
  border-top: 3px solid var(--eu-danger);
  background: var(--eu-danger-bg);
  border-color: var(--eu-danger-border);
}
.eu-kpi-summary__item--success {
  border-top: 3px solid var(--eu-success);
  background: var(--eu-success-bg);
  border-color: var(--eu-success-border);
}
.eu-kpi-summary__item--critical .eu-kpi-summary__value {
  color: var(--eu-danger);
}

.app-sidebar__nav {
  padding-left: 8px;
  padding-right: 8px;
}

:root.sidebar-collapsed .app-sidebar__nav {
  padding-left: 6px;
  padding-right: 6px;
}

.app-nav-link {
  overflow: hidden;
}

.app-nav-link__label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-nav-link__svg {
  display: block;
  width: 14px;
  height: 14px;
}

.eu-breadcrumb {
  display: flex;
  align-items: center;
  gap: var(--eu-space-xs);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--eu-text-muted);
  margin-bottom: var(--eu-space-sm);
}

.eu-breadcrumb a {
  color: var(--eu-primary);
  text-decoration: none;
}

.eu-breadcrumb a:hover { text-decoration: underline; }

.eu-breadcrumb__sep {
  color: var(--eu-text-faint);
  font-weight: 400;
}

.eu-page-title {
  font-size: var(--eu-font-page);
  font-weight: var(--eu-font-page-weight);
  color: var(--eu-text);
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin: 0;
}

.eu-page-subtitle {
  margin-top: var(--eu-space-xs);
  font-size: var(--eu-font-page-sub);
  color: var(--eu-text-muted);
  font-weight: var(--eu-font-page-sub-weight);
  line-height: 1.45;
}

.eu-page-actions {
  display: flex;
  align-items: center;
  gap: var(--eu-space-sm);
  flex-shrink: 0;
}


/* ═══════════════════════════════════════════════════════════════
   3. CARDS
   ═══════════════════════════════════════════════════════════════ */

.eu-card--compact{

  border-radius:8px;

}

.eu-card--compact .eu-card__header{

  padding:10px 14px;

  min-height:auto;

}

.eu-card--compact .eu-card__body{

  padding:14px;

}

.eu-card--compact .eu-card__title{

  gap:8px;

}

.eu-card--compact .eu-card__title-icon{

  width:28px;

  height:28px;

}

.eu-card--compact .eu-card__title-text{

  font-size: var(--eu-font-card);

  font-weight: var(--eu-font-card-weight);

  line-height:1.2;

}

.eu-card--compact .eu-card__subtitle{

  margin-top:2px;

  font-size:12px;

}

.eu-card {
  background: var(--eu-surface);
  border: 1px solid var(--eu-border);
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
  overflow: hidden;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.eu-card:hover{
  border-color: var(--eu-primary-200);
  box-shadow: 0 2px 8px rgba(37,99,235,.08);
}

.eu-card:focus-within{
  border-color: var(--eu-primary);
  box-shadow: 0 0 0 2px rgba(37,99,235,.10);
}

/* Card header */
.eu-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--eu-space-sm);
  padding: 10px 14px;
  border-bottom: 1px solid var(--eu-border);
  background: var(--eu-surface-subtle);
}

.eu-card__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--eu-font-card);
  font-weight: var(--eu-font-card-weight);
  color: var(--eu-text);
  line-height: 1.2;
  margin: 0;
}

.eu-card__title-icon {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  background: var(--eu-primary-light);
  color: var(--eu-primary-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  flex-shrink: 0;
}

.eu-card__subtitle {
  margin-top: 1px;
  font-size: 11px;
  line-height: 1.3;
  color: var(--eu-text-muted);
}

.eu-card__actions {
  display: flex;
  align-items: center;
  gap: var(--eu-space-xs);
}

.eu-card__body {

  padding: var(--eu-space-lg);
}

.eu-card__body--flush {
  padding: 0;
}

.eu-card__body--sm {
  padding: var(--eu-space-md);
}

.eu-card__footer {
  padding: var(--eu-space-md) var(--eu-space-lg);
  border-top: 1px solid var(--eu-border);
  background: var(--eu-surface-subtle);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--eu-space-sm);
}

/* Accent cards */
.eu-card--primary { border-top: 3px solid var(--eu-primary); }
.eu-card--success { border-top: 3px solid var(--eu-success); }
.eu-card--warning { border-top: 3px solid var(--eu-warning); }
.eu-card--danger  { border-top: 3px solid var(--eu-danger); }


/* ═══════════════════════════════════════════════════════════════
   4. FORMS
   ═══════════════════════════════════════════════════════════════ */

/* Form wrapper */
.eu-form {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-lg);
}

/* Horizontal grid for multi-column forms */
.eu-form-grid {
  display: grid;
  gap: var(--eu-space-md);
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

.eu-form-grid--2 { grid-template-columns: repeat(2, 1fr); }
.eu-form-grid--3 { grid-template-columns: repeat(3, 1fr); }
.eu-form-grid--4 { grid-template-columns: repeat(4, 1fr); }
.eu-form-grid--span-2 { grid-column: span 2; }
.eu-form-grid--span-full { grid-column: 1 / -1; }

/* Field group */
.eu-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* Label, field, and action on one row (search desks) */
form.eu-inline-search {
  display: grid;
  grid-template-columns: minmax(14rem, 22rem) max-content;
  align-items: end;
  justify-content: start;
  gap: 8px;
  margin: 0;
}

form.eu-inline-search .eu-field {
  width: auto;
  max-width: none;
  min-width: 0;
  margin: 0;
}

.eu-inline-search__status {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  margin-top: 12px;
}

.eu-inline-search__status .eu-page-subtitle,
.eu-inline-search__status .eu-card__actions {
  margin: 0;
}

/* Label */
.eu-label {
  display: flex;
  align-items: center;
  gap: var(--eu-space-xs);
  font-size: var(--eu-font-meta);
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--eu-text-soft);
}

.eu-label--required::after {
  content: "*";
  color: var(--eu-required-color, red);
  font-size: 12px;
  line-height: 1;
  margin-left: 2px;
}

.eu-label__hint {
  margin-left: auto;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--eu-text-faint);
}

/* Input, select, textarea */
.eu-input,
.eu-select,
.eu-textarea {
  display: block;
  width: 100%;
  min-height: var(--eu-field-h);
  padding: 0 var(--eu-space-md);
  border: 1.5px solid var(--eu-border-strong);
  border-radius: var(--eu-radius-sm);
  background: var(--eu-surface);
  color: var(--eu-text);
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.4;
  outline: none;
  transition:
    border-color var(--eu-transition),
    box-shadow var(--eu-transition),
    background var(--eu-transition);
  appearance: none;
  -webkit-appearance: none;
}

.eu-textarea {
  min-height: 120px;
  padding: var(--eu-space-md);
  resize: vertical;
}

.eu-input::placeholder,
.eu-select::placeholder,
.eu-textarea::placeholder {
  color: var(--eu-text-faint);
  font-weight: 400;
}

.eu-input:hover,
.eu-select:hover,
.eu-textarea:hover {
  border-color: rgba(37,99,235,0.35);
}

.eu-input:focus,
.eu-select:focus,
.eu-textarea:focus {
  border-color: var(--eu-border-focus);
  box-shadow: 0 0 0 4px var(--eu-primary-ring);
  background: #fff;
}

/* Select arrow */
.eu-select-wrap {
  position: relative;
}

.eu-select-wrap .eu-select {
  padding-right: 40px;
  cursor: pointer;
}

.eu-select-wrap::after {
  content: '';
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid var(--eu-text-muted);
  pointer-events: none;
}

/* Input with icon prefix */
.eu-input-group {
  position: relative;
}

.eu-input-group .eu-input-prefix {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--eu-text-muted);
  pointer-events: none;
  display: flex;
  align-items: center;
}

.eu-input-group .eu-input {
  padding-left: 42px;
}

.eu-input-group .eu-input-suffix {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--eu-text-muted);
  pointer-events: none;
  display: flex;
  align-items: center;
}

/* Validation states */
.eu-input--error,
.eu-select--error,
.eu-textarea--error {
  border-color: var(--eu-danger) !important;
  box-shadow: 0 0 0 4px rgba(220,38,38,0.10) !important;
}

.eu-input--success,
.eu-select--success,
.eu-textarea--success {
  border-color: var(--eu-success) !important;
  box-shadow: 0 0 0 4px rgba(21,128,61,0.08) !important;
}

.eu-field-error {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--eu-danger);
  display: flex;
  align-items: center;
  gap: 4px;
}

.eu-field-hint {
  font-size: 11.5px;
  color: var(--eu-text-muted);
  line-height: 1.5;
}

/* Form section divider */
.eu-form-section {
  border-top: 1px solid var(--eu-border);
  padding-top: var(--eu-space-lg);
}

.eu-form-section__title {
  font-size: 13px;
  font-weight: 700;
  color: var(--eu-text);
  margin: 0 0 var(--eu-space-md);
  display: flex;
  align-items: center;
  gap: var(--eu-space-sm);
}

.eu-form-section__title::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--eu-border);
}

/* Checkbox & Radio */
.eu-check {
  display: flex;
  align-items: center;
  gap: var(--eu-space-sm);
  cursor: pointer;
  user-select: none;
}

.eu-check input[type="checkbox"],
.eu-check input[type="radio"] {
  width: 18px;
  height: 18px;
  border: 1.5px solid var(--eu-border-strong);
  border-radius: 4px;
  background: var(--eu-surface);
  cursor: pointer;
  flex-shrink: 0;
  accent-color: var(--eu-primary);
}

.eu-check__label {
  font-size: 13.5px;
  font-weight: 500;
  color: var(--eu-text);
}

.eu-check__desc {
  font-size: 12px;
  color: var(--eu-text-muted);
}

/* Form actions bar */
.eu-form-actions {
  display: flex;
  align-items: center;
  gap: var(--eu-space-sm);
  padding-top: var(--eu-space-md);
  border-top: 1px solid var(--eu-border);
}

.eu-form-actions--right {
  justify-content: flex-end;
}

/* Error summary box */
.eu-error-summary {
  background: var(--eu-danger-bg);
  border: 1px solid var(--eu-danger-border);
  border-radius: var(--eu-radius-md);
  padding: var(--eu-space-md) var(--eu-space-lg);
}

.eu-error-summary__title {
  font-size: 13px;
  font-weight: 700;
  color: var(--eu-danger);
  margin: 0 0 var(--eu-space-sm);
  display: flex;
  align-items: center;
  gap: var(--eu-space-xs);
}

.eu-error-summary ul {
  margin: 0;
  padding-left: var(--eu-space-lg);
}

.eu-error-summary li {
  font-size: 12.5px;
  color: var(--eu-danger);
  margin-bottom: 4px;
}


/* ═══════════════════════════════════════════════════════════════
   5. TABLES — Enterprise grade
   ═══════════════════════════════════════════════════════════════ */

.eu-table-wrap {
  overflow-x: auto;
  border-radius: var(--eu-radius-lg);
  border: 1px solid var(--eu-border);
  box-shadow: var(--eu-shadow-sm);
}

.eu-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  background: var(--eu-surface);
}

/* Head */
.eu-table thead {
  background: var(--eu-surface-subtle);
}

.eu-table thead th {
  padding: 12px 18px;
  text-align: left;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--eu-text-muted);
  border-bottom: 1px solid var(--eu-border);
  white-space: nowrap;
}

.eu-table thead th:first-child { padding-left: var(--eu-space-lg); }
.eu-table thead th:last-child  { padding-right: var(--eu-space-lg); }

.eu-table__group td {
  background: var(--eu-surface-subtle);
  padding: 8px 18px;
  font-size: 13px;
  font-weight: 600;
  border-bottom: 1px solid var(--eu-border);
  border-top: 1px solid var(--eu-border);
}

/* Sortable header */
.eu-table th.eu-table__sort {
  cursor: pointer;
}

.eu-table th.eu-table__sort::after {
  content: '⇅';
  margin-left: 6px;
  opacity: 0.35;
  font-size: 10px;
}

.eu-table th.eu-table__sort--asc::after  { content: '↑'; opacity: 0.8; }
.eu-table th.eu-table__sort--desc::after { content: '↓'; opacity: 0.8; }

/* Body */
.eu-table tbody tr {
  transition: background var(--eu-transition);
  border-bottom: 1px solid var(--eu-border);
}

.eu-table tbody tr:last-child { border-bottom: none; }

.eu-table tbody tr:hover {
  background: rgba(37,99,235,0.025);
}

.eu-table tbody td {
  padding: 14px 18px;
  vertical-align: middle;
  color: var(--eu-text-soft);
}

.eu-table tbody td:first-child { padding-left: var(--eu-space-lg); }
.eu-table tbody td:last-child  { padding-right: var(--eu-space-lg); }

/* Primary cell (first data col) */
.eu-table__cell-primary {
  font-weight: 600;
  color: var(--eu-text) !important;
}

.eu-table__cell-primary a {
  color: var(--eu-primary);
  text-decoration: none;
  font-weight: 600;
}

.eu-table__cell-primary a:hover {
  text-decoration: underline;
}

/* Meta line under primary */
.eu-table__cell-meta {
  font-size: 11.5px;
  color: var(--eu-text-muted);
  margin-top: 2px;
}

/* Number cells — right aligned monospace */
.eu-table__cell-num {
  text-align: right;
  font-family: 'JetBrains Mono', 'Courier New', monospace;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--eu-text) !important;
  white-space: nowrap;
}

/* Action column */
.eu-table__cell-actions {
  text-align: right;
  white-space: nowrap;
}

.eu-table__actions {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* Zebra variant */
.eu-table--zebra tbody tr:nth-child(even) {
  background: var(--eu-surface-subtle);
}

/* Compact variant */
.eu-table--compact tbody td,
.eu-table--compact thead th {
  padding-top: 8px;
  padding-bottom: 8px;
}

/* Table caption / empty */
.eu-table__empty {
  text-align: center;
  padding: 48px var(--eu-space-lg);
  color: var(--eu-text-muted);
  font-size: 13px;
}

.eu-table__empty-icon {
  font-size: 32px;
  margin-bottom: var(--eu-space-sm);
  display: block;
  opacity: 0.35;
}

/* Table footer (pagination row) */
.eu-table-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--eu-space-md) var(--eu-space-lg);
  border-top: 1px solid var(--eu-border);
  background: var(--eu-surface-subtle);
  gap: var(--eu-space-md);
  flex-wrap: wrap;
}

.eu-table-footer__count {
  font-size: 12px;
  color: var(--eu-text-muted);
}

.eu-table-footer__count strong {
  color: var(--eu-text);
  font-weight: 700;
}


/* ═══════════════════════════════════════════════════════════════
   6. BUTTONS — Full hierarchy
   ═══════════════════════════════════════════════════════════════ */

.eu-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--eu-space-sm);
  height: var(--eu-field-h);
  padding: 0 var(--eu-space-lg);
  border: 1.5px solid transparent;
  border-radius: var(--eu-radius-sm);
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  outline: none;
  transition:
    background var(--eu-transition),
    border-color var(--eu-transition),
    color var(--eu-transition),
    box-shadow var(--eu-transition),
    transform var(--eu-transition);
  user-select: none;
  -webkit-user-select: none;
}

.eu-btn:active { transform: translateY(1px); }

.eu-btn:focus-visible {
  box-shadow: 0 0 0 4px var(--eu-primary-ring);
}

/* Sizes */
.eu-btn--sm {
  height: var(--eu-field-h-sm);
  padding: 0 var(--eu-space-md);
  font-size: 12px;
  border-radius: var(--eu-radius-xs);
}

.eu-btn--lg {
  height: var(--eu-field-h-lg);
  padding: 0 var(--eu-space-xl);
  font-size: 15px;
  border-radius: var(--eu-radius-md);
}

.eu-btn--icon {
  width: var(--eu-field-h);
  padding: 0;
  flex-shrink: 0;
}

.eu-btn--icon.eu-btn--sm { width: var(--eu-field-h-sm); }

/* Variants — colours from --eu-btn-* tokens in :root (change once globally) */
.eu-btn--primary {
  background: var(--eu-btn-primary-bg);
  border-color: var(--eu-btn-primary-border);
  color: var(--eu-btn-primary-text);
  box-shadow: var(--eu-btn-primary-shadow);
}

.eu-btn--primary:hover {
  background: var(--eu-btn-primary-hover-bg);
  border-color: var(--eu-btn-primary-hover-border);
  box-shadow: var(--eu-btn-primary-hover-shadow);
}

.eu-btn--secondary {
  background: var(--eu-btn-secondary-bg);
  border-color: var(--eu-btn-secondary-border);
  color: var(--eu-btn-secondary-text);
  box-shadow: var(--eu-shadow-xs);
}

.eu-btn--secondary:hover {
  background: var(--eu-btn-secondary-hover-bg);
  border-color: var(--eu-btn-secondary-hover-border);
  color: var(--eu-btn-secondary-hover-text);
}

.eu-btn--ghost {
  background: var(--eu-btn-ghost-bg);
  border-color: var(--eu-btn-ghost-border);
  color: var(--eu-btn-ghost-text);
}

.eu-btn--ghost:hover {
  background: var(--eu-btn-ghost-hover-bg);
  color: var(--eu-btn-ghost-hover-text);
}

.eu-btn--danger {
  background: var(--eu-btn-danger-bg);
  border-color: var(--eu-btn-danger-border);
  color: var(--eu-btn-danger-text);
}

.eu-btn--danger:hover {
  filter: brightness(0.92);
}

.eu-btn--success {
  background: var(--eu-btn-success-bg);
  border-color: var(--eu-btn-success-border);
  color: var(--eu-btn-success-text);
  box-shadow: 0 1px 3px rgba(21,128,61,0.25);
}

.eu-btn--success:hover {
  background: var(--eu-btn-success-hover-bg);
  border-color: var(--eu-btn-success-hover-border);
}

.eu-btn--warning {
  background: var(--eu-btn-warning-bg);
  border-color: var(--eu-btn-warning-border);
  color: var(--eu-btn-warning-text);
}

.eu-btn--warning:hover {
  background: var(--eu-btn-warning-hover-bg);
  border-color: var(--eu-btn-warning-hover-border);
  color: var(--eu-btn-warning-hover-text);
}

/* Legacy aliases without double-dash (eu-btn-primary / eu-btn-lg) */
.eu-btn.eu-btn-primary,
button.eu-btn-primary,
a.eu-btn-primary {
  background: var(--eu-btn-primary-bg);
  border-color: var(--eu-btn-primary-border);
  color: var(--eu-btn-primary-text);
  box-shadow: var(--eu-btn-primary-shadow);
}
.eu-btn.eu-btn-primary:hover,
button.eu-btn-primary:hover,
a.eu-btn-primary:hover {
  background: var(--eu-btn-primary-hover-bg);
  border-color: var(--eu-btn-primary-hover-border);
  box-shadow: var(--eu-btn-primary-hover-shadow);
}
.eu-btn-lg {
  height: var(--eu-field-h-lg);
  padding: 0 var(--eu-space-xl);
  font-size: 15px;
  border-radius: var(--eu-radius-md);
}

/* Disabled */
.eu-btn:disabled,
.eu-btn--disabled {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}

/* Button group */
.eu-btn-group {
  display: inline-flex;
}

.eu-btn-group .eu-btn {
  border-radius: 0;
}

.eu-btn-group .eu-btn:first-child {
  border-radius: var(--eu-radius-xs) 0 0 var(--eu-radius-xs);
}

.eu-btn-group .eu-btn:last-child {
  border-radius: 0 var(--eu-radius-xs) var(--eu-radius-xs) 0;
}

.eu-btn-group .eu-btn + .eu-btn {
  margin-left: -1px;
}


/* ═══════════════════════════════════════════════════════════════
   7. BADGES & STATUS INDICATORS
   ═══════════════════════════════════════════════════════════════ */

.eu-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
  border: 1px solid transparent;
}

.eu-badge--dot::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}

/* Colors */
.eu-badge--success {
  background: var(--eu-success-bg);
  color: var(--eu-success);
  border-color: var(--eu-success-border);
}

.eu-badge--warning {
  background: var(--eu-warning-bg);
  color: var(--eu-warning);
  border-color: var(--eu-warning-border);
}

.eu-badge--danger {
  background: var(--eu-danger-bg);
  color: var(--eu-danger);
  border-color: var(--eu-danger-border);
}

.eu-badge--info {
  background: var(--eu-info-bg);
  color: var(--eu-info);
  border-color: var(--eu-info-border);
}

.eu-badge--primary {
  background: var(--eu-primary-light);
  color: var(--eu-primary-dark);
  border-color: rgba(37,99,235,0.25);
}

.eu-badge--neutral {
  background: var(--eu-surface-muted);
  color: var(--eu-text-soft);
  border-color: var(--eu-border-strong);
}

/* Size variants */
.eu-badge--sm {
  font-size: 10px;
  padding: 2px 7px;
}

.eu-badge--lg {
  font-size: 12.5px;
  padding: 5px 14px;
  border-radius: var(--eu-radius-xs);
}

/* Status dot only */
.eu-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 600;
}

.eu-status__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}

.eu-status--active .eu-status__dot   { background: var(--eu-success); box-shadow: 0 0 0 3px var(--eu-success-bg); }
.eu-status--inactive .eu-status__dot { background: var(--eu-text-faint); }
.eu-status--pending .eu-status__dot  { background: var(--eu-warning); box-shadow: 0 0 0 3px var(--eu-warning-bg); }
.eu-status--error .eu-status__dot    { background: var(--eu-danger); box-shadow: 0 0 0 3px var(--eu-danger-bg); }


/* ═══════════════════════════════════════════════════════════════
   8. EMPTY STATES
   ═══════════════════════════════════════════════════════════════ */

.eu-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--eu-space-2xl) var(--eu-space-lg);
  gap: var(--eu-space-md);
}

.eu-empty__illustration {
  width: 72px;
  height: 72px;
  border-radius: var(--eu-radius-lg);
  background: var(--eu-surface-muted);
  display: grid;
  place-items: center;
  font-size: 28px;
  color: var(--eu-text-faint);
  margin-bottom: var(--eu-space-xs);
}

.eu-empty__title {
  font-size: 16px;
  font-weight: 700;
  color: var(--eu-text);
  margin: 0;
}

.eu-empty__body {
  font-size: 13px;
  color: var(--eu-text-muted);
  max-width: 380px;
  line-height: 1.6;
  margin: 0;
}

.eu-empty__actions {
  display: flex;
  gap: var(--eu-space-sm);
  margin-top: var(--eu-space-xs);
}


/* ═══════════════════════════════════════════════════════════════
   9. FILTER BAR
   ═══════════════════════════════════════════════════════════════ */

.eu-filter-bar {
  display: flex;
  align-items: center;
  gap: var(--eu-space-sm);
  flex-wrap: wrap;
  padding: var(--eu-space-md) var(--eu-space-lg);
  background: var(--eu-surface-subtle);
  border-bottom: 1px solid var(--eu-border);
}

.eu-filter-bar__search {
  position: relative;
  flex: 1 1 280px;
  min-width: 0;
}

.eu-filter-bar__search-icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--eu-text-muted);
  pointer-events: none;
  display: flex;
  align-items: center;
}

.eu-filter-bar__search .eu-input {
  padding-left: 42px;
  background: var(--eu-surface);
}

.eu-filter-bar__filters {
  display: flex;
  align-items: center;
  gap: var(--eu-space-sm);
  flex-wrap: wrap;
}

.eu-filter-bar__filters .eu-select {
  width: auto;
  min-width: 150px;
  height: var(--eu-field-h-sm);
  font-size: 12.5px;
  padding-right: 36px;
}

.eu-filter-bar__actions {
  display: flex;
  align-items: center;
  gap: var(--eu-space-sm);
  margin-left: auto;
}


/* ═══════════════════════════════════════════════════════════════
   10. PAGINATION
   ═══════════════════════════════════════════════════════════════ */

.eu-table-footer .eu-pagination,
.eu-pagination {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
  margin: 0 0 0 auto;
  gap: 4px;
  flex-wrap: wrap;
}

.eu-pagination__item,
.pagination .page,
.pagination .first,
.pagination .prev,
.pagination .next,
.pagination .last {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  margin: 0;
  position: static;
  box-sizing: border-box;
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.55rem;
  border: 1px solid var(--eu-border-strong);
  border-radius: var(--eu-radius-xs);
  background: var(--eu-surface);
  color: var(--eu-text-soft);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition:
    background var(--eu-transition),
    border-color var(--eu-transition),
    color var(--eu-transition);
  user-select: none;
}

.eu-pagination__item:hover {
  background: var(--eu-surface-subtle);
  border-color: var(--eu-primary);
  color: var(--eu-primary);
}

.eu-pagination__item--current {
  background: var(--eu-primary);
  border-color: var(--eu-primary);
  color: #fff;
  cursor: default;
}

.eu-pagination__item--current:hover {
  background: var(--eu-primary);
  color: #fff;
}

.eu-pagination__item--disabled {
  opacity: 0.38;
  pointer-events: none;
}

.eu-pagination__ellipsis {
  padding: 0 6px;
  color: var(--eu-text-faint);
  font-weight: 600;
}


/* ═══════════════════════════════════════════════════════════════
   11. STAT / KPI BLOCKS
   ═══════════════════════════════════════════════════════════════ */

.eu-kpi-grid {
  display: grid;
  gap: var(--eu-space-md);
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  margin-bottom: var(--eu-space-lg);
}

/* Higher-level business layout shells (compose existing primitives) */
.eu-search-page__body,
.eu-results-frame__body {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-lg);
}

/* Compact search workbench — reference: Patient Print Workbench Find Patient */
.eu-search-panel--compact .eu-card__header {
  padding: 8px 14px;
}

.eu-search-panel--compact .eu-card__body {
  padding: 10px 14px 12px;
}

.eu-search-panel--compact .eu-card__title {
  font-size: 0.95rem;
}

.eu-search-panel--compact .eu-card__subtitle {
  font-size: 0.75rem;
  margin-top: 2px;
}

.eu-search-compact__row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) auto;
  gap: 10px 12px;
  align-items: end;
}

.eu-search-compact__grid {
  display: grid;
  gap: 10px 12px;
  align-items: end;
}

.eu-search-compact__grid--4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Adaptive 12-col filter grid — dense operational search forms */
.eu-search-compact__grid--adaptive {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 8px 12px;
  align-items: end;
}

.eu-field-slot {
  min-width: 0;
}

.eu-field-slot.eu-field {
  margin: 0;
  width: 100%;
}

.eu-field-slot--third { grid-column: span 4; }
.eu-field-slot--half { grid-column: span 6; }
.eu-field-slot--two-thirds { grid-column: span 8; }
.eu-field-slot--full { grid-column: span 12; }
.eu-field-slot--quarter { grid-column: span 3; }

/* Keep Search/Clear on the same row as ≤3 third-width filters */
.eu-search-compact__grid--adaptive:has(> .eu-search-dense__actions-slot) > .eu-field-slot--third {
  grid-column: span 3;
}

.eu-search-compact__grid--adaptive > .eu-search-dense__actions-slot {
  grid-column: span 3;
  align-self: end;
}

.eu-search-panel--dense .eu-card__header {
  padding: 6px 12px;
}

.eu-search-panel--dense .eu-card__body {
  padding: 8px 12px 10px;
}

.eu-search-page--dense .eu-search-page__body,
.clinical-workbench .eu-search-page__body,
.clinical-workbench__body {
  gap: 12px;
}

.eu-search-page--dense .eu-results-frame__body {
  gap: 12px;
}

.eu-search-panel--dense .eu-label {
  font-size: 0.7rem;
  margin-bottom: 2px;
  letter-spacing: 0.02em;
}

.eu-search-panel--dense .eu-input,
.eu-search-panel--dense .eu-select,
.eu-search-panel--dense select.eu-input {
  min-height: 32px;
  padding-top: 4px;
  padding-bottom: 4px;
  font-size: 0.8125rem;
}

.eu-search-dense {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.eu-search-dense__actions {
  padding-top: 2px;
}

.eu-search-dense__more {
  margin: 0;
  padding-top: 8px;
}

.eu-search-page--dense .eu-search-page__body {
  gap: var(--eu-space-md);
}

.eu-search-page--dense .eu-page-header {
  margin-bottom: 4px;
}

.eu-search-compact__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding-bottom: 1px;
}

.eu-search-panel--compact .eu-filter-advanced {
  margin-top: 10px;
}

/* Progressive disclosure — primary always; secondary expands */
.eu-search-progressive {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.eu-search-progressive__panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 2px;
  border-top: 1px solid var(--eu-border, #e2e8f0);
}

.eu-search-progressive__panel[hidden] {
  display: none !important;
}

.eu-search-progressive--open .eu-search-progressive__actions--collapsed {
  display: none;
}

.eu-search-progressive--open .eu-search-progressive__primary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.eu-search-progressive__toggle.is-open {
  border-color: color-mix(in srgb, var(--eu-accent, #0f766e) 40%, #cbd5e1);
  color: var(--eu-accent, #0f766e);
}

.eu-search-progressive__toggle::after {
  content: " ▼";
  font-size: 0.7em;
}

.eu-search-progressive__toggle.is-open::after {
  content: " ▲";
}

.eu-search-hints {
  margin-top: 14px;
}

.eu-search-hints__label {
  margin: 0 0 6px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--eu-text-muted, #64748b);
  text-align: center;
}

.eu-search-hints__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

.eu-search-hints__list li {
  padding: 4px 10px;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  color: #475569;
  background: var(--eu-surface-subtle, #f8fafc);
}

@media (max-width: 1199px) {
  .eu-field-slot--third { grid-column: span 6; }
  .eu-field-slot--half { grid-column: span 6; }
  .eu-field-slot--two-thirds { grid-column: span 12; }
  .eu-field-slot--full { grid-column: span 12; }
}

@media (max-width: 900px) {
  .eu-search-compact__row {
    grid-template-columns: 1fr 1fr;
  }

  .eu-search-compact__grid--4 {
    grid-template-columns: 1fr 1fr;
  }

  .eu-search-compact__actions {
    grid-column: 1 / -1;
  }
}

@media (max-width: 767px) {
  .eu-field-slot--third,
  .eu-field-slot--half,
  .eu-field-slot--two-thirds,
  .eu-field-slot--full {
    grid-column: span 12;
  }
}

@media (max-width: 560px) {
  .eu-search-compact__row,
  .eu-search-compact__grid--4 {
    grid-template-columns: 1fr;
  }
}

.eu-action-bar .eu-form-actions {
  height: 100%;
  align-items: flex-end;
}

.eu-action-bar {
  margin-top: var(--eu-space-md);
}

.eu-filter-advanced {
  margin-top: var(--eu-space-md);
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-md);
  background: var(--eu-surface-subtle, var(--surface-2));
  padding: var(--eu-space-sm) var(--eu-space-md);
}

.eu-filter-advanced__summary {
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted);
  list-style: none;
  padding: var(--eu-space-sm) 0;
}

.eu-filter-advanced__summary::-webkit-details-marker {
  display: none;
}

.eu-filter-advanced[open] .eu-filter-advanced__summary {
  margin-bottom: var(--eu-space-sm);
}

.eu-row-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--eu-space-xs);
  flex-wrap: wrap;
}

.eu-table__stack-primary {
  font-weight: 700;
  color: var(--eu-text);
}

.eu-table__stack-meta {
  font-size: 12px;
  color: var(--eu-text-muted);
  margin-top: 2px;
}

.eu-table__row--muted {
  opacity: 0.72;
}

/* Workflow / detail page primitives */
.eu-workflow-page__body {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-lg);
}

.eu-meta-strip__grid {
  display: grid;
  gap: var(--eu-space-md);
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

.eu-meta-strip__label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--eu-text-muted);
  margin-bottom: 4px;
}

.eu-meta-strip__value {
  font-size: 14px;
  font-weight: 600;
  color: var(--eu-text);
}

.eu-highlight-metrics {
  display: grid;
  gap: var(--eu-space-md);
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.eu-highlight-metric {
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-lg);
  background: var(--eu-surface);
  padding: var(--eu-space-lg);
}

.eu-highlight-metric--net {
  border-color: var(--eu-info);
  background: var(--eu-info-bg);
}

.eu-highlight-metric--payable {
  border-color: var(--eu-success);
  background: var(--eu-success-bg);
}

.eu-highlight-metric__label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--eu-text-muted);
}

.eu-highlight-metric__value {
  margin-top: var(--eu-space-sm);
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.03em;
  font-family: "JetBrains Mono", "Courier New", monospace;
}

.eu-highlight-metric__hint {
  margin-top: 4px;
  font-size: 12px;
  color: var(--eu-text-muted);
}

.eu-amount-summary {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-sm);
}

.eu-amount-summary__line {
  display: flex;
  justify-content: space-between;
  gap: var(--eu-space-md);
  font-size: 14px;
}

.eu-amount-summary__line--total,
.eu-amount-summary__line--payable {
  margin-top: var(--eu-space-xs);
  padding-top: var(--eu-space-sm);
  border-top: 1px solid var(--eu-border);
  font-weight: 700;
}

.eu-amount-summary__label {
  color: var(--eu-text-muted);
}

.eu-amount-summary__value {
  font-family: "JetBrains Mono", "Courier New", monospace;
  font-weight: 600;
}

.eu-radio-row {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-sm);
}

.eu-radio {
  display: inline-flex;
  align-items: center;
  gap: var(--eu-space-sm);
  font-size: 14px;
}

.eu-field--full {
  grid-column: 1 / -1;
}

.eu-kpi {
  background: var(--eu-surface);
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-lg);
  padding: var(--eu-space-lg);
  box-shadow: var(--eu-shadow-sm);
  position: relative;
  overflow: hidden;
  transition: box-shadow var(--eu-transition), transform var(--eu-transition);
}

.eu-kpi:hover {
  box-shadow: var(--eu-shadow-md);
  transform: translateY(-1px);
}

.eu-kpi::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--eu-primary);
  opacity: 0;
  transition: opacity var(--eu-transition);
}

.eu-kpi:hover::before { opacity: 1; }

.eu-kpi__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: var(--eu-space-md);
}

.eu-kpi__label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--eu-text-muted);
}

.eu-kpi__icon {
  width: 36px;
  height: 36px;
  border-radius: var(--eu-radius-xs);
  display: grid;
  place-items: center;
  background: var(--eu-primary-light);
  color: var(--eu-primary-dark);
  font-size: 16px;
  flex-shrink: 0;
}

.eu-kpi__value {
  font-size: 30px;
  font-weight: 800;
  color: var(--eu-text);
  letter-spacing: -0.03em;
  line-height: 1;
  font-family: 'JetBrains Mono', 'Courier New', monospace;
}

.eu-kpi__unit {
  font-size: 14px;
  font-weight: 500;
  color: var(--eu-text-muted);
  margin-left: 4px;
}

.eu-kpi__delta {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: var(--eu-space-sm);
  font-size: 12px;
  font-weight: 600;
  color: var(--eu-text-muted);
}

.eu-kpi__delta--up    { color: var(--eu-success); }
.eu-kpi__delta--down  { color: var(--eu-danger); }
.eu-kpi__delta--flat  { color: var(--eu-text-muted); }

.eu-kpi__hint {
  margin-top: var(--eu-space-sm);
  font-size: 12px;
  font-weight: 500;
  color: var(--eu-text-muted);
  line-height: 1.3;
}

.eu-kpi--critical {
  border-color: var(--eu-warning-border, #fde68a);
}

.eu-kpi__bar {
  height: 4px;
  background: var(--eu-surface-muted);
  border-radius: 2px;
  margin-top: var(--eu-space-sm);
  overflow: hidden;
}

.eu-kpi__bar-fill {
  height: 100%;
  border-radius: 2px;
  background: var(--eu-primary);
  transition: width 0.8s cubic-bezier(0.4,0,0.2,1);
}

/* KPI color variants */
.eu-kpi--success {
  background: var(--eu-success-bg);
  border-color: var(--eu-success-border);
}
.eu-kpi--success .eu-kpi__icon { background: var(--eu-success-bg); color: var(--eu-success); }
.eu-kpi--success:hover::before  { background: var(--eu-success); opacity: 1; }
.eu-kpi--success .eu-kpi__bar-fill { background: var(--eu-success); }

.eu-kpi--warning {
  background: var(--eu-warning-bg);
  border-color: var(--eu-warning-border);
}
.eu-kpi--warning .eu-kpi__icon { background: var(--eu-warning-bg); color: var(--eu-warning); }
.eu-kpi--warning:hover::before  { background: var(--eu-warning); opacity: 1; }
.eu-kpi--warning .eu-kpi__bar-fill { background: var(--eu-warning); }

.eu-kpi--danger {
  background: var(--eu-danger-bg);
  border-color: var(--eu-danger-border);
}
.eu-kpi--danger .eu-kpi__icon  { background: var(--eu-danger-bg); color: var(--eu-danger); }
.eu-kpi--danger:hover::before   { background: var(--eu-danger); opacity: 1; }
.eu-kpi--danger .eu-kpi__bar-fill { background: var(--eu-danger); }

.eu-kpi--info {
  background: var(--eu-info-bg);
  border-color: var(--eu-info-border);
}
.eu-kpi--info .eu-kpi__icon    { background: var(--eu-info-bg); color: var(--eu-info); }
.eu-kpi--info:hover::before     { background: var(--eu-info); opacity: 1; }
.eu-kpi--info .eu-kpi__bar-fill { background: var(--eu-info); }


/* ═══════════════════════════════════════════════════════════════
   12. TAB BARS
   ═══════════════════════════════════════════════════════════════ */

.eu-tabs {
  display: flex;
  gap: 2px;
  border-bottom: 1.5px solid var(--eu-border);
}

.eu-tab {
  display: inline-flex;
  align-items: center;
  gap: var(--eu-space-xs);
  padding: 10px 16px;
  font-size: 13px;
  font-weight: 600;
  color: var(--eu-text-muted);
  text-decoration: none;
  cursor: pointer;
  border: none;
  background: none;
  font-family: inherit;
  position: relative;
  white-space: nowrap;
  transition: color var(--eu-transition);
}

.eu-tab:hover { color: var(--eu-text); }

.eu-tab.eu-tab--active {
  color: var(--eu-primary);
}

.eu-tab.eu-tab--active::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--eu-primary);
  border-radius: 2px 2px 0 0;
}

.eu-tab__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 18px;
  padding: 0 6px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  background: var(--eu-surface-muted);
  color: var(--eu-text-muted);
}

.eu-tab--active .eu-tab__count {
  background: var(--eu-primary-light);
  color: var(--eu-primary-dark);
}

.eu-workspace-nav {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-sm);
  margin: 0 0 var(--eu-space-md);
}

.eu-workspace-nav__primary {
  overflow-x: auto;
}

.eu-workspace-nav__secondary {
  width: max-content;
  max-width: 100%;
}

/* Pill variant */
.eu-tabs--pills {
  padding: 4px;
  background: var(--eu-surface-muted);
  border-radius: var(--eu-radius-sm);
  border-bottom: none;
  gap: 2px;
}

.eu-tabs--pills .eu-tab {
  border-radius: calc(var(--eu-radius-sm) - 4px);
}

.eu-tabs--pills .eu-tab--active {
  background: var(--eu-surface);
  color: var(--eu-text);
  box-shadow: var(--eu-shadow-sm);
}

.eu-tabs--pills .eu-tab--active::after { display: none; }


/* ═══════════════════════════════════════════════════════════════
   13. INLINE ACTION MENUS (table row actions)
   ═══════════════════════════════════════════════════════════════ */

.eu-action-menu {
  position: relative;
  display: inline-block;
}

.eu-action-menu__trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: var(--eu-radius-xs);
  border: 1px solid transparent;
  background: transparent;
  color: var(--eu-text-muted);
  cursor: pointer;
  font-size: 16px;
  transition: background var(--eu-transition), border-color var(--eu-transition), color var(--eu-transition);
}

.eu-action-menu__trigger:hover {
  background: var(--eu-surface-subtle);
  border-color: var(--eu-border);
  color: var(--eu-text);
}

.eu-action-menu__panel {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  z-index: 50;
  min-width: 180px;
  background: var(--eu-surface);
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-md);
  box-shadow: var(--eu-shadow-lg);
  padding: 6px;
  display: none;
}

.eu-action-menu:hover .eu-action-menu__panel,
.eu-action-menu:focus-within .eu-action-menu__panel {
  display: block;
}

.eu-action-menu__item {
  display: flex;
  align-items: center;
  gap: var(--eu-space-sm);
  width: 100%;
  padding: 8px 10px;
  border-radius: var(--eu-radius-xs);
  border: none;
  background: none;
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  color: var(--eu-text-soft);
  cursor: pointer;
  text-decoration: none;
  transition: background var(--eu-transition), color var(--eu-transition);
}

.eu-action-menu__item:hover {
  background: var(--eu-surface-subtle);
  color: var(--eu-text);
}

.eu-action-menu__item--danger {
  color: var(--eu-danger);
}

.eu-action-menu__item--danger:hover {
  background: var(--eu-danger-bg);
  color: var(--eu-danger);
}

.eu-action-menu__divider {
  height: 1px;
  background: var(--eu-border);
  margin: 4px 0;
}


/* ═══════════════════════════════════════════════════════════════
   14. ALERT / FLASH BANNERS
   ═══════════════════════════════════════════════════════════════ */

.eu-alert {
  display: flex;
  align-items: flex-start;
  gap: var(--eu-space-md);
  padding: var(--eu-space-md) var(--eu-space-lg);
  border-radius: var(--eu-radius-md);
  border: 1px solid;
}

.eu-alert--info {
  background: var(--eu-info-bg);
  border-color: var(--eu-info-border);
  color: var(--eu-info);
}

.eu-alert--success {
  background: var(--eu-success-bg);
  border-color: var(--eu-success-border);
  color: var(--eu-success);
}

.eu-alert--warning {
  background: var(--eu-warning-bg);
  border-color: var(--eu-warning-border);
  color: var(--eu-warning);
}

.eu-alert--danger {
  background: var(--eu-danger-bg);
  border-color: var(--eu-danger-border);
  color: var(--eu-danger);
}

.eu-alert__icon {
  font-size: 18px;
  flex-shrink: 0;
  margin-top: 1px;
}

.eu-alert__content { flex: 1; }

.eu-alert__title {
  font-size: 13.5px;
  font-weight: 700;
  margin: 0 0 4px;
}

.eu-alert__body {
  font-size: 13px;
  opacity: 0.85;
  line-height: 1.5;
  margin: 0;
}


/* ═══════════════════════════════════════════════════════════════
   15. DARK MODE
   ═══════════════════════════════════════════════════════════════ */

[data-theme="dark"] {
  --eu-surface:        #111c2d;
  --eu-surface-raised: #162235;
  --eu-surface-subtle: #0d1728;
  --eu-surface-muted:  #1a2840;

  --eu-border:        rgba(100,116,139,0.22);
  --eu-border-strong: rgba(148,163,184,0.32);

  --eu-text:       #e5edf8;
  --eu-text-soft:  #c4d1e1;
  --eu-text-muted: #8da0b8;
  --eu-text-faint: #5a7090;

  --eu-primary:       #60a5fa;
  --eu-primary-dark:  #93c5fd;
  --eu-primary-light: rgba(96,165,250,0.12);
  --eu-primary-ring:  rgba(96,165,250,0.18);

  --eu-success:       #4ade80;
  --eu-success-bg:    rgba(74,222,128,0.08);
  --eu-success-border:rgba(74,222,128,0.20);
  --eu-warning:       #fbbf24;
  --eu-warning-bg:    rgba(251,191,36,0.08);
  --eu-warning-border:rgba(251,191,36,0.20);
  --eu-danger:        #f87171;
  --eu-danger-bg:     rgba(248,113,113,0.08);
  --eu-danger-border: rgba(248,113,113,0.20);
  --eu-info:          #38bdf8;
  --eu-info-bg:       rgba(56,189,248,0.08);
  --eu-info-border:   rgba(56,189,248,0.20);

  --eu-shadow-xs: 0 1px 2px rgba(0,0,0,0.30);
  --eu-shadow-sm: 0 2px 6px rgba(0,0,0,0.35);
  --eu-shadow-md: 0 4px 16px rgba(0,0,0,0.40);
  --eu-shadow-lg: 0 12px 32px rgba(0,0,0,0.50);
}

[data-theme="dark"] .eu-card {
  background: var(--eu-surface);
}

[data-theme="dark"] .eu-card__header,
[data-theme="dark"] .eu-card__footer {
  background: var(--eu-surface-subtle);
}

[data-theme="dark"] .eu-table {
  background: var(--eu-surface);
}

[data-theme="dark"] .eu-table thead {
  background: var(--eu-surface-subtle);
}

[data-theme="dark"] .eu-table tbody tr:hover {
  background: rgba(96,165,250,0.04);
}

[data-theme="dark"] .eu-filter-bar {
  background: var(--eu-surface-subtle);
}

[data-theme="dark"] .eu-kpi {
  background: var(--eu-surface);
}

[data-theme="dark"] .eu-input,
[data-theme="dark"] .eu-select,
[data-theme="dark"] .eu-textarea {
  background: var(--eu-surface-subtle);
  color: var(--eu-text);
}

[data-theme="dark"] .eu-input:focus,
[data-theme="dark"] .eu-select:focus,
[data-theme="dark"] .eu-textarea:focus {
  background: var(--eu-surface);
}

[data-theme="dark"] .eu-btn--secondary {
  background: var(--eu-surface);
}

[data-theme="dark"] .eu-action-menu__panel {
  background: var(--eu-surface-raised);
}

[data-theme="dark"] .eu-tabs {
  border-bottom-color: var(--eu-border);
}

[data-theme="dark"] .eu-tabs--pills {
  background: var(--eu-surface-subtle);
  border-bottom: none;
}

[data-theme="dark"] .eu-tabs--pills .eu-tab--active {
  background: var(--eu-surface-raised);
}

[data-theme="dark"] .eu-pagination__item {
  background: var(--eu-surface);
}

[data-theme="dark"] .eu-pagination__item--current {
  background: var(--eu-primary);
  border-color: var(--eu-primary);
  color: #0f172a;
}

[data-theme="dark"] .eu-table-wrap {
  background: var(--eu-surface);
}

[data-theme="dark"] .eu-table-footer {
  background: var(--eu-surface-subtle);
}


/* ═══════════════════════════════════════════════════════════════
   16. RESPONSIVE
   ═══════════════════════════════════════════════════════════════ */

@media (max-width: 1200px) {
  .eu-form-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .eu-form-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .eu-kpi-grid     { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
  .eu-page {
    padding: var(--eu-space-md) var(--eu-space-lg) var(--eu-space-xl);
  }

  .eu-page-header {
    flex-direction: column;
    align-items: stretch;
  }

  .eu-page-actions {
    flex-wrap: wrap;
  }

  .eu-form-grid--4,
  .eu-form-grid--3,
  .eu-form-grid--2 {
    grid-template-columns: 1fr;
  }

  .eu-form-grid--span-2 {
    grid-column: 1;
  }

  .eu-kpi-grid { grid-template-columns: 1fr 1fr; }

  .eu-filter-bar {
    flex-direction: column;
    align-items: stretch;
  }

  .eu-filter-bar__actions { margin-left: 0; }

  .eu-tabs { overflow-x: auto; }

  .eu-page-title { font-size: var(--eu-font-page); }

  .eu-card__header { padding: var(--eu-space-md); }
  .eu-card__body   { padding: var(--eu-space-md); }
  .eu-card__footer { padding: var(--eu-space-sm) var(--eu-space-md); }
}

@media (max-width: 600px) {
  .eu-kpi-grid { grid-template-columns: 1fr; }

  .eu-table thead th:not(:first-child):not(:last-child) {
    display: none;
  }

  .eu-table tbody td:not(:first-child):not(:last-child) {
    display: none;
  }

  .eu-btn--lg { height: var(--eu-field-h); font-size: 14px; }

  .eu-pagination__item { min-width: 32px; height: 32px; font-size: 12px; }
}


/* ═══════════════════════════════════════════════════════════════
   17. DATE PICKER (DD-MM-YYYY display, see date_picker_controller.js)
   ═══════════════════════════════════════════════════════════════ */

.eu-datepicker {
  position: relative;
}

.eu-datepicker__input-wrap {
  position: relative;
}

.eu-datepicker__input-wrap .eu-input {
  padding-right: 40px;
  cursor: pointer;
}

.eu-datepicker__icon {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--eu-text-muted);
  pointer-events: none;
  display: flex;
  align-items: center;
}

.eu-datepicker__panel {
  display: none;
  position: absolute;
  z-index: 60;
  top: calc(100% + 6px);
  left: 0;
  width: 300px;
  background: var(--eu-surface);
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-lg);
  box-shadow: var(--eu-shadow-lg);
  padding: var(--eu-space-md);
}

.eu-datepicker__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--eu-space-sm);
}

.eu-datepicker__nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: var(--eu-radius-xs);
  border: 1px solid var(--eu-border);
  background: var(--eu-surface);
  color: var(--eu-text-soft);
  cursor: pointer;
  transition: background var(--eu-transition), color var(--eu-transition);
}

.eu-datepicker__nav:hover {
  background: var(--eu-surface-subtle);
  color: var(--eu-primary);
}

.eu-datepicker__month-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--eu-text);
}

.eu-datepicker__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}

.eu-datepicker__weekday {
  text-align: center;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--eu-text-faint);
  padding: 4px 0;
}

.eu-datepicker__day {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  border-radius: var(--eu-radius-xs);
  font-size: 12.5px;
  font-weight: 500;
  color: var(--eu-text);
  cursor: pointer;
  font-family: inherit;
  transition: background var(--eu-transition), color var(--eu-transition);
}

.eu-datepicker__day:hover {
  background: var(--eu-surface-subtle);
}

.eu-datepicker__day--today {
  font-weight: 700;
  color: var(--eu-primary);
}

.eu-datepicker__day--selected {
  background: var(--eu-primary);
  color: #fff;
  font-weight: 700;
}

.eu-datepicker__day--selected:hover {
  background: var(--eu-primary-dark);
}

.eu-datepicker__day--disabled {
  color: var(--eu-text-faint);
  cursor: not-allowed;
  opacity: 0.4;
}

.eu-datepicker__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--eu-space-sm);
  margin-top: var(--eu-space-sm);
  padding-top: var(--eu-space-sm);
  border-top: 1px solid var(--eu-border);
}

.eu-datepicker__time {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: var(--eu-space-sm);
  padding-top: var(--eu-space-sm);
  border-top: 1px solid var(--eu-border);
}

.eu-datepicker__time select {
  flex: 1;
  height: 30px;
  border: 1px solid var(--eu-border-strong);
  border-radius: var(--eu-radius-xs);
  background: var(--eu-surface);
  color: var(--eu-text);
  font-size: 12px;
  font-family: inherit;
  padding: 0 4px;
}

.eu-datepicker__link {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--eu-primary);
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
}

[data-theme="dark"] .eu-datepicker__panel {
  background: var(--eu-surface-raised);
}


/* ═══════════════════════════════════════════════════════════════
   18. UTILITY HELPERS
   ═══════════════════════════════════════════════════════════════ */

.eu-divider {
  height: 1px;
  background: var(--eu-border);
  margin: var(--eu-space-lg) 0;
}

.eu-avatar {
  width: 36px;
  height: 36px;
  border-radius: var(--eu-radius-xs);
  background: linear-gradient(135deg, var(--eu-primary), #0891b2);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  letter-spacing: 0.02em;
}

.eu-avatar--sm { width: 28px; height: 28px; font-size: 10px; border-radius: 6px; }
.eu-avatar--lg { width: 48px; height: 48px; font-size: 16px; border-radius: var(--eu-radius-sm); }

.eu-avatar--success { background: linear-gradient(135deg, var(--eu-success), #166534); }
.eu-avatar--warning { background: linear-gradient(135deg, var(--eu-warning), #92400e); }
.eu-avatar--danger  { background: linear-gradient(135deg, var(--eu-danger), #991b1b); }

/* Helper: flex row with gap */
.eu-row {
  display: flex;
  align-items: center;
  gap: var(--eu-space-sm);
  flex-wrap: wrap;
}

.eu-row--between { justify-content: space-between; }
.eu-row--end     { justify-content: flex-end; }
.eu-row--start   { justify-content: flex-start; }

/* Visually hidden (accessible) */
.eu-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  border: 0;
}

/* Truncate text */
.eu-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Loading skeleton */
.eu-skeleton {
  background: linear-gradient(90deg,
    var(--eu-surface-muted) 25%,
    var(--eu-surface-subtle) 50%,
    var(--eu-surface-muted) 75%
  );
  background-size: 200% 100%;
  border-radius: var(--eu-radius-xs);
  animation: eu-skeleton-wave 1.6s infinite;
}

@keyframes eu-skeleton-wave {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}


/* ═══════════════════════════════════════════════════════════════
   18. (REMOVED) — this section used to redefine .card, .btn,
       .badge, .form-*, .pagination, .page, .stat with !important,
       silently overriding design-system.css + ui_harmony.css
       everywhere in the app. Those classes already have one
       canonical definition in design-system.css — this file only
       owns the .eu-* namespaced component classes above (eu-card,
       eu-form, eu-table, eu-badge, etc.), which any new page can
       opt into explicitly without affecting existing pages.
   ═══════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════
   19. SECTIONED FORMS — left vertical stepper (registration, MRD)
   ═══════════════════════════════════════════════════════════════ */

.mrd-sectioned-form {
  display: grid;
  grid-template-columns: minmax(200px, 240px) minmax(0, 1fr);
  gap: var(--eu-space-md, 16px);
  align-items: start;
  margin-top: var(--eu-space-sm, 12px);
}

.mrd-sectioned-form--server-steps {
  margin-top: var(--eu-space-sm, 12px);
}

.mrd-sectioned-form__main {
  min-width: 0;
}

.mrd-sectioned-form__panel[hidden] {
  display: none !important;
}

.mrd-vertical-stepper {
  position: sticky;
  top: 12px;
}

.mrd-vertical-stepper__list {
  list-style: none;
  margin: 0;
  padding: 8px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface-muted, #f8fafc);
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: calc(100vh - 160px);
  overflow-y: auto;
}

.mrd-vertical-stepper__item {
  margin: 0;
}

.mrd-vertical-stepper__link,
.mrd-vertical-stepper__btn,
.mrd-vertical-stepper__label-wrap {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
  padding: 8px 10px;
  border-radius: var(--eu-radius-sm, 6px);
  border: 1px solid transparent;
  background: transparent;
  color: var(--eu-text-secondary, #64748b);
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.mrd-vertical-stepper__btn {
  font-family: inherit;
}

.mrd-vertical-stepper__link:hover,
.mrd-vertical-stepper__btn:hover {
  background: var(--eu-surface-raised, #fff);
  border-color: var(--eu-border-subtle, #e5e7eb);
}

.mrd-vertical-stepper__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  min-width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  font-size: 0.625rem;
  font-weight: 700;
  background: var(--eu-surface-muted, #f1f5f9);
  color: var(--eu-text-secondary, #64748b);
}

.mrd-vertical-stepper__label {
  flex: 1;
  min-width: 0;
}

.mrd-vertical-stepper__item--current .mrd-vertical-stepper__link,
.mrd-vertical-stepper__item--current .mrd-vertical-stepper__btn,
.mrd-vertical-stepper__item--current .mrd-vertical-stepper__label-wrap {
  background: color-mix(in srgb, var(--chk-accent, #0f766e) 8%, white);
  border-color: var(--chk-accent, #0f766e);
  color: var(--chk-accent, #0f766e);
}

.mrd-vertical-stepper__item--current .mrd-vertical-stepper__num {
  background: color-mix(in srgb, var(--chk-accent, #0f766e) 18%, white);
  color: var(--chk-accent, #0f766e);
}

.mrd-vertical-stepper__item--done .mrd-vertical-stepper__link,
.mrd-vertical-stepper__item--done .mrd-vertical-stepper__label-wrap {
  border-color: #86efac;
  color: #047857;
}

.mrd-vertical-stepper__item--done .mrd-vertical-stepper__num {
  background: #dcfce7;
  color: #047857;
}

@media (max-width: 960px) {
  .mrd-sectioned-form {
    grid-template-columns: 1fr;
  }

  .mrd-vertical-stepper {
    position: static;
  }

  .mrd-vertical-stepper__list {
    flex-direction: row;
    flex-wrap: wrap;
    max-height: none;
  }

  .mrd-vertical-stepper__link,
  .mrd-vertical-stepper__btn,
  .mrd-vertical-stepper__label-wrap {
    width: auto;
    flex: 1 1 auto;
  }
}
:root{

    /**************************
    COLORS
    **************************/

    --eu-primary:#0A4B78;
    --eu-primary-hover:#08395C;

    --eu-secondary:#EAF4FB;

    --eu-success:#198754;

    --eu-warning:#FFC107;

    --eu-danger:#DC3545;

    --eu-info:#0DCAF0;

    --eu-required-color:#dc2626;


    /**************************
    BACKGROUND
    **************************/

    --eu-bg:#F6F8FB;

    --eu-card:#FFFFFF;

    --eu-header:#FFFFFF;


    /**************************
    TEXT
    **************************/

    --eu-text:#1F2937;

    --eu-text-light:#6B7280;

    --eu-text-soft:#64748b;

    --eu-text-muted:#64748b;


    /**************************
    TYPOGRAPHY (enterprise HMIS scale)
    **************************/

    --eu-font-sans: Inter, system-ui, sans-serif;

    --eu-font-page: 20px;
    --eu-font-page-weight: 700;

    --eu-font-page-sub: 13px;
    --eu-font-page-sub-weight: 400;

    --eu-font-section: 14px;
    --eu-font-section-weight: 600;

    --eu-font-card: 13px;
    --eu-font-card-weight: 600;

    --eu-font-body: 13px;
    --eu-font-body-weight: 400;

    --eu-font-label: 12px;
    --eu-font-label-weight: 500;

    --eu-font-meta: 11px;
    --eu-font-meta-weight: 500;

    --eu-font-kpi: 22px;
    --eu-font-kpi-weight: 700;


    /**************************
    BORDER
    **************************/

    --eu-border:#DCE3EA;


    /**************************
    RADIUS
    **************************/

    --eu-radius-sm:4px;

    --eu-radius-md:8px;

    --eu-radius-lg:12px;


    /**************************
    SPACING
    **************************/

    --eu-space-xs:4px;

    --eu-space-sm:8px;

    --eu-space-md:16px;

    --eu-space-lg:24px;

    --eu-space-xl:32px;


    /**************************
    SHADOW
    **************************/

    --eu-shadow:

            0 1px 2px rgba(0,0,0,.08);

}
.eu-page{

    padding:24px;

}



.eu-content{

    display:flex;

    flex-direction:column;

    gap:24px;

}

.eu-section-toolbar{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:16px;

}
body{

    font-family: var(--eu-font-sans);

    font-size: var(--eu-font-body);

    font-weight: var(--eu-font-body-weight);

    color: var(--eu-text);

    background: var(--eu-bg);

}


/**************/

.eu-page-title{

    font-size: var(--eu-font-page);

    font-weight: var(--eu-font-page-weight);

    line-height: 1.2;

    letter-spacing: -0.02em;

    margin: 0;

    color: var(--eu-text);

}


/**************/

.eu-page-subtitle{

    font-size: var(--eu-font-page-sub);

    font-weight: var(--eu-font-page-sub-weight);

    line-height: 1.45;

    color: var(--eu-text-muted);

}


/**************/

.eu-card-title,
.eu-card__title,
.eu-card__title-text{

    font-size: var(--eu-font-card);

    font-weight: var(--eu-font-card-weight);

}


/**************/

.eu-section-title{

    font-size: var(--eu-font-section);

    font-weight: var(--eu-font-section-weight);

}


/**************/

.eu-label{

    font-size: var(--eu-font-meta);

    font-weight: 700;

}


/**************/

.eu-help{

    font-size: var(--eu-font-label);

    color: var(--eu-text-muted);

}


/**************/

.eu-error{

    font-size: var(--eu-font-label);

    color: var(--eu-danger);

}
.eu-grid{
    display:grid;
    gap:16px;
}

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

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

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

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

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

.eu-grid-span-2{
    grid-column:span 2;
}

.eu-grid-span-3{
    grid-column:1 / -1;
}



@media(max-width:1200px){

    .eu-grid-6,
    .eu-grid-5{
        grid-template-columns:repeat(3,1fr);
    }

}

@media(max-width:992px){

    .eu-grid-6,
    .eu-grid-5,
    .eu-grid-4,
    .eu-grid-3{
        grid-template-columns:repeat(2,1fr);
    }

}

@media(max-width:768px){

    .eu-grid{
        grid-template-columns:1fr !important;
    }

}
.eu-field{

    display:flex;

    flex-direction:column;

    gap:6px;

}


.eu-input{

    height:40px;

    padding:8px 12px;

    border:1px solid var(--eu-border);

    border-radius:6px;

}

.eu-address-toolbar{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    margin:-43px 0 16px;
}


.eu-checkbox-container{
    margin-bottom:16px;
}

.eu-section-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:20px;
}

.eu-section-title{
    margin:0;
}

.eu-checkbox-field{
    display:flex;
    align-items:center;
}

.eu-checkbox-label{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0;
    cursor:pointer;
    font-size:15px;
    font-weight:500;
}

/* Input only — never put this class on a wrapping <label> (it used to force 18×18 and wrap label text). */
input.eu-checkbox,
.eu-checkbox-label > input[type="checkbox"],
.eu-checkbox-field > input[type="checkbox"]{
    width:18px;
    height:18px;
    margin:0;
    flex-shrink:0;
}

/* Legacy pattern: <label class="eu-checkbox">…</label> */
label.eu-checkbox{
    display:flex;
    align-items:center;
    gap:8px;
    width:auto;
    height:auto;
    margin:0;
    cursor:pointer;
    font-weight:500;
}

label.eu-checkbox > input[type="checkbox"]{
    width:18px;
    height:18px;
    margin:0;
    flex-shrink:0;
}

.eu-service-number-grid{
    display:grid;
    grid-template-columns:120px 1fr 120px;
    gap:16px;
    align-items:end;
}


.eu-input:focus{

    outline:none;

    border-color:var(--eu-primary);

}

.eu-label {
    display: flex;
    align-items: center;
    gap: var(--eu-space-xs);
    font-size: var(--eu-font-meta);
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--eu-text-soft);
}

.eu-required {
    color: red !important;
    font-weight: 700;
}

.eu-service-number-grid{

    display:grid;

    grid-template-columns:140px 1fr 140px;

    gap:16px;

    align-items:end;

}
.eu-btn{

    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;

    padding:10px 18px;

    border-radius:8px;

    border:1px solid transparent;

    text-decoration:none;

    cursor:pointer;

    font-weight:600;

    transition:0.2s;

}

.eu-btn--primary{

    background:#2563eb;
    color:#fff;

}

.eu-btn--primary:hover{

    background:#1d4ed8;

}

.eu-btn--secondary{

    background:#fff;
    color:#374151;

    border:1px solid #d1d5db;

}

.eu-btn--secondary:hover{

    background:#f3f4f6;

}

.eu-btn--lg{

    padding:14px 28px;
    font-size:16px;

}
.eu-table{

    width:100%;

    border-collapse:collapse;

}

.eu-table th{

    background:#F3F5F7;

    padding:12px;

}

.eu-table td{

    padding:12px;

    border-bottom:1px solid #eee;

}
.eu-card{

    background:white;

    border:1px solid var(--eu-border);

    border-radius:8px;

    padding:24px;

    box-shadow:var(--eu-shadow);

}


.eu-card-header{

    margin-bottom:20px;

}


.eu-card-body{

    display:flex;

    flex-direction:column;

    gap:16px;

}
/* Shared CDSS findings — Prescribe, Pharmacy, MAR (tokens only). */

.eu-cdss-findings,
.clw-rx-alerts {
  display: grid;
  gap: 4px;
  margin-top: 6px;
}

.eu-cdss-finding,
.clw-rx-alert {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
  margin: 0;
  padding: 4px 8px;
  border-radius: var(--eu-radius-sm, 4px);
  border: 1px solid transparent;
  font-size: 0.75rem;
  line-height: 1.35;
}

.eu-cdss-finding__badge,
.clw-rx-alert__badge {
  flex: 0 0 auto;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  font-size: 0.6875rem;
}

.eu-cdss-finding--HIGH,
.eu-cdss-finding--blocking,
.eu-cdss-finding--hard_stop,
.eu-cdss-finding--danger,
.clw-rx-alert--HIGH,
.clw-rx-alert--blocking,
.clw-rx-alert--hard_stop,
.clw-rx-alert--danger {
  color: var(--eu-danger-text, #991b1b);
  background: var(--eu-danger-bg, #fef2f2);
  border-color: var(--eu-danger, #dc3545);
}

.eu-cdss-finding--MEDIUM,
.eu-cdss-finding--warning,
.clw-rx-alert--MEDIUM,
.clw-rx-alert--warning {
  color: var(--eu-warning-text, #92400e);
  background: var(--eu-warning-bg, #fef3c7);
  border-color: var(--eu-warning, #ffc107);
}

.eu-cdss-finding--LOW,
.eu-cdss-finding--DATA_MISSING,
.eu-cdss-finding--info,
.clw-rx-alert--LOW,
.clw-rx-alert--DATA_MISSING,
.clw-rx-alert--info {
  color: var(--eu-text, #1f2937);
  background: var(--eu-secondary, #eaf4fb);
  border-color: var(--eu-info, #0dcaf0);
}

.eu-cdss-strip {
  display: grid;
  gap: 8px;
}

.eu-cdss-strip__title {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-light, #6b7280);
}

.eu-cdss-strip__family {
  font-weight: 600;
  font-size: 0.75rem;
}

.eu-cdss-strip__msg {
  font-size: 0.8125rem;
}
/* Reusable Dose Calculator dialog (PEUF — tokens only). */

.eu-dose-calc {
  width: min(420px, 94vw);
  padding: 0;
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface, #fff);
  color: var(--eu-text);
  box-shadow: var(--eu-shadow-lg, 0 12px 40px rgba(0, 0, 0, 0.18));
}

.eu-dose-calc::backdrop {
  background: rgba(15, 23, 42, 0.45);
}

.eu-dose-calc__head,
.eu-dose-calc__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--eu-border);
}

.eu-dose-calc__foot {
  border-bottom: 0;
  border-top: 1px solid var(--eu-border);
  justify-content: flex-end;
}

.eu-dose-calc__title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
}

.eu-dose-calc__body {
  display: grid;
  gap: 10px;
  padding: 14px 16px;
}

.eu-dose-calc__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.eu-dose-calc__result {
  margin: 0;
  padding: 10px 12px;
  border-radius: var(--eu-radius-sm, 4px);
  border: 1px solid var(--eu-border);
  background: var(--eu-surface-muted, #f8fafc);
  font-size: 0.875rem;
}

.eu-dose-calc__result strong {
  font-size: 1.125rem;
}

.eu-dose-calc__error {
  margin: 0;
  color: var(--eu-danger, #b91c1c);
  font-size: 0.75rem;
}

.eu-dose-calc__drug {
  font-size: 0.8125rem;
  color: var(--eu-text-muted);
}
/* Shared form-builder shell — all modules. Tokens only. */

.eu-form-builder {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-md);
}

.eu-form-builder__steps {
  display: flex;
  gap: var(--eu-space-sm);
  flex-wrap: wrap;
}

.eu-form-builder__step {
  display: inline-flex;
  align-items: center;
  gap: var(--eu-space-sm);
  border: 1px solid var(--eu-border);
  background: var(--eu-card);
  color: var(--eu-text);
  padding: var(--eu-space-xs) var(--eu-space-sm);
  border-radius: var(--eu-radius-sm);
  font-size: 0.875rem;
  cursor: pointer;
}

.eu-form-builder__step.is-current {
  border-color: var(--eu-primary);
  background: var(--eu-secondary);
  font-weight: 600;
}

.eu-form-builder__step-num {
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--eu-bg);
  font-size: 0.75rem;
}

.eu-form-builder__grid {
  display: grid;
  grid-template-columns: minmax(14rem, 0.9fr) minmax(22rem, 1.4fr) minmax(18rem, 1.1fr);
  gap: var(--eu-space-md);
  align-items: stretch;
  height: min(70vh, 44rem);
  min-height: 22rem;
}

.eu-form-builder__grid--capture {
  grid-template-columns: minmax(12rem, 0.8fr) minmax(22rem, 2.2fr);
}

.eu-form-builder__col {
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-md);
  background: var(--eu-card);
  padding: var(--eu-space-md);
  min-height: 0;
  overflow: auto;
}

.eu-form-builder__col--preview {
  background: var(--eu-bg);
}

.eu-form-builder__col-title {
  margin: 0 0 var(--eu-space-sm);
  font-size: 0.875rem;
  font-weight: 600;
}

.eu-form-builder__nav-item {
  display: block;
  width: 100%;
  text-align: left;
  margin-bottom: var(--eu-space-xs);
  border: 1px solid var(--eu-border);
  background: var(--eu-card);
  padding: var(--eu-space-sm);
  border-radius: var(--eu-radius-sm);
  cursor: pointer;
}

.eu-form-builder__nav-item.is-current {
  border-color: var(--eu-primary);
  background: var(--eu-secondary);
}

.eu-form-builder__field {
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-md);
  padding: var(--eu-space-sm) var(--eu-space-md);
  margin-bottom: var(--eu-space-sm);
  background: var(--eu-bg);
}

.eu-form-builder__field-head {
  display: flex;
  align-items: center;
  gap: var(--eu-space-sm);
  margin-bottom: var(--eu-space-sm);
}

.eu-form-builder__field-body {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--eu-space-sm) var(--eu-space-md);
}

.eu-form-builder__kinds {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--eu-space-sm);
  margin: var(--eu-space-sm) 0;
}

.eu-form-builder__kind {
  text-align: left;
  border: 1px solid var(--eu-border);
  background: var(--eu-card);
  padding: var(--eu-space-sm);
  border-radius: var(--eu-radius-sm);
  cursor: pointer;
}

.eu-form-builder__kind span {
  display: block;
  font-size: 0.75rem;
  color: var(--eu-text-light);
}

.eu-form-builder__preview-title {
  font-weight: 700;
  margin-bottom: var(--eu-space-sm);
}

.eu-form-builder__preview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--eu-space-sm) var(--eu-space-md);
}

.eu-form-builder__preview-grid > .eu-form-builder__col-title,
.eu-form-builder__preview-field.is-wide {
  grid-column: 1 / -1;
}

.eu-form-builder__preview-field {
  margin: 0;
}

.eu-form-builder__preview-field.is-ruled {
  opacity: 0.45;
}

.eu-form-builder__preview-label {
  font-size: 0.8125rem;
  font-weight: 600;
}

.eu-form-builder__preview-control {
  display: flex;
  gap: var(--eu-space-sm);
  align-items: center;
  width: 100%;
}

.eu-form-builder__preview-control .eu-input {
  width: 100%;
}

.eu-form-builder__actions {
  position: sticky;
  bottom: 0;
  z-index: 20;
  display: flex;
  gap: var(--eu-space-sm);
  align-items: center;
  padding: var(--eu-space-sm) 0;
  background: var(--eu-bg);
  border-top: 1px solid var(--eu-border);
}

.eu-form-builder__empty {
  color: var(--eu-text-light);
  font-size: 0.875rem;
}

.eu-form-builder__option-value {
  display: flex;
  align-items: center;
  gap: var(--eu-space-sm);
  margin: var(--eu-space-xs) 0;
}

.eu-form-builder__mark {
  width: 0.85rem;
  height: 0.85rem;
  border: 2px solid var(--eu-border);
  border-radius: 999px;
  flex: none;
}

.eu-form-builder__rule {
  display: flex;
  flex-wrap: wrap;
  gap: var(--eu-space-sm);
  align-items: center;
  margin-bottom: var(--eu-space-sm);
}

.eu-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--eu-space-sm);
  border: 0;
  margin: var(--eu-space-sm) 0;
  padding: 0;
}

.eu-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--eu-space-xs);
  border: 1px solid var(--eu-border);
  border-radius: 999px;
  padding: var(--eu-space-xs) var(--eu-space-sm);
  font-size: 0.8125rem;
  background: var(--eu-card);
}

.eu-chip:has(input:checked) {
  border-color: var(--eu-primary);
  background: var(--eu-secondary);
}

.eu-form-builder .eu-field {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--eu-space-xs);
  min-width: 0;
  width: 100%;
}

.eu-form-builder .eu-field > .eu-label {
  display: block;
  width: 100%;
  margin: 0;
}

.eu-form-builder .eu-input,
.eu-form-builder select.eu-input {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.eu-form-builder__basic,
.eu-form-builder__advanced,
.eu-form-builder__field-body,
.eu-form-builder__rule {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--eu-space-md);
  align-items: start;
}

.eu-form-builder__field-head [data-field-heading] {
  flex: 1;
  min-width: 0;
}

.eu-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--eu-space-sm);
  border: 0;
  margin: 0;
  padding: var(--eu-space-xs) 0 0;
  min-height: var(--eu-field-h, 2.5rem);
  align-items: center;
}

.eu-form-builder__required {
  /* uses .eu-field stack */
}

.eu-form-builder__adv {
  grid-column: 1 / -1;
}

.eu-form-builder__drag {
  cursor: grab;
  color: var(--eu-text-light);
}

.eu-form-builder__span {
  grid-column: 1 / -1;
}

.eu-form-builder__drawer {
  margin-top: var(--eu-space-md);
  border-top: 1px solid var(--eu-border);
  padding-top: var(--eu-space-sm);
}

.eu-form-builder__drawer summary {
  cursor: pointer;
  font-weight: 600;
  font-size: 0.875rem;
}

@media (max-width: 1100px) {
  .eu-form-builder__grid {
    grid-template-columns: 1fr;
    height: auto;
  }

  .eu-form-builder__field-body,
  .eu-form-builder__kinds,
  .eu-form-builder__basic,
  .eu-form-builder__advanced,
  .eu-form-builder__preview-grid,
  .eu-form-builder__rule {
    grid-template-columns: 1fr;
  }
}
/*
 * Secondary document window.
 * Closed until [open]. Do not set display on the dialog without :not([open]),
 * or the window appears as soon as the page renders.
 */

dialog.eu-secondary-window:not([open]) {
  display: none;
}

dialog.eu-secondary-window[open] {
  position: fixed;
  top: 4vh;
  left: 50%;
  right: auto;
  bottom: auto;
  transform: translateX(-50%);
  width: min(60rem, calc(100vw - 32px));
  height: 92vh;
  max-width: calc(100vw - 32px);
  max-height: 92vh;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  z-index: 80;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius, 8px);
  background: var(--eu-surface-raised, #fff);
  color: var(--eu-text-primary, #111827);
}

dialog.eu-secondary-window::backdrop {
  background: color-mix(in srgb, var(--eu-text-primary, #111827) 28%, transparent);
}

.eu-secondary-window__head {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 12px;
  border-bottom: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.eu-secondary-window__title {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
}

.eu-secondary-window__frame {
  display: block;
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  min-height: 0;
  border: 0;
  background: var(--eu-surface, #fff);
}
/*
 * Bundled at build time via Sprockets' own require directive (same pattern
 * as application.css's require_self) instead of CSS @import — @import only
 * gets resolved at build time for Sass/.scss files; for plain .css it's
 * passed through literally and the BROWSER ends up fetching each imported
 * file as its own separate, blocking request at runtime (this used to make
 * every page load ~5s slower). require keeps these as plain .css files
 * while still producing one bundled file.
 *












 */
.eu-mt-1{margin-top:4px;}
.eu-mt-2{margin-top:8px;}
.eu-mt-3{margin-top:16px;}
.eu-mt-4{margin-top:24px;}

.eu-mb-1{margin-bottom:4px;}
.eu-mb-2{margin-bottom:8px;}
.eu-mb-3{margin-bottom:16px;}

.eu-text-center{text-align:center;}
.eu-text-right{text-align:right;}

.eu-w-100{width:100%;}
/* Quill + PEUF rich text (eu_rich_text) + discharge letter workspace */

.ds-letter-workspace {
  width: 100%;
  margin: 0 0 16px;
  padding: 0;
}

.ds-letter-workspace__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
  padding: 0 2px;
}

.ds-letter-workspace__head .eu-section-title {
  margin: 0;
  font-size: 1rem;
}

.ds-letter-workspace__meta {
  margin-bottom: 10px;
  padding: 8px 10px;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 8px;
  background: var(--eu-surface, #fff);
}

.ds-letter-workspace__meta.eu-grid--4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1100px) {
  .ds-letter-workspace__meta.eu-grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* PEUF rich-text shell (reusable) */
.eu-rich-text,
.ds-word-shell {
  width: 100%;
  border: 1px solid var(--eu-border, #cbd5e1);
  border-radius: 8px;
  overflow: hidden;
  background: #e8eef5;
  box-shadow: 0 1px 2px rgb(15 23 42 / 6%);
}

/* Long documents: toolbar sticky; only the page scrolls */
.eu-rich-text--longdoc,
.ds-word-shell--longdoc {
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 11.5rem);
  min-height: 28rem;
}

.eu-rich-text__chrome-sticky,
.ds-word-chrome-sticky {
  flex: 0 0 auto;
  position: sticky;
  top: 0;
  z-index: 30;
  background: var(--eu-surface-muted, #f1f5f9);
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
  box-shadow: 0 1px 0 rgb(15 23 42 / 4%);
}

.eu-rich-text__page--scroll,
.ds-word-page--scroll {
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

.eu-rich-text__chrome,
.eu-rich-text__chrome-sticky,
.ds-word-chrome {
  width: 100%;
  background: var(--eu-surface-muted, #f1f5f9);
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.eu-rich-text__toolbar-row,
.ds-word-chrome--inline {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0;
  padding: 0;
  width: 100%;
}

.eu-rich-text__toolbar-row .eu-quill.eu-quill--full,
.ds-word-chrome--inline .eu-quill.eu-quill--full {
  flex: 1 1 auto;
  min-width: 0;
}

.ds-word-chrome__inline-extras {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  padding: 2px 8px;
  align-self: stretch;
  border-left: 1px solid var(--eu-border, #e2e8f0);
  background: var(--eu-surface-muted, #f1f5f9);
}

.ds-word-chrome .eu-select--toolbar,
.ds-word-chrome__inline-extras .eu-select--toolbar {
  min-width: 4.5rem;
  max-width: 6rem;
  height: 22px;
  font-size: 0.7rem;
  padding: 0 4px;
  border: 1px solid var(--eu-border, #cbd5e1);
  border-radius: 3px;
  background: #fff;
}

/* Compact toolbar */
.eu-quill.ql-toolbar,
.eu-quill.eu-quill--full,
.ql-toolbar.eu-quill {
  width: auto;
  box-sizing: border-box;
  border: 0;
  border-radius: 0;
  background: var(--eu-surface-muted, #f1f5f9);
  padding: 2px 6px;
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
  align-items: center;
  min-height: 28px;
}

.ql-snow.ql-toolbar button,
.ql-snow .ql-toolbar button {
  width: 22px;
  height: 22px;
  padding: 1px;
}

.ql-snow.ql-toolbar .ql-formats {
  margin-right: 6px;
}

.ql-snow.ql-toolbar .ql-picker,
.ql-snow .ql-toolbar .ql-picker {
  font-size: 11px;
  height: 22px;
}

.ql-snow .ql-picker-label {
  padding: 1px 2px 1px 4px;
}

.ql-snow .ql-stroke {
  stroke: var(--eu-text, #334155);
}

.ql-snow .ql-fill {
  fill: var(--eu-text, #334155);
}

.ql-snow .ql-picker {
  color: var(--eu-text, #334155);
}

.ql-snow .ql-table,
.ql-snow .ql-hr {
  width: 22px;
  height: 22px;
}

.ql-snow .ql-table::before {
  content: "▦";
  font-size: 12px;
  line-height: 20px;
  color: var(--eu-text, #334155);
}

.ql-snow .ql-hr::before {
  content: "―";
  font-size: 14px;
  line-height: 20px;
  color: var(--eu-text, #334155);
}

/* Size / font picker labels */
.ql-snow .ql-picker.ql-size .ql-picker-label::before,
.ql-snow .ql-picker.ql-size .ql-picker-item::before { content: "14"; }
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="10px"]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="10px"]::before { content: "10"; }
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="12px"]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="12px"]::before { content: "12"; }
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="14px"]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="14px"]::before { content: "14"; }
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="16px"]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="16px"]::before { content: "16"; }
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="18px"]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="18px"]::before { content: "18"; }
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="20px"]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="20px"]::before { content: "20"; }
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="24px"]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="24px"]::before { content: "24"; }
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="28px"]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="28px"]::before { content: "28"; }

.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="serif"]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="serif"]::before { content: "Serif"; font-family: Georgia, serif; }
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="sans-serif"]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="sans-serif"]::before { content: "Sans"; font-family: system-ui, sans-serif; }
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before { content: "Mono"; font-family: ui-monospace, monospace; }

/* Full-width page */
.eu-rich-text__page,
.ds-word-page {
  width: 100%;
  padding: 8px 10px 12px;
  background: #e8eef5;
  box-sizing: border-box;
}

.eu-rich-text__editor.ql-container,
.eu-quill-editor.ql-container,
.ql-container.eu-quill-editor,
.ds-letter-wysiwyg.eu-quill-editor,
.ds-letter-wysiwyg.ql-container {
  width: 100% !important;
  max-width: none !important;
  min-height: 520px;
  border: 1px solid #cbd5e1;
  border-radius: 2px;
  background: #fff;
  box-shadow: 0 2px 8px rgb(15 23 42 / 8%);
  font-family: "Calibri", "Segoe UI", Georgia, serif;
  font-size: 15px;
  display: block;
}

.eu-rich-text--compact .eu-rich-text__editor.ql-container,
.eu-rich-text--compact .eu-quill-editor.ql-container {
  min-height: 180px;
}

.eu-rich-text--compact .eu-quill-editor .ql-editor {
  min-height: 160px;
  padding: 12px 14px;
}

.eu-quill-editor .ql-editor,
.ds-letter-wysiwyg .ql-editor {
  min-height: 520px;
  padding: 24px 28px 36px;
  line-height: 1.55;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}

.eu-quill-editor .ql-editor.ql-blank::before {
  color: var(--eu-muted, #94a3b8);
  font-style: normal;
  left: 28px;
  right: 28px;
}

.eu-quill-editor .ql-editor h1,
.eu-quill-editor .ql-editor h2,
.eu-quill-editor .ql-editor h3 {
  width: 100%;
  margin: 0 0 8px;
  line-height: 1.3;
  font-family: system-ui, "Segoe UI", sans-serif;
  text-align: left;
}

.eu-quill-editor .ql-editor h1 { font-size: 1.75rem; }
.eu-quill-editor .ql-editor h2 { font-size: 1.35rem; }
.eu-quill-editor .ql-editor h3 { font-size: 1.15rem; }

.eu-quill-editor .ql-editor p { margin: 0 0 8px; }

/* Table embed (Quill custom blot) */
.ql-ds-table {
  margin: 10px 0 14px;
}

.eu-quill-table-wrap {
  outline: 1px solid transparent;
}

.eu-quill-table-wrap:focus-within {
  outline-color: color-mix(in srgb, var(--eu-accent, #0f766e) 35%, white);
}

.eu-quill-editor .ql-editor table,
.eu-quill-table,
.ds-print__rich table {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
  table-layout: fixed;
}

.eu-quill-editor .ql-editor th,
.eu-quill-editor .ql-editor td,
.eu-quill-table th,
.eu-quill-table td,
.ds-print__rich th,
.ds-print__rich td {
  border: 1px solid var(--eu-border, #94a3b8);
  padding: 6px 8px;
  vertical-align: top;
  min-width: 2rem;
  background: #fff;
}

.eu-quill-editor .ql-editor th,
.eu-quill-table th,
.ds-print__rich th {
  background: var(--eu-surface-muted, #f1f5f9);
  font-weight: 600;
}

.eu-quill-editor .ql-editor hr,
.ql-ds-hr,
.ds-print__rich hr {
  border: 0;
  border-top: 1px solid var(--eu-border, #cbd5e1);
  margin: 12px 0;
}

.eu-rich-text--readonly {
  opacity: 0.92;
  pointer-events: none;
}

.ds-tpl-rt .eu-rich-text__editor.ql-container,
.ds-tpl-quill-editor.ql-container {
  min-height: 360px;
  width: 100%;
  max-width: none;
}

.ds-author--letter .ds-author__actions {
  position: sticky;
  bottom: 0;
  z-index: 25;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
  padding: 10px 12px;
  background: color-mix(in srgb, var(--eu-surface, #fff) 92%, #e8eef5);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 8px;
  box-shadow: 0 -2px 8px rgb(15 23 42 / 6%);
}

@media (max-width: 900px) {
  .eu-rich-text__toolbar-row,
  .ds-word-chrome--inline {
    flex-wrap: wrap;
  }

  .ds-word-chrome__inline-extras {
    margin-left: 0;
    width: 100%;
    border-left: 0;
    border-top: 1px solid var(--eu-border, #e2e8f0);
    justify-content: flex-end;
  }
}
/* Shared Speak — mic icon + live listening */
.eu-speech {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}

.eu-speech--compact {
  display: inline-flex;
}

.eu-speech__btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.85rem;
  height: 1.85rem;
  padding: 0;
  border-radius: 999px;
  border: 1px solid var(--eu-border, #cbd5e1);
  background: var(--eu-surface, #fff);
  color: var(--eu-text, #0f172a);
  cursor: pointer;
  line-height: 0;
}

.eu-speech__btn:hover,
.eu-speech__btn:focus-visible {
  border-color: var(--eu-accent, #2563eb);
  color: var(--eu-accent, #2563eb);
  outline: none;
}

.eu-speech__pulse {
  display: none;
  position: absolute;
  inset: -4px;
  border-radius: 999px;
  border: 2px solid var(--eu-danger, #dc2626);
  opacity: 0.45;
}

.eu-speech__btn.is-recording {
  color: #fff;
  background: var(--eu-danger, #dc2626);
  border-color: var(--eu-danger, #dc2626);
}

.eu-speech__btn.is-recording .eu-speech__pulse {
  display: block;
  animation: eu-speech-pulse 1.1s ease-out infinite;
}

.eu-speech__icon {
  display: block;
  position: relative;
  z-index: 1;
}

.eu-speech__sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.eu-speech__status {
  margin: 0;
  font-size: 0.75rem;
  color: var(--eu-muted, #64748b);
}

.eu-speech__status--live {
  color: var(--eu-danger, #b91c1c);
  font-weight: 600;
}

.eu-speech__status--error {
  color: var(--eu-danger, #b91c1c);
}

.clw-soap__body .eu-speech__status {
  margin-top: 2px;
}

.eu-input.is-listening,
.clw-soap__input.is-listening {
  border-color: var(--eu-danger, #dc2626);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--eu-danger, #dc2626) 18%, transparent);
}

.eu-speech-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
}

.eu-speech-field__head {
  display: flex;
  justify-content: flex-end;
}

.eu-note-capture {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
  margin: 0 0 10px;
}

.eu-note-capture__tools {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  min-height: 1.5rem;
}

.eu-note-capture__label {
  margin: 0;
  flex: 1;
}

.eu-note-capture__actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.eu-note-capture__disclaimer {
  margin: 0;
}

@keyframes eu-speech-pulse {
  0% { transform: scale(0.92); opacity: 0.55; }
  100% { transform: scale(1.28); opacity: 0; }
}
/* Select Facility — standalone shell (no application layout). */

* { margin: 0; padding: 0; box-sizing: border-box; }

html, body {
  height: 100%;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #f4f7fb;
  color: #0f172a;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.header-section {
  background: #1e3a8a;
  padding: 12px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.header-left, .header-right, .user-badge {
  display: flex;
  align-items: center;
  gap: 12px;
}

.header-mark {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: #fff;
  color: #1e3a8a;
  font-size: 13px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}

.header-title { font-size: 15px; font-weight: 700; color: #fff; }
.header-subtitle { font-size: 11px; color: #dbeafe; margin-top: 2px; }

.user-avatar {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.28);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.user-name { font-size: 12px; font-weight: 600; color: #fff; }
.user-email { font-size: 11px; color: #dbeafe; }

.logout-btn {
  background: #b91c1c;
  color: #fff;
  padding: 7px 12px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
}

.logout-btn:hover { background: #991b1b; }

.main {
  flex: 1;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 28px 16px 40px;
}

.card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  box-shadow: 0 8px 28px rgba(15, 23, 42, 0.06);
  padding: 28px 28px 24px;
  width: 100%;
  max-width: 640px;
}

.steps {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-bottom: 22px;
}

.step {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #94a3b8;
}

.step.active { color: #1d4ed8; }
.step-num {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid currentColor;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
}

.step-sep { color: #cbd5e1; }

.card-kicker {
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748b;
  margin-bottom: 6px;
}

.card-title {
  font-size: 22px;
  font-weight: 800;
  text-align: center;
  margin-bottom: 6px;
}

.card-desc {
  font-size: 13px;
  color: #64748b;
  text-align: center;
  margin-bottom: 18px;
}

.flash-alert {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #b91c1c;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 13px;
  margin-bottom: 14px;
}

.facility-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 18px;
}

.facility-option { position: absolute; opacity: 0; pointer-events: none; }

.facility-label {
  display: grid;
  grid-template-columns: 52px 1fr auto;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  cursor: pointer;
  background: #fff;
}

.facility-label:hover { border-color: #93c5fd; background: #f8fbff; }

.facility-option:focus-visible + .facility-label {
  outline: 2px solid #1d4ed8;
  outline-offset: 2px;
}

.facility-option:checked + .facility-label {
  border-color: #1d4ed8;
  background: #eff6ff;
  box-shadow: inset 0 0 0 1px #1d4ed8;
}

.facility-icon {
  width: 52px;
  height: 52px;
  border-radius: 10px;
  background: #1e3a8a;
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}

.facility-name { font-size: 16px; font-weight: 700; }
.facility-meta { font-size: 12px; color: #64748b; margin-top: 3px; display: flex; gap: 8px; flex-wrap: wrap; }

.facility-code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  font-weight: 700;
  color: #1e3a8a;
  background: #e0e7ff;
  border-radius: 999px;
  padding: 2px 8px;
}

.facility-check {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid #cbd5e1;
}

.facility-option:checked + .facility-label .facility-check {
  background: #1d4ed8;
  border-color: #1d4ed8;
  box-shadow: inset 0 0 0 4px #fff;
}

.btn-continue {
  width: 100%;
  padding: 12px 16px;
  background: #1d4ed8;
  color: #fff;
  border: none;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}

.btn-continue:hover { background: #1e40af; }
.btn-continue:disabled { opacity: 0.45; cursor: not-allowed; }

.empty-note { font-size: 13px; color: #64748b; text-align: center; line-height: 1.5; }
.empty-note code { font-size: 12px; }

@media (max-width: 640px) {
  .user-email, .header-subtitle { display: none; }
  .card { padding: 20px 16px; }
  .facility-label { grid-template-columns: 44px 1fr auto; padding: 12px; }
  .facility-icon { width: 44px; height: 44px; }
}
/* Admin FHIR Interoperability explorer — dense demo workbench */
.fhir-x {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.fhir-x__search {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px 14px;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius, 8px);
}

.fhir-x__search-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.fhir-x__search-row .eu-input {
  flex: 1 1 240px;
  min-width: 180px;
  max-width: 420px;
}

.fhir-x__idle {
  padding: 16px;
}

.fhir-x__workbench {
  display: grid;
  grid-template-columns: minmax(220px, 260px) 1fr;
  gap: 12px;
  min-height: 420px;
  align-items: stretch;
}

.fhir-x__nav {
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius, 8px);
  padding: 10px 0;
  overflow: auto;
  max-height: calc(100vh - 220px);
}

.fhir-x__nav-title {
  margin: 0;
  padding: 6px 12px 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eu-muted, #64748b);
}

.fhir-x__nav-title--bundles {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--eu-border, #e2e8f0);
}

.fhir-x__nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.fhir-x__nav-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  text-decoration: none;
  color: var(--eu-text, #0f172a);
  font-size: 13px;
  border-left: 3px solid transparent;
}

.fhir-x__nav-link:hover {
  background: var(--eu-surface-muted, #f8fafc);
}

.fhir-x__nav-link.is-active {
  background: var(--eu-primary-soft, #eff6ff);
  border-left-color: var(--eu-primary, #2563eb);
  font-weight: 600;
  color: var(--eu-primary, #1d4ed8);
}

.fhir-x__count {
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  color: var(--eu-muted, #64748b);
  background: var(--eu-surface-muted, #f1f5f9);
  border-radius: 999px;
  padding: 1px 7px;
  min-width: 1.5rem;
  text-align: center;
}

.fhir-x__panel {
  display: flex;
  flex-direction: column;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius, 8px);
  min-width: 0;
  overflow: hidden;
}

.fhir-x__panel-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.fhir-x__panel-title {
  margin: 0;
  font-size: 15px;
  font-weight: 650;
}

.fhir-x__panel-meta {
  margin: 2px 0 0;
}

.fhir-x__panel-actions {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}

.fhir-x__validation {
  padding: 10px 14px;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
  font-size: 13px;
  background: var(--eu-surface-muted, #f8fafc);
}

.fhir-x__validation.is-ok {
  border-left: 3px solid var(--eu-success, #16a34a);
}

.fhir-x__validation.is-bad {
  border-left: 3px solid var(--eu-danger, #dc2626);
}

.fhir-x__validation.is-muted {
  border-left: 3px solid var(--eu-warning, #d97706);
}

.fhir-x__validation-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.fhir-x__validation ul {
  margin: 4px 0 8px;
  padding-left: 1.2rem;
}

.fhir-x__sections {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 4px 0 8px;
  padding: 0;
  list-style: none;
}

.fhir-x__json {
  margin: 0;
  padding: 12px 14px;
  flex: 1;
  overflow: auto;
  max-height: calc(100vh - 260px);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 12px;
  line-height: 1.45;
  background: #0b1220;
  color: #e2e8f0;
  white-space: pre;
}

@media (max-width: 900px) {
  .fhir-x__workbench {
    grid-template-columns: 1fr;
  }

  .fhir-x__nav {
    max-height: 220px;
  }
}
/* ICU critical-care board / monitor / case */

.icu-case__pulse {
  gap: 12px;
}

.icu-case__next {
  margin-top: 12px;
}

.icu-case__charts {
  margin-bottom: 12px;
}

.icu-case__charts--overview {
  margin-top: 12px;
}

.icu-case__form {
  margin-top: 8px;
}

.icu-case__recent {
  margin-top: 16px;
}

.icu-mar-courses {
  list-style: none;
  padding: 0;
  margin: 12px 0 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.icu-mar-course {
  padding: 12px;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
}

.icu-acuity--critical {
  background: var(--eu-danger-bg, #fef2f2);
  color: var(--eu-danger, #dc2626);
}

.icu-acuity--high {
  background: var(--eu-warning-bg, #fffbeb);
  color: var(--eu-warning, #d97706);
}

.icu-acuity--medium {
  background: var(--eu-info-bg, #eff6ff);
  color: var(--eu-info, #2563eb);
}

.icu-isolation {
  background: var(--eu-warning-bg, #fffbeb);
  color: var(--eu-warning, #d97706);
}

/* Alert strip on case overview */
.icu-alert-strip {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
}

.icu-alert {
  padding: 8px 12px;
  border-radius: var(--eu-radius-sm, 6px);
  border-left: 4px solid transparent;
  font-size: 0.875rem;
  font-weight: 600;
}

.icu-alert--danger {
  background: var(--eu-danger-bg, #fef2f2);
  color: var(--eu-danger, #b91c1c);
  border-left-color: var(--eu-danger, #dc2626);
}

.icu-alert--warning {
  background: var(--eu-warning-bg, #fffbeb);
  color: var(--eu-warning, #b45309);
  border-left-color: var(--eu-warning, #d97706);
}

.icu-alert--info {
  background: var(--eu-info-bg, #eff6ff);
  color: var(--eu-info, #1d4ed8);
  border-left-color: var(--eu-info, #2563eb);
}

/* Pulse tiles — critical care colour bands */
.icu-pulse-tile--danger,
.icu-pulse-tile--critical {
  border-color: var(--eu-danger, #dc2626);
  background: var(--eu-danger-bg, #fef2f2);
}

.icu-pulse-tile--warning,
.icu-pulse-tile--high {
  border-color: var(--eu-warning, #d97706);
  background: var(--eu-warning-bg, #fffbeb);
}

.icu-pulse-tile--ok,
.icu-pulse-tile--medium,
.icu-pulse-tile--info {
  border-color: var(--eu-border, #e5e7eb);
}

/* Board / monitor row highlights */
.icu-board-row--danger,
.icu-monitor-row--danger {
  background: var(--eu-danger-bg, #fef2f2) !important;
}

.icu-board-row--warning,
.icu-monitor-row--warning {
  background: var(--eu-warning-bg, #fffbeb) !important;
}

.icu-monitor-row--info {
  background: transparent;
}

.icu-vital-badge {
  font-variant-numeric: tabular-nums;
}

.icu-monitor-meta {
  margin: 8px 16px 16px;
}

/* Urgent pack cards by urgency */
.icu-order-card--danger {
  border-left: 3px solid var(--eu-danger, #dc2626);
}

.icu-order-card--warning {
  border-left: 3px solid var(--eu-warning, #d97706);
}

.icu-order-card--info {
  border-left: 3px solid var(--eu-info, #2563eb);
}

.icu-order-card--neutral {
  border-left: 3px solid var(--eu-border, #d1d5db);
}

.icu-report-card--danger {
  border-top: 3px solid var(--eu-danger, #dc2626);
}

.icu-report-card--warning {
  border-top: 3px solid var(--eu-warning, #d97706);
}

.icu-report-card--info {
  border-top: 3px solid var(--eu-info, #2563eb);
}

.icu-legacy-chart {
  margin-top: 12px;
}
/* IP Bill Finalisation — dense billing workbench */

.ipf-workbench {
  --ipf-sticky-h: 4.75rem;
  padding-bottom: calc(var(--ipf-sticky-h) + 0.75rem);
}

.ipf-workbench--dense .eu-workflow-page__body {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.ipf-workbench .eu-workflow-page__body {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.ipf-page-header {
  margin-bottom: 0.35rem !important;
  padding-bottom: 0.35rem !important;
}

.ipf-crumb-bill {
  font-weight: 700;
  color: var(--chk-accent, #0f766e);
}

/* —— Compact patient info ribbon —— */
.ipf-patient-ribbon {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.75rem;
  padding: 0.35rem 0.65rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0.4rem;
  background: linear-gradient(90deg, #f8fafc 0%, #fff 40%);
  min-height: 2.4rem;
}

.ipf-patient-ribbon__who {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  flex-shrink: 0;
  padding-right: 0.65rem;
  border-right: 1px solid var(--eu-border, #e2e8f0);
}

.ipf-patient-ribbon__avatar {
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 50%;
  background: #dbeafe;
  color: #1d4ed8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 800;
}

.ipf-patient-ribbon__name {
  font-weight: 800;
  font-size: 0.875rem;
  line-height: 1.1;
}

.ipf-patient-ribbon__meta {
  font-size: 0.6875rem;
  color: var(--eu-text-muted, #64748b);
}

.ipf-patient-ribbon__badge {
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.1rem 0.4rem;
  border-radius: 999px;
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #a7f3d0;
}

.ipf-patient-ribbon__facts {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.2rem 0.85rem;
  font-size: 0.75rem;
  color: var(--eu-text, #0f172a);
}

.ipf-patient-ribbon__facts b {
  font-size: 0.5625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--eu-text-muted, #64748b);
  margin-right: 0.2rem;
}

.ipf-patient-ribbon__fact--bill {
  color: var(--chk-accent, #0f766e);
  font-weight: 600;
}

/* —— Primary finance strip (5 cards) —— */
.ipf-finance-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.55rem;
}

.ipf-finance-strip--hero {
  margin-top: 0.35rem;
}

@media (max-width: 1100px) {
  .ipf-finance-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .ipf-finance-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.ipf-finance-card {
  padding: 0.7rem 0.8rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0.55rem;
  background: #fff;
  min-height: 5.5rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.ipf-finance-strip--hero .ipf-finance-card {
  border-width: 1.5px;
}

.ipf-finance-card__label {
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.045em;
  color: var(--eu-text-muted, #64748b);
  margin-bottom: 0.25rem;
}

.ipf-finance-card__value {
  font-size: 1.55rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: #0f172a;
}

.ipf-finance-card__hint {
  margin-top: 0.3rem;
  font-size: 0.7rem;
  color: var(--eu-text-muted, #64748b);
  line-height: 1.3;
}

.ipf-finance-card--total {
  background: linear-gradient(180deg, #f1f5f9 0%, #fff 70%);
  border-color: #94a3b8;
}

.ipf-finance-card--total .ipf-finance-card__value {
  font-size: 1.65rem;
}

.ipf-finance-card--deposit {
  border-color: #4ade80;
  background: linear-gradient(180deg, #ecfdf5 0%, #fff 75%);
}

.ipf-finance-card--deposit .ipf-finance-card__value {
  color: #047857;
}

.ipf-finance-card--cs {
  border-color: #a78bfa;
  background: linear-gradient(180deg, #f5f3ff 0%, #fff 75%);
}

.ipf-finance-card--cs .ipf-finance-card__value {
  color: #5b21b6;
}

.ipf-finance-card--ps {
  border-color: #60a5fa;
  background: linear-gradient(180deg, #eff6ff 0%, #fff 75%);
}

.ipf-finance-card--ps .ipf-finance-card__value {
  color: #1d4ed8;
}

.ipf-finance-card--payable {
  border-color: #f87171;
  background: linear-gradient(180deg, #fef2f2 0%, #fff 75%);
  box-shadow: 0 0 0 1px rgba(220, 38, 38, 0.12), 0 2px 8px rgba(220, 38, 38, 0.08);
}

.ipf-finance-card--payable .ipf-finance-card__value {
  color: #b91c1c;
  font-size: 1.75rem;
}

.ipf-finance-card--settled {
  border-color: #4ade80;
  background: linear-gradient(180deg, #ecfdf5 0%, #fff 75%);
  box-shadow: 0 0 0 1px rgba(5, 150, 105, 0.12);
}

.ipf-finance-card--settled .ipf-finance-card__value {
  color: #047857;
}


.ipf-alert-stack--compact {
  gap: 0.3rem;
}

.ipf-alert-stack--compact .ipf-alert {
  padding: 0.3rem 0.55rem;
  font-size: 0.75rem;
}

.ipf-inline-hint {
  margin: 0;
  padding: 0.35rem 0.65rem;
  font-size: 0.6875rem;
  color: var(--eu-text-muted, #64748b);
  background: #f8fafc;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.ipf-accordion__share {
  font-size: 0.6875rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.ipf-accordion__share--ps { color: #1d4ed8; }
.ipf-accordion__share--cs { color: #6d28d9; }

/* Compact toolbar row: tabs + search inline */
.ipf-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  padding: 0.5rem 0.75rem;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0.5rem;
}

.ipf-toolbar__tabs {
  display: flex;
  gap: 0.35rem;
}

.ipf-toolbar__search {
  display: flex;
  flex: 1;
  min-width: 220px;
  gap: 0.35rem;
  align-items: center;
}

.ipf-toolbar__search .eu-input,
.ipf-toolbar__search .form-input {
  flex: 1;
  min-height: 2rem;
  padding: 0.35rem 0.6rem;
  font-size: 0.8125rem;
}

/* Warning chips */
.ipf-warnings {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.ipf-warning {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  white-space: nowrap;
}

.ipf-warning--danger {
  background: #fef2f2;
  color: #b91c1c;
  border: 1px solid #fecaca;
}

.ipf-warning--warning {
  background: #fffbeb;
  color: #b45309;
  border: 1px solid #fde68a;
}

.ipf-warning--info {
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
}

.ipf-warning--success {
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #a7f3d0;
}

/* Financial metrics strip — hero numbers */
.ipf-metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.5rem;
}

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

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

.ipf-metric {
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0.45rem;
  background: var(--eu-surface, #fff);
}

.ipf-metric--payable {
  border-color: #fca5a5;
  background: linear-gradient(180deg, #fff5f5 0%, #fff 100%);
}

.ipf-metric--deposit {
  border-color: #86efac;
  background: linear-gradient(180deg, #f0fdf4 0%, #fff 100%);
}

.ipf-metric__label {
  font-size: 0.625rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--eu-text-muted, #64748b);
  margin-bottom: 0.15rem;
}

.ipf-metric__value {
  font-size: 1.05rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}

.ipf-metric--payable .ipf-metric__value {
  color: #dc2626;
  font-size: 1.2rem;
}

.ipf-metric--deposit .ipf-metric__value {
  color: #059669;
}

/* Index page — never widen the shell; scroll stays inside the table */
.ipf-workbench.eu-page {
  min-width: 0;
  max-width: 100%;
  overflow-x: clip;
}

.ipf-queue-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

/* Index table — financial columns */
.ipf-queue-table {
  width: 100%;
  min-width: 56rem;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.8125rem;
  table-layout: auto;
}

.ipf-queue-table th,
.ipf-queue-table td {
  padding: 0.4rem 0.5rem;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
  vertical-align: middle;
}

.ipf-queue-table th {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--eu-text-muted, #64748b);
  background: var(--eu-surface-2, #f8fafc);
  position: sticky;
  top: 0;
  z-index: 2;
  white-space: nowrap;
}

.ipf-queue-table tbody tr:hover {
  background: #f8fafc;
}

.ipf-queue-table__row--finalized {
  background: #ecfdf5;
}

.ipf-queue-table__row--finalized:hover {
  background: #d1fae5;
}

.ipf-queue-table__row--due {
  background: #fff7ed;
}

.ipf-queue-table__row--due:hover {
  background: #ffedd5;
}

.ipf-queue-table__row--corporate {
  background: #eff6ff;
}

.ipf-queue-table__row--corporate:hover {
  background: #dbeafe;
}

.ipf-queue-table .num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  white-space: nowrap;
}

.ipf-queue-table .num--due {
  font-weight: 700;
  color: #dc2626;
}

.ipf-queue-table .num--ok {
  color: #059669;
}

/* Keep patient identity visible while scrolling money/alert columns */
.ipf-queue-table__sticky {
  position: sticky;
  left: 0;
  z-index: 3;
  min-width: 9.5rem;
  max-width: 12rem;
  background: #fff;
  box-shadow: 1px 0 0 var(--eu-border, #e2e8f0);
}

.ipf-queue-table thead .ipf-queue-table__sticky {
  z-index: 4;
  background: var(--eu-surface-2, #f8fafc);
}

.ipf-queue-table__row--finalized .ipf-queue-table__sticky { background: #ecfdf5; }
.ipf-queue-table__row--finalized:hover .ipf-queue-table__sticky { background: #d1fae5; }
.ipf-queue-table__row--due .ipf-queue-table__sticky { background: #fff7ed; }
.ipf-queue-table__row--due:hover .ipf-queue-table__sticky { background: #ffedd5; }
.ipf-queue-table__row--corporate .ipf-queue-table__sticky { background: #eff6ff; }
.ipf-queue-table__row--corporate:hover .ipf-queue-table__sticky { background: #dbeafe; }

.ipf-queue-table__alerts {
  min-width: 10rem;
  max-width: 16rem;
}

.ipf-queue-table__alerts .ipf-warnings {
  max-width: 16rem;
}

.ipf-queue-table__alerts .ipf-warning {
  white-space: normal;
  line-height: 1.25;
  max-width: 100%;
}

.ipf-queue-table__actions {
  text-align: right;
  white-space: nowrap;
  width: 1%;
}

.ipf-patient-cell__name {
  font-weight: 600;
  color: var(--eu-text, #0f172a);
  overflow: hidden;
  text-overflow: ellipsis;
}

.ipf-patient-cell__meta {
  font-size: 0.75rem;
  color: var(--eu-text-muted, #64748b);
  margin-top: 0.1rem;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ipf-patient-cell__meta--final {
  color: #047857;
  font-weight: 600;
}

.ipf-stay-dates {
  font-size: 0.75rem;
  white-space: normal;
  min-width: 7.5rem;
  max-width: 9.5rem;
}

.ipf-stay-dates__label {
  display: block;
  font-size: 0.625rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--eu-text-muted, #64748b);
  margin-bottom: 0.05rem;
}

/* Colorful KPI summary on Finalisation index */
.ipf-workbench .eu-kpi-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.65rem;
  margin-bottom: 0.75rem;
}

.ipf-workbench .eu-kpi-summary__item {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.7rem 0.85rem;
  border-radius: 0.65rem;
  border: 1px solid transparent;
  background: #f1f5f9;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.ipf-workbench .eu-kpi-summary__label {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #475569;
}

.ipf-workbench .eu-kpi-summary__value {
  font-size: 1.15rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: #0f172a;
}

.ipf-workbench .eu-kpi-summary__item--info {
  background: linear-gradient(180deg, #dbeafe 0%, #eff6ff 100%);
  border-color: #93c5fd;
}
.ipf-workbench .eu-kpi-summary__item--info .eu-kpi-summary__value { color: #1d4ed8; }

.ipf-workbench .eu-kpi-summary__item--success {
  background: linear-gradient(180deg, #d1fae5 0%, #ecfdf5 100%);
  border-color: #6ee7b7;
}
.ipf-workbench .eu-kpi-summary__item--success .eu-kpi-summary__value { color: #047857; }

.ipf-workbench .eu-kpi-summary__item--warning {
  background: linear-gradient(180deg, #fde68a 0%, #fffbeb 100%);
  border-color: #fbbf24;
}
.ipf-workbench .eu-kpi-summary__item--warning .eu-kpi-summary__value { color: #b45309; }

.ipf-workbench .eu-kpi-summary__item--danger {
  background: linear-gradient(180deg, #fecaca 0%, #fef2f2 100%);
  border-color: #fca5a5;
}
.ipf-workbench .eu-kpi-summary__item--danger .eu-kpi-summary__value { color: #b91c1c; }

.ipf-workbench .eu-kpi-summary__item.is-active {
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.25);
}

@media (max-width: 1100px) {
  .ipf-workbench .eu-kpi-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .ipf-workbench .eu-kpi-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
  font-size: 0.6875rem;
  color: var(--eu-text-muted, #64748b);
}

/* Show layout */
.ipf-show-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(260px, 0.95fr);
  gap: 0.5rem;
  align-items: start;
}

@media (max-width: 1024px) {
  .ipf-show-grid {
    grid-template-columns: 1fr;
  }
}

.ipf-side-panel {
  position: sticky;
  top: 0.35rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.ipf-panel {
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0.5rem;
  background: var(--eu-surface, #fff);
  overflow: hidden;
}

.ipf-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.45rem 0.65rem;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
  background: var(--eu-surface-2, #f8fafc);
  font-size: 0.75rem;
  font-weight: 600;
}

.ipf-panel__body {
  padding: 0.55rem 0.65rem;
}

.ipf-panel__body.flush {
  padding: 0;
}

.ipf-tabs {
  display: flex;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.ipf-tab {
  flex: 1;
  padding: 0.45rem 0.5rem;
  border: none;
  background: transparent;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--eu-text-muted, #64748b);
  cursor: pointer;
  border-bottom: 2px solid transparent;
}

.ipf-tab.is-active {
  color: var(--eu-primary, #2563eb);
  border-bottom-color: var(--eu-primary, #2563eb);
}

.ipf-tab-panel {
  display: none;
  padding: 0.55rem 0.65rem;
}

.ipf-tab-panel.is-active {
  display: block;
}

.ipf-compact-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.75rem;
}

.ipf-compact-table th,
.ipf-compact-table td {
  padding: 0.35rem 0.4rem;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.ipf-compact-table th {
  font-size: 0.625rem;
  text-transform: uppercase;
  color: var(--eu-text-muted, #64748b);
}

.ipf-compact-table .num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.ipf-charge-lines-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.ipf-charge-lines-table {
  min-width: 52rem;
}

.ipf-charge-lines-table th:nth-child(2),
.ipf-charge-lines-table td:nth-child(2) {
  min-width: 13rem;
}

.ipf-charge-desc__name {
  font-weight: 600;
}

.ipf-charge-desc__codes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-top: 0.2rem;
}

.ipf-code-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.05rem 0.35rem;
  border-radius: 0.25rem;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  border: 1px solid transparent;
}

.ipf-code-chip strong {
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}

.ipf-code-chip--svc {
  background: #eff6ff;
  border-color: #bfdbfe;
  color: #1d4ed8;
}

.ipf-code-chip--corp {
  background: #f5f3ff;
  border-color: #ddd6fe;
  color: #6d28d9;
}

.ipf-share-cell--ps {
  color: #1d4ed8;
  font-weight: 600;
}

.ipf-share-cell--cs {
  color: #6d28d9;
  font-weight: 600;
}

.ipf-share-cell--copay {
  color: #c2410c;
  font-weight: 600;
}

.ipf-charge-lines-table__totals td {
  font-weight: 700;
  background: #f8fafc;
  border-top: 1px solid var(--eu-border, #cbd5e1);
}

/* Quick patient switcher */
.ipf-quick-search {
  position: relative;
  min-width: 200px;
  max-width: 280px;
}

.ipf-quick-search__results {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 40;
  background: #fff;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0 0 0.35rem 0.35rem;
  max-height: 220px;
  overflow-y: auto;
  display: none;
}

.ipf-quick-search__item {
  padding: 0.45rem 0.6rem;
  cursor: pointer;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
  font-size: 0.75rem;
}

.ipf-quick-search__item:hover {
  background: #f1f5f9;
}

/* Sticky action bar */
.ipf-sticky-bar {
  position: fixed;
  left: var(--app-sidebar-width, 240px);
  right: 0;
  bottom: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding: 0.4rem 0.85rem;
  background: rgba(15, 23, 42, 0.96);
  color: #e2e8f0;
  border-top: 1px solid #334155;
  box-shadow: 0 -6px 20px rgba(15, 23, 42, 0.28);
  backdrop-filter: blur(8px);
  min-height: var(--ipf-sticky-h);
}

.ipf-sticky-bar__summary {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.55rem 0.9rem;
  font-size: 0.75rem;
  min-width: 0;
}

.ipf-sticky-bar__id {
  color: #cbd5e1;
}

.ipf-sticky-bar__bill {
  color: #5eead4;
  font-weight: 700;
}

.ipf-sticky-bar__metric strong {
  font-variant-numeric: tabular-nums;
  margin-left: 0.2rem;
}

.ipf-sticky-bar__metric--cs strong { color: #c4b5fd; }
.ipf-sticky-bar__metric--ps strong { color: #93c5fd; }
.ipf-sticky-bar__metric--deposit strong { color: #6ee7b7; }
.ipf-sticky-bar__metric--total strong { color: #f8fafc; }

.ipf-sticky-bar__payable {
  font-size: 1.05rem;
  font-weight: 800;
  color: #fca5a5;
  font-variant-numeric: tabular-nums;
  margin-left: 0.2rem;
}

.ipf-sticky-bar__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  justify-content: flex-end;
  flex-shrink: 0;
}

.ipf-sticky-bar__groups {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.65rem;
  justify-content: flex-end;
  align-items: flex-start;
  flex-shrink: 0;
  max-width: 62%;
}

.ipf-sticky-group {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.ipf-sticky-group__label {
  font-size: 0.5625rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #94a3b8;
  line-height: 1;
}

.ipf-sticky-group__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  align-items: center;
}

.ipf-sticky-group__empty {
  font-size: 0.65rem;
  color: #94a3b8;
  white-space: nowrap;
}

.ipf-sticky-group__empty--ok {
  color: #6ee7b7;
  font-weight: 650;
}

.ipf-sticky-bar__payable.is-settled {
  color: #6ee7b7;
}

.ipf-sticky-bar__actions form,
.ipf-sticky-bar__form {
  margin: 0;
  display: inline;
}

.ipf-sticky-bar .eu-btn,
.ipf-sticky-bar .btn {
  min-height: 1.9rem;
  padding: 0.3rem 0.55rem;
  font-size: 0.6875rem;
}

.ipf-sticky-bar .eu-btn--secondary,
.ipf-sticky-bar .eu-btn--ghost {
  background: #1e293b;
  border-color: #475569;
  color: #e2e8f0;
}

.ipf-sticky-bar .eu-btn--ghost:hover,
.ipf-sticky-bar .eu-btn--secondary:hover {
  background: #334155;
  color: #fff;
}

@media (max-width: 900px) {
  .ipf-sticky-bar {
    left: 0;
    flex-direction: column;
    align-items: stretch;
  }

  .ipf-sticky-bar__actions,
  .ipf-sticky-bar__groups {
    justify-content: flex-start;
    max-width: 100%;
  }
}

/* Category chips */
.ipf-cat-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.ipf-cat {
  padding: 0.25rem 0.45rem;
  border-radius: 0.35rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  font-size: 0.6875rem;
  background: #f8fafc;
}

.ipf-cat strong {
  font-variant-numeric: tabular-nums;
}

/* Alert banner */
.ipf-alert {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.45rem 0.65rem;
  border-radius: 0.45rem;
  font-size: 0.8125rem;
  font-weight: 500;
}

.ipf-alert--warning {
  background: #fffbeb;
  border: 1px solid #fde68a;
  color: #92400e;
}

.ipf-alert form {
  margin: 0;
}

/* Payment form compact */
.ipf-pay-modes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem;
}

.ipf-pay-mode {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.45rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0.35rem;
  font-size: 0.75rem;
  cursor: pointer;
}

.ipf-pay-amount {
  font-size: 1.35rem;
  font-weight: 800;
  color: #dc2626;
  font-variant-numeric: tabular-nums;
  margin: 0.35rem 0 0.5rem;
}

/* —— v2: dense finalisation desk —— */

.ipf-page-header {
  margin-bottom: 0.5rem;
}

.ipf-header-actions {
  display: flex;
  gap: 0.35rem;
  align-items: center;
}

.ipf-patient-banner {
  display: flex;
  gap: 0.75rem;
  align-items: stretch;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0.5rem;
  background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
}

.ipf-patient-banner__identity {
  display: flex;
  gap: 0.55rem;
  align-items: center;
  min-width: 11rem;
  padding-right: 0.75rem;
  border-right: 1px solid var(--eu-border, #e2e8f0);
}

.ipf-patient-banner__avatar {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: #dbeafe;
  color: #1d4ed8;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.95rem;
  flex-shrink: 0;
}

.ipf-patient-banner__name {
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.2;
}

.ipf-patient-banner__sub {
  font-size: 0.6875rem;
  color: var(--eu-text-muted, #64748b);
}

.ipf-patient-banner__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.35rem 0.75rem;
  flex: 1;
}

@media (max-width: 1100px) {
  .ipf-patient-banner {
    flex-direction: column;
  }
  .ipf-patient-banner__identity {
    border-right: none;
    border-bottom: 1px solid var(--eu-border, #e2e8f0);
    padding-right: 0;
    padding-bottom: 0.45rem;
  }
  .ipf-patient-banner__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.ipf-patient-banner__item {
  min-width: 0;
}

.ipf-patient-banner__item--emphasis .ipf-patient-banner__value {
  font-weight: 700;
  color: var(--chk-accent, #0f766e);
}

.ipf-action-hint {
  display: inline-flex;
  align-items: center;
  font-size: 0.8125rem;
  max-width: 28rem;
}

.ipf-patient-banner__label {
  display: block;
  font-size: 0.5625rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--eu-text-muted, #64748b);
}

.ipf-patient-banner__value {
  display: block;
  font-size: 0.8125rem;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ipf-alert-stack {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.ipf-alert--danger {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}

.ipf-alert--info {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1e40af;
}

.ipf-alert--success {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #065f46;
}

.ipf-hero-metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
  gap: 0.5rem;
}

.ipf-share-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0.55rem 0 0.75rem;
}

.ipf-share-strip__item {
  display: inline-flex;
  align-items: baseline;
  gap: 0.4rem;
  padding: 0.35rem 0.65rem;
  border-radius: 0.4rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  background: #fff;
  font-variant-numeric: tabular-nums;
}

.ipf-share-strip__code {
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #64748b);
}

.ipf-share-strip__amt {
  font-size: 0.9375rem;
  font-weight: 800;
}

.ipf-share-strip__pct {
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--eu-text-muted, #64748b);
}

.ipf-share-strip__item--ps {
  border-color: #93c5fd;
  background: linear-gradient(180deg, #eff6ff 0%, #fff 80%);
}

.ipf-share-strip__item--ps .ipf-share-strip__code,
.ipf-share-strip__item--ps .ipf-share-strip__amt {
  color: #1d4ed8;
}

.ipf-share-strip__item--cs {
  border-color: #c4b5fd;
  background: linear-gradient(180deg, #f5f3ff 0%, #fff 80%);
}

.ipf-share-strip__item--cs .ipf-share-strip__code,
.ipf-share-strip__item--cs .ipf-share-strip__amt {
  color: #6d28d9;
}

.ipf-share-strip__item--ins {
  border-color: #67e8f9;
  background: linear-gradient(180deg, #ecfeff 0%, #fff 80%);
}

.ipf-share-strip__item--ins .ipf-share-strip__code,
.ipf-share-strip__item--ins .ipf-share-strip__amt {
  color: #0e7490;
}

.ipf-share-strip__item--copay {
  border-color: #fdba74;
  background: linear-gradient(180deg, #fff7ed 0%, #fff 80%);
}

.ipf-share-strip__item--copay .ipf-share-strip__code,
.ipf-share-strip__item--copay .ipf-share-strip__amt {
  color: #c2410c;
}

.ipf-hero--ps {
  border-color: #93c5fd;
  background: linear-gradient(180deg, #eff6ff 0%, #fff 70%);
}

.ipf-hero--ps .ipf-hero__value {
  color: #1d4ed8;
}

.ipf-hero--cs {
  border-color: #c4b5fd;
  background: linear-gradient(180deg, #f5f3ff 0%, #fff 70%);
}

.ipf-hero--cs .ipf-hero__value {
  color: #6d28d9;
}

.ipf-hero--ins {
  border-color: #67e8f9;
  background: linear-gradient(180deg, #ecfeff 0%, #fff 70%);
}

.ipf-hero--ins .ipf-hero__value {
  color: #0e7490;
}

.ipf-hero--copay {
  border-color: #fdba74;
  background: linear-gradient(180deg, #fff7ed 0%, #fff 70%);
}

.ipf-hero--copay .ipf-hero__value {
  color: #c2410c;
}

.eu-amount-summary__pct {
  margin-left: 0.35rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--eu-text-muted, #64748b);
}

.eu-amount-summary__line--ps .eu-amount-summary__value {
  color: #1d4ed8;
  font-weight: 700;
}

.eu-amount-summary__line--cs .eu-amount-summary__value {
  color: #6d28d9;
  font-weight: 700;
}

.eu-amount-summary__line--copay .eu-amount-summary__value {
  color: #c2410c;
  font-weight: 700;
}

.ipf-sticky-bar__shares {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  padding: 0.15rem 0.5rem;
  border-radius: 0.35rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 0.75rem;
}

.ipf-sticky-bar__shares strong {
  font-variant-numeric: tabular-nums;
}

.ipf-hero {
  padding: 0.7rem 0.8rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0.55rem;
  background: #fff;
  min-height: 5.25rem;
}

.ipf-hero--gross {
  background: linear-gradient(180deg, #f8fafc 0%, #fff 70%);
}

.ipf-hero--deposit {
  border-color: #86efac;
  background: linear-gradient(180deg, #f0fdf4 0%, #fff 70%);
}

.ipf-hero--payable {
  border-color: #fca5a5;
  background: linear-gradient(180deg, #fef2f2 0%, #fff 70%);
}

.ipf-hero__label {
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--eu-text-muted, #64748b);
  margin-bottom: 0.2rem;
}

.ipf-hero__value {
  font-size: 1.25rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  line-height: 1.15;
}

.ipf-hero--payable .ipf-hero__value {
  color: #dc2626;
  font-size: 1.4rem;
}

.ipf-hero--deposit .ipf-hero__value {
  color: #059669;
}

.ipf-hero__hint {
  margin-top: 0.25rem;
  font-size: 0.6875rem;
  color: var(--eu-text-muted, #64748b);
}

.ipf-hero__hint--excess {
  color: var(--eu-warning, #b45309);
  font-weight: 600;
}

/* Package utilization thin bar (do not reuse for workflow rail) */
.ipf-util-progress {
  margin-top: 0.4rem;
  height: 0.35rem;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
}

.ipf-util-progress__bar {
  height: 100%;
  background: #10b981;
  border-radius: 999px;
}

.ipf-util-progress--pkg .ipf-util-progress__bar {
  background: #3b82f6;
}

.ipf-action-groups {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
  padding: 0.5rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0.5rem;
  background: #fff;
}

@media (max-width: 1000px) {
  .ipf-action-groups {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.ipf-action-group__label {
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--eu-text-muted, #64748b);
  margin-bottom: 0.3rem;
}

.ipf-action-group__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}

.ipf-action-group__btns form {
  margin: 0;
}

.ipf-accordion {
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.ipf-accordion__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
  padding: 0.4rem 0.65rem;
  cursor: pointer;
  list-style: none;
  font-size: 0.8125rem;
}

.ipf-accordion__summary::-webkit-details-marker {
  display: none;
}

.ipf-accordion__title {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-weight: 750;
  color: #0f172a;
}

.ipf-accordion__icon {
  font-size: 1.05rem;
  line-height: 1;
}

.ipf-accordion__name {
  display: inline-flex;
  align-items: baseline;
  gap: 0.25rem;
}

.ipf-accordion__count {
  font-weight: 700;
  color: #64748b;
  font-variant-numeric: tabular-nums;
}

.ipf-accordion__items {
  font-size: 0.6875rem;
  font-weight: 650;
  color: #475569;
  white-space: nowrap;
}

.ipf-accordion__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem;
  justify-content: flex-end;
}

.ipf-accordion__total {
  font-size: 0.95rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: #0f172a;
  min-width: 5.5rem;
  text-align: right;
}

.ipf-accordion--room > .ipf-accordion__summary { background: #f8fafc; }
.ipf-accordion--pharmacy > .ipf-accordion__summary { background: #f0fdf4; }
.ipf-accordion--lab > .ipf-accordion__summary { background: #eff6ff; }
.ipf-accordion--radiology > .ipf-accordion__summary { background: #faf5ff; }
.ipf-accordion--procedure > .ipf-accordion__summary,
.ipf-accordion--ot > .ipf-accordion__summary { background: #fff7ed; }
.ipf-accordion--consultation > .ipf-accordion__summary { background: #ecfeff; }
.ipf-accordion--other > .ipf-accordion__summary { background: #f8fafc; }


.ipf-accordion__body {
  padding: 0 0.5rem 0.55rem;
  background: #f8fafc;
}

.ipf-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  max-height: 16rem;
  overflow-y: auto;
}

.ipf-timeline__item {
  display: grid;
  grid-template-columns: 1.5rem 6.5rem 1fr auto auto;
  gap: 0.4rem;
  align-items: center;
  padding: 0.3rem 0.45rem;
  border-left: 3px solid #cbd5e1;
  background: #f8fafc;
  border-radius: 0 0.35rem 0.35rem 0;
  font-size: 0.75rem;
}

.ipf-timeline__icon {
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.5625rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  background: #e2e8f0;
  color: #334155;
}

.ipf-timeline__item--advance .ipf-timeline__icon::before,
.ipf-timeline__item--payment .ipf-timeline__icon::before { content: "₹"; }
.ipf-timeline__item--credit .ipf-timeline__icon::before { content: "+"; }
.ipf-timeline__item--charge .ipf-timeline__icon::before { content: "CH"; }
.ipf-timeline__item--interim_bill .ipf-timeline__icon::before { content: "IB"; }
.ipf-timeline__item--final_bill .ipf-timeline__icon::before { content: "IP"; }
.ipf-timeline__item--cancellation .ipf-timeline__icon::before { content: "X"; }
.ipf-timeline__item--discount .ipf-timeline__icon::before { content: "%"; }
.ipf-timeline__item--refund .ipf-timeline__icon::before { content: "RF"; }

.ipf-timeline__item--advance,
.ipf-timeline__item--payment {
  border-left-color: #10b981;
  background: #ecfdf5;
}
.ipf-timeline__item--advance .ipf-timeline__icon,
.ipf-timeline__item--payment .ipf-timeline__icon {
  background: #10b981;
  color: #fff;
}

.ipf-timeline__item--credit {
  border-left-color: #059669;
  background: #f0fdf4;
}
.ipf-timeline__item--credit .ipf-timeline__icon {
  background: #059669;
  color: #fff;
}

.ipf-timeline__item--charge { border-left-color: #94a3b8; }

.ipf-timeline__item--interim_bill {
  border-left-color: #3b82f6;
  background: #eff6ff;
}
.ipf-timeline__item--interim_bill .ipf-timeline__icon {
  background: #3b82f6;
  color: #fff;
}

.ipf-timeline__item--final_bill {
  border-left-color: #7c3aed;
  background: #f5f3ff;
}
.ipf-timeline__item--final_bill .ipf-timeline__icon {
  background: #7c3aed;
  color: #fff;
}

.ipf-timeline__item--cancellation {
  border-left-color: #dc2626;
  background: #fef2f2;
}
.ipf-timeline__item--cancellation .ipf-timeline__icon {
  background: #dc2626;
  color: #fff;
}

.ipf-timeline__item--discount {
  border-left-color: #f59e0b;
  background: #fffbeb;
}
.ipf-timeline__item--discount .ipf-timeline__icon {
  background: #f59e0b;
  color: #fff;
}

.ipf-timeline__item--refund {
  border-left-color: #ef4444;
  background: #fef2f2;
}
.ipf-timeline__item--refund .ipf-timeline__icon {
  background: #ef4444;
  color: #fff;
}

.ipf-timeline__kind {
  font-weight: 700;
}

.ipf-timeline__ref {
  color: var(--eu-text-muted, #64748b);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ipf-timeline__note {
  display: block;
  font-size: 0.6875rem;
  color: var(--eu-text-muted, #94a3b8);
  margin-top: 0.1rem;
  white-space: normal;
}

.ipf-timeline__amt {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}

.ipf-timeline__at {
  color: var(--eu-text-muted, #64748b);
  white-space: nowrap;
  font-size: 0.6875rem;
}

/* Side financial dashboard */
.ipf-fin-dash {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.ipf-fin-dash__highlight {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.55rem 0.65rem;
  border-radius: 0.45rem;
  border: 1px solid #fca5a5;
  background: linear-gradient(180deg, #fef2f2 0%, #fff 100%);
}

.ipf-fin-dash__highlight--zero {
  border-color: #86efac;
  background: linear-gradient(180deg, #ecfdf5 0%, #fff 100%);
}

.ipf-fin-dash__highlight-label {
  font-size: 0.6875rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #b91c1c;
}

.ipf-fin-dash__highlight--zero .ipf-fin-dash__highlight-label {
  color: #047857;
}

.ipf-fin-dash__highlight-value {
  font-size: 1.35rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: #dc2626;
}

.ipf-fin-dash__highlight--zero .ipf-fin-dash__highlight-value {
  color: #059669;
}

.ipf-fin-dash__tiles {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.35rem;
}

.ipf-fin-dash__tile {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0.4rem 0.5rem;
  border-radius: 0.35rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  background: #f8fafc;
}

.ipf-fin-dash__tile span {
  font-size: 0.5625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--eu-text-muted, #64748b);
}

.ipf-fin-dash__tile strong {
  font-size: 0.9rem;
  font-variant-numeric: tabular-nums;
}

.ipf-fin-dash__tile--deposit strong { color: #059669; }
.ipf-fin-dash__tile--cs strong { color: #6d28d9; }
.ipf-fin-dash__tile--ps strong { color: #1d4ed8; }

.eu-amount-summary--dense .eu-amount-summary__line {
  padding: 0.25rem 0;
  font-size: 0.75rem;
}

.ipf-settled--sponsor {
  border-color: #c4b5fd;
  background: #f5f3ff;
}

.ipf-settled__icon {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.6875rem;
  font-weight: 800;
  background: #d1fae5;
  color: #047857;
}

.ipf-settled--sponsor .ipf-settled__icon {
  background: #ddd6fe;
  color: #6d28d9;
}

.ipf-ai--collapsible > summary {
  list-style: none;
  cursor: pointer;
}

.ipf-ai--collapsible > summary::-webkit-details-marker {
  display: none;
}

.ipf-ai__summary {
  user-select: none;
}

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

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

.ipf-ai-card {
  padding: 0.5rem;
  border: 1px dashed #cbd5e1;
  border-radius: 0.4rem;
  background: #f8fafc;
}

.ipf-ai-card--placeholder {
  opacity: 0.85;
}

.ipf-ai-card__label {
  font-size: 0.625rem;
  font-weight: 650;
  text-transform: uppercase;
  color: var(--eu-text-muted, #64748b);
  margin-bottom: 0.2rem;
}

.ipf-ai-card__value {
  font-size: 0.9rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.ipf-side-panel {
  position: sticky;
  top: 0.5rem;
  align-self: start;
  max-height: calc(100vh - 5.5rem);
  overflow-y: auto;
  padding-bottom: 0.25rem;
}

.ipf-panel--payment {
  display: flex;
  flex-direction: column;
  max-height: min(72vh, calc(100vh - 7.5rem));
}

.ipf-panel--payment > .ipf-panel__head {
  flex-shrink: 0;
}

.ipf-panel__body--pay {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 0;
  overflow: hidden;
}

.ipf-pay-form {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
}

.ipf-pay-form__scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 0.55rem 0.65rem;
  -webkit-overflow-scrolling: touch;
}

.ipf-pay-form__actions {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0.55rem 0.65rem;
  border-top: 1px solid var(--eu-border, #e2e8f0);
  background: var(--eu-surface, #fff);
  box-shadow: 0 -4px 12px rgba(15, 23, 42, 0.04);
}

.ipf-pay-form__remaining {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.5rem;
  font-size: 0.8125rem;
}

.ipf-pay-form__remaining .is-error,
.ipf-pay-form__remaining strong.is-error {
  color: #b91c1c;
}

.ipf-pay-form__submit {
  width: 100%;
}

.ipf-live-balance {
  margin: 0.35rem 0 0.65rem;
  padding: 0.4rem 0.5rem;
  border-radius: 0.35rem;
  background: #f1f5f9;
  font-size: 0.75rem;
}

.ipf-live-balance.is-over {
  background: #fef2f2;
  color: #b91c1c;
}

.ipf-pay-mode__icon {
  font-size: 0.95rem;
}

.ipf-settled {
  text-align: center;
  padding: 0.75rem 0;
}

.ipf-settled__icon {
  font-size: 1.5rem;
}

.ipf-settled__text {
  font-weight: 600;
  color: #059669;
}

.ipf-main-col {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.ipf-hero--discount {
  background: #fffbeb;
  border-color: #fcd34d;
}

.ipf-hero--discount .ipf-hero__value {
  color: #b45309;
}

.eu-amount-summary__line--discount .eu-amount-summary__value {
  color: #b45309;
}

/* Amount summary "?" help — fixed tip via Stimulus (not clipped by side panel) */
.eu-amount-summary__label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  max-width: 70%;
}

.ipf-metric-help {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.05rem;
  height: 1.05rem;
  padding: 0;
  border: 1px solid var(--eu-border, #cbd5e1);
  border-radius: 999px;
  background: var(--eu-surface-2, #f8fafc);
  color: var(--eu-muted, #64748b);
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1;
  cursor: help;
  flex-shrink: 0;
}

.ipf-metric-help:hover,
.ipf-metric-help:focus {
  border-color: var(--eu-accent, #0f766e);
  color: var(--eu-accent, #0f766e);
  outline: none;
}

.ipf-metric-help__tip {
  display: none;
  position: fixed;
  z-index: 80;
  width: min(18rem, calc(100vw - 1.25rem));
  max-width: 18rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid #1e293b;
  border-radius: 0.5rem;
  background: #0f172a;
  color: #f8fafc;
  font-size: 0.75rem;
  font-weight: 450;
  line-height: 1.4;
  text-align: left;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.35);
  white-space: normal;
  pointer-events: none;
}

.ipf-metric-help__tip.is-open {
  display: block;
}

.ipf-group-discount {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-top: 0.55rem;
  padding: 0.45rem 0.35rem 0.15rem;
  border-top: 1px dashed var(--eu-border, #e2e8f0);
}

.ipf-group-discount__form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
}

.ipf-group-discount__form .eu-label {
  margin: 0;
  font-size: 0.75rem;
}

.ipf-group-discount__form .eu-input {
  width: 4.5rem;
  min-height: 1.85rem;
  padding: 0.25rem 0.4rem;
}

.ipf-group-discount__applied {
  font-size: 0.75rem;
  color: #b45309;
  font-weight: 600;
}

.ipf-group-discount__hint {
  flex-basis: 100%;
  margin: 0;
  font-size: 0.6875rem;
  color: var(--eu-text-muted, #64748b);
}

.ipf-bill-link {
  font-weight: 600;
}

.ipf-bill-modal {
  border: none;
  border-radius: 0.65rem;
  padding: 0;
  max-width: min(52rem, 96vw);
  width: 100%;
  box-shadow: 0 20px 50px rgba(15, 23, 42, 0.28);
}

.ipf-bill-modal::backdrop {
  background: rgba(15, 23, 42, 0.45);
}

.ipf-bill-modal__panel {
  display: flex;
  flex-direction: column;
  max-height: min(85vh, 40rem);
}

.ipf-bill-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.ipf-bill-modal__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
}

.ipf-bill-modal__body {
  padding: 0.75rem 1rem 1rem;
  overflow: auto;
}

.ipf-bill-preview__meta {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.ipf-bill-preview__number {
  font-size: 1rem;
  font-weight: 700;
}

.ipf-bill-preview__totals {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  font-size: 0.8125rem;
  text-align: right;
}

.ipf-bill-preview__actions {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.ipf-group-view-toggle__bar {
  display: flex;
  gap: 0.35rem;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.ipf-day-group {
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.ipf-day-group__summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.45rem 0.75rem;
  cursor: pointer;
  font-size: 0.8125rem;
  font-weight: 600;
  background: #f8fafc;
  list-style: none;
}

.ipf-day-group__summary::-webkit-details-marker {
  display: none;
}

.ipf-day-group__body {
  padding: 0;
}

.ipf-patient-banner__hint {
  display: block;
  font-size: 0.6875rem;
  font-weight: 500;
  color: #0f766e;
  margin-top: 0.1rem;
}

.ipf-bed-alloc__meta {
  margin: 0 0 0.75rem;
  font-size: 0.8125rem;
  color: #64748b;
}

.ipf-bed-alloc__heading {
  margin: 1rem 0 0.4rem;
  font-size: 0.8125rem;
  font-weight: 700;
}

.ipf-bed-alloc__hint {
  margin-top: 0.75rem;
  font-size: 0.75rem;
  color: #64748b;
}

.ipf-bed-modal .ipf-bill-modal__panel {
  max-width: 720px;
  width: min(720px, 96vw);
}



/* Multi-mode collect (shared pattern with Settlements / Deposits) */
.ipf-cancel-preview .eu-hint-list {
  margin: 0 0 0.75rem;
  padding-left: 1.25rem;
}
.ipf-cancel-next ol {
  margin: 0.35rem 0 0;
  padding-left: 1.25rem;
}
.ipb-settle-form .eu-hint { margin-bottom: 0.5rem; }
.ipb-settle-form__lines { display: flex; flex-direction: column; gap: 0.65rem; margin-bottom: 0.65rem; }
.ipb-settle-form__tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.ipb-settle-form__allocated { display: flex; gap: 0.5rem; align-items: baseline; }
.ipb-payment-card {
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0.5rem;
  padding: 0.5rem 0.6rem;
  background: var(--eu-surface, #fff);
}
.ipb-payment-card__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.35rem;
}
.ipb-payment-card__label { font-size: 0.8125rem; font-weight: 600; }
.ipb-payment-card__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.4rem;
}
.ipf-panel--payment .ipb-payment-card__grid {
  grid-template-columns: 1fr;
}
@media (max-width: 720px) {
  .ipb-payment-card__grid { grid-template-columns: 1fr; }
}

/* —— Billing cockpit + workflow rail (collapsed by default) —— */
.ipf-cockpit {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  padding: 0.55rem 0.9rem;
  border: 1.5px solid #94a3b8;
  border-radius: 0.55rem;
  background: linear-gradient(180deg, #f1f5f9 0%, #fff 40%);
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.06);
}

.ipf-cockpit > .ipf-cockpit__head {
  list-style: none;
  cursor: pointer;
  margin: 0;
  padding: 0.2rem 0;
}

.ipf-cockpit > .ipf-cockpit__head::-webkit-details-marker { display: none; }

.ipf-cockpit__body {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  padding: 0.35rem 0 0.25rem;
  border-top: 1px solid #e2e8f0;
}

.ipf-cockpit__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 1rem;
}

.ipf-cockpit__title {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #334155;
}

.ipf-cockpit__headline {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 750;
  color: #0f172a;
}

.ipf-cockpit__headline--billing_complete,
.ipf-cockpit__headline--ready_for_discharge { color: #047857; }
.ipf-cockpit__headline--sponsor_receivable_open { color: #1d4ed8; }
.ipf-cockpit__headline--deposit_exhausted,
.ipf-cockpit__headline--final_bill_blocked { color: #b91c1c; }
.ipf-cockpit__headline--collection_due,
.ipf-cockpit__headline--corporate_pending { color: #c2410c; }
.ipf-cockpit__headline--awaiting_finalize,
.ipf-cockpit__headline--in_progress { color: #1d4ed8; }

.ipf-workflow-rail {
  list-style: none;
  margin: 0;
  padding: 0.15rem 0 0.25rem;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.4rem;
  width: 100%;
}

.ipf-workflow-rail__step {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0.3rem;
  min-height: 4.25rem;
  padding: 0.55rem 0.35rem;
  border-radius: 0.45rem;
  border: 1.5px solid #cbd5e1;
  background: #fff;
  text-align: center;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.ipf-workflow-rail__mark {
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8125rem;
  font-weight: 800;
  border: 2px solid #94a3b8;
  color: #64748b;
  background: #f8fafc;
  flex-shrink: 0;
}

.ipf-workflow-rail__label {
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 1.25;
  color: #334155;
}

.ipf-workflow-rail__step--done {
  border-color: #4ade80;
  background: #f0fdf4;
}
.ipf-workflow-rail__step--done .ipf-workflow-rail__mark {
  border-color: #16a34a;
  background: #16a34a;
  color: #fff;
}
.ipf-workflow-rail__step--done .ipf-workflow-rail__label { color: #047857; }

.ipf-workflow-rail__step--current,
.ipf-workflow-rail__step.is-current {
  border-color: #fb923c;
  background: #fff7ed;
  box-shadow: 0 0 0 2px rgba(249, 115, 22, 0.18);
}
.ipf-workflow-rail__step--current .ipf-workflow-rail__mark,
.ipf-workflow-rail__step.is-current .ipf-workflow-rail__mark {
  border-color: #ea580c;
  color: #fff;
  background: #ea580c;
}
.ipf-workflow-rail__step--current .ipf-workflow-rail__label,
.ipf-workflow-rail__step.is-current .ipf-workflow-rail__label { color: #c2410c; }

.ipf-workflow-rail__step--blocked {
  border-color: #f87171;
  background: #fef2f2;
}
.ipf-workflow-rail__step--blocked .ipf-workflow-rail__mark {
  border-color: #dc2626;
  background: #dc2626;
  color: #fff;
}
.ipf-workflow-rail__step--blocked .ipf-workflow-rail__label { color: #b91c1c; }

.ipf-workflow-rail__step--pending {
  border-color: #e2e8f0;
  background: #f8fafc;
}
.ipf-workflow-rail__step--pending .ipf-workflow-rail__mark {
  color: #94a3b8;
  border-color: #cbd5e1;
}

.ipf-cockpit__checklist {
  list-style: none;
  margin: 0;
  padding: 0.55rem 0.65rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.35rem 0.85rem;
  border-top: 1px solid #e2e8f0;
  background: rgba(255, 255, 255, 0.7);
  border-radius: 0.4rem;
}

.ipf-cockpit__check {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  font-weight: 650;
  color: #64748b;
  min-height: 1.35rem;
}

.ipf-cockpit__check.is-done { color: #047857; }
.ipf-cockpit__check.is-open { color: #c2410c; }
.ipf-cockpit__check-mark {
  font-size: 0.85rem;
  width: 1.1rem;
  text-align: center;
  flex-shrink: 0;
}

@media (max-width: 1100px) {
  .ipf-workflow-rail {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .ipf-cockpit__checklist {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .ipf-workflow-rail {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ipf-cockpit__checklist {
    grid-template-columns: 1fr;
  }
}

/* —— Warning banners —— */
.ipf-banner-stack {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.ipf-banner {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.55rem 0.75rem;
  border-radius: 0.45rem;
  border: 1.5px solid;
  font-size: 0.8125rem;
  font-weight: 650;
}

.ipf-banner__mark {
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 800;
  flex-shrink: 0;
  color: #fff;
}

.ipf-banner__text { flex: 1; min-width: 0; }

.ipf-banner--danger {
  border-color: #f87171;
  background: #fef2f2;
  color: #991b1b;
}
.ipf-banner--danger .ipf-banner__mark { background: #dc2626; }

.ipf-banner--warning {
  border-color: #fb923c;
  background: #fff7ed;
  color: #9a3412;
}
.ipf-banner--warning .ipf-banner__mark { background: #ea580c; }

.ipf-banner--info {
  border-color: #60a5fa;
  background: #eff6ff;
  color: #1e40af;
}
.ipf-banner--info .ipf-banner__mark { background: #2563eb; }

.ipf-banner--success {
  border-color: #4ade80;
  background: #f0fdf4;
  color: #065f46;
}
.ipf-banner--success .ipf-banner__mark { background: #16a34a; }

/* —— Amount summary dashboard —— */
.ipf-amount-dash {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
}

.ipf-amount-dash__card {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.5rem 0.55rem;
  border-radius: 0.4rem;
  border: 1px solid #e2e8f0;
  background: #fff;
}

.ipf-amount-dash__card span {
  font-size: 0.625rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
}

.ipf-amount-dash__card strong {
  font-size: 0.95rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: #0f172a;
}

.ipf-amount-dash__card--gross { border-left: 3px solid #64748b; }
.ipf-amount-dash__card--discount { border-left: 3px solid #f59e0b; background: #fffbeb; }
.ipf-amount-dash__card--ps { border-left: 3px solid #3b82f6; background: #eff6ff; }
.ipf-amount-dash__card--cs { border-left: 3px solid #8b5cf6; background: #f5f3ff; }
.ipf-amount-dash__card--deposit { border-left: 3px solid #10b981; background: #ecfdf5; }
.ipf-amount-dash__card--collected { border-left: 3px solid #059669; background: #f0fdf4; }
.ipf-amount-dash__card--refund { border-left: 3px solid #f97316; background: #fff7ed; }
.ipf-amount-dash__card--due {
  border-left: 3px solid #ef4444;
  background: #fef2f2;
  grid-column: 1 / -1;
}
.ipf-amount-dash__card--due strong { color: #b91c1c; font-size: 1.15rem; }
.ipf-amount-dash__card--due.is-zero {
  border-left-color: #22c55e;
  background: #f0fdf4;
}
.ipf-amount-dash__card--due.is-zero strong { color: #047857; }

/* —— Timeline colour hierarchy —— */
.ipf-timeline__dot {
  position: absolute;
  left: 0.55rem;
  top: 0.85rem;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
  background: #94a3b8;
  box-shadow: 0 0 0 3px #fff;
}

.ipf-timeline__item {
  position: relative;
  padding-left: 1.6rem;
}

.ipf-timeline__item--tone-success .ipf-timeline__dot { background: #16a34a; }
.ipf-timeline__item--tone-warning .ipf-timeline__dot { background: #ea580c; }
.ipf-timeline__item--tone-info .ipf-timeline__dot { background: #2563eb; }
.ipf-timeline__item--tone-danger .ipf-timeline__dot { background: #dc2626; }

.ipf-timeline__item--tone-success { border-left-color: #86efac; background: #f0fdf4; }
.ipf-timeline__item--tone-warning { border-left-color: #fdba74; background: #fff7ed; }
.ipf-timeline__item--tone-info { border-left-color: #93c5fd; background: #eff6ff; }
.ipf-timeline__item--tone-danger { border-left-color: #fca5a5; background: #fef2f2; }

@media (max-width: 1100px) {
  .ipf-sticky-bar__groups { max-width: 100%; }
}

/* —— Command header (ADT-dense) —— */
.ipf-command-header {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.45rem;
  background: linear-gradient(90deg, #f8fafc 0%, #fff 55%);
}

.ipf-command-header__identity {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.ipf-command-header__avatar {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: #dbeafe;
  color: #1d4ed8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  font-weight: 800;
  flex-shrink: 0;
}

.ipf-command-header__name-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
}

.ipf-command-header__name {
  font-size: 1rem;
  font-weight: 800;
  color: #0f172a;
}

.ipf-command-header__meta {
  font-size: 0.75rem;
  color: #64748b;
}

.ipf-command-header__badge {
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 0.1rem 0.4rem;
  border-radius: 999px;
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #a7f3d0;
}

.ipf-command-header__status {
  font-size: 0.6875rem;
  font-weight: 750;
  padding: 0.15rem 0.45rem;
  border-radius: 0.3rem;
  border: 1px solid;
}

.ipf-command-header__status--billing_complete,
.ipf-command-header__status--ready_for_discharge { background: #f0fdf4; border-color: #86efac; color: #047857; }
.ipf-command-header__status--sponsor_receivable_open { background: #eff6ff; border-color: #93c5fd; color: #1d4ed8; }
.ipf-command-header__status--awaiting_finalize,
.ipf-command-header__status--in_progress { background: #eff6ff; border-color: #93c5fd; color: #1d4ed8; }
.ipf-command-header__status--collection_due,
.ipf-command-header__status--corporate_pending { background: #fff7ed; border-color: #fdba74; color: #c2410c; }
.ipf-command-header__status--deposit_exhausted,
.ipf-command-header__status--final_bill_blocked { background: #fef2f2; border-color: #fca5a5; color: #b91c1c; }

.ipf-command-header__ids,
.ipf-command-header__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.85rem;
  font-size: 0.75rem;
}

.ipf-command-header__ids b,
.ipf-command-header__facts b {
  font-size: 0.5625rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
  margin-right: 0.2rem;
}

.ipf-command-header__bill { color: #0f766e; font-weight: 650; }

/* Sticky finance KPIs while scrolling the workbench */
.ipf-finance-sticky {
  position: sticky;
  top: 0;
  z-index: 20;
  padding: 0.25rem 0;
  background: rgba(248, 250, 252, 0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid transparent;
}

.ipf-finance-sticky:hover,
.ipf-workbench--dense .ipf-finance-sticky {
  border-bottom-color: #e2e8f0;
}

.ipf-banner--hero {
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0.65rem 0.85rem;
}

/* Category parent vs child hierarchy */
.ipf-accordion__summary {
  background: #f1f5f9;
  border-left: 3px solid #64748b;
  font-weight: 750;
}

.ipf-accordion__chevron {
  width: 0.55rem;
  height: 0.55rem;
  border-right: 2px solid #64748b;
  border-bottom: 2px solid #64748b;
  transform: rotate(-45deg);
  transition: transform 0.15s ease;
  flex-shrink: 0;
}

.ipf-accordion[open] > .ipf-accordion__summary .ipf-accordion__chevron {
  transform: rotate(45deg);
}

.ipf-accordion__contrib {
  font-size: 0.6875rem;
  font-weight: 750;
  color: #475569;
  background: #e2e8f0;
  padding: 0.1rem 0.35rem;
  border-radius: 999px;
  font-variant-numeric: tabular-nums;
}

.ipf-accordion__body {
  padding-left: 0.75rem;
  border-left: 2px dashed #cbd5e1;
  margin-left: 0.85rem;
  background: #fff;
}

.ipf-accordion__toolbar {
  display: flex;
  justify-content: flex-end;
  padding: 0.35rem 0.5rem;
  border-bottom: 1px solid #e2e8f0;
  background: #f8fafc;
}

.ipf-charge-row__desc {
  padding-left: 0.5rem;
}

.ipf-charge-desc__name {
  font-weight: 600;
  font-size: 0.8125rem;
  color: #334155;
}

.ipf-charge-row--pending {
  background: #fffbeb;
}

/* Category action menu */
.ipf-cat-menu {
  position: relative;
  display: inline-block;
}

.ipf-cat-menu__trigger {
  list-style: none;
  cursor: pointer;
  font-size: 0.625rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.2rem 0.45rem;
  border-radius: 0.3rem;
  border: 1px solid #94a3b8;
  background: #fff;
  color: #334155;
}

.ipf-cat-menu__trigger::-webkit-details-marker { display: none; }

.ipf-cat-menu__panel {
  position: absolute;
  right: 0;
  top: calc(100% + 0.2rem);
  z-index: 25;
  min-width: 9.5rem;
  padding: 0.25rem;
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 0.4rem;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.ipf-cat-menu__item {
  display: block;
  width: 100%;
  text-align: left;
  padding: 0.35rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  border: none;
  background: transparent;
  color: #0f172a;
  border-radius: 0.25rem;
  text-decoration: none;
  cursor: pointer;
}

.ipf-cat-menu__item:hover { background: #f1f5f9; }
.ipf-cat-menu__item.is-disabled {
  color: #94a3b8;
  cursor: not-allowed;
}
.ipf-cat-menu__form { margin: 0; }

/* Timeline day groups */
.ipf-timeline-groups {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.ipf-timeline-day__head {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.75rem;
  font-weight: 800;
  color: #334155;
  margin-bottom: 0.35rem;
  padding-bottom: 0.2rem;
  border-bottom: 1px solid #e2e8f0;
}

.ipf-timeline-day__count {
  font-size: 0.625rem;
  font-weight: 700;
  background: #e2e8f0;
  color: #475569;
  border-radius: 999px;
  padding: 0.05rem 0.35rem;
}

/* Analytics placeholder */
.ipf-analytics-placeholder {
  margin-top: 0.75rem;
  padding: 0.65rem;
  border: 1px dashed #cbd5e1;
  border-radius: 0.4rem;
  background: #f8fafc;
}

.ipf-analytics-placeholder__title {
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
}

.ipf-analytics-placeholder__chart {
  margin-top: 0.5rem;
  height: 4.5rem;
  border-radius: 0.35rem;
  background:
    linear-gradient(180deg, transparent 60%, rgba(37, 99, 235, 0.12) 60%),
    repeating-linear-gradient(
      90deg,
      #dbeafe 0,
      #dbeafe 8%,
      transparent 8%,
      transparent 14%
    );
  opacity: 0.85;
}

.ipf-ai-card__soon {
  font-size: 0.6875rem;
  font-weight: 650;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* Collapsible panels (bills / timeline / AI) */
.ipf-panel--collapsible > .ipf-panel__head {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.ipf-panel--collapsible > .ipf-panel__head::-webkit-details-marker { display: none; }
.ipf-panel--collapsible > .ipf-panel__head::after {
  content: "▸";
  color: #64748b;
  font-size: 0.75rem;
}
.ipf-panel--collapsible[open] > .ipf-panel__head::after { content: "▾"; }
/* AR Statements workbench */
.ipb-ar-statements__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.ipb-ar-statement-doc {
  background: var(--chk-surface, #fff);
  border: 1px solid var(--chk-border, #e2e8f0);
  border-radius: 10px;
  padding: 16px 18px;
}

.ipb-ar-statement-doc__head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}

.ipb-ar-statement-doc__meta {
  text-align: right;
  font-size: 13px;
}

.ipb-ar-statement-doc__facts {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px 16px;
  margin: 0 0 16px;
}

.ipb-ar-statement-doc__facts dt {
  font-size: 11px;
  color: var(--chk-muted, #64748b);
  margin: 0;
}

.ipb-ar-statement-doc__facts dd {
  margin: 2px 0 0;
  font-weight: 600;
}

@media print {
  .ipb-ar-statements__toolbar,
  .eu-page-header,
  .eu-sidebar,
  nav {
    display: none !important;
  }

  .ipb-ar-statement-doc {
    border: 0;
    padding: 0;
  }
}
/* IP Billing — Interim Bills */
.ipb-bills__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 0.75rem;
}

.ipb-bills__search {
  margin-bottom: 0.75rem;
}
/* IP Billing — Charge Posting workbench */
.ipb-charges__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 0.75rem;
}

.ipb-charge-form .eu-hint {
  margin: 0.25rem 0 0;
  font-size: 0.8125rem;
  color: var(--eu-text-muted, var(--text-3, #64748b));
}

.ipb-charge-form__service {
  margin-bottom: 0.75rem;
}

.ipb-charge-form .opb-autocomplete__menu {
  position: absolute;
  z-index: 20;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0.375rem;
  max-height: 16rem;
  overflow: auto;
  width: min(100%, 28rem);
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
}

.ipb-charge-form__service .eu-field {
  position: relative;
}
/* IP Billing — Financial Command Center (executive density) */
.ipb-cc.eu-page {
  padding-bottom: 1rem;
}

.ipb-cc .eu-page-header {
  margin-bottom: 0.65rem;
}

.ipb-cc__queue {
  margin-bottom: 0.75rem;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface, #fff);
}

.ipb-cc__queue-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.45rem;
}

.ipb-cc__queue-title {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 700;
}

.ipb-cc__queue-sub {
  font-size: 0.75rem;
  color: var(--eu-text-muted, #64748b);
}

.ipb-cc__queue-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.4rem;
}

.ipb-cc__queue-item {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.55rem;
  border-radius: 6px;
  text-decoration: none;
  color: inherit;
  border: 1px solid transparent;
  transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease;
  font-size: 0.82rem;
  font-weight: 500;
}

.ipb-cc__queue-item:hover {
  transform: translateY(-1px);
  box-shadow: var(--eu-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.08));
}

.ipb-cc__queue-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
  flex-shrink: 0;
  background: var(--eu-text-muted, #94a3b8);
}

.ipb-cc__queue-item--critical {
  background: #fef2f2;
  border-color: #fecaca;
}
.ipb-cc__queue-item--critical .ipb-cc__queue-dot { background: #dc2626; }

.ipb-cc__queue-item--warning {
  background: #fffbeb;
  border-color: #fde68a;
}
.ipb-cc__queue-item--warning .ipb-cc__queue-dot { background: #d97706; }

.ipb-cc__queue-item--info {
  background: #eff6ff;
  border-color: #bfdbfe;
}
.ipb-cc__queue-item--info .ipb-cc__queue-dot { background: #2563eb; }

.ipb-cc__queue-item--success {
  background: #f0fdf4;
  border-color: #bbf7d0;
}
.ipb-cc__queue-item--success .ipb-cc__queue-dot { background: #16a34a; }

.ipb-cc__queue-msg {
  flex: 1;
  min-width: 0;
  line-height: 1.25;
}

.ipb-cc__queue-count {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  font-size: 0.78rem;
  color: var(--eu-text-muted, #475569);
}

.ipb-cc__kpis {
  margin-bottom: 0.65rem;
}

.ipb-cc__kpis .eu-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
  margin-bottom: 0;
}

.ipb-cc__kpis .eu-kpi {
  padding: 0.65rem 0.75rem;
  min-height: 7.25rem;
  display: flex;
  flex-direction: column;
}

.ipb-cc__kpis .eu-kpi__header {
  margin-bottom: 0.35rem;
}

.ipb-cc__kpis .eu-kpi__value {
  font-size: 1.35rem;
}

.ipb-cc__kpis .eu-kpi__hint {
  margin-top: auto;
  padding-top: 0.35rem;
  font-size: 0.72rem;
  color: var(--eu-text-muted, #64748b);
  line-height: 1.3;
}

.ipb-cc__kpis .eu-kpi__delta {
  margin-top: 0.25rem;
  font-size: 0.7rem;
}

.ipb-cc__kpis a.eu-kpi--link {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.ipb-cc__kpis a.eu-kpi--link:hover,
.ipb-cc__kpis a.eu-kpi--link:focus-visible {
  border-color: var(--eu-primary, #2563eb);
  box-shadow: var(--eu-shadow-md, 0 4px 12px rgba(37, 99, 235, 0.12));
}

.ipb-cc__kpis .eu-kpi--critical {
  border-color: #fbbf24;
  background: linear-gradient(180deg, #fffbeb 0%, #fff 55%);
}

.ipb-cc__kpis .eu-kpi--critical::before {
  opacity: 1;
  background: #d97706;
}

.ipb-cc__actions-card {
  margin-bottom: 0.65rem;
}

.ipb-cc__actions-card .eu-card__body {
  padding: 0.65rem 0.85rem;
}

.ipb-cc__action-groups {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  gap: 0.65rem 0.85rem;
  align-items: start;
}

.ipb-cc__action-group-title {
  margin: 0 0 0.35rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #64748b);
}

.ipb-cc__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.ipb-cc__action-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.ipb-cc__more {
  position: relative;
}

.ipb-cc__more > summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.ipb-cc__more > summary::-webkit-details-marker {
  display: none;
}

.ipb-cc__more-panel {
  position: absolute;
  right: 0;
  top: calc(100% + 0.25rem);
  z-index: 20;
  min-width: 11rem;
  padding: 0.35rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 8px;
  background: var(--eu-surface, #fff);
  box-shadow: var(--eu-shadow-md, 0 8px 20px rgba(15, 23, 42, 0.12));
}

.ipb-cc__more-link {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.5rem;
  border-radius: 6px;
  text-decoration: none;
  color: inherit;
  font-size: 0.82rem;
}

.ipb-cc__more-link:hover {
  background: var(--eu-surface-muted, #f8fafc);
}

.ipb-cc__panels {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem;
  margin-top: 0.65rem;
}

.ipb-cc-async-frame {
  min-height: 5.5rem;
}

.ipb-cc-async-frame--wide {
  display: block;
  margin-top: 0.65rem;
  min-height: 7rem;
}

.ipb-cc-skeleton {
  padding: 0.75rem;
  color: var(--eu-text-muted, #64748b);
  background: var(--eu-surface-muted, #f8fafc);
  border-radius: var(--eu-radius-sm, 6px);
  border: 1px dashed var(--eu-border, #e2e8f0);
  font-size: 0.85rem;
}

.ipb-cc-alerts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.ipb-cc-alerts__item {
  padding: 0.45rem 0.6rem;
  border-radius: var(--eu-radius-sm, 6px);
  border: 1px solid var(--eu-border, #e2e8f0);
  background: var(--eu-surface, #fff);
  font-size: 0.82rem;
}

.ipb-cc-alerts__item--critical {
  border-color: #fecaca;
  background: #fef2f2;
  border-left: 3px solid #dc2626;
}

.ipb-cc-alerts__item--warning {
  border-color: #fde68a;
  background: #fffbeb;
  border-left: 3px solid #d97706;
}

.ipb-cc-alerts__item--info {
  border-color: #bfdbfe;
  background: #eff6ff;
  border-left: 3px solid #2563eb;
}

.ipb-cc-alerts__link {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  color: inherit;
  text-decoration: none;
  font-weight: 500;
}

.ipb-cc-alerts__link:hover {
  text-decoration: underline;
}

.ipb-cc-alerts__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35rem;
  height: 1.35rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.08);
  font-size: 0.7rem;
  font-weight: 700;
  flex-shrink: 0;
}

.ipb-cc-insights {
  display: grid;
  gap: 0.5rem;
}

.ipb-cc-insights__card {
  padding: 0.6rem 0.7rem;
  border-radius: var(--eu-radius-sm, 6px);
  border: 1px solid var(--eu-border, #e2e8f0);
  background: var(--eu-surface, #fff);
}

.ipb-cc-insights__card--warning {
  border-color: #fde68a;
  background: #fffbeb;
}

.ipb-cc-insights__card--info {
  border-color: #bfdbfe;
  background: #eff6ff;
}

.ipb-cc-insights__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.25rem;
}

.ipb-cc-insights__heading {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 650;
}

.ipb-cc-insights__body {
  margin: 0;
  font-size: 0.8rem;
  color: var(--eu-text-muted, #475569);
  line-height: 1.35;
}

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

.ipb-cc-chart {
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 8px;
  padding: 0.5rem 0.6rem;
  background: #fff;
}

.ipb-cc-chart__header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.35rem;
  margin-bottom: 0.35rem;
}

.ipb-cc-chart__title {
  font-size: 0.74rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--eu-text, #0f172a);
}

.ipb-cc-chart__title:hover {
  color: var(--eu-primary, #2563eb);
}

.ipb-cc-chart__total {
  font-size: 0.78rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.ipb-cc-chart__bars {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 52px;
}

.ipb-cc-chart__bar-wrap {
  flex: 1;
  height: 100%;
  display: flex;
  align-items: flex-end;
}

.ipb-cc-chart__bar {
  width: 100%;
  border-radius: 2px 2px 0 0;
  background: var(--chart-color, #2563eb);
  min-height: 4px;
}

.ipb-cc-chart--success { --chart-color: #16a34a; }
.ipb-cc-chart--info { --chart-color: #2563eb; }
.ipb-cc-chart--warning { --chart-color: #d97706; }

.ipb-cc__interim-status {
  margin-top: 0.65rem;
  padding-top: 0.55rem;
  border-top: 1px solid var(--eu-border, #e2e8f0);
}

.ipb-cc__mini-title {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  font-weight: 700;
}

.ipb-cc__status-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.ipb-cc__status-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  background: var(--eu-surface-muted, #f1f5f9);
  color: var(--eu-text, #0f172a);
}

.ipb-cc__status-pill--warning { background: #fffbeb; color: #92400e; }
.ipb-cc__status-pill--success { background: #f0fdf4; color: #166534; }

.ipb-cc__util {
  margin-bottom: 0.75rem;
}

.ipb-cc__util-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 0.3rem;
}

.ipb-cc__util-bar {
  height: 8px;
  border-radius: 999px;
  background: var(--eu-surface-muted, #e2e8f0);
  overflow: hidden;
}

.ipb-cc__util-fill {
  height: 100%;
  background: var(--eu-primary, #2563eb);
  border-radius: inherit;
}

.ipb-cc__util-meta {
  margin: 0.3rem 0 0;
  font-size: 0.75rem;
  color: var(--eu-text-muted, #64748b);
}

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

.ipb-cc__rank-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.ipb-cc__rank-list li,
.ipb-cc__rank-link {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: baseline;
  font-size: 0.78rem;
}

.ipb-cc__rank-link {
  text-decoration: none;
  color: inherit;
  width: 100%;
  padding: 0.25rem 0.35rem;
  border-radius: 6px;
}

.ipb-cc__rank-link:hover {
  background: var(--eu-surface-muted, #f8fafc);
}

.ipb-cc__rank-name {
  font-weight: 600;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ipb-cc__rank-meta {
  color: var(--eu-text-muted, #64748b);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

@media (max-width: 1100px) {
  .ipb-cc__kpis .eu-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ipb-cc__action-groups,
  .ipb-cc__charts,
  .ipb-cc__rank-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .ipb-cc__panels {
    grid-template-columns: 1fr;
  }

  .ipb-cc__action-groups {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 640px) {
  .ipb-cc__kpis .eu-kpi-grid,
  .ipb-cc__action-groups,
  .ipb-cc__charts,
  .ipb-cc__rank-grid,
  .ipb-cc__queue-list {
    grid-template-columns: 1fr;
  }
}
/* IP Billing — Conversions workbench */
.ipb-conversions__strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.ipb-conversions__chip {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.65rem;
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface-muted, #f1f5f9);
  border: 1px solid var(--eu-border, #e2e8f0);
  font-size: 0.875rem;
}

.ipb-conversions .eu-field--checkbox .eu-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 500;
}
/* Financial Workbench — Corporate / Insurance Desk (reference implementation) */

.fwd-desk {
  padding-bottom: 4.5rem;
}

/* —— Command header —— */
.fwd-command {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--chk-border, #cbd5e1);
  border-radius: 0.5rem;
  background: linear-gradient(180deg, #f8fafc 0%, #fff 55%);
  margin-bottom: 0.65rem;
}

.fwd-command--ops { gap: 0.65rem; }

.fwd-command__row--identity {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
}

.fwd-command__who { flex: 1; min-width: 0; }

.fwd-command__identity-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-end;
  flex-shrink: 0;
}

.fwd-command__avatar {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.45rem;
  background: #0f766e;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.05rem;
  flex-shrink: 0;
}

.fwd-command__name-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 0.45rem;
  align-items: center;
}

.fwd-command__name {
  font-size: 1.1rem;
  font-weight: 750;
  color: #0f172a;
  line-height: 1.2;
}

.fwd-command__badge {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 0.12rem 0.4rem;
  border-radius: 0.25rem;
  background: #e0e7ff;
  color: #3730a3;
}

.fwd-command__status {
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.15rem 0.45rem;
  border-radius: 0.3rem;
  border: 1px solid #cbd5e1;
  background: #fff;
}

.fwd-command__status--ready_for_settlement,
.fwd-command__status--account_closed { background: #f0fdf4; border-color: #86efac; color: #047857; }
.fwd-command__status--awaiting_claim,
.fwd-command__status--claim_under_review,
.fwd-command__status--in_progress { background: #eff6ff; border-color: #93c5fd; color: #1d4ed8; }
.fwd-command__status--patient_due { background: #fff7ed; border-color: #fdba74; color: #c2410c; }

.fwd-command__pill {
  font-size: 0.65rem;
  font-weight: 700;
  padding: 0.12rem 0.4rem;
  border-radius: 999px;
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
}
.fwd-command__pill--settle {
  background: #f5f3ff;
  color: #6d28d9;
  border-color: #c4b5fd;
}

.fwd-command__ids {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem 0.85rem;
  margin-top: 0.25rem;
  font-size: 0.78rem;
  color: #334155;
}
.fwd-command__ids b {
  color: #64748b;
  font-weight: 650;
  margin-right: 0.2rem;
}

/* Row 2 — compact info cards */
.fwd-command__row--cards {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.45rem;
}
@media (max-width: 1100px) {
  .fwd-command__row--cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .fwd-command__row--cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fwd-command__row--identity { flex-wrap: wrap; }
  .fwd-command__identity-actions { width: 100%; justify-content: flex-start; }
}

.fwd-command-card {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.4rem;
  background: #fff;
  min-width: 0;
}
.fwd-command-card__label {
  font-size: 0.62rem;
  font-weight: 750;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}
.fwd-command-card__value {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #0f172a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* More details */
.fwd-command__more {
  border-top: 1px solid #e2e8f0;
  padding-top: 0.35rem;
}
.fwd-command__more-summary {
  list-style: none;
  cursor: pointer;
  font-size: 0.75rem;
  font-weight: 700;
  color: #475569;
  user-select: none;
}
.fwd-command__more-summary::-webkit-details-marker { display: none; }
.fwd-command__more-summary::before {
  content: "▸ ";
  color: #94a3b8;
}
.fwd-command__more[open] > .fwd-command__more-summary::before { content: "▾ "; }
.fwd-command__more-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.35rem 0.75rem;
  margin-top: 0.45rem;
}
@media (max-width: 900px) {
  .fwd-command__more-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.fwd-command__more-item {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  min-width: 0;
}
.fwd-command__more-label {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #94a3b8;
}
.fwd-command__more-value {
  font-size: 0.78rem;
  font-weight: 650;
  color: #334155;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* —— Finance strip / KPI corporate variant —— */
.fwd-finance-strip { margin-bottom: 0.65rem; }

.eu-kpi--corporate {
  border-color: #c4b5fd;
  background: linear-gradient(180deg, #f5f3ff 0%, #fff 70%);
}
.eu-kpi--corporate .eu-kpi__value { color: #6d28d9; }

/* —— Ageing strip —— */
.fwd-ageing {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
  margin: 0.5rem 0 0.75rem;
}
.fwd-ageing__card {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.55rem 0.7rem;
  border-radius: 0.45rem;
  border: 1px solid #e2e8f0;
  text-decoration: none;
  color: inherit;
  background: #fff;
  transition: box-shadow 0.15s ease, transform 0.15s ease;
  outline: none;
}
.fwd-ageing__card:hover,
.fwd-ageing__card:focus-visible {
  border-color: #e2e8f0;
  outline: none;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
  transform: translateY(-2px);
}
.fwd-ageing__card:active {
  transform: translateY(0);
  box-shadow: none;
  border-color: #6d28d9;
  background: #f5f3ff;
}
.fwd-ageing__label { font-size: 0.7rem; font-weight: 650; color: #64748b; text-transform: uppercase; letter-spacing: 0.04em; }
.fwd-ageing__count { font-size: 1.15rem; font-weight: 800; }
.fwd-ageing__amt { font-size: 0.75rem; color: #475569; }
.fwd-ageing__card--success { border-color: #86efac; background: #f0fdf4; }
.fwd-ageing__card--info { border-color: #93c5fd; background: #eff6ff; }
.fwd-ageing__card--warning { border-color: #fdba74; background: #fff7ed; }
.fwd-ageing__card--danger { border-color: #fca5a5; background: #fef2f2; }
.fwd-ageing__card--success:hover,
.fwd-ageing__card--info:hover,
.fwd-ageing__card--warning:hover,
.fwd-ageing__card--danger:hover { border-color: inherit; }
.fwd-ageing__card.is-active {
  border-color: #6d28d9;
  box-shadow: 0 4px 14px rgba(109, 40, 217, 0.12);
}

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

/* —— Panels / accordions —— */
.fwd-panels {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
@media (max-width: 1100px) {
  .fwd-panels { grid-template-columns: 1fr; }
}

.fwd-panel,
.fwd-accordion {
  border: 1px solid #e2e8f0;
  border-radius: 0.45rem;
  background: #fff;
  margin-bottom: 0.5rem;
}
.fwd-panel__head,
.fwd-accordion__summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 0.7rem;
  font-size: 0.8rem;
  font-weight: 750;
  color: #1e293b;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.fwd-panel__head::-webkit-details-marker,
.fwd-accordion__summary::-webkit-details-marker { display: none; }
.fwd-panel__head::after,
.fwd-accordion__summary::after {
  content: "▸";
  margin-left: auto;
  color: #64748b;
  font-size: 0.7rem;
}
.fwd-panel[open] > .fwd-panel__head::after,
.fwd-accordion[open] > .fwd-accordion__summary::after { content: "▾"; }
.fwd-panel__count { font-weight: 650; color: #64748b; text-transform: none; letter-spacing: 0; }
.fwd-panel__body,
.fwd-accordion__body { padding: 0.35rem 0.7rem 0.65rem; border-top: 1px solid #f1f5f9; }

.fwd-badge {
  font-size: 0.65rem;
  font-weight: 700;
  padding: 0.1rem 0.35rem;
  border-radius: 0.25rem;
}
.fwd-badge--info { background: #eff6ff; color: #1d4ed8; }

.fwd-mini-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
}
.fwd-mini-table th,
.fwd-mini-table td {
  padding: 0.35rem 0.4rem;
  border-bottom: 1px solid #f1f5f9;
  text-align: left;
}
.fwd-mini-table th { color: #64748b; font-weight: 650; font-size: 0.7rem; text-transform: uppercase; }
.fwd-mini-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.fwd-mini-table tbody tr:hover { background: #f8fafc; }

.fwd-subhead {
  margin: 0.75rem 0 0.35rem;
  font-size: 0.75rem;
  font-weight: 750;
  color: #475569;
  text-transform: uppercase;
}

/* —— Workflow rail —— */
.fwd-workflow {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  list-style: none;
  margin: 0 0 0.65rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.45rem;
  background: #f8fafc;
}
.fwd-workflow--command {
  margin: 0;
  padding: 0.4rem 0.15rem 0.15rem;
  border: 0;
  background: transparent;
  gap: 0.3rem;
  flex-wrap: nowrap;
  overflow-x: auto;
}
.fwd-workflow__step {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 650;
  background: #fff;
  border: 1px solid #e2e8f0;
  color: #64748b;
  white-space: nowrap;
  flex-shrink: 0;
}
.fwd-workflow__step--done { background: #f0fdf4; border-color: #86efac; color: #047857; }
.fwd-workflow__step.is-current,
.fwd-workflow__step--current { background: #fff7ed; border-color: #fdba74; color: #c2410c; }
.fwd-workflow__step--pending { opacity: 0.85; }
.fwd-workflow__mark { font-size: 0.75rem; }

/* —— Banners —— */
.fwd-banners { display: flex; flex-direction: column; gap: 0.35rem; margin-bottom: 0.65rem; }
.fwd-banner {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.7rem;
  border-radius: 0.4rem;
  border: 1px solid;
  font-size: 0.8125rem;
  font-weight: 650;
}
.fwd-banner--success { background: #f0fdf4; border-color: #86efac; color: #047857; }
.fwd-banner--info { background: #eff6ff; border-color: #93c5fd; color: #1d4ed8; }
.fwd-banner--warning { background: #fff7ed; border-color: #fdba74; color: #c2410c; }
.fwd-banner--danger { background: #fef2f2; border-color: #fca5a5; color: #b91c1c; }

/* —— Checklist / timeline / AI —— */
.fwd-checklist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.35rem; }
.fwd-checklist__item { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8125rem; color: #c2410c; }
.fwd-checklist__item.is-done { color: #047857; }

.fwd-timeline { list-style: none; margin: 0; padding: 0; }
.fwd-timeline__item {
  display: grid;
  grid-template-columns: 0.75rem 8rem 1fr 6rem 5.5rem;
  gap: 0.5rem;
  align-items: start;
  padding: 0.4rem 0;
  border-bottom: 1px solid #f1f5f9;
  font-size: 0.8125rem;
  position: relative;
}
.fwd-timeline__dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: #64748b;
  margin-top: 0.3rem;
}
.fwd-timeline__item--settlement_received .fwd-timeline__dot,
.fwd-timeline__item--patient_paid .fwd-timeline__dot,
.fwd-timeline__item--closed .fwd-timeline__dot { background: #047857; }
.fwd-timeline__item--claim_submitted .fwd-timeline__dot { background: #6d28d9; }
.fwd-timeline__kind { font-weight: 700; color: #0f172a; }
.fwd-timeline__ref { color: #475569; }
.fwd-timeline__note { display: block; font-size: 0.7rem; color: #64748b; }
.fwd-timeline__amt { text-align: right; font-variant-numeric: tabular-nums; }
.fwd-timeline__at { text-align: right; color: #64748b; font-size: 0.75rem; }

.fwd-ai-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
  gap: 0.45rem;
}
.fwd-ai-card {
  padding: 0.5rem;
  border: 1px dashed #cbd5e1;
  border-radius: 0.4rem;
  background: #f8fafc;
}
.fwd-ai-card__label { font-size: 0.7rem; font-weight: 700; color: #64748b; text-transform: uppercase; }
.fwd-ai-card__value { font-size: 0.8125rem; color: #94a3b8; margin-top: 0.2rem; }

/* —— Toolbar / sticky —— */
.fwd-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  margin: 0.5rem 0;
  padding: 0.4rem 0.55rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.4rem;
  background: #f8fafc;
}
.fwd-toolbar__label { font-size: 0.7rem; font-weight: 750; text-transform: uppercase; color: #64748b; margin-right: 0.35rem; }
.fwd-toolbar__hint { font-size: 0.7rem; color: #94a3b8; }

.fwd-selection-bar {
  position: sticky;
  bottom: 0;
  z-index: 30;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem 1rem;
  margin-top: 0.75rem;
  padding: 0.55rem 0.85rem;
  background: #1e293b;
  color: #e2e8f0;
  border-radius: 0.45rem 0.45rem 0 0;
  box-shadow: 0 -2px 12px rgba(15, 23, 42, 0.2);
}
.fwd-selection-bar[hidden] { display: none !important; }
.fwd-selection-bar__count { font-size: 0.8125rem; font-weight: 650; }
.fwd-selection-bar__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}
.fwd-selection-bar__form { display: inline; margin: 0; }
.fwd-select-box { width: 1rem; height: 1rem; accent-color: #0f766e; cursor: pointer; }

.fwd-sticky {
  position: sticky;
  bottom: 0;
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  padding: 0.55rem 0.85rem;
  background: #1e293b;
  color: #e2e8f0;
  border-radius: 0.45rem 0.45rem 0 0;
  box-shadow: 0 -2px 12px rgba(15, 23, 42, 0.18);
  margin-top: 1rem;
}
.fwd-sticky--ops {
  justify-content: center;
  gap: 0.45rem;
}
.fwd-sticky__ops {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
}
.fwd-sticky--ops .eu-btn--ghost {
  color: #e2e8f0;
  border-color: #475569;
}
.fwd-sticky--ops .eu-btn--ghost:hover {
  background: #334155;
  color: #fff;
}
.fwd-sticky--ops .eu-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.fwd-sticky__group { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; }
.fwd-sticky__label {
  font-size: 0.65rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #94a3b8;
  margin-right: 0.15rem;
}
.fwd-sticky__empty { font-size: 0.75rem; color: #94a3b8; }

.fwd-settle-form { max-width: 40rem; display: flex; flex-direction: column; gap: 0.65rem; }
.fwd-coverage-settle { max-width: 36rem; display: flex; flex-direction: column; gap: 0.45rem; margin: 0.25rem 0; }
.fwd-coverage-actions { min-width: 14rem; vertical-align: top; }

/* Results ageing row accents */
#ip-billing-corporate-receivables thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #f8fafc;
}
.fwd-row--age-90_plus { box-shadow: inset 3px 0 0 #ef4444; }
.fwd-row--age-61_90 { box-shadow: inset 3px 0 0 #f97316; }
.fwd-row--age-31_60 { box-shadow: inset 3px 0 0 #3b82f6; }
.fwd-row--age-0_30 { box-shadow: inset 3px 0 0 #22c55e; }
#ip-billing-corporate-receivables tbody tr:hover { background: #f1f5f9; }

/* Charts */
.fwd-charts {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 0.65rem;
  margin-bottom: 0.75rem;
}
@media (max-width: 900px) {
  .fwd-charts { grid-template-columns: 1fr; }
}
.fwd-chart {
  border: 1px solid #e2e8f0;
  border-radius: 0.45rem;
  background: #fff;
  padding: 0.55rem 0.7rem 0.7rem;
}
.fwd-chart__title {
  margin: 0 0 0.5rem;
  font-size: 0.75rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #475569;
}
.fwd-chart__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  margin-bottom: 0.45rem;
}
.fwd-chart__head .fwd-chart__title { margin: 0; }
.fwd-chart__tabs {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.2rem;
  padding: 0.15rem;
  border-radius: 0.35rem;
  background: #f1f5f9;
}
.fwd-chart__tab {
  border: 0;
  background: transparent;
  color: #64748b;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.25rem 0.45rem;
  border-radius: 0.25rem;
  cursor: pointer;
}
.fwd-chart__tab.is-active {
  background: #fff;
  color: #6d28d9;
  box-shadow: 0 0 0 1px #e2e8f0;
}
.fwd-chart__row {
  display: grid;
  grid-template-columns: 5.5rem 1fr 5.5rem;
  gap: 0.4rem;
  align-items: center;
  text-decoration: none;
  color: inherit;
  margin-bottom: 0.35rem;
  font-size: 0.75rem;
}
.fwd-chart__track {
  height: 0.55rem;
  background: #f1f5f9;
  border-radius: 999px;
  overflow: hidden;
}
.fwd-chart__fill { display: block; height: 100%; border-radius: 999px; }
.fwd-chart__fill--success { background: #22c55e; }
.fwd-chart__fill--info { background: #3b82f6; }
.fwd-chart__fill--warning { background: #f97316; }
.fwd-chart__fill--danger { background: #ef4444; }
.fwd-chart__value { text-align: right; font-variant-numeric: tabular-nums; font-weight: 650; }
.fwd-chart__cols {
  display: flex;
  align-items: flex-end;
  gap: 0.45rem;
  height: 7rem;
  padding-top: 0.35rem;
}
.fwd-chart__col { flex: 1; display: flex; flex-direction: column; align-items: center; height: 100%; }
.fwd-chart__col--link {
  text-decoration: none;
  color: inherit;
  min-width: 0;
}
.fwd-chart__col--link:hover .fwd-chart__col-bar { background: #5b21b6; }
.fwd-chart__col-bar-wrap {
  flex: 1;
  width: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.fwd-chart__col-bar {
  width: 70%;
  max-width: 2rem;
  background: #6d28d9;
  border-radius: 0.25rem 0.25rem 0 0;
  min-height: 0.25rem;
}
.fwd-chart__col-label { font-size: 0.65rem; color: #64748b; margin-top: 0.25rem; }

/* Payer cards */
.fwd-payer-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.45rem;
}
.fwd-payer-card {
  display: block;
  padding: 0.55rem 0.65rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.4rem;
  text-decoration: none;
  color: inherit;
  background: #fff;
}
.fwd-payer-card:hover { border-color: #94a3b8; }
.fwd-payer-card--danger { border-left: 3px solid #ef4444; }
.fwd-payer-card--warning { border-left: 3px solid #f97316; }
.fwd-payer-card--success { border-left: 3px solid #22c55e; }
.fwd-payer-card__top { display: flex; justify-content: space-between; gap: 0.35rem; align-items: flex-start; }
.fwd-payer-card__name { font-size: 0.8125rem; }
.fwd-payer-card__amount { font-size: 1rem; font-weight: 800; color: #6d28d9; margin: 0.2rem 0; }
.fwd-payer-card__amount-label {
  display: block;
  font-size: 0.65rem;
  font-weight: 650;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.fwd-payer-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  font-size: 0.7rem;
  color: #64748b;
}

.fwd-badge--success { background: #f0fdf4; color: #047857; }
.fwd-badge--warning { background: #fff7ed; color: #c2410c; }
.fwd-badge--danger { background: #fef2f2; color: #b91c1c; }
.fwd-badge--info { background: #eff6ff; color: #1d4ed8; }

/* AI insights list */
.fwd-ai-list { display: flex; flex-direction: column; gap: 0.35rem; }
.fwd-ai-item {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.45rem 0.55rem;
  border-radius: 0.35rem;
  border: 1px solid #e2e8f0;
  font-size: 0.8125rem;
  font-weight: 650;
  text-decoration: none;
  color: inherit;
}
.fwd-ai-item__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
}
.fwd-ai-item__link {
  font-size: 0.7rem;
  font-weight: 750;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.12em;
  opacity: 0.9;
}
.fwd-ai-item__link:hover { opacity: 1; }
.fwd-ai-item--success { background: #f0fdf4; border-color: #86efac; color: #047857; }
.fwd-ai-item--info { background: #eff6ff; border-color: #93c5fd; color: #1d4ed8; }
.fwd-ai-item--warning { background: #fff7ed; border-color: #fdba74; color: #c2410c; }
.fwd-ai-item--danger { background: #fef2f2; border-color: #fca5a5; color: #b91c1c; }
.fwd-ai-item--corporate { background: #f5f3ff; border-color: #c4b5fd; color: #6d28d9; }

/* —— Corporate desk KPI interaction (no double border/outline) —— */
.ipb-corporate .eu-kpi-grid {
  gap: 0.65rem;
}
.ipb-corporate .eu-kpi,
.ipb-corporate a.eu-kpi--link {
  border: 1px solid #e2e8f0 !important;
  box-shadow: none !important;
  outline: none !important;
  text-decoration: none;
  color: inherit;
  padding: 0.7rem 0.8rem;
  border-radius: 0.5rem;
  transition: box-shadow 0.15s ease, transform 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}
.ipb-corporate .eu-kpi::before { display: none !important; }
.ipb-corporate .eu-kpi:hover,
.ipb-corporate a.eu-kpi--link:hover,
.ipb-corporate a.eu-kpi--link:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08) !important;
  border-color: #e2e8f0 !important;
  outline: none !important;
}
.ipb-corporate a.eu-kpi--link.is-active,
.ipb-corporate a.eu-kpi--link[aria-current="true"] {
  border-color: #6d28d9 !important;
  background: #f5f3ff;
  box-shadow: none !important;
  transform: none;
}
.ipb-corporate a.eu-kpi--link:active {
  transform: translateY(0);
  background: #ede9fe;
  border-color: #6d28d9 !important;
  box-shadow: none !important;
}
.ipb-corporate .eu-kpi__label { margin-bottom: 0.15rem; }
.ipb-corporate .eu-kpi__header { margin-bottom: 0.25rem; }
.ipb-corporate .eu-kpi__value { font-size: 1.05rem; }

/* Claim cockpit KPI hits — same interaction language */
.fwd-kpi-hit { cursor: pointer; }
.fwd-kpi-hit .eu-kpi {
  height: 100%;
  border: 1px solid #e2e8f0 !important;
  box-shadow: none !important;
  outline: none !important;
  transition: box-shadow 0.15s ease, transform 0.15s ease, background-color 0.15s ease;
}
.fwd-kpi-hit .eu-kpi::before { display: none !important; }
.fwd-kpi-hit:hover .eu-kpi,
.fwd-kpi-hit:focus-visible .eu-kpi {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08) !important;
  border-color: #e2e8f0 !important;
  outline: none !important;
}
.fwd-kpi-hit:active .eu-kpi {
  transform: none;
  background: #ede9fe;
  border-color: #6d28d9 !important;
}

.fwd-row-hit { cursor: pointer; }
.fwd-row-hit:hover { background: #f1f5f9; }
.fwd-row-hit:focus-visible { outline: 2px solid #6d28d9; outline-offset: -2px; }

.fwd-chart__row,
.fwd-chart__col--link,
.fwd-payer-card,
.fwd-ai-item {
  transition: box-shadow 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
  outline: none;
}
.fwd-chart__row:hover,
.fwd-chart__col--link:hover,
.fwd-payer-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
  border-color: #e2e8f0;
}
.fwd-payer-card:hover { border-color: #e2e8f0; }

/* —— CRM-style receivables grid —— */
.ipb-corporate .eu-results-table,
.ipb-corporate .eu-results-table.eu-card {
  border: 1px solid #e2e8f0;
  border-radius: 0.55rem;
  overflow: visible; /* allow row action menus to paint outside the card */
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.ipb-corporate .eu-table-wrap {
  overflow-x: auto;
  overflow-y: auto;
  max-height: min(70vh, 44rem);
}
#ip-billing-corporate-receivables {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
}
#ip-billing-corporate-receivables thead th {
  position: sticky;
  top: 0;
  z-index: 5;
  background: #f8fafc;
  font-size: 0.68rem;
  font-weight: 750;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
  padding: 0.7rem 0.75rem;
  border-bottom: 1px solid #e2e8f0;
  white-space: nowrap;
}
#ip-billing-corporate-receivables tbody td {
  padding: 0.85rem 0.75rem;
  vertical-align: middle;
  border-bottom: 1px solid #f1f5f9;
  font-size: 0.8125rem;
  color: #334155;
  background: #fff;
}
#ip-billing-corporate-receivables tbody tr {
  transition: background-color 0.12s ease;
}
#ip-billing-corporate-receivables tbody tr:hover td {
  background: #f8fafc;
}
#ip-billing-corporate-receivables tbody tr:hover {
  box-shadow: none;
}
#ip-billing-corporate-receivables .eu-table__cell-primary a {
  font-weight: 700;
  color: #1d4ed8;
  text-decoration: none;
}
#ip-billing-corporate-receivables .eu-table__cell-primary a:hover {
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

/* Sticky select (left) + actions (right) */
#ip-billing-corporate-receivables th:nth-child(1),
#ip-billing-corporate-receivables td:nth-child(1) {
  position: sticky;
  left: 0;
  z-index: 6;
  background: #fff;
  width: 2.5rem;
  min-width: 2.5rem;
  box-shadow: 1px 0 0 #e2e8f0;
}
#ip-billing-corporate-receivables thead th:nth-child(1) { background: #f8fafc; z-index: 7; }

#ip-billing-corporate-receivables th:last-child,
#ip-billing-corporate-receivables td:last-child {
  position: sticky;
  right: 0;
  z-index: 6;
  background: #fff;
  width: 3.5rem;
  min-width: 3.5rem;
  text-align: center;
  box-shadow: -2px 0 6px rgba(15, 23, 42, 0.06);
  overflow: visible;
}
#ip-billing-corporate-receivables thead th:last-child { background: #f8fafc; z-index: 7; }
#ip-billing-corporate-receivables tbody tr:hover td:nth-child(1),
#ip-billing-corporate-receivables tbody tr:hover td:last-child { background: #f8fafc; }

.fwd-patient-cell { display: flex; flex-direction: column; gap: 0.1rem; min-width: 9rem; }
.fwd-patient-cell__name {
  font-weight: 700;
  color: #0f172a;
  line-height: 1.25;
}
.fwd-patient-cell__uhid {
  font-size: 0.72rem;
  font-weight: 600;
  color: #64748b;
  text-decoration: none;
}
.fwd-patient-cell__uhid:hover { color: #1d4ed8; text-decoration: underline; }

.fwd-payer-chip {
  display: inline-flex;
  max-width: 12rem;
  align-items: center;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  border: 1px solid transparent;
}
.fwd-payer-chip--corporate {
  background: #f5f3ff;
  color: #6d28d9;
  border-color: #ddd6fe;
}
.fwd-payer-chip--insurance {
  background: #eff6ff;
  color: #1d4ed8;
  border-color: #bfdbfe;
}

/* Actions menu — native <details>, opens left into the row (never clipped by card edge) */
.fwd-action-menu {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}
.fwd-action-menu > summary {
  list-style: none;
}
.fwd-action-menu > summary::-webkit-details-marker {
  display: none;
}
.fwd-action-menu__trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.18rem;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 0.4rem;
  border: 1.5px solid #334155;
  background: #0f172a;
  color: #fff;
  cursor: pointer;
  padding: 0;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.12);
  transition: background 0.12s ease, border-color 0.12s ease, transform 0.12s ease;
}
.fwd-action-menu__trigger:hover,
.fwd-action-menu[open] > .fwd-action-menu__trigger {
  background: #1d4ed8;
  border-color: #1d4ed8;
  transform: translateY(-1px);
}
.fwd-action-menu__dot {
  width: 0.28rem;
  height: 0.28rem;
  border-radius: 999px;
  background: currentColor;
  display: inline-block;
}
.fwd-action-menu__panel {
  position: absolute;
  right: 0;
  top: calc(100% + 4px);
  z-index: 5000;
  min-width: 12.5rem;
  padding: 0.3rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.5rem;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.22);
}
.fwd-action-menu__item {
  display: block;
  padding: 0.5rem 0.7rem;
  border-radius: 0.35rem;
  font-size: 0.8rem;
  font-weight: 650;
  color: #0f172a;
  text-decoration: none;
  white-space: nowrap;
}
.fwd-action-menu__item:hover {
  background: #eff6ff;
  color: #1d4ed8;
}

/* Unclip table chrome while a row menu is open */
.ipb-corporate .eu-results-table:has(.fwd-action-menu[open]),
.ipb-corporate .eu-results-table.eu-card:has(.fwd-action-menu[open]) {
  overflow: visible;
  z-index: 20;
  position: relative;
}
.ipb-corporate .eu-results-table:has(.fwd-action-menu[open]) .eu-table-wrap {
  overflow: visible !important;
  max-height: none;
}
#ip-billing-corporate-receivables tr:has(.fwd-action-menu[open]) {
  position: relative;
  z-index: 25;
}
#ip-billing-corporate-receivables tr:has(.fwd-action-menu[open]) td:last-child {
  z-index: 30;
  overflow: visible;
}

/* Keep sticky actions column roomy enough for the dark trigger */
.fwd-settle-hint { margin-bottom: 0.65rem; }
.fwd-write-off-form .eu-btn--danger,
.eu-btn.eu-btn--danger {
  background: #b91c1c;
  border-color: #b91c1c;
  color: #fff;
}
.eu-btn.eu-btn--danger:hover {
  background: #991b1b;
  border-color: #991b1b;
}

/* Legacy details menu (if any remain) */
.fwd-action-dots {
  position: relative;
  display: inline-block;
}
.fwd-action-dots > summary { list-style: none; }
.fwd-action-dots > summary::-webkit-details-marker { display: none; }
.fwd-action-dots__trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 0.4rem;
  border: 1.5px solid #94a3b8;
  background: #0f172a;
  color: #fff;
  cursor: pointer;
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1;
}
.fwd-action-dots__panel {
  position: absolute;
  right: 0;
  top: calc(100% + 4px);
  z-index: 80;
  min-width: 11.5rem;
  padding: 0.25rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.45rem;
  background: #fff;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.14);
}
.fwd-action-dots__item {
  display: block;
  padding: 0.45rem 0.6rem;
  border-radius: 0.3rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: #334155;
  text-decoration: none;
  white-space: nowrap;
}
.fwd-action-dots__item:hover {
  background: #f1f5f9;
  color: #0f172a;
}
.eu-results-table:has(.fwd-action-dots[open]) .eu-table-wrap,
.ipb-corporate .eu-results-table:has(.fwd-action-menu.is-open),
.ipb-corporate .eu-results-table:has(.fwd-action-menu.is-open) .eu-table-wrap {
  overflow: visible;
}

.fwd-row--age-90_plus { box-shadow: inset 3px 0 0 #ef4444; }
.fwd-row--age-61_90 { box-shadow: inset 3px 0 0 #f97316; }
.fwd-row--age-31_60 { box-shadow: inset 3px 0 0 #3b82f6; }
.fwd-row--age-0_30 { box-shadow: inset 3px 0 0 #22c55e; }

/* Document repository */
.fwd-docs-repo {
  display: grid;
  grid-template-columns: minmax(14rem, 18rem) 1fr;
  gap: 0.65rem;
  min-height: 28rem;
}
@media (max-width: 900px) {
  .fwd-docs-repo { grid-template-columns: 1fr; min-height: 0; }
}
.fwd-docs-repo__list {
  border: 1px solid #e2e8f0;
  border-radius: 0.4rem;
  background: #f8fafc;
  overflow: auto;
  max-height: 36rem;
}
.fwd-docs-repo__list-head {
  padding: 0.45rem 0.65rem;
  font-size: 0.7rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
  border-bottom: 1px solid #e2e8f0;
}
.fwd-docs-repo__items {
  list-style: none;
  margin: 0;
  padding: 0.25rem;
}
.fwd-docs-repo__item {
  width: 100%;
  display: grid;
  grid-template-columns: 1.1rem 1fr auto;
  gap: 0.35rem;
  align-items: start;
  text-align: left;
  border: 0;
  background: transparent;
  padding: 0.4rem 0.45rem;
  border-radius: 0.3rem;
  cursor: pointer;
  color: #334155;
  font-size: 0.78rem;
}
.fwd-docs-repo__item:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}
.fwd-docs-repo__item.is-available:hover,
.fwd-docs-repo__item.is-active {
  background: #fff;
  box-shadow: inset 0 0 0 1px #c4b5fd;
}
.fwd-docs-repo__item.is-active {
  background: #f5f3ff;
  font-weight: 650;
}
.fwd-docs-repo__check { color: #64748b; line-height: 1.2; }
.fwd-docs-repo__item.is-available .fwd-docs-repo__check { color: #6d28d9; }
.fwd-docs-repo__name { line-height: 1.25; }
.fwd-docs-repo__status {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #94a3b8;
  white-space: nowrap;
}
.fwd-docs-repo__status--ready { color: #047857; }
.fwd-docs-repo__status--fallback { color: #1d4ed8; }
.fwd-docs-repo__status--missing,
.fwd-docs-repo__status--placeholder { color: #94a3b8; }
.fwd-docs-repo__viewer {
  border: 1px solid #e2e8f0;
  border-radius: 0.4rem;
  background: #fff;
  display: flex;
  flex-direction: column;
  min-height: 28rem;
  overflow: hidden;
}
.fwd-docs-repo__viewer-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.65rem;
  border-bottom: 1px solid #e2e8f0;
  background: #f8fafc;
  font-size: 0.8125rem;
}
.fwd-docs-repo__empty {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.fwd-docs-repo__frame {
  flex: 1;
  width: 100%;
  min-height: 26rem;
  border: 0;
  background: #fff;
}

/* Collapsed search summary */
.fwd-search {
  border: 1px solid #e2e8f0;
  border-radius: 0.45rem;
  background: #fff;
  margin-bottom: 0.65rem;
}
.fwd-search__summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  padding: 0.5rem 0.7rem;
}
.fwd-search__summary::-webkit-details-marker { display: none; }
.fwd-search__title {
  font-size: 0.7rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
}
.fwd-search__chips { font-size: 0.8125rem; font-weight: 650; color: #0f172a; flex: 1; }
.fwd-search__edit { font-size: 0.75rem; }
.fwd-search__body { padding: 0 0.5rem 0.5rem; border-top: 1px solid #f1f5f9; }
.fwd-search__body .eu-search-panel { margin: 0; border: 0; box-shadow: none; }
/* IP Billing — Credit Notes (B11 S5) */
.ipb-credits__toolbar,
.ipb-credit-show .ipb-credits__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
  align-items: center;
}

.ipb-credit-doc {
  background: var(--chk-surface, #fff);
  border: 1px solid var(--chk-border, #e2e8f0);
  border-radius: 0.5rem;
  padding: 1rem 1.25rem;
}

.ipb-credit-doc__head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--chk-border, #e2e8f0);
}

.ipb-credit-show.is-print .ipb-credits__toolbar {
  display: none;
}
/* IP Billing — Deposits workbench (dense FO shell) */
.ipb-deposits.eu-page {
  padding-bottom: 1rem;
}

.ipb-deposits .eu-page-header {
  margin-bottom: 0.65rem;
}

.ipb-deposits__queue {
  margin-bottom: 0.65rem;
  padding: 0.6rem 0.8rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface, #fff);
}

.ipb-deposits__queue-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.4rem;
}

.ipb-deposits__queue-title {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 700;
}

.ipb-deposits__queue-sub {
  font-size: 0.72rem;
  color: var(--eu-text-muted, #64748b);
}

.ipb-deposits__queue-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 0.35rem;
}

.ipb-deposits__queue-item {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.5rem;
  border-radius: 6px;
  text-decoration: none;
  color: inherit;
  border: 1px solid transparent;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
  font-size: 0.8rem;
  font-weight: 500;
}

.ipb-deposits__queue-item:hover {
  transform: translateY(-1px);
  box-shadow: var(--eu-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.08));
}

.ipb-deposits__queue-dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 999px;
  flex-shrink: 0;
  background: var(--eu-text-muted, #94a3b8);
}

.ipb-deposits__queue-item--critical {
  background: #fef2f2;
  border-color: #fecaca;
}
.ipb-deposits__queue-item--critical .ipb-deposits__queue-dot { background: #dc2626; }

.ipb-deposits__queue-item--warning {
  background: #fffbeb;
  border-color: #fde68a;
}
.ipb-deposits__queue-item--warning .ipb-deposits__queue-dot { background: #d97706; }

.ipb-deposits__queue-item--info {
  background: #eff6ff;
  border-color: #bfdbfe;
}
.ipb-deposits__queue-item--info .ipb-deposits__queue-dot { background: #2563eb; }

.ipb-deposits__queue-item--success {
  background: #f0fdf4;
  border-color: #bbf7d0;
}
.ipb-deposits__queue-item--success .ipb-deposits__queue-dot { background: #16a34a; }

.ipb-deposits__queue-msg {
  flex: 1;
  min-width: 0;
  line-height: 1.25;
}

.ipb-deposits__queue-count {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  font-size: 0.75rem;
  color: var(--eu-text-muted, #475569);
}

.ipb-deposits__kpis {
  margin-bottom: 0.55rem;
}

.ipb-deposits__kpis .eu-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
  margin-bottom: 0;
}

.ipb-deposits__kpis .eu-kpi {
  padding: 0.6rem 0.7rem;
  min-height: 6.5rem;
  display: flex;
  flex-direction: column;
}

.ipb-deposits__kpis .eu-kpi__header {
  margin-bottom: 0.3rem;
}

.ipb-deposits__kpis .eu-kpi__value {
  font-size: 1.3rem;
}

.ipb-deposits__kpis .eu-kpi__hint {
  margin-top: auto;
  padding-top: 0.3rem;
  font-size: 0.7rem;
  color: var(--eu-text-muted, #64748b);
  line-height: 1.3;
}

.ipb-deposits__kpis a.eu-kpi--link {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.ipb-deposits__kpis a.eu-kpi--link:hover,
.ipb-deposits__kpis a.eu-kpi--link:focus-visible {
  border-color: var(--eu-primary, #2563eb);
  box-shadow: var(--eu-shadow-md, 0 4px 12px rgba(37, 99, 235, 0.12));
}

.ipb-deposits__kpis .eu-kpi--critical {
  border-color: #fbbf24;
  background: linear-gradient(180deg, #fffbeb 0%, #fff 55%);
}

.ipb-deposits__kpis .eu-kpi--critical::before {
  opacity: 1;
  background: #d97706;
}

.ipb-deposits__actions-card {
  margin-bottom: 0.55rem;
}

.ipb-deposits__actions-card .eu-card__body {
  padding: 0.55rem 0.75rem;
}

.ipb-deposits__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.ipb-deposits__action-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.ipb-deposits .eu-search-panel,
.ipb-deposits .eu-results-frame {
  margin-top: 0.35rem;
}

.ipb-deposits__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 0.75rem;
}

.ipb-deposit-form .eu-hint {
  margin: 0.25rem 0 0.75rem;
  font-size: 0.8125rem;
  color: var(--eu-text-muted, var(--text-3, #64748b));
}

.ipb-deposit-form__lines {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.ipb-deposit-form__tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.75rem;
}

.ipb-deposit-form__allocated {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
}

.ipb-payment-card {
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0.5rem;
  padding: 0.75rem;
  background: var(--eu-surface, #fff);
}

.ipb-payment-card__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.5rem;
}

.ipb-payment-card__label {
  font-weight: 600;
  font-size: 0.875rem;
}

.ipb-payment-card__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}

@media (max-width: 1100px) {
  .ipb-deposits__kpis .eu-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .ipb-payment-card__grid {
    grid-template-columns: 1fr;
  }

  .ipb-deposits__kpis .eu-kpi-grid,
  .ipb-deposits__queue-list {
    grid-template-columns: 1fr;
  }
}

.ipb-deposit-related {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.ipb-deposit-related__row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.75rem;
  font-size: 0.875rem;
}
/* IP Billing — Packages workbench */
.ipb-packages .eu-meta {
  color: var(--eu-text-muted, #64748b);
  font-size: 0.85em;
}
/* IP Billing — Payer Stack Manager */
.ipb-payer-stacks__strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.ipb-payer-stacks__chip {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.65rem;
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface-muted, #f1f5f9);
  border: 1px solid var(--eu-border, #e2e8f0);
  font-size: 0.875rem;
}

.ipb-payer-stacks__chip--approved {
  border-color: var(--eu-success-border, #86efac);
  background: var(--eu-success-bg, #f0fdf4);
}

.ipb-payer-stacks__chip--pending {
  border-color: var(--eu-warning-border, #fde68a);
  background: var(--eu-warning-bg, #fffbeb);
}

.ipb-payer-stacks__chip--residual {
  border-style: dashed;
}

.ipb-payer-stacks__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.ipb-payer-stacks__inline-fields {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  margin-bottom: 0.35rem;
}

.ipb-payer-stacks__inline-fields .eu-input--sm {
  width: 6.5rem;
  min-width: 0;
}

.ipb-payer-stacks__row-actions {
  min-width: 16rem;
}

.opb-table tr.is-suspended td {
  opacity: 0.55;
}
/* IP Billing — Enterprise Reports Center */
.ipb-reports.eu-page {
  min-width: 0;
  max-width: 100%;
  gap: 0.65rem;
  padding-bottom: 1rem;
}

.ipb-reports .eu-page-header {
  margin-bottom: 0.35rem;
}

.ipb-reports__kpis .eu-kpi-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.5rem;
  margin-bottom: 0;
}

.ipb-reports__kpis .eu-kpi {
  padding: 0.55rem 0.65rem;
  min-height: 5.25rem;
}

.ipb-reports__kpis .eu-kpi__value {
  font-size: 1.25rem;
}

.ipb-reports__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  align-items: center;
  justify-content: space-between;
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 8px;
  background: var(--eu-surface, #fff);
}

.ipb-reports__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}

.ipb-reports__tab {
  border: 1px solid transparent;
  background: transparent;
  border-radius: 999px;
  padding: 0.3rem 0.7rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--eu-text-muted, #64748b);
  cursor: pointer;
}

.ipb-reports__tab.is-active,
.ipb-reports__tab:hover {
  background: #eff6ff;
  color: #1d4ed8;
  border-color: #bfdbfe;
}

.ipb-reports__search {
  flex: 1;
  min-width: 14rem;
  max-width: 22rem;
}

.ipb-reports__search .eu-input {
  width: 100%;
  min-height: 2rem;
  font-size: 0.8125rem;
}

.ipb-reports__section-head {
  margin-bottom: 0.35rem;
}

.ipb-reports__section-title {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 700;
}

.ipb-reports__frequent-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.ipb-reports__chip {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  border: 1px solid var(--eu-border, #e2e8f0);
  background: #fff;
  text-decoration: none;
  color: inherit;
  font-size: 0.78rem;
  font-weight: 600;
  transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease;
}

.ipb-reports__chip:hover {
  transform: translateY(-1px);
  border-color: var(--eu-primary, #2563eb);
  box-shadow: var(--eu-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.08));
}

.ipb-reports__split {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 0.65rem;
}

.ipb-reports__recent-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.ipb-reports__recent-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.4rem 0.45rem;
  border-radius: 6px;
  background: var(--eu-surface-muted, #f8fafc);
}

.ipb-reports__recent-meta {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  font-size: 0.78rem;
}

.ipb-reports__recent-meta span {
  color: var(--eu-text-muted, #64748b);
}

.ipb-reports__sched-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
  margin-bottom: 0.45rem;
}

.ipb-reports__sched-grid div {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.35rem 0.45rem;
  border-radius: 6px;
  background: var(--eu-surface-muted, #f8fafc);
  font-size: 0.78rem;
}

.ipb-reports__accordion {
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 8px;
  background: #fff;
  margin-bottom: 0.5rem;
  overflow: hidden;
}

.ipb-reports__accordion-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.55rem 0.75rem;
  cursor: pointer;
  list-style: none;
  background: var(--eu-surface-muted, #f8fafc);
  font-weight: 700;
  font-size: 0.85rem;
}

.ipb-reports__accordion-head::-webkit-details-marker {
  display: none;
}

.ipb-reports__accordion-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.5rem;
  height: 1.5rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: #e2e8f0;
  font-size: 0.72rem;
}

.ipb-reports__accordion .ipb-reports__grid {
  padding: 0.65rem;
}

.ipb-reports__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 0.65rem;
}

.ipb-reports__card {
  display: flex;
  flex-direction: column;
  min-height: 11.5rem;
  padding: 0.75rem;
  border-radius: 8px;
  border: 1px solid var(--eu-border, #e2e8f0);
  background: var(--eu-surface, #fff);
  color: inherit;
  transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease;
}

.ipb-reports__card:hover {
  transform: translateY(-2px);
  border-color: var(--eu-primary, #2563eb);
  box-shadow: var(--eu-shadow-md, 0 6px 16px rgba(37, 99, 235, 0.12));
}

.ipb-reports__card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}

.ipb-reports__card-title {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.25;
}

.ipb-reports__fav {
  border: none;
  background: transparent;
  color: #cbd5e1;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  padding: 0.1rem;
}

.ipb-reports__fav.is-active,
.ipb-reports__fav:hover {
  color: #f59e0b;
}

.ipb-reports__card-desc {
  margin: 0.35rem 0 0.5rem;
  font-size: 0.78rem;
  color: var(--eu-text-muted, #64748b);
  line-height: 1.35;
  flex: 1;
}

.ipb-reports__card-meta {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  margin-bottom: 0.55rem;
  font-size: 0.7rem;
  color: var(--eu-text-muted, #64748b);
}

.ipb-reports__card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  align-items: center;
}

.ipb-reports__more {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}

.ipb-reports-async {
  display: block;
  margin-top: 0.35rem;
  min-height: 6rem;
}

.ipb-reports-skeleton {
  padding: 0.75rem;
  border: 1px dashed var(--eu-border, #e2e8f0);
  border-radius: 8px;
  color: var(--eu-text-muted, #64748b);
  background: #f8fafc;
  font-size: 0.85rem;
}

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

.ipb-reports-chart {
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 8px;
  padding: 0.5rem 0.6rem;
  background: #fff;
}

.ipb-reports-chart__header {
  display: flex;
  justify-content: space-between;
  gap: 0.35rem;
  margin-bottom: 0.35rem;
}

.ipb-reports-chart__title {
  font-size: 0.72rem;
  font-weight: 600;
}

.ipb-reports-chart__total {
  font-size: 0.78rem;
  font-weight: 700;
}

.ipb-reports-chart__bars {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 48px;
}

.ipb-reports-chart__bar-wrap {
  flex: 1;
  height: 100%;
  display: flex;
  align-items: flex-end;
}

.ipb-reports-chart__bar {
  width: 100%;
  min-height: 4px;
  border-radius: 2px 2px 0 0;
  background: var(--chart-color, #2563eb);
}

.ipb-reports-chart--success { --chart-color: #16a34a; }
.ipb-reports-chart--info { --chart-color: #2563eb; }
.ipb-reports-chart--warning { --chart-color: #d97706; }

.ipb-reports-insights {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.5rem;
}

.ipb-reports-insights__card {
  padding: 0.55rem 0.65rem;
  border-radius: 8px;
  border: 1px solid var(--eu-border, #e2e8f0);
  background: #fff;
}

.ipb-reports-insights__card--warning {
  background: #fffbeb;
  border-color: #fde68a;
}

.ipb-reports-insights__card--info {
  background: #eff6ff;
  border-color: #bfdbfe;
}

.ipb-reports-insights__heading {
  margin: 0 0 0.25rem;
  font-size: 0.85rem;
  font-weight: 650;
}

.ipb-reports-insights__body {
  margin: 0;
  font-size: 0.78rem;
  color: var(--eu-text-muted, #475569);
  line-height: 1.35;
}

@media (max-width: 1100px) {
  .ipb-reports__kpis .eu-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

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

@media (max-width: 900px) {
  .ipb-reports__split {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .ipb-reports__kpis .eu-kpi-grid,
  .ipb-reports__charts {
    grid-template-columns: 1fr;
  }
}

/* Report show — first-viewport density (filters → KPIs → results) */
.ipb-reports--show {
  gap: 1rem; /* 16px section rhythm */
}

.ipb-reports--show.eu-page {
  gap: 1rem;
}

.ipb-reports--show .eu-page-header {
  margin-bottom: 0;
  gap: 0.5rem;
}

/* Single-row filter bar — target ≤ 80–120px total height */
.ipb-reports__filter-bar {
  display: flex;
  align-items: flex-end;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 8px;
  background: var(--eu-surface, #fff);
  max-height: 5.5rem;
}

.ipb-reports__filter-form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.65rem 0.85rem;
  width: 100%;
  margin: 0;
}

.ipb-reports__filter-fields {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.65rem 0.85rem;
  flex: 1 1 auto;
  min-width: 0;
}

.ipb-reports__filter-field {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 9.5rem;
  max-width: 12rem;
}

.ipb-reports__filter-field .eu-label {
  margin: 0;
  font-size: 0.6875rem;
  line-height: 1.2;
}

.ipb-reports__filter-field .eu-input,
.ipb-reports__filter-field .eu-input--sm {
  min-height: 2rem;
  padding: 0.3rem 0.5rem;
  font-size: 0.8125rem;
}

.ipb-reports__filter-form .eu-btn {
  flex: 0 0 auto;
  align-self: flex-end;
}

.ipb-reports__show-kpis .eu-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
  gap: 0.5rem;
  margin-bottom: 0;
}

.ipb-reports__show-kpis .eu-kpi {
  padding: 0.45rem 0.55rem;
  min-height: 0;
}

.ipb-reports__show-kpis .eu-kpi__value {
  font-size: 1.05rem;
  line-height: 1.2;
}

.ipb-reports__show-kpis .eu-kpi__hint {
  margin-top: 0.2rem;
  font-size: 0.65rem;
  line-height: 1.25;
}

.ipb-reports--show .eu-card--compact .eu-card__body {
  padding: 0.65rem 0.75rem;
}

.ipb-reports--show .eu-card--compact .eu-card__header {
  padding: 0.45rem 0.75rem;
}

.ipb-reports__table-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

.ipb-reports__table {
  width: 100%;
  min-width: 36rem;
  border-collapse: collapse;
  font-size: 0.8125rem;
}

.ipb-reports__table th,
.ipb-reports__table td {
  padding: 0.35rem 0.5rem;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
  vertical-align: middle;
}

.ipb-reports__table th {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--eu-text-muted, #64748b);
  background: var(--eu-surface-muted, #f8fafc);
  white-space: nowrap;
  position: sticky;
  top: 0;
  z-index: 1;
}

.ipb-reports__table .num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ipb-reports__aging {
  display: inline-flex;
  align-items: center;
  padding: 0.1rem 0.4rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 650;
  background: #f1f5f9;
  color: #334155;
  white-space: nowrap;
}

.ipb-reports__aging--current { background: #ecfdf5; color: #047857; }
.ipb-reports__aging--d1-30 { background: #eff6ff; color: #1d4ed8; }
.ipb-reports__aging--d31-60 { background: #fffbeb; color: #b45309; }
.ipb-reports__aging--d61-90 { background: #fff7ed; color: #c2410c; }
.ipb-reports__aging--d90-plus { background: #fef2f2; color: #b91c1c; }

@media (max-width: 640px) {
  .ipb-reports__filter-field {
    max-width: none;
    flex: 1 1 8rem;
  }

  .ipb-reports__filter-form .eu-btn {
    width: 100%;
  }
}
/* IP Billing — Settlements */
.ipb-settlements__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 0.75rem;
}

.ipb-settlements__search {
  margin-bottom: 0.75rem;
}

.ipb-settle-form .eu-hint {
  margin: 0.25rem 0 0.75rem;
  font-size: 0.8125rem;
  color: var(--eu-text-muted, var(--text-3, #64748b));
}

.ipb-settle-form__lines {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.ipb-settle-form__tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.75rem;
}

.ipb-settle-form__allocated {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
}

.ipb-settle-form__remarks {
  margin-top: 0.75rem;
}
/* IP Billing — IP Workbench (dense FO search hub) */
.ipb-workbench.eu-page {
  padding-bottom: 1rem;
}

.ipb-workbench .eu-page-header {
  margin-bottom: 0.65rem;
}

.ipb-workbench__queue {
  margin-bottom: 0.65rem;
  padding: 0.6rem 0.8rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface, #fff);
}

.ipb-workbench__queue-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.4rem;
}

.ipb-workbench__queue-title {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 700;
}

.ipb-workbench__queue-sub {
  font-size: 0.72rem;
  color: var(--eu-text-muted, #64748b);
}

.ipb-workbench__queue-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 0.35rem;
}

.ipb-workbench__queue-item {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.5rem;
  border-radius: 6px;
  text-decoration: none;
  color: inherit;
  border: 1px solid transparent;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
  font-size: 0.8rem;
  font-weight: 500;
}

.ipb-workbench__queue-item:hover {
  transform: translateY(-1px);
  box-shadow: var(--eu-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.08));
}

.ipb-workbench__queue-dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 999px;
  flex-shrink: 0;
  background: var(--eu-text-muted, #94a3b8);
}

.ipb-workbench__queue-item--critical {
  background: #fef2f2;
  border-color: #fecaca;
}
.ipb-workbench__queue-item--critical .ipb-workbench__queue-dot { background: #dc2626; }

.ipb-workbench__queue-item--warning {
  background: #fffbeb;
  border-color: #fde68a;
}
.ipb-workbench__queue-item--warning .ipb-workbench__queue-dot { background: #d97706; }

.ipb-workbench__queue-item--info {
  background: #eff6ff;
  border-color: #bfdbfe;
}
.ipb-workbench__queue-item--info .ipb-workbench__queue-dot { background: #2563eb; }

.ipb-workbench__queue-item--success {
  background: #f0fdf4;
  border-color: #bbf7d0;
}
.ipb-workbench__queue-item--success .ipb-workbench__queue-dot { background: #16a34a; }

.ipb-workbench__queue-msg {
  flex: 1;
  min-width: 0;
  line-height: 1.25;
}

.ipb-workbench__queue-count {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  font-size: 0.75rem;
  color: var(--eu-text-muted, #475569);
}

.ipb-workbench__kpis {
  margin-bottom: 0.55rem;
}

.ipb-workbench__kpis .eu-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
  margin-bottom: 0;
}

.ipb-workbench__kpis .eu-kpi {
  padding: 0.6rem 0.7rem;
  min-height: 6.5rem;
  display: flex;
  flex-direction: column;
}

.ipb-workbench__kpis .eu-kpi__header {
  margin-bottom: 0.3rem;
}

.ipb-workbench__kpis .eu-kpi__value {
  font-size: 1.3rem;
}

.ipb-workbench__kpis .eu-kpi__hint {
  margin-top: auto;
  padding-top: 0.3rem;
  font-size: 0.7rem;
  color: var(--eu-text-muted, #64748b);
  line-height: 1.3;
}

.ipb-workbench__kpis a.eu-kpi--link {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.ipb-workbench__kpis a.eu-kpi--link:hover,
.ipb-workbench__kpis a.eu-kpi--link:focus-visible {
  border-color: var(--eu-primary, #2563eb);
  box-shadow: var(--eu-shadow-md, 0 4px 12px rgba(37, 99, 235, 0.12));
}

.ipb-workbench__kpis .eu-kpi--critical {
  border-color: #fbbf24;
  background: linear-gradient(180deg, #fffbeb 0%, #fff 55%);
}

.ipb-workbench__kpis .eu-kpi--critical::before {
  opacity: 1;
  background: #d97706;
}

.ipb-workbench__actions-card {
  margin-bottom: 0.55rem;
}

.ipb-workbench__actions-card .eu-card__body {
  padding: 0.55rem 0.75rem;
}

.ipb-workbench__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.ipb-workbench__action-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.ipb-workbench .eu-search-panel,
.ipb-workbench .eu-results-frame {
  margin-top: 0.35rem;
}

@media (max-width: 1100px) {
  .ipb-workbench__kpis .eu-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .ipb-workbench__kpis .eu-kpi-grid,
  .ipb-workbench__queue-list {
    grid-template-columns: 1fr;
  }
}
/* IP Billing — Patient financial workspace (enterprise density) */
.ipb-workspace.eu-page {
  gap: 0.75rem;
  padding-top: 0.75rem;
  padding-bottom: 1rem;
  min-width: 0;
  max-width: 100%;
}

.ipb-workspace .eu-page-header {
  margin-bottom: 0;
  gap: 0.5rem;
}

/* Patient context — size to content, full-width multi-column (override mdm .eu-meta-strip flex) */
.ipb-workspace__context .eu-meta-strip,
.ipb-workspace__context .eu-card.eu-meta-strip {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.55rem 0.75rem;
  box-sizing: border-box;
}

.ipb-workspace__context .eu-meta-strip__grid {
  display: grid;
  gap: 0.45rem 0.75rem;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  width: 100%;
}

.ipb-workspace__context .eu-meta-strip__label {
  margin-bottom: 0.1rem;
  font-size: 0.625rem;
}

.ipb-workspace__context .eu-meta-strip__value {
  font-size: 0.8125rem;
  line-height: 1.25;
}

/* Compact KPI strip — keep 4-up through laptop widths (override enterprise_ui ≤1200 2-col) */
.ipb-workspace__kpis .eu-kpi-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0.5rem;
  margin: 0;
}

.ipb-workspace__kpis .eu-kpi {
  padding: 0.4rem 0.5rem;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.ipb-workspace__kpis .eu-kpi__header {
  margin-bottom: 0.15rem;
}

.ipb-workspace__kpis .eu-kpi__value {
  font-size: 1.05rem;
  line-height: 1.2;
}

.ipb-workspace__kpis .eu-kpi__hint {
  margin-top: 0.15rem;
  font-size: 0.65rem;
  line-height: 1.25;
}

.ipb-workspace__kpis .eu-kpi:hover {
  transform: none;
}

.ipb-workspace__kpis a.eu-kpi--link {
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ipb-workspace__kpis a.eu-kpi--link:hover,
.ipb-workspace__kpis a.eu-kpi--link:focus-visible {
  border-color: var(--eu-primary, #2563eb);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.12);
}

.ipb-workspace__kpis .eu-kpi--critical {
  border-color: #fca5a5;
  box-shadow: inset 3px 0 0 #dc2626;
}

/* Quick actions — one horizontal toolbar, not a tall card */
.ipb-workspace__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 8px;
  background: var(--eu-surface, #fff);
}

.ipb-workspace__toolbar-label {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #64748b);
  margin-right: 0.15rem;
}

.ipb-workspace__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  flex: 1 1 auto;
  min-width: 0;
}

.ipb-cashier__actions,
.ipb-corporate__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

/* Timeline near fold */
.ipb-workspace__timeline-frame {
  display: block;
  margin-top: 0;
}

.ipb-workspace__timeline-frame .eu-card--compact .eu-card__header {
  padding: 0.45rem 0.75rem;
}

.ipb-workspace__timeline-frame .eu-card--compact .eu-card__body {
  padding: 0.5rem 0.75rem;
}

.ipb-workspace__skeleton {
  padding: 0.65rem 0.75rem;
  color: var(--eu-text-muted, #64748b);
  font-size: 0.8125rem;
}

.ipb-workspace__timeline {
  list-style: none;
  margin: 0;
  padding: 0;
}

.ipb-workspace__timeline-item {
  display: grid;
  grid-template-columns: 8.5rem 5.5rem minmax(0, 1fr) auto;
  gap: 0.45rem 0.65rem;
  padding: 0.4rem 0;
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
  font-size: 0.8125rem;
  align-items: baseline;
}

.ipb-workspace__timeline-item:last-child {
  border-bottom: 0;
}

.ipb-workspace__timeline-when {
  color: var(--eu-text-muted, #64748b);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ipb-workspace__timeline-label {
  font-weight: 650;
}

.ipb-workspace__timeline-detail {
  color: var(--eu-text, #0f172a);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ipb-workspace__timeline-amount {
  font-variant-numeric: tabular-nums;
  font-weight: 650;
  white-space: nowrap;
  text-align: right;
}

.ipb-workspace__timeline-item--payment .ipb-workspace__timeline-amount,
.ipb-workspace__timeline-item--deposit .ipb-workspace__timeline-amount {
  color: #047857;
}

.ipb-workspace__timeline-item--bill .ipb-workspace__timeline-label {
  color: #1d4ed8;
}

@media (max-width: 720px) {
  .ipb-workspace__context .eu-meta-strip__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ipb-workspace__kpis .eu-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 480px) {
  .ipb-workspace__kpis .eu-kpi-grid {
    grid-template-columns: 1fr !important;
  }

  .ipb-workspace__timeline-item {
    grid-template-columns: 1fr auto;
    gap: 0.15rem 0.5rem;
  }

  .ipb-workspace__timeline-when {
    grid-column: 1 / -1;
  }

  .ipb-workspace__timeline-detail {
    grid-column: 1 / -1;
    white-space: normal;
  }
}
/* IPD discharge bill — in-app preview + print (dense, repeating header/footer) */

.ipd-bill-preview {
  max-width: 960px;
  margin: 0 auto;
}

.ipd-bill-preview__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
  padding: 0.55rem 0.75rem;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0.5rem;
}

.ipd-bill-preview__toolbar-left,
.ipd-bill-preview__toolbar-right {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}

.ipd-bill-doc {
  width: 210mm;
  max-width: 100%;
  margin: 0 auto;
  padding: 10mm 12mm;
  background: #fff;
  color: #1f2937;
  border: 1px solid #e2e8f0;
  border-radius: 0.35rem;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  font-size: 11px;
  line-height: 1.3;
}

.ipd-bill-doc * {
  box-sizing: border-box;
}

/* Screen-only fixed chrome placeholders (shown only when printing) */
.ipd-bill-doc__print-header,
.ipd-bill-doc__print-footer {
  display: none;
}

.ipd-bill-doc__header {
  border-bottom: 2px solid #0f172a;
  padding-bottom: 8px;
  margin-bottom: 8px;
}

.ipd-bill-doc__hospital {
  font-size: 16px;
  font-weight: 700;
  color: #0f172a;
}

.ipd-bill-doc__hospital-meta {
  font-size: 10px;
  color: #64748b;
  margin-top: 2px;
}

.ipd-bill-doc__title {
  text-align: center;
  font-size: 13px;
  font-weight: 700;
  margin: 6px 0 10px;
  text-decoration: underline;
  letter-spacing: 0.02em;
}

.ipd-bill-doc__info {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3px 14px;
  margin-bottom: 10px;
  font-size: 10px;
}

.ipd-bill-doc__info-row {
  display: flex;
  gap: 6px;
}

.ipd-bill-doc__label {
  font-weight: 700;
  min-width: 92px;
  color: #475569;
}

.ipd-bill-doc__section-title {
  font-size: 11px;
  font-weight: 700;
  margin: 10px 0 4px;
  padding-bottom: 2px;
  border-bottom: 1px solid #cbd5e1;
}

.ipd-bill-doc__section-count {
  font-weight: 600;
  color: #64748b;
  margin-left: 0.25rem;
}

.ipd-bill-doc table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 6px;
  font-size: 9.5px;
}

.ipd-bill-doc thead {
  display: table-header-group;
}

.ipd-bill-doc tfoot {
  display: table-footer-group;
}

.ipd-bill-doc th,
.ipd-bill-doc td {
  border: 1px solid #e2e8f0;
  padding: 3px 5px;
  text-align: left;
  vertical-align: top;
}

.ipd-bill-doc th {
  background: #f8fafc;
  font-weight: 700;
  font-size: 8.5px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: #475569;
}

.ipd-bill-doc .num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ipd-bill-doc__lines th:nth-child(1),
.ipd-bill-doc__lines td:nth-child(1) { width: 28px; }
.ipd-bill-doc__lines th:nth-child(3),
.ipd-bill-doc__lines td:nth-child(3) { width: 72px; white-space: nowrap; }
.ipd-bill-doc__lines th:nth-child(4),
.ipd-bill-doc__lines td:nth-child(4) { width: 108px; }
.ipd-bill-doc__posting {
  font-size: 8.5px;
  word-break: break-all;
}

.ipd-bill-doc__desc {
  font-weight: 600;
  line-height: 1.25;
}

.ipd-bill-doc__codes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.15rem 0.55rem;
  margin-top: 1px;
  font-size: 8px;
  color: #475569;
  font-weight: 600;
}

.ipd-bill-doc__pending-tag {
  margin-top: 1px;
  font-size: 8px;
  font-weight: 700;
  color: #c2410c;
  text-transform: uppercase;
}

.ipd-bill-doc__subtotal td {
  background: #f8fafc;
}

.ipd-bill-doc__summary {
  margin-top: 8px;
  border: 1px solid #cbd5e1;
  border-radius: 3px;
  overflow: hidden;
}

.ipd-bill-doc__summary-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  padding: 4px 8px;
  border-bottom: 1px solid #e2e8f0;
  font-size: 10px;
}

.ipd-bill-doc__summary-row:last-child {
  border-bottom: none;
}

.ipd-bill-doc__summary-row--total {
  background: #f1f5f9;
  font-weight: 700;
  font-size: 11px;
}

.ipd-bill-doc__summary-row--due {
  background: #fef2f2;
  color: #b91c1c;
  font-weight: 800;
}

.ipd-bill-doc__empty {
  margin: 0 0 0.5rem;
  font-size: 10px;
  color: #555;
}

.ipd-bill-doc__note {
  margin-top: 8px;
  padding: 6px 8px;
  background: #fffbeb;
  border-left: 3px solid #f59e0b;
  font-size: 9px;
  color: #78716c;
}

.ipd-bill-doc__signatures {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 20px;
  text-align: center;
  font-size: 9px;
}

.ipd-bill-doc__sig-line {
  border-top: 1px solid #94a3b8;
  margin-top: 28px;
  padding-top: 3px;
  font-weight: 600;
}

.ipd-bill-doc__footer {
  margin-top: 12px;
  padding-top: 6px;
  border-top: 1px solid #e2e8f0;
  text-align: center;
  font-size: 8px;
  color: #64748b;
}

@media print {
  .no-print,
  .ipd-bill-preview__toolbar,
  .app-sidebar,
  .app-shell__overlay,
  .app-topbar,
  .app-shell__topbar,
  .app-shell__topnav,
  .request-timing,
  [data-controller="request-timing"] {
    display: none !important;
  }

  .app-shell,
  .app-shell__workspace,
  .app-shell__main,
  .ipd-bill-preview {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: none !important;
    background: #fff !important;
    box-shadow: none !important;
    border: none !important;
  }

  .ipd-bill-doc {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    border: none;
    box-shadow: none;
    border-radius: 0;
  }

  /* Hide in-flow header/footer on print — fixed chrome repeats every page */
  .ipd-bill-doc__header,
  .ipd-bill-doc__footer {
    display: none !important;
  }

  .ipd-bill-doc__print-header {
    display: block !important;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    padding: 0 0 4px;
    border-bottom: 1.5px solid #0f172a;
    background: #fff;
    z-index: 10;
    font-size: 9px;
    line-height: 1.25;
  }

  .ipd-bill-doc__print-header-main {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-size: 10px;
  }

  .ipd-bill-doc__print-header-sub {
    margin-top: 1px;
    color: #64748b;
    font-size: 8px;
  }

  .ipd-bill-doc__print-footer {
    display: block !important;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    padding-top: 3px;
    border-top: 1px solid #cbd5e1;
    background: #fff;
    text-align: center;
    font-size: 8px;
    color: #64748b;
    z-index: 10;
  }

  /* Reserve space so content does not collide with fixed chrome */
  .ipd-bill-doc__title {
    margin-top: 18mm;
  }

  .ipd-bill-doc__signatures {
    margin-bottom: 12mm;
  }

  .ipd-bill-doc table {
    page-break-inside: auto;
  }

  .ipd-bill-doc tr {
    page-break-inside: avoid;
    page-break-after: auto;
  }

  .ipd-bill-doc thead {
    display: table-header-group;
  }

  .no-print-link {
    color: inherit;
    text-decoration: none;
  }

  @page {
    size: A4;
    margin: 14mm 10mm 12mm 10mm;
  }
}
/* line 11, app/assets/stylesheets/lab/_sample_collection.scss */
.collection-page {
  padding: 1.5rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

/* line 19, app/assets/stylesheets/lab/_sample_collection.scss */
.page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

/* line 25, app/assets/stylesheets/lab/_sample_collection.scss */
.page-header__left {
  flex: 1;
}

/* line 26, app/assets/stylesheets/lab/_sample_collection.scss */
.page-header__actions {
  display: flex;
  gap: 0.5rem;
  flex-shrink: 0;
}

/* line 29, app/assets/stylesheets/lab/_sample_collection.scss */
.page-title {
  font-size: var(--eu-font-page, 20px);
  font-weight: var(--eu-font-page-weight, 700);
  color: var(--color-text-primary, var(--eu-text));
  margin: 0 0 0.25rem;
}

/* line 36, app/assets/stylesheets/lab/_sample_collection.scss */
.page-subtitle {
  font-size: var(--eu-font-page-sub, 13px);
  font-weight: var(--eu-font-page-sub-weight, 400);
  color: var(--color-text-secondary, var(--eu-text-muted));
  margin: 0;
}

/* line 44, app/assets/stylesheets/lab/_sample_collection.scss */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 0.875rem;
  height: 36px;
  font-size: 0.8125rem;
  font-weight: 500;
  border-radius: 8px;
  border: 0.5px solid var(--color-border-secondary);
  background: transparent;
  color: var(--color-text-primary);
  cursor: pointer;
  text-decoration: none;
  transition: background 0.12s;
}

/* line 60, app/assets/stylesheets/lab/_sample_collection.scss */
.btn:hover {
  background: var(--color-background-secondary);
}

/* line 61, app/assets/stylesheets/lab/_sample_collection.scss */
.btn:active {
  transform: scale(0.98);
}

/* line 63, app/assets/stylesheets/lab/_sample_collection.scss */
.btn--sm {
  height: 30px;
  font-size: 0.75rem;
  padding: 0 0.75rem;
}

/* line 65, app/assets/stylesheets/lab/_sample_collection.scss */
.btn--secondary {
  color: var(--color-text-secondary);
}

/* line 67, app/assets/stylesheets/lab/_sample_collection.scss */
.btn--collect {
  background: var(--color-background-info);
  border-color: var(--color-border-info);
  color: var(--color-text-info);
}

/* line 71, app/assets/stylesheets/lab/_sample_collection.scss */
.btn--collect:hover {
  filter: brightness(0.95);
}

/* line 74, app/assets/stylesheets/lab/_sample_collection.scss */
.btn--confirm {
  background: var(--color-background-success);
  border-color: var(--color-border-success);
  color: var(--color-text-success);
}

/* line 78, app/assets/stylesheets/lab/_sample_collection.scss */
.btn--confirm:hover {
  filter: brightness(0.95);
}

/* line 83, app/assets/stylesheets/lab/_sample_collection.scss */
.stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}

/* line 89, app/assets/stylesheets/lab/_sample_collection.scss */
.stat-card {
  background: var(--color-background-secondary);
  padding: 1rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 4px;
  border-left: 3px solid transparent;
  border-radius: 0;
}

/* line 100, app/assets/stylesheets/lab/_sample_collection.scss */
.stat-card--warning {
  border-left-color: var(--color-border-warning);
}

/* line 101, app/assets/stylesheets/lab/_sample_collection.scss */
.stat-card--success {
  border-left-color: var(--color-border-success);
}

/* line 102, app/assets/stylesheets/lab/_sample_collection.scss */
.stat-card--info {
  border-left-color: var(--color-border-info);
}

/* line 104, app/assets/stylesheets/lab/_sample_collection.scss */
.stat-card__label {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--color-text-secondary);
}

/* line 112, app/assets/stylesheets/lab/_sample_collection.scss */
.stat-card__value {
  font-size: 2.25rem;
  font-weight: 500;
  line-height: 1.1;
  color: var(--color-text-primary);
}

/* line 119, app/assets/stylesheets/lab/_sample_collection.scss */
.stat-card__note {
  font-size: 0.75rem;
  color: var(--color-text-tertiary);
}

/* line 126, app/assets/stylesheets/lab/_sample_collection.scss */
.table-card {
  background: var(--color-background-primary);
  border: 0.5px solid var(--color-border-tertiary);
  border-radius: 12px;
  overflow: hidden;
}

/* line 132, app/assets/stylesheets/lab/_sample_collection.scss */
.table-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 0.5px solid var(--color-border-tertiary);
  background: var(--color-background-secondary);
}

/* line 141, app/assets/stylesheets/lab/_sample_collection.scss */
.table-card__title {
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--color-text-primary);
  margin: 0 0 2px;
}

/* line 148, app/assets/stylesheets/lab/_sample_collection.scss */
.table-card__subtitle {
  font-size: 0.8125rem;
  color: var(--color-text-secondary);
  margin: 0;
}

/* line 154, app/assets/stylesheets/lab/_sample_collection.scss */
.table-card__footer {
  padding: 0.75rem 1.25rem;
  border-top: 0.5px solid var(--color-border-tertiary);
  background: var(--color-background-secondary);
}

/* line 161, app/assets/stylesheets/lab/_sample_collection.scss */
.count-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  background: var(--color-background-tertiary);
  border: 0.5px solid var(--color-border-tertiary);
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--color-text-secondary);
  flex-shrink: 0;
}

/* line 175, app/assets/stylesheets/lab/_sample_collection.scss */
.table-scroll {
  overflow-x: auto;
}

/* line 177, app/assets/stylesheets/lab/_sample_collection.scss */
.data-table {
  width: 100%;
  border-collapse: collapse;
}

/* line 181, app/assets/stylesheets/lab/_sample_collection.scss */
.data-table__th {
  padding: 0.5rem 1rem;
  text-align: left;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--color-text-secondary);
  background: var(--color-background-secondary);
  border-bottom: 0.5px solid var(--color-border-tertiary);
  white-space: nowrap;
}

/* line 193, app/assets/stylesheets/lab/_sample_collection.scss */
.data-table__th--center {
  text-align: center;
}

/* line 197, app/assets/stylesheets/lab/_sample_collection.scss */
.data-table__row:not(:last-child) td {
  border-bottom: 0.5px solid var(--color-border-tertiary);
}

/* line 198, app/assets/stylesheets/lab/_sample_collection.scss */
.data-table__row:hover td {
  background: var(--color-background-secondary);
}

/* line 201, app/assets/stylesheets/lab/_sample_collection.scss */
.data-table__td {
  padding: 0.75rem 1rem;
  font-size: 0.8125rem;
  color: var(--color-text-primary);
  vertical-align: middle;
}

/* line 207, app/assets/stylesheets/lab/_sample_collection.scss */
.data-table__td--primary {
  font-weight: 500;
}

/* line 208, app/assets/stylesheets/lab/_sample_collection.scss */
.data-table__td--mono {
  font-family: var(--font-mono, monospace);
  font-size: 0.75rem;
  color: var(--color-text-secondary);
}

/* line 209, app/assets/stylesheets/lab/_sample_collection.scss */
.data-table__td--muted {
  color: var(--color-text-secondary);
}

/* line 210, app/assets/stylesheets/lab/_sample_collection.scss */
.data-table__td--center {
  text-align: center;
}

/* line 215, app/assets/stylesheets/lab/_sample_collection.scss */
.patient-name {
  display: block;
  font-weight: 500;
  color: var(--color-text-primary);
}

/* line 221, app/assets/stylesheets/lab/_sample_collection.scss */
.patient-uhid {
  display: block;
  font-size: 0.75rem;
  color: var(--color-text-tertiary);
}

/* line 228, app/assets/stylesheets/lab/_sample_collection.scss */
.order-link {
  font-family: var(--font-mono, monospace);
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--color-text-info);
  text-decoration: none;
}

/* line 234, app/assets/stylesheets/lab/_sample_collection.scss */
.order-link:hover {
  text-decoration: underline;
}

/* line 238, app/assets/stylesheets/lab/_sample_collection.scss */
.status-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 500;
}

/* line 247, app/assets/stylesheets/lab/_sample_collection.scss */
.status-pill i {
  font-size: 13px;
}

/* line 249, app/assets/stylesheets/lab/_sample_collection.scss */
.status-pill--success {
  background: var(--color-background-success);
  color: var(--color-text-success);
  border: 0.5px solid var(--color-border-success);
}

/* line 257, app/assets/stylesheets/lab/_sample_collection.scss */
.priority-pill {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 500;
}

/* line 265, app/assets/stylesheets/lab/_sample_collection.scss */
.priority-pill--urgent, .priority-pill--high {
  background: var(--color-background-danger);
  color: var(--color-text-danger);
  border: 0.5px solid var(--color-border-danger);
}

/* line 272, app/assets/stylesheets/lab/_sample_collection.scss */
.priority-pill--stat {
  background: var(--color-background-warning);
  color: var(--color-text-warning);
  border: 0.5px solid var(--color-border-warning);
}

/* line 278, app/assets/stylesheets/lab/_sample_collection.scss */
.priority-pill--routine, .priority-pill--normal {
  background: var(--color-background-secondary);
  color: var(--color-text-secondary);
  border: 0.5px solid var(--color-border-tertiary);
}

/* line 287, app/assets/stylesheets/lab/_sample_collection.scss */
.empty-state {
  padding: 3.5rem 2rem;
  text-align: center;
}

/* line 291, app/assets/stylesheets/lab/_sample_collection.scss */
.empty-state__icon {
  font-size: 2rem;
  color: var(--color-text-tertiary);
  display: block;
  margin-bottom: 0.75rem;
}

/* line 298, app/assets/stylesheets/lab/_sample_collection.scss */
.empty-state__heading {
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--color-text-primary);
  margin: 0 0 0.25rem;
}

/* line 305, app/assets/stylesheets/lab/_sample_collection.scss */
.empty-state__body {
  font-size: 0.8125rem;
  color: var(--color-text-secondary);
  margin: 0;
}

/* line 313, app/assets/stylesheets/lab/_sample_collection.scss */
.detail-card {
  background: var(--color-background-primary);
  border: 0.5px solid var(--color-border-tertiary);
  border-radius: 12px;
  overflow: hidden;
}

/* line 319, app/assets/stylesheets/lab/_sample_collection.scss */
.detail-card__header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0.75rem 1.25rem;
  border-bottom: 0.5px solid var(--color-border-tertiary);
  background: var(--color-background-secondary);
}

/* line 328, app/assets/stylesheets/lab/_sample_collection.scss */
.detail-card__icon {
  font-size: 16px;
  color: var(--color-text-secondary);
}

/* line 333, app/assets/stylesheets/lab/_sample_collection.scss */
.detail-card__title {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-text-primary);
}

/* line 339, app/assets/stylesheets/lab/_sample_collection.scss */
.detail-card__body {
  padding: 1.25rem;
}

/* line 345, app/assets/stylesheets/lab/_sample_collection.scss */
.detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem 1.5rem;
}

/* line 351, app/assets/stylesheets/lab/_sample_collection.scss */
.detail-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

/* line 356, app/assets/stylesheets/lab/_sample_collection.scss */
.detail-item__label {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-secondary);
}

/* line 364, app/assets/stylesheets/lab/_sample_collection.scss */
.detail-item__value {
  font-size: 0.875rem;
  color: var(--color-text-primary);
}

/* line 368, app/assets/stylesheets/lab/_sample_collection.scss */
.detail-item__value--mono {
  font-family: var(--font-mono, monospace);
  font-size: 0.8125rem;
  color: var(--color-text-secondary);
}

/* line 377, app/assets/stylesheets/lab/_sample_collection.scss */
.collection-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* line 383, app/assets/stylesheets/lab/_sample_collection.scss */
.form-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
}

/* line 389, app/assets/stylesheets/lab/_sample_collection.scss */
.form-group {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

/* line 394, app/assets/stylesheets/lab/_sample_collection.scss */
.form-group--full {
  grid-column: 1 / -1;
}

/* line 397, app/assets/stylesheets/lab/_sample_collection.scss */
.form-label {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--color-text-primary);
}

/* line 403, app/assets/stylesheets/lab/_sample_collection.scss */
.form-control {
  height: 36px;
  padding: 0 0.75rem;
  font-size: 0.875rem;
  color: var(--color-text-primary);
  background: var(--color-background-primary);
  border: 0.5px solid var(--color-border-secondary);
  border-radius: 8px;
  width: 100%;
  transition: border-color 0.12s;
}

/* line 414, app/assets/stylesheets/lab/_sample_collection.scss */
.form-control:hover {
  border-color: var(--color-border-primary);
}

/* line 415, app/assets/stylesheets/lab/_sample_collection.scss */
.form-control:focus {
  outline: none;
  border-color: var(--color-border-info);
  box-shadow: 0 0 0 3px var(--color-background-info);
}

/* line 422, app/assets/stylesheets/lab/_sample_collection.scss */
.form-select {
  cursor: pointer;
}

/* line 424, app/assets/stylesheets/lab/_sample_collection.scss */
.form-textarea {
  height: auto;
  padding: 0.5rem 0.75rem;
  resize: vertical;
  line-height: 1.5;
}

/* line 431, app/assets/stylesheets/lab/_sample_collection.scss */
.form-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  padding-top: 0.5rem;
  border-top: 0.5px solid var(--color-border-tertiary);
  margin-top: 0.5rem;
}
/* Laboratory desks — PEUF tokens, dense LIS workstation */

.eu-workflow-page:has(.lab-desk--workstation) .eu-workflow-page__body,
.eu-workflow-page:has(.lab-desk--worksheet) .eu-workflow-page__body {
  gap: 10px;
  width: 100%;
  max-width: none;
}

.eu-workflow-page:has(.lab-desk--workstation) .eu-page-header,
.eu-workflow-page:has(.lab-desk--worksheet) .eu-page-header {
  margin-bottom: 0;
  padding-bottom: 0;
}

.lab-desk--masters {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.lab-desk--masters > .lab-desk__muted {
  grid-column: 1 / -1;
}

.lab-masters__sub {
  margin: 10px 0 4px;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #64748b);
}

.lab-masters__sub:first-child {
  margin-top: 0;
}

.lab-masters__list {
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
}

.lab-masters__list li + li {
  border-top: 1px solid var(--eu-border, #e5e7eb);
}

.lab-masters__link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 6px 0;
  color: inherit;
  text-decoration: none;
  font-size: 0.8125rem;
}

.lab-masters__link:hover {
  color: var(--eu-accent, #0f766e);
}

@media (max-width: 900px) {
  .lab-desk--masters {
    grid-template-columns: 1fr;
  }
}

.lab-desk--workstation {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.lab-desk--workstation .eu-card {
  margin: 0;
}

.lab-desk--workstation .eu-card--compact .eu-card__header {
  padding: 6px 10px;
}

.lab-desk--workstation .eu-card--compact .eu-card__body,
.lab-desk--workstation .eu-card__body {
  padding: 8px 10px;
}

.lab-desk__banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
  padding: 8px 12px;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
}

.lab-desk__identity {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px;
  font-size: 0.95rem;
}

.lab-desk__identity-copy {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 8px;
  min-width: 0;
}

.lab-desk__banner-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  margin: 0;
}

.lab-desk__banner-meta > div {
  display: flex;
  gap: 6px;
  font-size: 0.75rem;
}

.lab-desk__banner-meta dt {
  margin: 0;
  color: var(--eu-text-muted, #6b7280);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.lab-desk__banner-meta dd {
  margin: 0;
  font-weight: 600;
}

.lab-desk__lifecycle {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 0;
  padding: 8px 10px;
  list-style: none;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
}

.lab-desk__life {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px 4px 0;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--eu-text-muted, #6b7280);
}

.lab-desk__life:not(:last-child)::after {
  content: "";
  width: 18px;
  height: 2px;
  margin-left: 8px;
  background: var(--eu-border, #d1d5db);
}

.lab-desk__life-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.1em;
  font-size: 0.85rem;
  line-height: 1;
}

.lab-desk__life--done {
  color: var(--eu-success, #047857);
}

.lab-desk__life--current {
  color: var(--eu-text, #111827);
  font-size: 0.8rem;
}

.lab-desk__life--current .lab-desk__life-mark {
  color: var(--chk-accent, #0f766e);
}

.lab-desk__alerts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.lab-desk__alert {
  padding: 4px 8px;
  border-radius: var(--eu-radius-sm, 6px);
  font-size: 0.75rem;
  font-weight: 600;
}

.lab-desk__alert--ok {
  color: var(--eu-success, #047857);
  background: color-mix(in srgb, var(--eu-success, #059669) 10%, white);
}

.lab-desk__alert--warn {
  color: var(--eu-warning, #b45309);
  background: color-mix(in srgb, var(--eu-warning, #d97706) 12%, white);
}

.lab-desk__alert--info {
  color: var(--eu-text, #334155);
  background: var(--eu-surface-muted, #f1f5f9);
}

.lab-desk__cockpit {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 10px;
}

.lab-desk__sample-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 10px;
}

.lab-desk__badge {
  display: inline-block;
  margin: 0 0 8px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 700;
}

.lab-desk__badge--ok {
  color: var(--eu-success, #047857);
  background: color-mix(in srgb, var(--eu-success, #059669) 12%, white);
}

.lab-desk__muted {
  color: var(--eu-text-muted, #6b7280);
  font-size: 0.7rem;
  font-weight: 600;
}

.lab-desk__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 12px;
  margin: 0 0 10px;
}

.lab-desk__facts dt {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #6b7280);
}

.lab-desk__facts dd {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
}

.lab-desk__mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.8rem;
}

.lab-desk__barcode-panel {
  margin-bottom: 10px;
  padding: 8px;
  border: 1px dashed var(--eu-border, #d1d5db);
  border-radius: var(--eu-radius-sm, 6px);
}

.lab-desk__barcode-img {
  display: block;
  height: 44px;
  margin: 0 0 8px;
}

.lab-desk__barcode-placeholder {
  height: 36px;
  margin: 0 0 8px;
  background: repeating-linear-gradient(
    90deg,
    var(--eu-text, #111827) 0 2px,
    transparent 2px 5px
  );
  opacity: 0.18;
}

.lab-desk__barcode {
  display: flex;
  gap: 8px;
  align-items: center;
}

.lab-desk__barcode .eu-input {
  flex: 1;
}

.lab-desk__readonly {
  display: flex;
  align-items: center;
  min-height: var(--eu-field-h-sm, 34px);
  background: var(--eu-surface-muted, #f8fafc);
}

.lab-desk__radios {
  display: flex;
  gap: 16px;
  align-items: center;
  min-height: var(--eu-field-h-sm, 34px);
  font-size: 0.8125rem;
}

.lab-desk__actions {
  position: sticky;
  bottom: 0;
  z-index: 2;
  margin: 0;
  padding: 8px 0;
  background: var(--eu-bg, #f3f4f6);
}

.lab-desk__banner--compact {
  padding: 8px 10px;
}

.lab-desk__banner--patient {
  display: grid;
  grid-template-columns: minmax(12rem, auto) minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px 16px;
  padding: 6px 10px;
}

.lab-desk__banner-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.lab-desk__context {
  padding: 6px 10px;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
}

.lab-desk__lifecycle--compact {
  flex-wrap: nowrap;
  overflow-x: auto;
  padding: 4px 8px;
}

.lab-desk__lifecycle--compact .lab-desk__life {
  flex: 0 0 auto;
  padding: 2px 8px 2px 0;
  font-weight: 500;
}

.lab-desk__lifecycle--compact .lab-desk__life--done {
  color: var(--eu-text-muted, #6b7280);
}

.lab-desk__lifecycle--compact .lab-desk__life--done .lab-desk__life-mark {
  color: var(--eu-success, #047857);
  opacity: 0.7;
}

.lab-desk__lifecycle--compact .lab-desk__life--current {
  color: var(--chk-accent, #0f766e);
  font-size: 0.78rem;
  font-weight: 700;
  padding: 2px 8px;
  background: color-mix(in srgb, var(--chk-accent, #0f766e) 10%, white);
  border-radius: var(--eu-radius-sm, 6px);
}

.lab-desk__lifecycle--compact .lab-desk__life--upcoming {
  color: var(--eu-text-muted, #6b7280);
  opacity: 0.6;
}

.lab-ws__toolbar--actions {
  flex: 0 0 auto;
  flex-wrap: nowrap;
  justify-content: flex-end;
  align-items: center;
}

.lab-ws__primary {
  min-width: 11rem;
  font-weight: 700;
}

.lab-ws__details-open {
  align-self: flex-start;
}

.lab-ws__dialog {
  width: min(40rem, 92vw);
  padding: 16px;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface, #fff);
  color: var(--eu-text, #111827);
}

.lab-ws__dialog::backdrop {
  background: color-mix(in srgb, var(--eu-text, #111827) 35%, transparent);
}

.lab-ws__dialog-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.lab-ws__dialog-head h3 {
  margin: 0;
  font-size: 1rem;
}

.lab-ws__more--cancel {
  margin-top: 4px;
}

.lab-ws__more--cancel .lab-ws__cancel {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px;
  margin-top: 8px;
}

@media (max-width: 1100px) {
  .lab-desk__banner--patient {
    grid-template-columns: 1fr;
  }

  .lab-desk__banner-actions {
    justify-content: flex-start;
  }

  .lab-ws__toolbar--actions {
    flex-wrap: wrap;
  }
}

@media (max-width: 720px) {
  .lab-ws__summary-top {
    flex-direction: column;
    align-items: stretch;
  }

  .lab-ws__toolbar--actions {
    width: 100%;
    justify-content: flex-start;
  }
}

.lab-desk--worksheet {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}

.lab-ws__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 4px 0;
  background: var(--eu-surface, #fff);
  position: sticky;
  top: 0;
  z-index: 3;
}

.lab-ws__head.lab-ws__head--summary {
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  padding: 14px 20px;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface, #fff);
}

.lab-ws__summary-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px 16px;
}

.lab-ws__summary-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
  margin: 0;
}

.lab-ws__summary-meta > div {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  gap: 6px;
  min-width: 0;
}

.lab-ws__summary-meta dt {
  margin: 0;
  color: var(--eu-text-muted, #6b7280);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.lab-ws__summary-meta dd {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--eu-text, #111827);
}

.lab-ws__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
}

.lab-ws__meta,
.lab-ws__siblings,
.lab-ws__more {
  margin: 0;
  font-size: 0.75rem;
  color: var(--eu-text-muted, #6b7280);
}

.lab-ws__siblings {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  padding: 4px 0;
  line-height: 1.3;
}

.lab-ws__more {
  padding: 2px 0;
}

.lab-ws__more summary {
  cursor: pointer;
  font-weight: 600;
}

.lab-ws__upload-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
}

.lab-ws__upload-file {
  display: inline-block;
  width: auto;
  max-width: 28rem;
  flex: 1 1 16rem;
  min-height: 32px;
}

.lab-ws__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.lab-ws {
  overflow: auto;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
}

.lab-ws__table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.8125rem;
}

.lab-ws__table th,
.lab-ws__table td {
  padding: 6px 8px;
  border-bottom: 1px solid var(--eu-border, #e5e7eb);
  text-align: left;
  vertical-align: middle;
}

.lab-ws__table tbody tr {
  height: 44px;
}

.lab-ws__table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--eu-surface-muted, #f8fafc);
}

.lab-ws__table th:nth-child(2),
.lab-ws__table td.lab-ws__value {
  width: 22%;
}

.lab-ws__table th:nth-child(3),
.lab-ws__table th:nth-child(4),
.lab-ws__table th:nth-child(5),
.lab-ws__table th:nth-child(6),
.lab-ws__table td.lab-ws__prev,
.lab-ws__table td:nth-child(4),
.lab-ws__table td:nth-child(5),
.lab-ws__table td:nth-child(6) {
  width: 12%;
  font-size: 0.75rem;
  color: var(--eu-text-muted, #6b7280);
}

.lab-ws__table th {
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #6b7280);
  background: var(--eu-surface-muted, #f8fafc);
}

.lab-ws__input {
  width: 88px;
  min-height: 28px;
  padding: 2px 6px;
}

.lab-ws__input--value {
  width: 100%;
  min-width: 120px;
  min-height: 32px;
  font-size: 0.95rem;
  font-weight: 700;
}

.lab-ws__input--calc {
  width: 100%;
  min-width: 120px;
  background: var(--eu-surface-muted, #f8fafc);
  color: var(--eu-text-muted, #6b7280);
}

.lab-ws__calc {
  display: inline-block;
  margin-left: 6px;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #6b7280);
}

.lab-ws__row--calc td {
  background: var(--eu-surface-muted, #f8fafc);
}

.lab-ws__prev,
.lab-ws__flag {
  color: var(--eu-text-muted, #6b7280);
  font-size: 0.75rem;
}

.lab-ws__flag[data-flag="normal"] {
  font-weight: 500;
}

.lab-ws__flag[data-flag="low"],
.lab-ws__flag[data-flag="high"],
.lab-ws__flag[data-flag="critical_low"],
.lab-ws__flag[data-flag="critical_high"] {
  display: inline-flex;
  align-items: center;
  padding: 1px 6px;
  border-radius: var(--eu-radius-sm, 6px);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.lab-ws__flag[data-flag="low"],
.lab-ws__flag[data-flag="high"] {
  color: var(--eu-warning, #9a3412);
  background: color-mix(in srgb, var(--eu-warning, #d97706) 16%, white);
}

.lab-ws__flag[data-flag="critical_low"],
.lab-ws__flag[data-flag="critical_high"] {
  color: var(--eu-danger, #991b1b);
  background: color-mix(in srgb, var(--eu-danger, #dc2626) 18%, white);
}

.lab-ws__row--low,
.lab-ws__row--high {
  box-shadow: inset 4px 0 0 var(--eu-warning, #d97706);
  background: color-mix(in srgb, var(--eu-warning, #d97706) 6%, white);
}

.lab-ws__row--critical {
  box-shadow: inset 5px 0 0 var(--eu-danger, #dc2626);
  background: color-mix(in srgb, var(--eu-danger, #dc2626) 12%, white);
}

.lab-ws__row--critical .lab-ws__flag {
  font-size: 0.72rem;
}

.lab-ws__lin {
  display: block;
  margin-top: 2px;
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--eu-warning, #9a3412);
}

.lab-ws__qc {
  margin: 6px 0 0;
}

.lab-ws__ack {
  margin: 8px 0;
  padding: 8px 10px;
  border: 1px solid color-mix(in srgb, var(--eu-danger, #dc2626) 35%, white);
  border-radius: var(--eu-radius-sm, 6px);
}

.lab-ws__test-details,
.lab-ws__param,
.lab-ws__ai {
  margin: 4px 0 0;
  font-size: 0.75rem;
  color: var(--eu-text-muted, #6b7280);
}

.lab-ws__test-details summary,
.lab-ws__param summary,
.lab-ws__ai summary {
  cursor: pointer;
  font-weight: 600;
}

.lab-ws__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
  margin: 6px 0 0;
}

.lab-ws__facts > div {
  display: flex;
  gap: 6px;
}

.lab-ws__facts dt {
  margin: 0;
  font-weight: 600;
}

.lab-ws__facts dd {
  margin: 0;
}

.lab-ws__facts--audit {
  padding-top: 4px;
  border-top: 1px solid var(--eu-border, #e5e7eb);
}

.lab-ws__delta {
  font-size: 0.7rem;
}

.lab-ws__delta--review {
  font-weight: 700;
  color: var(--eu-warning, #9a3412);
}

.lab-ws__ai-list {
  margin: 4px 0 0;
  padding-left: 1.1rem;
}

.lab-desk__tat {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px 12px;
  margin: 0 0 10px;
  padding: 8px 10px;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
}

.lab-desk__tat dt {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #6b7280);
}

.lab-desk__tat dd {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 700;
}

.lab-desk__tat--breach {
  border-color: color-mix(in srgb, var(--eu-warning, #d97706) 45%, white);
  background: color-mix(in srgb, var(--eu-warning, #d97706) 8%, white);
}

.lab-desk__row--critical td {
  background: color-mix(in srgb, var(--eu-danger, #dc2626) 8%, white);
}

.lab-desk__row--linear td:first-child {
  box-shadow: inset 3px 0 0 var(--eu-warning, #d97706);
}

.lab-desk__badge--warn {
  color: var(--eu-warning, #b45309);
  background: color-mix(in srgb, var(--eu-warning, #d97706) 12%, white);
}

.lab-desk__checklist {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 16px;
}

.lab-desk__check {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8125rem;
}

.lab-desk__params {
  width: 100%;
}

.lab-desk__params th,
.lab-desk__params td {
  padding: 6px 8px;
  vertical-align: middle;
}

.eu-form-grid--3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 12px;
}

.eu-form-grid--2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 12px;
}

.lab-desks .eu-results-table,
.eu-page .eu-results-table {
  margin-top: 12px;
}

.lab-desk__tests {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 16px;
}

.lab-desk__test strong {
  font-size: 0.8125rem;
}

.lab-desk__params-tree {
  margin: 2px 0 0 1.25rem;
  padding: 0;
  list-style: none;
  color: var(--eu-text-muted, #6b7280);
  font-size: 0.75rem;
}

.lab-desk__params-tree li {
  position: relative;
  padding-left: 10px;
}

.lab-desk__params-tree li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 8px;
  border-top: 1px solid var(--eu-border, #d1d5db);
}

.lab-desk-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
}

.lab-desk-nav__link.is-active {
  background: var(--eu-accent, #0f766e);
  color: var(--eu-on-accent, #fff);
  border-color: var(--eu-accent, #0f766e);
  box-shadow: inset 0 -2px 0 var(--eu-accent-strong, #0d9488);
}

.lab-label-preview__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px 12px;
  padding: 8px 12px;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
}

.lab-label-preview__toolbar .eu-field {
  min-width: 160px;
  margin: 0;
}

.lab-label-preview__hint {
  margin: 0;
  font-size: 0.75rem;
  color: var(--eu-text-muted, #6b7280);
}

.lab-label-sheet {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding: 12px;
  background: var(--eu-surface-muted, #f8fafc);
  border: 1px dashed var(--eu-border, #d1d5db);
  border-radius: var(--eu-radius-md, 8px);
}

.lab-label-sheet--a4_2up,
.lab-label-sheet--a4_3col {
  display: grid;
  gap: 8mm;
}

.lab-label-sheet--a4_2up {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lab-label-sheet--a4_3col {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lab-label {
  box-sizing: border-box;
  padding: 6px 8px;
  background: #fff;
  border: 1px solid var(--eu-border, #d1d5db);
  color: #111;
  font-size: 10px;
  line-height: 1.25;
}

.lab-label--thermal_50x25 { width: 50mm; min-height: 25mm; }
.lab-label--thermal_50x30 { width: 50mm; min-height: 30mm; }
.lab-label--thermal_58x40 { width: 58mm; min-height: 40mm; }

.lab-label__hospital {
  font-weight: 700;
  font-size: 9px;
  margin-bottom: 4px;
}

.lab-label__row {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}

.lab-label__qr {
  width: 48px;
  height: 48px;
}

.lab-label__linear {
  display: block;
  height: 36px;
  margin: 4px 0 2px;
  max-width: 100%;
}

.lab-label__id {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  font-weight: 700;
}

.lab-label__tests,
.lab-label__meta,
.lab-label__comment {
  margin: 2px 0 0;
  font-size: 9px;
}

.lab-label-preview__others {
  padding: 8px 12px;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
}

@media print {
  body:has(#lab-label-sheet) * {
    visibility: hidden !important;
  }

  body:has(#lab-label-sheet) #lab-label-sheet,
  body:has(#lab-label-sheet) #lab-label-sheet * {
    visibility: visible !important;
  }

  body:has(#lab-label-sheet) #lab-label-sheet {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    background: #fff;
    border: 0;
    padding: 0;
    gap: 2mm;
  }

  body:has(#lab-label-sheet) .lab-label-preview__screen,
  body:has(#lab-label-sheet) .app-shell__overlay,
  body:has(#lab-label-sheet) .eu-page-header {
    display: none !important;
  }

  .lab-label {
    break-inside: avoid;
    page-break-inside: avoid;
  }
}

.lab-queue {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.lab-queue .eu-page-header {
  margin-bottom: 0;
}

.lab-queue .eu-page-subtitle,
.lab-queue .eu-search-panel .eu-card__header,
.lab-queue .eu-results-table > .eu-card__header {
  display: none;
}

.lab-queue .eu-search-page__body,
.lab-queue .eu-results-frame__body {
  gap: 8px;
}

.lab-queue .eu-search-panel,
.lab-queue .eu-kpi-summary,
.lab-queue .eu-card {
  margin: 0;
}

.lab-queue .eu-search-panel,
.lab-queue .eu-search-panel.eu-card {
  border: 0;
  box-shadow: none;
  background: transparent;
}

.lab-queue .eu-search-panel--dense .eu-card__body {
  padding: 0;
}

.lab-queue .eu-search-compact__grid--adaptive {
  display: flex;
  flex-wrap: nowrap;
  gap: 6px 8px;
  align-items: end;
}

.lab-queue .eu-field-slot {
  flex: 0 0 118px;
  width: 118px;
}

.lab-queue .eu-field-slot--half {
  flex: 1 1 220px;
  width: auto;
  min-width: 180px;
}

.lab-queue .eu-search-dense__actions-slot,
.lab-queue .eu-search-dense__actions--inline {
  flex: 0 0 auto;
  width: auto;
  flex-wrap: nowrap;
}

.lab-queue .eu-kpi-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  max-width: none;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
}

.lab-queue .eu-kpi-summary__item,
.lab-queue a.eu-kpi-summary__item {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  min-height: 0;
  padding: 4px 10px;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

.lab-queue .eu-kpi-summary__item + .eu-kpi-summary__item,
.lab-queue a.eu-kpi-summary__item + a.eu-kpi-summary__item {
  border-left: 1px solid var(--eu-border, #e5e7eb);
}

.lab-queue .eu-kpi-summary__label {
  margin: 0;
}

.lab-queue .eu-kpi-summary__value {
  font-size: 0.8125rem;
}

.lab-queue .eu-results-table.eu-card {
  border: 1px solid var(--eu-border, #e5e7eb);
  box-shadow: none;
}

.lab-queue .eu-table-wrap,
.lab-queue .clinical-workbench .eu-table-wrap {
  overflow-x: hidden;
  border: 0;
  box-shadow: none;
  border-radius: 0;
}

.lab-queue .eu-table,
.lab-queue .clinical-workbench .eu-table {
  table-layout: fixed;
  width: 100%;
  min-width: 0;
  font-size: 0.75rem;
}

.lab-queue .eu-table thead th,
.lab-queue .eu-table td {
  padding: 4px 6px;
  vertical-align: middle;
}

.lab-queue .eu-table thead th {
  padding-top: 6px;
  padding-bottom: 6px;
}

.lab-queue .eu-table th:nth-child(1),
.lab-queue .eu-table td:nth-child(1) { width: 28px; }
.lab-queue .eu-table th:nth-child(2),
.lab-queue .eu-table td:nth-child(2) { width: 72px; }
.lab-queue .eu-table th:nth-child(3),
.lab-queue .eu-table td:nth-child(3) { width: 118px; }
.lab-queue .eu-table th:nth-child(7),
.lab-queue .eu-table td:nth-child(7) { width: 52px; }
.lab-queue .eu-table th:nth-child(8),
.lab-queue .eu-table td:nth-child(8) { width: 72px; }
.lab-queue .eu-table th:nth-child(9),
.lab-queue .eu-table td:nth-child(9) { width: 92px; }
.lab-queue .eu-table th:nth-child(10),
.lab-queue .eu-table td:nth-child(10) { width: 108px; }

.lab-queue .eu-table__cell-actions {
  white-space: nowrap;
}

.lab-queue .eu-table__cell-actions .eu-btn {
  padding: 2px 8px;
  min-height: 26px;
  font-size: 0.7rem;
}

.lab-queue__name {
  font-weight: 600;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lab-queue__bulk {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px 8px;
  padding: 4px 8px;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
}

.lab-queue__reject {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px;
  margin-left: auto;
}

.lab-queue__reject .eu-input {
  min-width: 132px;
  height: 28px;
}

.lab-queue__status {
  display: inline-block;
  padding: 1px 6px;
  border-radius: var(--eu-radius-sm, 4px);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.4;
  background: var(--eu-surface-muted, #f3f4f6);
  color: var(--eu-text, #111827);
}

.lab-queue__status--ready { background: var(--eu-surface-muted, #e0f2fe); }
.lab-queue__status--processing,
.lab-queue__status--result_entry { background: var(--eu-warning-soft, #ffedd5); }
.lab-queue__status--verification,
.lab-queue__status--released { background: var(--eu-success-soft, #dcfce7); }
.lab-queue__status--rejected { background: var(--eu-danger-soft, #fee2e2); }

.lab-queue__pri {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.lab-queue__pri::before {
  content: "";
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--eu-text-muted, #6b7280);
}

.lab-queue__pri--stat::before {
  background: var(--eu-danger, #b91c1c);
}

.lab-queue__pri--urgent::before {
  background: var(--eu-warning, #c2410c);
}

.lab-queue__pri--routine::before {
  background: var(--eu-text-muted, #9ca3af);
}

.lab-queue__row--stat td:first-child,
.lab-queue__row--stat {
  box-shadow: inset 3px 0 0 var(--eu-danger, #b91c1c);
}

.lab-queue__row--urgent {
  box-shadow: inset 3px 0 0 var(--eu-warning, #c2410c);
}

.lab-queue__row--overdue .lab-queue__band--overdue {
  font-weight: 700;
}

.lab-queue--verify .eu-search-page,
.lab-queue--verify .eu-search-page__body,
.lab-queue--verify .eu-results-frame__body {
  gap: 8px;
}

.lab-queue--verify .eu-results-table.eu-card,
.lab-queue--verify .eu-table-wrap {
  min-height: 0;
  height: auto;
}

.lab-queue--verify .eu-table th:nth-child(1),
.lab-queue--verify .eu-table td:nth-child(1) { width: 72px; }
.lab-queue--verify .eu-table th:nth-child(2),
.lab-queue--verify .eu-table td:nth-child(2) { width: auto; }
.lab-queue--verify .eu-table th:nth-child(3),
.lab-queue--verify .eu-table td:nth-child(3) { width: 118px; }
.lab-queue--verify .eu-table th:nth-child(4),
.lab-queue--verify .eu-table td:nth-child(4) { width: 18%; }
.lab-queue--verify .eu-table th:nth-child(5),
.lab-queue--verify .eu-table td:nth-child(5) { width: 14%; }
.lab-queue--verify .eu-table th:nth-child(6),
.lab-queue--verify .eu-table td:nth-child(6) { width: 88px; }
.lab-queue--verify .eu-table th:nth-child(7),
.lab-queue--verify .eu-table td:nth-child(7) { width: 168px; }
.lab-queue--verify .eu-table th:nth-child(8),
.lab-queue--verify .eu-table td:nth-child(8) { width: 120px; }
.lab-queue--verify .eu-table th:nth-child(9),
.lab-queue--verify .eu-table td:nth-child(9) { width: 128px; }

.lab-queue__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 0;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
  overflow: hidden;
}

.lab-queue__tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--eu-text-muted, #6b7280);
  text-decoration: none;
  border-right: 1px solid var(--eu-border, #e5e7eb);
}

.lab-queue__tab:last-child {
  border-right: 0;
}

.lab-queue__tab--on {
  color: var(--eu-text, #111827);
  background: var(--eu-surface-muted, #f8fafc);
  box-shadow: inset 0 -2px 0 var(--chk-accent, #0f766e);
}

.lab-queue__tab-count {
  font-variant-numeric: tabular-nums;
  font-size: 0.75rem;
}

.lab-queue__crit {
  display: inline-block;
  margin-top: 2px;
  padding: 0 5px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-danger, #b91c1c);
  background: var(--eu-danger-soft, #fee2e2);
  border-radius: var(--eu-radius-sm, 4px);
}

.lab-queue__row--critical {
  box-shadow: inset 3px 0 0 var(--eu-danger, #b91c1c);
}

.lab-queue__status--technician { background: var(--eu-warning-soft, #ffedd5); }
.lab-queue__status--pathologist,
.lab-queue__status--release { background: var(--eu-surface-muted, #e0f2fe); }
.lab-queue__status--critical {
  background: var(--eu-danger-soft, #fee2e2);
  color: var(--eu-danger, #b91c1c);
}

.lab-queue__uhid {
  display: inline-block;
  margin-top: 1px;
  font-size: 0.75rem;
  font-weight: 700;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  color: var(--eu-text, #111827);
  text-decoration: none;
}

a.lab-queue__uhid:hover {
  text-decoration: underline;
}

.lab-queue__tat {
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--eu-text, #111827);
}

.lab-queue__tat--overdue {
  color: var(--eu-danger, #b91c1c);
}

.lab-queue__tat--due_soon {
  color: var(--eu-warning, #9a3412);
}

.lab-queue__tat--on_track {
  color: var(--eu-success, #047857);
}

.lab-queue__pulse {
  margin: 0;
  padding: 2px 2px 0;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--eu-text-muted, #4b5563);
}

.lab-desk--verify-review .lab-ws--culture {
  width: 100%;
}

.lab-queue__band {
  display: inline-block;
  margin-top: 2px;
  padding: 0 6px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 600;
  background: var(--eu-surface-muted, #f3f4f6);
  color: var(--eu-text, #111827);
}

.lab-queue__band--on_track {
  background: var(--eu-success-soft, #dcfce7);
  color: var(--eu-success, #166534);
}

.lab-queue__band--due_soon {
  background: var(--eu-warning-soft, #ffedd5);
  color: var(--eu-warning, #9a3412);
}

.lab-queue__band--overdue {
  background: var(--eu-danger-soft, #fee2e2);
  color: var(--eu-danger, #991b1b);
}

.lab-desk__muted {
  color: var(--eu-text-muted, #6b7280);
  font-size: 0.75rem;
}

.lab-desk__mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.8rem;
}

.lab-desk__check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  font-weight: 600;
}

.lab-ws--culture {
  width: 95%;
  max-width: none;
  overflow: hidden;
}

.lab-ws__summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 16px;
  padding: 8px 12px;
  font-size: 0.8125rem;
  border-bottom: 1px solid var(--eu-border, #e5e7eb);
  background: var(--eu-surface-muted, #f8fafc);
}

.lab-ws__summary--abn {
  box-shadow: inset 3px 0 0 var(--eu-danger, #b91c1c);
}

.lab-ws__culture-meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 8px 12px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--eu-border, #e5e7eb);
}

.lab-ws__culture-meta .eu-field,
.lab-ws__growth {
  margin: 0;
  min-width: 0;
  border: 0;
  padding: 0;
}

.lab-ws__culture-meta .eu-input {
  width: 100%;
  max-width: 100%;
  min-height: 32px;
}

.lab-ws__seg,
.lab-ws__sir {
  display: inline-flex;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-sm, 4px);
  overflow: hidden;
  background: var(--eu-surface, #fff);
}

.lab-ws__seg-opt,
.lab-ws__sir-opt {
  position: relative;
  margin: 0;
}

.lab-ws__seg-opt input,
.lab-ws__sir-opt input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}

.lab-ws__seg-opt span,
.lab-ws__sir-opt span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 10px;
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  color: var(--eu-text, #111827);
}

.lab-ws__sir-opt span {
  min-width: 1.75rem;
  padding: 0 6px;
}

.lab-ws__seg-opt input:checked + span,
.lab-ws__sir-opt input:checked + span {
  background: var(--eu-surface-muted, #f3f4f6);
}

.lab-ws__sir-opt input:checked + span[data-sir="S"] {
  background: var(--eu-success-soft, #dcfce7);
  color: var(--eu-success, #166534);
}

.lab-ws__sir-opt input:checked + span[data-sir="I"] {
  background: var(--eu-warning-soft, #ffedd5);
  color: var(--eu-warning, #9a3412);
}

.lab-ws__sir-opt input:checked + span[data-sir="R"] {
  background: var(--eu-danger-soft, #fee2e2);
  color: var(--eu-danger, #b91c1c);
}

.lab-ws__seg-opt input:focus-visible + span,
.lab-ws__sir-opt input:focus-visible + span {
  outline: 2px solid var(--eu-focus, #2563eb);
  outline-offset: -2px;
}

.lab-ws__grid {
  overflow: auto;
  max-height: min(62vh, 36rem);
}

.lab-ws__table--sir {
  table-layout: fixed;
  width: 100%;
}

.lab-ws__table--sir th:nth-child(n),
.lab-ws__table--sir td:nth-child(n) {
  width: auto;
  color: inherit;
  font-size: inherit;
}

.lab-ws__table--sir th:nth-child(1),
.lab-ws__table--sir td:nth-child(1) {
  width: 28%;
}

.lab-ws__table--sir th:nth-child(2),
.lab-ws__table--sir td:nth-child(2) {
  width: 12%;
}

.lab-ws__table--sir th:nth-child(3),
.lab-ws__table--sir td:nth-child(3) {
  width: 14%;
}

.lab-ws__table--sir th:nth-child(4),
.lab-ws__table--sir td:nth-child(4) {
  width: 16%;
}

.lab-ws__table--sir th:nth-child(5),
.lab-ws__table--sir td:nth-child(5) {
  width: 30%;
}

.lab-ws__table--sir tbody tr {
  height: 36px;
}

.lab-ws__table--sir .lab-ws__group-row th {
  position: static;
  padding: 6px 8px;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #6b7280);
  background: var(--eu-surface-muted, #f8fafc);
}

.lab-ws__row--sir-r {
  background: var(--eu-danger-soft, #fee2e2);
}

.lab-ws__abx {
  font-weight: 600;
}

.lab-ws__mic,
.lab-ws__method,
.lab-ws__remark-input {
  width: 100%;
  max-width: 100%;
  min-height: 26px;
  padding: 2px 6px;
  font-size: 0.8125rem;
}

.lab-ws__source {
  display: inline-block;
  margin-left: 6px;
  font-size: 0.65rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #6b7280);
}

.lab-ws__source--auto {
  font-weight: 700;
  color: var(--eu-text, #111827);
}

.lab-ws__sir-select {
  width: 100%;
  max-width: 10rem;
  min-height: 28px;
  padding: 2px 6px;
  font-size: 0.8125rem;
}

.lab-sir--s { color: var(--eu-success, #166534); font-weight: 700; }
.lab-sir--i { color: var(--eu-warning, #9a3412); font-weight: 700; }
.lab-sir--r { color: var(--eu-danger, #b91c1c); font-weight: 700; }

.lab-report-preview {
  max-width: none;
  padding: 8px 8px 20px;
  background: var(--eu-bg-muted, #e8eaed);
}

.lab-report__toolbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
}

.lab-report__toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.lab-report-preview__sheet {
  width: min(210mm, 100%);
  min-height: 297mm;
  margin: 0 auto;
  padding: 12mm 14mm;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #d1d5db);
  box-shadow: 0 1px 3px rgba(17, 24, 39, 0.08);
}

.lab-report {
  color: var(--eu-text, #111827);
  font-size: 0.8125rem;
  line-height: 1.35;
}

.lab-report__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--eu-text, #111827);
}

.lab-report__brand {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  min-width: 0;
}

.lab-report__logo {
  width: 48px;
  height: 48px;
  object-fit: contain;
}

.lab-report__hospital {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
}

.lab-report__contact,
.lab-report__subtype,
.lab-report__version {
  margin: 2px 0 0;
  font-size: 0.75rem;
  color: var(--eu-text-muted, #4b5563);
}

.lab-report__docmeta {
  text-align: right;
  flex: 0 0 auto;
}

.lab-report__doctype {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.lab-report__status {
  display: inline-block;
  margin: 4px 0 0;
  padding: 1px 8px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  border: 1px solid var(--eu-border, #d1d5db);
}

.lab-report__status--prelim {
  color: var(--eu-warning, #9a3412);
  border-color: var(--eu-warning, #9a3412);
}

.lab-report__status--final {
  color: var(--eu-success, #166534);
  border-color: var(--eu-success, #166534);
}

.lab-report__status--amended {
  color: var(--eu-warning, #9a3412);
  border-color: var(--eu-warning, #9a3412);
}

.lab-report__amend {
  margin: 8px 0 0;
  font-size: 0.85rem;
  color: var(--eu-warning, #9a3412);
}

.lab-report__test {
  margin: 8px 0 0;
  font-weight: 700;
  text-align: center;
}

.lab-report__block {
  margin: 10px 0 0;
}

.lab-report__block h2 {
  margin: 0 0 6px;
  padding-bottom: 2px;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #4b5563);
  border-bottom: 1px solid var(--eu-border, #e5e7eb);
}

.lab-report__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px 12px;
  margin: 0;
}

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

.lab-report__grid dt {
  margin: 0;
  font-size: 0.65rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #6b7280);
}

.lab-report__grid dd {
  margin: 1px 0 0;
  font-weight: 600;
}

.lab-report__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
}

.lab-report__table th,
.lab-report__table td {
  padding: 4px 6px;
  border-bottom: 1px solid var(--eu-border, #e5e7eb);
  text-align: left;
  vertical-align: top;
}

.lab-report__table thead th {
  font-size: 0.65rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #4b5563);
  background: var(--eu-surface-muted, #f8fafc);
}

.lab-report__value {
  font-weight: 700;
}

.lab-report__value--abn,
.lab-report__flag--high,
.lab-report__flag--low,
.lab-report__flag--critical,
.lab-report__flag--critical_low,
.lab-report__flag--critical_high {
  font-weight: 700;
}

.lab-report__table--sir th:nth-child(3),
.lab-report__table--sir td:nth-child(3) {
  width: 4.5rem;
  text-align: center;
}

.lab-report .lab-sir {
  display: inline-block;
  min-width: 1.35rem;
  padding: 0 3px;
  text-align: center;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.lab-report__narrative {
  white-space: pre-wrap;
  margin: 0 0 4px;
}

.lab-report__sign-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.lab-report__sign-box {
  min-height: 4.5rem;
  padding-top: 4px;
  border-top: 1px solid var(--eu-border, #d1d5db);
}

.lab-report__sign-role {
  margin: 0;
  font-size: 0.65rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #6b7280);
}

.lab-report__sign-name {
  margin: 4px 0 0;
  font-weight: 700;
}

.lab-report__sign-meta {
  margin: 1px 0 0;
  font-size: 0.72rem;
  color: var(--eu-text-muted, #4b5563);
}

.lab-report__footer {
  margin-top: 12px;
  padding-top: 6px;
  border-top: 1px solid var(--eu-text, #111827);
  font-size: 0.7rem;
  color: var(--eu-text-muted, #4b5563);
}

.lab-report__footer p {
  margin: 0 0 2px;
}

@page lab-report {
  size: A4;
  margin: 12mm 14mm;
}

@media print {
  body:has(.lab-report-preview) .lab-report {
    page: lab-report;
  }

  body:has(.lab-report-preview) .lab-report__screen,
  body:has(.lab-report-preview) .lab-report__toolbar,
  body:has(.lab-report-preview) .eu-page-header,
  body:has(.lab-report-preview) .app-sidebar,
  body:has(.lab-report-preview) .app-topbar,
  body:has(.lab-report-preview) .app-topnav,
  body:has(.lab-report-preview) .app-shell__overlay,
  body:has(.lab-report-preview) .app-flash,
  body:has(.lab-report-preview) .request-timing-badge,
  body:has(.lab-report-preview) .lab-desk__actions {
    display: none !important;
  }

  body:has(.lab-report-preview) .app-shell,
  body:has(.lab-report-preview) .app-shell__workspace,
  body:has(.lab-report-preview) .app-shell__main,
  body:has(.lab-report-preview) .eu-page,
  body:has(.lab-report-preview) .lab-report-preview {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
  }

  body:has(.lab-report-preview) .lab-report-preview__sheet,
  body:has(.lab-report-preview) .lab-report {
    width: auto;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    box-shadow: none;
    background: #fff;
  }

  .lab-report__table {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .lab-report__table thead {
    display: table-header-group;
  }

  .lab-report__sign-box,
  .lab-report__block {
    break-inside: avoid;
  }
}

.lab-report__media {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}

.lab-report__media img {
  max-width: 100%;
  height: auto;
  border: 1px solid var(--chk-border, #d1d5db);
}

.lab-label--instruction {
  border-style: dashed;
}

.lab-lj {
  width: 100%;
  max-height: 140px;
}

.lab-lj--mini {
  width: 80px;
  height: 20px;
}

.lab-lj__line {
  stroke: var(--chk-accent, #0f766e);
  stroke-width: 1.5;
}

.lab-lj__mean {
  stroke: var(--chk-text, #111827);
  stroke-width: 1;
}

.lab-lj__sd {
  stroke: var(--chk-border, #d1d5db);
  stroke-dasharray: 3 3;
}

.lab-lj__bar {
  fill: var(--chk-accent, #0f766e);
}

.lab-lj__dot {
  fill: var(--chk-accent, #0f766e);
}

.lab-lj__dot--now {
  fill: var(--chk-danger, #b91c1c);
}

.lab-history {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 12px;
}

.lab-history__item {
  margin: 0;
}

.lab-history__item figcaption {
  font-size: 0.8rem;
  margin-bottom: 4px;
}

.lab-history__chart {
  width: 100%;
  height: 88px;
}

.lab-cap {
  display: grid;
  gap: 10px;
}

.lab-ws__cancel {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px;
  margin-top: 12px;
}

.lab-ws__cancel .eu-input {
  min-width: 16rem;
}

@media (max-width: 1100px) {
  .lab-history {
    grid-template-columns: 1fr;
  }
}

.lab-outsource__mark {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.lab-outsource__mark .eu-input {
  min-width: 8rem;
  max-width: 12rem;
}

.lab-desk__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

@media (max-width: 1100px) {
  .lab-desk__cockpit,
  .lab-desk__checklist,
  .lab-desk__tests,
  .lab-desk__facts,
  .lab-desk__tat,
  .eu-form-grid--3,
  .eu-form-grid--2 {
    grid-template-columns: 1fr;
  }

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

  .lab-queue .eu-search-compact__grid--adaptive,
  .lab-queue__bulk {
    flex-wrap: wrap;
  }
}

.lab-desk__draw {
  display: inline-flex;
  align-items: center;
  margin: 0 0 8px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-accent, #0f766e);
  background: var(--eu-accent-soft, #ccfbf1);
}

.lab-desk__prep {
  margin: 0 0 8px;
  font-size: 0.8125rem;
}

.lab-draw-list__head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  font-size: 0.8125rem;
}

.lab-draw-list__order {
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--eu-border, #e5e7eb);
}

.lab-draw-list__order h2 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: baseline;
  margin: 0 0 8px;
  font-size: 1rem;
}

.lab-draw-list__draws {
  margin: 0;
  padding-left: 20px;
}

.lab-draw-list__draws li {
  margin: 0 0 8px;
}

.lab-draw-list__draws li > span,
.lab-draw-list__draws li > strong {
  margin-right: 8px;
}

@media print {
  body:has(#lab-draw-sheet) .lab-label-preview__screen,
  body:has(#lab-draw-sheet) .app-shell__overlay,
  body:has(#lab-draw-sheet) .eu-page-header,
  body:has(#lab-draw-sheet) .lab-desk__actions {
    display: none !important;
  }

  .lab-draw-list__order {
    break-inside: avoid;
  }
}

.lab-ops .eu-kpi-summary {
  margin: 0;
}

.lab-ops__cqi {
  margin: 0 0 12px;
}

.lab-ops__cqi-title {
  margin: 0 0 6px;
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--eu-muted, #64748b);
}

.lab-ops__cqi-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.lab-ops__cqi-link {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-decoration: none;
  padding: 8px 10px;
}

.lab-ws__notes {
  flex: 1 1 100%;
}

.lab-desk__notify {
  margin: 0 0 12px;
}

.lab-desk__notify-form {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: flex-end;
}

.lab-desk__notify-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  flex: 1 1 420px;
}

.lab-ws__more--amend,
.lab-ws__more--repeat {
  margin-top: 8px;
}

.lab-ops__attention {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.lab-ops__attention-link {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-decoration: none;
  padding: 8px 10px;
}

.lab-ops__attention-link strong {
  font-size: 1.25rem;
}

.lab-ops__split {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 12px;
}

.lab-ops__ranges {
  display: flex;
  gap: 6px;
  margin-bottom: 8px;
}

.lab-ops__chart {
  max-height: 110px;
}

.lab-ops__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 6px;
}

.lab-ops__swatch--pending {
  color: var(--eu-warning, #b45309);
}

.lab-ops__swatch--overdue {
  color: var(--eu-danger, #b91c1c);
}

.lab-lj__bar--pending {
  fill: var(--eu-warning, #d97706);
}

.lab-lj__bar--overdue {
  fill: var(--eu-danger, #b91c1c);
}

@media (max-width: 1100px) {
  .lab-ops__attention,
  .lab-ops__cqi-list,
  .lab-ops__split,
  .lab-desk__notify-grid {
    grid-template-columns: 1fr;
  }
}
/* Labour Room — Phase C partogram / CTG charts (token colours only) */
.labour-chart-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
  margin: 0 0 16px;
}

.labour-chart-card {
  padding: 12px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
  min-width: 0;
}

.labour-chart-card__title {
  margin: 0 0 4px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--eu-text-secondary, #6b7280);
  text-transform: uppercase;
}

.labour-chart-card__value {
  margin: 0 0 8px;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--eu-text, #111827);
}

.labour-chart-card__value span {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--eu-text-secondary, #6b7280);
}

.labour-series-chart {
  width: 100%;
  height: 72px;
  display: block;
}

.labour-series-chart__area {
  fill: currentColor;
  opacity: 0.12;
}

.labour-series-chart__line {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.labour-series-chart__dot {
  fill: currentColor;
}

.labour-series-chart--dilation { color: var(--eu-accent, #0f766e); }
.labour-series-chart--station { color: var(--eu-info, #2563eb); }
.labour-series-chart--contraction { color: var(--eu-warning, #d97706); }
.labour-series-chart--oxytocin { color: var(--eu-purple, #7c3aed); }
.labour-series-chart--maternal { color: var(--eu-danger, #dc2626); }
.labour-series-chart--foetal { color: var(--eu-success, #059669); }
.labour-series-chart--default { color: var(--eu-accent, #0f766e); }
.labour-series-chart--bp { color: var(--eu-danger, #dc2626); }
.labour-series-chart--weight { color: var(--eu-info, #2563eb); }
.labour-series-chart--girth { color: var(--eu-warning, #d97706); }
.labour-series-chart--fhr { color: var(--eu-success, #059669); }
.labour-series-chart--nst { color: var(--eu-purple, #7c3aed); }

.labour-partogram-graph {
  margin: 0 0 16px;
  padding: 12px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
}

.labour-partogram-graph--empty {
  min-height: 72px;
  display: flex;
  align-items: center;
}

.labour-partogram-graph__header {
  margin-bottom: 8px;
}

.labour-partogram-graph__title {
  margin: 0 0 2px;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--eu-text, #111827);
}

.labour-partogram-graph__svg {
  width: 100%;
  height: auto;
  display: block;
  max-height: 460px;
}

.labour-partogram-graph__grid {
  stroke: var(--eu-border-subtle, #e5e7eb);
  stroke-width: 1;
  stroke-dasharray: 2 3;
}

.labour-partogram-graph__tick,
.labour-partogram-graph__axis,
.labour-partogram-graph__lane-title {
  fill: var(--eu-text-secondary, #6b7280);
  font-size: 10px;
}

.labour-partogram-graph__lane-title {
  font-weight: 700;
}

.labour-partogram-graph__lane {
  fill: var(--eu-surface-muted, #f8fafc);
  stroke: var(--eu-border-subtle, #e5e7eb);
  stroke-width: 1;
}

.labour-partogram-graph__mid {
  stroke: var(--eu-border-subtle, #e5e7eb);
  stroke-width: 1;
  stroke-dasharray: 4 4;
}

.labour-partogram-graph__line {
  fill: none;
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.labour-partogram-graph__line--dilation,
.labour-partogram-graph__dot--dilation { stroke: var(--eu-accent, #0f766e); fill: var(--eu-accent, #0f766e); color: var(--eu-accent, #0f766e); }
.labour-partogram-graph__line--foetal,
.labour-partogram-graph__dot--foetal { stroke: var(--eu-success, #059669); fill: var(--eu-success, #059669); }
.labour-partogram-graph__line--contraction,
.labour-partogram-graph__dot--contraction { stroke: var(--eu-warning, #d97706); fill: var(--eu-warning, #d97706); }
.labour-partogram-graph__line--maternal,
.labour-partogram-graph__dot--maternal { stroke: var(--eu-danger, #dc2626); fill: var(--eu-danger, #dc2626); }

.labour-partogram-graph__line--dilation { fill: none; }
.labour-partogram-graph__line--foetal { fill: none; }
.labour-partogram-graph__line--contraction { fill: none; }
.labour-partogram-graph__line--maternal { fill: none; }

.labour-partogram-graph__guide {
  fill: none;
  stroke-width: 2;
  stroke-dasharray: 6 4;
}

.labour-partogram-graph__guide--alert { stroke: var(--eu-warning, #d97706); }
.labour-partogram-graph__guide--action { stroke: var(--eu-danger, #dc2626); }

.labour-partogram-graph__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #6b7280);
}

.labour-partogram-graph__legend li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.labour-partogram-graph__swatch {
  width: 14px;
  height: 3px;
  border-radius: 2px;
  background: currentColor;
}

.labour-partogram-graph__swatch--dilation { background: var(--eu-accent, #0f766e); }
.labour-partogram-graph__swatch--foetal { background: var(--eu-success, #059669); }
.labour-partogram-graph__swatch--contraction { background: var(--eu-warning, #d97706); }
.labour-partogram-graph__swatch--maternal { background: var(--eu-danger, #dc2626); }
.labour-partogram-graph__swatch--alert {
  background: transparent;
  border-top: 2px dashed var(--eu-warning, #d97706);
  height: 0;
}
.labour-partogram-graph__swatch--action {
  background: transparent;
  border-top: 2px dashed var(--eu-danger, #dc2626);
  height: 0;
}

.labour-partogram-strips__title {
  margin: 0 0 8px;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--eu-text-secondary, #6b7280);
}

.labour-ctg-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.labour-ctg-card {
  padding: 12px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface-muted, #f8fafc);
}

.labour-ctg-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 8px;
}

.labour-ctg-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.labour-recent-table {
  margin-top: 12px;
}

.labour-neonate-count-form {
  margin-bottom: 12px;
}

.labour-neonate-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
  margin: 12px 0;
}

.labour-neonate-card {
  padding: 12px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface-muted, #f8fafc);
}

.labour-neonate-card__title {
  margin: 0 0 8px;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--eu-accent, #0f766e);
}

.labour-birth-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
}

.labour-birth-list__item {
  padding: 8px 10px;
  border-left: 3px solid var(--eu-success, #059669);
  background: var(--eu-surface-muted, #f8fafc);
  border-radius: 0 var(--eu-radius-sm, 6px) var(--eu-radius-sm, 6px) 0;
}

.labour-birth-list__item strong {
  display: block;
  margin-bottom: 2px;
}

.labour-order-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
  margin: 12px 0 16px;
}

.labour-order-card {
  padding: 12px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
  border-top: 3px solid var(--eu-warning, #d97706);
}

.labour-order-card__title {
  margin: 0 0 4px;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--eu-text, #111827);
}

.labour-order-card__actions {
  margin-top: 8px;
}

.labour-broadcast {
  margin-top: 8px;
}

.labour-checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
}

.labour-waiting-config {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.labour-waiting-config__title {
  margin: 0 0 4px;
  font-size: 0.875rem;
  font-weight: 700;
}

.labour-waiting-board {
  margin: 0;
  min-height: 100vh;
  padding: 24px;
  background: linear-gradient(160deg, var(--eu-surface-muted, #0f172a), #111827 55%, #0b1220);
  color: #f8fafc;
  font-family: var(--eu-font-sans, system-ui, sans-serif);
}

.labour-waiting-board__header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-end;
  margin-bottom: 24px;
}

.labour-waiting-board__eyebrow {
  margin: 0 0 4px;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #94a3b8;
}

.labour-waiting-board__title {
  margin: 0;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
}

.labour-waiting-board__clock,
.labour-waiting-board__privacy,
.labour-waiting-board__empty {
  color: #94a3b8;
}

.labour-waiting-board__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}

.labour-waiting-card {
  padding: 16px;
  border-radius: 12px;
  background: rgba(15, 23, 42, 0.85);
  border: 1px solid rgba(148, 163, 184, 0.25);
}

.labour-waiting-card__token {
  margin: 0 0 12px;
  font-size: 1.75rem;
  color: var(--eu-accent, #2dd4bf);
}

.labour-waiting-card__chips {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.labour-waiting-chip {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(30, 41, 59, 0.9);
}

.labour-waiting-chip__label {
  color: #94a3b8;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.labour-waiting-chip__value {
  font-size: 1rem;
}

.labour-waiting-chip--stage .labour-waiting-chip__value { color: #38bdf8; }
.labour-waiting-chip--progress_chip .labour-waiting-chip__value { color: #fbbf24; }
.labour-waiting-chip--dilation_band .labour-waiting-chip__value { color: #f472b6; }
.labour-waiting-board__privacy {
  margin-top: 24px;
  font-size: 0.8125rem;
}
/* Enterprise Level Loader Component Styles */

#page-loader {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 9999 !important;
  background: linear-gradient(135deg, rgba(15, 23, 42, 0.85) 0%, rgba(30, 41, 59, 0.85) 100%) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  visibility: visible !important;
  opacity: 1 !important;
  transition: opacity 0.3s ease !important;
}

#page-loader[style*="display: none"] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Spinner Animation - Professional */
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@keyframes spin-reverse {
  from {
    transform: rotate(360deg);
  }
  to {
    transform: rotate(0deg);
  }
}

.loader-spinner {
  position: relative;
  width: 80px;
  height: 80px;
  filter: drop-shadow(0 0 20px rgba(59, 130, 246, 0.3));
}

.loader-spinner > div {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 3px solid transparent;
  border-radius: 50%;
  animation: spin 2s linear infinite;
}

.loader-spinner > div:first-child {
  border-top-color: #3b82f6;
  border-right-color: #60a5fa;
  border-bottom-color: transparent;
}

.loader-spinner > div:last-child {
  top: 12px;
  left: 12px;
  right: 12px;
  bottom: 12px;
  border-left-color: #93c5fd;
  border-bottom-color: #60a5fa;
  animation: spin-reverse 1.5s linear infinite;
}

.loader-text {
  color: white;
  font-weight: 600;
  font-size: 18px;
  margin: 0;
  text-align: center;
}

.loader-subtext {
  color: rgba(255, 255, 255, 0.8);
  font-size: 14px;
  margin-top: 8px;
  margin-bottom: 0;
  text-align: center;
}
/* Enterprise Master Data Management */
.mdm-table-wrap {
  overflow-x: auto;
}

.mdm-table th,
.mdm-table td {
  white-space: nowrap;
  font-size: 0.875rem;
}

.mdm-row--required td:first-child {
  font-weight: 600;
}

.mdm-row--missing {
  background: color-mix(in srgb, var(--eu-danger, #b91c1c) 8%, transparent);
}

.mdm-scope,
.mdm-class {
  display: inline-block;
  padding: 0.125rem 0.5rem;
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.mdm-scope--global {
  background: color-mix(in srgb, var(--eu-accent, #0f766e) 15%, transparent);
  color: var(--eu-accent, #0f766e);
}

.mdm-scope--organization {
  background: color-mix(in srgb, #2563eb 15%, transparent);
  color: #1d4ed8;
}

.mdm-scope--hospital {
  background: color-mix(in srgb, #9333ea 12%, transparent);
  color: #7e22ce;
}

.mdm-scope--department {
  background: color-mix(in srgb, #ea580c 12%, transparent);
  color: #c2410c;
}

.mdm-scope--station {
  background: color-mix(in srgb, #0891b2 12%, transparent);
  color: #0e7490;
}

.mdm-class--global { background: #ecfdf5; color: #047857; }
.mdm-class--organization { background: #eff6ff; color: #1d4ed8; }
.mdm-class--hospital { background: #f5f3ff; color: #6d28d9; }
.mdm-class--department { background: #fff7ed; color: #c2410c; }
.mdm-class--station { background: #ecfeff; color: #0e7490; }
.mdm-class--user { background: #fdf2f8; color: #be185d; }
.mdm-class--clinical { background: #f0fdf4; color: #15803d; }
.mdm-class--financial { background: #fffbeb; color: #b45309; }
.mdm-class--government { background: #f8fafc; color: #334155; }
.mdm-class--integration { background: #eef2ff; color: #4338ca; }

.mdm-status {
  font-weight: 600;
  font-size: 0.8125rem;
}

.mdm-status--complete { color: var(--eu-success, #15803d); }
.mdm-status--in_progress { color: var(--eu-warning, #b45309); }
.mdm-status--not_started { color: var(--eu-muted, #64748b); }

.mdm-row-actions {
  display: flex;
  gap: 0.35rem;
  align-items: center;
  flex-wrap: wrap;
}

.mdm-meta-strip,
.eu-meta-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin: 1rem 0;
  font-size: 0.8125rem;
  color: var(--eu-muted, #64748b);
  align-items: center;
}

.mdm-view-toggle {
  display: inline-flex;
  gap: 0.35rem;
  margin-right: 0.75rem;
}

.mdm-health {
  margin: 1.25rem 0 1.75rem;
}

.mdm-health__title {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  font-weight: 700;
}

.mdm-health__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: 0.75rem;
}

.mdm-health__card {
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 0.5rem;
  padding: 0.75rem;
  background: var(--eu-surface, #fff);
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.mdm-health__card--warn {
  border-color: color-mix(in srgb, var(--eu-warning, #b45309) 35%, transparent);
}

.mdm-health__label {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--eu-muted, #64748b);
  font-weight: 600;
}

.mdm-health__value {
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.1;
}

.mdm-health__meta {
  font-size: 0.75rem;
  color: var(--eu-muted, #64748b);
}

.mdm-capabilities {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 0.75rem;
  font-size: 0.8125rem;
  color: var(--eu-muted, #64748b);
}

.mdm-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 1rem;
  margin: 1rem 0;
}

.mdm-dep-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.mdm-dep-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
}

.mdm-cap-list {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.mdm-cap-list > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font-size: 0.875rem;
}

.mdm-cap-list dt {
  color: var(--eu-muted, #64748b);
}

.mdm-cap-list dd {
  margin: 0;
  font-weight: 600;
}

.mdm-master-link {
  color: inherit;
  text-decoration: none;
  font-weight: 600;
}

.mdm-master-link:hover {
  text-decoration: underline;
}

.mdm-dep-hint {
  color: var(--eu-muted, #64748b);
  margin-left: 0.25rem;
}

.mdm-help {
  font-size: 0.875rem;
  color: var(--eu-muted, #64748b);
  margin-bottom: 0.75rem;
}

.mdm-import-fields {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

.mdm-error-report {
  background: color-mix(in srgb, var(--eu-danger, #b91c1c) 8%, transparent);
  border-radius: 0.5rem;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
}

.mdm-error-report h4 {
  margin: 0 0 0.5rem;
}

.mdm-empty {
  color: var(--eu-muted, #64748b);
  margin: 0;
}

.mdm-skeleton {
  padding: 1rem;
  color: var(--eu-muted, #64748b);
  font-size: 0.875rem;
  min-height: 3rem;
}

.mdm-skeleton--summary {
  min-height: 6rem;
  border: 1px dashed var(--eu-border, #e2e8f0);
  border-radius: 0.5rem;
  margin: 1rem 0;
}

.mdm-skeleton--section {
  min-height: 4rem;
}

.mdm-async-frame {
  display: block;
}

.mdm-section-pager {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.75rem;
}

.mdm-section-pager__meta {
  font-size: 0.8125rem;
  color: var(--eu-muted, #64748b);
}

.mdm-search-form {
  margin-bottom: 0.75rem;
}

.mdm-search-form__row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.mdm-search-form__row .eu-input {
  max-width: 16rem;
}

.mdm-search-meta {
  font-size: 0.8125rem;
  color: var(--eu-muted, #64748b);
  margin: 0 0 0.5rem;
}

.mdm-pagination {
  margin-top: 0.75rem;
}
/* ================================================================
   SRN HIMS — Mobile Responsive Stylesheet
   Covers: tables, grids, forms, dashboards, cards, charts
   Breakpoints: xs(<480) sm(<640) md(<768) lg(<1024) xl(<1280)
   ================================================================ */

/* ── Global mobile base ──────────────────────────────────────── */
html { -webkit-text-size-adjust: 100%; }

img, canvas, video { max-width: 100%; height: auto; }

/* ── Touch targets — all buttons & links min 44px tall ──────── */
@media (max-width: 767px) {
  .btn, button, a.btn, input[type="submit"], input[type="button"] {
    min-height: 44px !important;
    touch-action: manipulation;
  }
  input, select, textarea {
    font-size: 16px !important; /* Prevents iOS zoom on focus */
    min-height: 44px;
  }
}

/* ── App shell main padding ─────────────────────────────────── */
@media (max-width: 767px) {
  .app-shell__main {
    padding: 12px !important;
  }
  .mx-auto.max-w-7xl { padding-left: 12px !important; padding-right: 12px !important; }
  .mx-auto.max-w-5xl { padding-left: 12px !important; padding-right: 12px !important; }
  .mx-auto.max-w-4xl { padding-left: 12px !important; padding-right: 12px !important; }
  .mx-auto.max-w-3xl { padding-left: 12px !important; padding-right: 12px !important; }
  .mx-auto.max-w-2xl { padding-left: 12px !important; padding-right: 12px !important; }
}

/* ── Page header: stacks on mobile ──────────────────────────── */
@media (max-width: 767px) {
  [data-page-header], .page-header-row {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
  }
}

/* ── KPI / stat grids collapse ─────────────────────────────── */
@media (max-width: 639px) {
  .grid.grid-cols-4,
  .grid.lg\:grid-cols-4,
  .grid.md\:grid-cols-4 {
    grid-template-columns: 1fr 1fr !important;
  }
  .grid.grid-cols-5,
  .grid.lg\:grid-cols-5 {
    grid-template-columns: 1fr 1fr !important;
  }
  .grid.grid-cols-3,
  .grid.lg\:grid-cols-3,
  .grid.md\:grid-cols-3 {
    grid-template-columns: 1fr !important;
  }
  .grid.grid-cols-2,
  .grid.lg\:grid-cols-2,
  .grid.md\:grid-cols-2 {
    grid-template-columns: 1fr !important;
  }
}
@media (min-width: 640px) and (max-width: 1023px) {
  .grid.lg\:grid-cols-4,
  .grid.grid-cols-4 {
    grid-template-columns: 1fr 1fr !important;
  }
  .grid.lg\:grid-cols-5,
  .grid.grid-cols-5 {
    grid-template-columns: 1fr 1fr 1fr !important;
  }
  .grid.lg\:grid-cols-3,
  .grid.grid-cols-3 {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* ── Tailwind responsive grid helpers ─────────────────────── */
@media (max-width: 639px) {
  .sm\:grid-cols-2 { grid-template-columns: 1fr !important; }
}
@media (max-width: 767px) {
  .md\:grid-cols-2 { grid-template-columns: 1fr !important; }
  .md\:grid-cols-3 { grid-template-columns: 1fr !important; }
  .md\:grid-cols-4 { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 1023px) {
  .lg\:grid-cols-2 { grid-template-columns: 1fr !important; }
  .lg\:grid-cols-3 { grid-template-columns: 1fr 1fr !important; }
}

/* ── Tables: horizontally scrollable on mobile ───────────────── */
.overflow-x-auto {
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 767px) {
  /* Wrap tables in scroll containers */
  table {
    min-width: 600px;
  }
  .table-responsive-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 0 0 14px 14px;
  }
  /* Compact table cells on mobile */
  th, td {
    padding: 8px 10px !important;
    font-size: 12px !important;
  }
  /* Hide less important columns on mobile */
  .hide-mobile { display: none !important; }
  .show-mobile { display: table-cell !important; }
}

/* Wrap every overflow-x-auto container's table */
.overflow-x-auto table {
  min-width: 580px;
}

/* ── Forms: full-width on mobile ──────────────────────────── */
@media (max-width: 767px) {
  .grid.grid-cols-2.gap-4,
  .grid.grid-cols-3.gap-4,
  .grid.md\:grid-cols-2,
  .grid.md\:grid-cols-3 {
    grid-template-columns: 1fr !important;
  }
  .col-span-2 { grid-column: span 1 !important; }
  /* Filter bars */
  form.flex.gap-2,
  form.flex.flex-wrap,
  .filter-bar,
  .flex.gap-3.mb-4,
  .flex.gap-2.mb-4,
  .flex.gap-4.mb-4 {
    flex-wrap: wrap !important;
    gap: 8px !important;
  }
  form.flex input, form.flex select, form.flex .flex-1 {
    min-width: 120px;
    flex: 1 1 120px;
  }
}

/* ── Cards: remove side margins, full width ──────────────── */
@media (max-width: 767px) {
  .card, .rounded-2xl, .rounded-xl {
    border-radius: 12px !important;
  }
  .card-body, .p-5, .p-6 {
    padding: 14px !important;
  }
  .card-header, .border-b.px-5, .border-b.px-6 {
    padding: 10px 14px !important;
  }
}

/* ── KPI gradient cards ────────────────────────────────────── */
@media (max-width: 479px) {
  /* Make gradient KPI cards slightly shorter on small phones */
  .bg-gradient-to-br.p-5 {
    padding: 14px !important;
  }
  .text-3xl { font-size: 1.5rem !important; }
  .text-4xl { font-size: 1.75rem !important; }
}

/* ── Topbar: responsive search ──────────────────────────────── */
@media (max-width: 767px) {
  .app-topbar {
    min-height: 56px !important;
    padding: 8px 12px !important;
  }
  .app-search {
    max-width: none !important;
  }
  .app-search__input {
    height: 40px !important;
    font-size: 14px !important;
  }
  /* Hide topbar hospital chip on small screens */
  .app-topbar .app-dropdown--hospital {
    display: none;
  }
}

/* ── Page header: horizontal → vertical ─────────────────────── */
@media (max-width: 767px) {
  /* Standard page_header partial */
  .flex.items-center.justify-between {
    flex-wrap: wrap;
    gap: 10px;
  }
  .flex.items-center.justify-between > div:last-child {
    width: 100%;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
  }
  .flex.items-center.justify-between > div:last-child .btn {
    flex: 1;
    text-align: center;
    justify-content: center;
  }
}

/* ── Charts responsive height ────────────────────────────── */
@media (max-width: 767px) {
  canvas {
    max-height: 220px !important;
  }
  /* Doughnut/pie: allow natural size */
  canvas[width="220"], canvas[width="200"], canvas[width="190"] {
    max-width: 180px !important;
    max-height: 180px !important;
  }
}

/* ── BI Dashboard: filter bar ──────────────────────────────── */
@media (max-width: 767px) {
  /* BI dashboards: stack filter bar */
  .filter-bar,
  form.flex.items-end.gap-2,
  form.flex.flex-wrap.gap-2 {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  form.flex.items-end.gap-2 input[type=date],
  form.flex.items-end.gap-2 select {
    width: 100% !important;
  }
  form.flex.items-end.gap-2 button {
    width: 100%;
  }
  /* Quick links: 2 cols on phone */
  .grid.grid-cols-5 {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* ── Alert strips ─────────────────────────────────────────── */
@media (max-width: 767px) {
  .flex.flex-wrap.gap-3 .alert-pill,
  .flex.flex-wrap.gap-3 [class*="alert-"],
  .flex.gap-3 a[class*="rounded-xl"] {
    font-size: 11px !important;
    padding: 5px 10px !important;
  }
}

/* ── Nurse chart vitals grid ───────────────────────────────── */
@media (max-width: 767px) {
  .vital-grid,
  .grid.grid-cols-6 {
    grid-template-columns: 1fr 1fr 1fr !important;
    gap: 8px !important;
  }
}
@media (max-width: 479px) {
  .vital-grid,
  .grid.grid-cols-6 {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* ── Doctor rounds / nurse form ──────────────────────────── */
@media (max-width: 767px) {
  .grid.grid-cols-2.gap-4 { grid-template-columns: 1fr !important; }
}

/* ── Ward occupancy cards ──────────────────────────────────── */
@media (max-width: 767px) {
  .grid.gap-3.md\:grid-cols-2.lg\:grid-cols-3,
  .grid.gap-3 {
    grid-template-columns: 1fr !important;
  }
}

/* ── Package cards ─────────────────────────────────────────── */
@media (max-width: 1023px) {
  .grid.gap-4.lg\:grid-cols-3,
  .grid.gap-5.lg\:grid-cols-3 {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 639px) {
  .grid.gap-4.lg\:grid-cols-3,
  .grid.gap-5.lg\:grid-cols-3,
  .grid.gap-4.md\:grid-cols-3 {
    grid-template-columns: 1fr !important;
  }
}

/* ── IPD Admission show page ──────────────────────────────── */
@media (max-width: 767px) {
  .grid.grid-cols-3 { grid-template-columns: 1fr 1fr !important; }
  .grid.grid-cols-4 { grid-template-columns: 1fr 1fr !important; }
}

/* ── Modal / drawer overlays ──────────────────────────────── */
@media (max-width: 767px) {
  .modal-content, [role="dialog"] .bg-white {
    width: 95vw !important;
    max-width: 95vw !important;
    padding: 16px !important;
    border-radius: 16px !important;
  }
}

/* ── Sidebar navigation ───────────────────────────────────── */
@media (max-width: 1023px) {
  /* Hamburger is always visible on tablet/mobile */
  .app-icon-button[data-action*="toggleSidebar"] {
    display: inline-flex !important;
  }
  /* Mobile sidebar slide in */
  .app-sidebar {
    position: fixed !important;
    z-index: 50 !important;
    transition: transform 0.25s cubic-bezier(0.4,0,0.2,1) !important;
  }
}

/* ── Pagination ─────────────────────────────────────────── */
@media (max-width: 767px) {
  /* Kaminari pagination */
  nav.pagination, .pagination {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 4px !important;
    justify-content: center !important;
  }
  .pagination a, .pagination span,
  nav[aria-label="Pagination"] a,
  nav[aria-label="Pagination"] span {
    min-width: 36px !important;
    height: 36px !important;
    font-size: 12px !important;
    padding: 0 10px !important;
  }
}

/* ── Discharge clearance list ──────────────────────────── */
@media (max-width: 767px) {
  .card.border-l-4 .card-body.flex-row {
    flex-direction: column !important;
    gap: 10px;
  }
  .card.border-l-4 .card-body form.flex {
    width: 100%;
  }
}

/* ── Staff attendance table ───────────────────────────── */
@media (max-width: 767px) {
  .grid.grid-cols-6 { grid-template-columns: 1fr 1fr 1fr !important; }
}

/* ── Finance vouchers / GRN items table ──────────────── */
@media (max-width: 767px) {
  .grid.grid-cols-5.gap-2 { grid-template-columns: 1fr 1fr !important; }
  .grid.grid-cols-7.gap-2 { grid-template-columns: 1fr 1fr 1fr !important; }
}

/* ── Tab navigation ──────────────────────────────────── */
@media (max-width: 767px) {
  .flex.gap-2.mb-4 {
    overflow-x: auto;
    flex-wrap: nowrap !important;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
    /* hide scrollbar */
    scrollbar-width: none;
  }
  .flex.gap-2.mb-4::-webkit-scrollbar { display: none; }
  .flex.gap-2.mb-4 .btn {
    white-space: nowrap;
    flex-shrink: 0;
  }
}

/* ── Quick nav / action buttons ────────────────────────── */
@media (max-width: 639px) {
  .quick-links, .grid.grid-cols-5.gap-3 {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* ── BI chart rows ────────────────────────────────────── */
@media (max-width: 1023px) {
  /* 2:1 chart row → stacked */
  .charts-row.cols-3-1,
  .grid.gap-5.lg\:grid-cols-3 {
    grid-template-columns: 1fr !important;
  }
  .lg\:col-span-2 { grid-column: span 1 !important; }
}

/* ── Revenue / OPD / IPD BI dashboards ────────────────── */
@media (max-width: 767px) {
  /* Filter bar in BI pages */
  .flex.flex-col.gap-4.lg\:flex-row {
    flex-direction: column !important;
  }
  .flex.flex-wrap.gap-2.items-end {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .flex.flex-wrap.gap-2.items-end input,
  .flex.flex-wrap.gap-2.items-end select,
  .flex.flex-wrap.gap-2.items-end button {
    width: 100% !important;
  }
}

/* ── Top services bar list ─────────────────────────────── */
@media (max-width: 767px) {
  .overflow-y-auto.max-h-64 { max-height: none !important; }
}

/* ── Approval / billing action buttons in tables ────────── */
@media (max-width: 767px) {
  td .flex.gap-1, td .flex.gap-2 {
    flex-wrap: wrap;
  }
  td .btn-xs {
    font-size: 10px !important;
    padding: 3px 7px !important;
  }
}

/* ── DaisyUI table overrides ─────────────────────────── */
@media (max-width: 767px) {
  .table { font-size: 12px !important; }
  .table th, .table td { padding: 8px 10px !important; }
  .table.table-sm th, .table.table-sm td { padding: 6px 8px !important; }
}

/* ── Typography scale on mobile ─────────────────────── */
@media (max-width: 767px) {
  h1, .text-2xl { font-size: 1.25rem !important; }
  h2, .text-xl { font-size: 1.1rem !important; }
  .text-lg { font-size: 1rem !important; }
}

/* ── Line clamp utility ─────────────────────────────── */
.line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

/* ── Safe area padding (iPhone notch) ───────────────── */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
  .app-sidebar__bottom {
    padding-bottom: calc(8px + env(safe-area-inset-bottom));
  }
}

/* ── Print styles ────────────────────────────────────── */
@media print {
  .app-sidebar, .app-topbar, .app-topbar__right,
  .filter-bar, form.flex, .btn, .pagination { display: none !important; }
  .app-shell { display: block !important; }
  .app-shell__main { padding: 0 !important; }
  table { font-size: 10pt; }
  .card { border: 1px solid #ccc !important; box-shadow: none !important; }
}

/* ── Floating mobile bottom action bar ────────────────── */
.mobile-action-bar {
  display: none;
}
@media (max-width: 767px) {
  .mobile-action-bar {
    display: flex;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: white;
    border-top: 1px solid #e2e8f0;
    padding: 10px 16px;
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
    gap: 8px;
    z-index: 50;
    box-shadow: 0 -4px 20px rgba(0,0,0,.08);
  }
  .mobile-action-bar .btn {
    flex: 1;
    justify-content: center;
  }
  /* Push content above the action bar */
  .has-mobile-action-bar .app-shell__main {
    padding-bottom: 80px !important;
  }
}

/* ── Responsive flex helpers ────────────────────────── */
@media (max-width: 767px) {
  .flex-col-mobile { flex-direction: column !important; }
  .full-width-mobile { width: 100% !important; }
  .hide-on-mobile { display: none !important; }
  .show-on-mobile { display: block !important; }
}

/* ── Specific HIMS view fixes ────────────────────────── */

/* Billings index */
@media (max-width: 767px) {
  .billings-filter-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px;
  }
  .billings-filter-row input { grid-column: span 2; }
}

/* Consultations EMR */
@media (max-width: 767px) {
  .emr-grid-2 { grid-template-columns: 1fr !important; }
  .emr-grid-3 { grid-template-columns: 1fr !important; }
}

/* Prescription items */
@media (max-width: 767px) {
  .rx-item-row {
    grid-template-columns: 1fr 1fr !important;
    gap: 6px;
  }
}

/* Lab investigation table */
@media (max-width: 767px) {
  .lab-result-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Queue token display */
@media (max-width: 767px) {
  .queue-token-display {
    font-size: 3rem !important;
  }
}

/* Bed occupancy map */
@media (max-width: 767px) {
  .bed-map-grid {
    grid-template-columns: repeat(4, 1fr) !important;
  }
}
@media (max-width: 479px) {
  .bed-map-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}
/* Compact patient context — photo + 3-column meta grid (MRD forms & show pages) */
.mrd-patient-context {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0.75rem 1rem;
  padding: 0.55rem 0.75rem;
  background: var(--eu-surface-raised, #fff);
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
}

.mrd-patient-context__identity {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}

.mrd-patient-context__name {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--eu-text, #0f172a);
  line-height: 1.25;
  max-width: 12rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mrd-patient-context__meta {
  min-width: 0;
}

.mrd-patient-context__meta .eu-meta-strip,
.mrd-patient-context__meta .eu-card.eu-meta-strip {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.mrd-patient-context__meta .eu-card__body {
  padding: 0;
}

.mrd-patient-context__meta .eu-meta-strip__grid {
  display: grid;
  gap: 0.35rem 0.75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
}

.mrd-patient-context__meta .eu-meta-strip__label {
  margin-bottom: 0.1rem;
  font-size: 0.625rem;
}

.mrd-patient-context__meta .eu-meta-strip__value {
  font-size: 0.8125rem;
  line-height: 1.25;
}

@media (max-width: 900px) {
  .mrd-patient-context {
    grid-template-columns: 1fr;
  }

  .mrd-patient-context__meta .eu-meta-strip__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .mrd-patient-context__meta .eu-meta-strip__grid {
    grid-template-columns: 1fr;
  }
}

.mrd-shell {
  display: grid;
  gap: 16px;
}

.mrd-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}

.mrd-chip-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 8px;
}

.mrd-chip {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 10px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  text-decoration: none;
  color: inherit;
}

.mrd-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.mrd-actions--toolbar {
  margin-bottom: 8px;
}

.mrd-filters.eu-form-grid {
  align-items: end;
}

.mrd-filters .eu-field {
  min-width: 0;
}

.mrd-filters__actions {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

.mrd-list {
  margin: 0;
  padding-left: 1rem;
  font-size: 0.8125rem;
}

.mrd-empty {
  margin: 0;
  color: var(--eu-text-secondary, #64748b);
  font-size: 0.875rem;
}

.mrd-inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 12px;
}

.mrd-assign-form {
  margin: 0;
  min-width: 140px;
}

.mrd-assign-form .eu-input--sm {
  font-size: 0.75rem;
  padding: 4px 6px;
  min-height: 28px;
}

.eu-check {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.8125rem;
  margin: 0 0 8px;
}

.eu-static {
  margin: 0;
  font-size: 0.875rem;
  color: var(--eu-text-primary, #0f172a);
}

.mrd-report-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}

.mrd-report-card {
  display: block;
  padding: 12px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  text-decoration: none;
  color: inherit;
}

.mrd-report-card strong {
  display: block;
  margin-bottom: 4px;
}

.mrd-patient-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.mrd-patient-id {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
}

.mrd-patient-id__meta {
  flex: 1;
  min-width: 180px;
}

.mrd-patient-id__name {
  margin: 0 0 4px;
  font-weight: 600;
}

.mrd-patient-id__uhid,
.mrd-patient-id__cda {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--eu-text-secondary, #64748b);
}

.mrd-patient-id__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.mrd-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.mrd-toolbar--form-actions {
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  padding-top: 12px;
  margin-top: 4px;
  border-top: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.mrd-medical-board-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

.mrd-medical-board-form > .eu-card,
.mrd-medical-board-form > .mrd-toolbar {
  width: 100%;
}

.mrd-medical-board-form input[type="hidden"] {
  display: none;
}

.mrd-medical-board-form .eu-form-grid .eu-field--full,
.mrd-medical-board-form .eu-form-grid .eu-field.eu-field--full {
  grid-column: 1 / -1;
}

.mrd-medical-board-form .eu-form-grid .eu-field--two-thirds {
  grid-column: span 2;
}

.mrd-hint {
  margin: 0 0 10px;
  font-size: 0.8125rem;
  color: var(--eu-text-secondary, #64748b);
}

.mrd-result-body {
  font-size: 0.875rem;
  line-height: 1.5;
}

/* MRD Reports hub */
.mrd-reports-hub .mrd-report-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 10px;
}

.mrd-report-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px;
  min-height: 96px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  text-decoration: none;
  color: inherit;
  background: var(--eu-surface-raised, #fff);
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.mrd-report-card:hover {
  border-color: var(--chk-accent, #0f766e);
  box-shadow: 0 2px 8px rgb(15 118 110 / 0.12);
}

.mrd-report-card__icon { font-size: 1.1rem; }
.mrd-report-card__title { font-size: 0.8125rem; line-height: 1.3; }
.mrd-report-card__desc {
  font-size: 0.6875rem;
  color: var(--eu-text-secondary, #64748b);
  line-height: 1.35;
  flex: 1;
}
.mrd-report-card__count,
.mrd-report-card__badge {
  align-self: flex-start;
  font-size: 0.6875rem;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--eu-surface-muted, #f1f5f9);
  color: var(--eu-text-secondary, #64748b);
}

.mrd-reports-charts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}

.mrd-reports-pie {
  --mrd-pie-1: var(--eu-primary, #0A4B78);
  --mrd-pie-2: var(--eu-success, #198754);
  --mrd-pie-3: var(--eu-warning, #FFC107);
  --mrd-pie-4: var(--eu-danger, #DC3545);
  --mrd-pie-5: var(--eu-info, #0DCAF0);
  --mrd-pie-6: var(--eu-primary-hover, #08395C);
  --mrd-pie-7: color-mix(in srgb, var(--eu-primary, #0A4B78) 55%, var(--eu-success, #198754));
  --mrd-pie-8: color-mix(in srgb, var(--eu-danger, #DC3545) 55%, var(--eu-warning, #FFC107));
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  padding: 10px;
  background: var(--eu-surface-raised, #fff);
}

.mrd-reports-pie__header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 8px;
}

.mrd-reports-pie__body {
  display: flex;
  align-items: center;
  gap: 12px;
}

.mrd-reports-pie__disk {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  flex-shrink: 0;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.mrd-reports-pie__legend {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #475569);
}

.mrd-reports-pie__legend li {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 4px;
}

.mrd-reports-pie__swatch {
  width: 10px;
  height: 10px;
  border-radius: 2px;
  flex-shrink: 0;
}

.mrd-reports-chart {
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  padding: 10px;
  background: var(--eu-surface-raised, #fff);
}

.mrd-reports-chart__header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 8px;
  gap: 8px;
}

.mrd-reports-chart__title {
  font-size: 0.75rem;
  font-weight: 600;
  color: inherit;
  text-decoration: none;
}

.mrd-reports-chart__total {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--chk-accent, #0f766e);
}

.mrd-reports-chart__bars {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  height: 72px;
  padding-top: 4px;
}

.mrd-reports-chart__legend {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
  font-size: 0.6875rem;
  color: var(--eu-text-secondary, #64748b);
}

.mrd-reports-chart__y-axis-label::before {
  content: "↑ ";
}

.mrd-reports-chart__x-axis-label::before {
  content: "→ ";
}

.mrd-reports-chart__bar-wrap {
  flex: 1;
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 2px;
  cursor: help;
}

.mrd-reports-chart__bar-label {
  font-size: 0.5625rem;
  line-height: 1.1;
  color: var(--eu-text-secondary, #64748b);
  text-align: center;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mrd-reports-ward-link {
  color: inherit;
  font-weight: 600;
  text-decoration: none;
}

.mrd-reports-ward-link:hover {
  color: var(--chk-accent, #0f766e);
  text-decoration: underline;
}

.mrd-reports-chart__bar {
  width: 100%;
  background: var(--chk-accent, #0f766e);
  border-radius: 2px 2px 0 0;
  min-height: 4px;
}

.mrd-reports-chart--secondary .mrd-reports-chart__bar {
  background: var(--eu-primary, #2563eb);
}

.mrd-reports-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.mrd-reports-print-header { display: none; }

.mrd-reports-print__header { margin-bottom: 12px; }
.mrd-reports-print__kpi,
.mrd-reports-print__table {
  width: 100%;
  border-collapse: collapse;
  margin: 8px 0;
  font-size: 10px;
}
.mrd-reports-print__kpi td,
.mrd-reports-print__table th,
.mrd-reports-print__table td {
  border: 1px solid #ccc;
  padding: 4px 6px;
}
.mrd-reports-print__footer {
  margin-top: 12px;
  font-size: 9px;
  color: #666;
}

@media print {
  .mrd-nav,
  .no-print,
  .mrd-reports-toolbar,
  .mrd-filters {
    display: none !important;
  }

  .mrd-reports-print-header.print-only {
    display: block !important;
  }

  .mrd-shell {
    gap: 8px;
  }

  .eu-card {
    box-shadow: none;
    border: 1px solid #ddd;
  }
}

.print-only { display: none; }

.mrd-afmsf-heading {
  margin: 0 0 8px;
  font-size: 0.9375rem;
  font-weight: 700;
}

.mrd-afmsf-scroll {
  overflow-x: auto;
  max-width: 100%;
}

.mrd-afmsf-table {
  min-width: 960px;
  font-size: 0.75rem;
}

.mrd-afmsf-table--form40 {
  min-width: 2200px;
}

.mrd-afmsf-table th {
  white-space: nowrap;
  vertical-align: bottom;
}

.mrd-filters--afmsf {
  margin-bottom: 12px;
}

.mrd-afmsf-print .mrd-afmsf-table {
  font-size: 9px;
}

.mrd-sick-leave-print-body__title {
  text-align: center;
  font-size: 1rem;
  margin: 0 0 8px;
  text-decoration: underline;
}

.mrd-sick-leave-print-body__subtitle {
  text-align: center;
  font-size: 0.8125rem;
  margin: 0 0 12px;
}

.mrd-sick-leave-print-body__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
}

.mrd-sick-leave-print-body__table th,
.mrd-sick-leave-print-body__table td {
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  padding: 6px 8px;
  vertical-align: top;
}

.mrd-sick-leave-form {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-md, 16px);
}

.mrd-sick-leave-form__divider {
  border: 0;
  border-top: 1px solid var(--eu-border-subtle, #e5e7eb);
  margin: 12px 0;
}

.mrd-sick-leave-narrative {
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 0.875rem;
  line-height: 1.5;
}

.mrd-sick-leave-narrative__line {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.mrd-sick-leave-narrative__line--stack {
  display: block;
}

.mrd-sick-leave-narrative__subhead {
  margin: 4px 0 0;
  font-size: 0.875rem;
  font-weight: 600;
}

.mrd-sick-leave-narrative__section {
  margin-left: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mrd-sick-leave-narrative__inline {
  width: auto;
  min-width: 120px;
  display: inline-block;
}

.mrd-sick-leave-narrative__inline--sm {
  min-width: 72px;
  max-width: 96px;
}

.mrd-sick-leave-narrative__inline--lg {
  min-width: 220px;
  flex: 1 1 220px;
}

.mrd-sick-leave-narrative__inline--xl {
  min-width: 320px;
  flex: 1 1 320px;
}

.mrd-sick-leave-narrative__address {
  width: 100%;
  max-width: 640px;
}

.mrd-sick-leave-narrative__diagnoses {
  margin: 0;
  padding: 0 0 0 16px;
  color: var(--eu-text-secondary, #4b5563);
  font-size: 0.8125rem;
}

.mrd-sick-leave-narrative__empty {
  margin: 0;
  color: var(--eu-text-muted, #9ca3af);
  font-size: 0.8125rem;
}

.mrd-sick-leave-form__signatures {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

@media (max-width: 768px) {
  .mrd-sick-leave-form__signatures {
    grid-template-columns: 1fr;
  }
}

.mrd-cancer-registry-form {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-md, 16px);
}

.mrd-cancer-checkbox-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 4px;
}

.mrd-cancer-checkbox-group__item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
}

.mrd-cancer-registry-print__title {
  text-align: center;
  font-size: 1rem;
  margin: 0 0 8px;
}

.mrd-cancer-registry-print__subtitle {
  text-align: center;
  font-size: 0.8125rem;
  margin: 0 0 16px;
  color: var(--eu-text-secondary, #4b5563);
}

.mrd-cancer-registry-print__section {
  margin-bottom: 16px;
}

.mrd-cancer-registry-print__section h3 {
  font-size: 0.875rem;
  margin: 0 0 8px;
}

.mrd-cancer-registry-print__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
}

.mrd-cancer-registry-print__table th,
.mrd-cancer-registry-print__table td {
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  padding: 6px 8px;
  vertical-align: top;
}

.mrd-cancer-registry-print__table th {
  width: 35%;
  font-weight: 600;
  text-align: left;
}

.mrd-afmsf15-print__table th {
  width: 35%;
  font-weight: 600;
  text-align: left;
}

.mrd-afmsf15-form__section {
  margin-bottom: var(--eu-space-md, 16px);
}

.mrd-afmsf15-form__section .eu-field {
  min-width: 0;
}

.mrd-afmsf15-form .mrd-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  margin-top: 16px;
}

.mrd-certificate-show .mrd-toolbar--actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
}

.mrd-certificate-body {
  margin-top: 4px;
}

.mrd-board-rail {
  margin-bottom: 12px;
}

.mrd-board-rail__list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 8px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface-muted, #f8fafc);
}

.mrd-board-rail__item {
  flex: 0 1 auto;
}

.mrd-board-rail__link,
.mrd-board-rail__label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  background: var(--eu-surface-raised, #fff);
  color: var(--eu-text-secondary, #64748b);
  max-width: 100%;
}

.mrd-board-rail__step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  min-width: 1.125rem;
  height: 1.125rem;
  padding: 0 4px;
  border-radius: 999px;
  font-size: 0.625rem;
  font-weight: 700;
  line-height: 1;
  background: var(--eu-surface-muted, #f1f5f9);
  color: var(--eu-text-secondary, #64748b);
}

.mrd-board-rail__step-label {
  line-height: 1.2;
  white-space: nowrap;
}

.mrd-board-rail--dense .mrd-board-rail__list {
  gap: 4px;
  padding: 6px;
}

.mrd-board-rail--dense .mrd-board-rail__link,
.mrd-board-rail--dense .mrd-board-rail__label {
  font-size: 0.68rem;
  padding: 3px 8px;
  gap: 5px;
}

.mrd-board-rail__item--current .mrd-board-rail__step-num {
  background: color-mix(in srgb, var(--chk-accent, #0f766e) 18%, white);
  color: var(--chk-accent, #0f766e);
}

.mrd-board-rail__item--done .mrd-board-rail__step-num {
  background: #dcfce7;
  color: #047857;
}

.mrd-board-rail__item--current .mrd-board-rail__link,
.mrd-board-rail__item--current .mrd-board-rail__label {
  border-color: var(--chk-accent, #0f766e);
  color: var(--chk-accent, #0f766e);
  background: color-mix(in srgb, var(--chk-accent, #0f766e) 8%, white);
}

.mrd-board-rail__item--done .mrd-board-rail__link {
  border-color: #86efac;
  color: #047857;
}

.mrd-dl-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 8px 16px;
  margin: 0;
}

.mrd-dl-grid__item {
  margin: 0;
}

.mrd-dl-grid__item--full {
  grid-column: 1 / -1;
}

.mrd-dl-grid dt {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--eu-text-secondary, #64748b);
  margin: 0 0 2px;
}

.mrd-dl-grid dd {
  margin: 0;
  font-size: 0.8125rem;
}

.eu-radio-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding-top: 4px;
}

.eu-radio {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8125rem;
}

.mrd-medical-board-print .mrd-print-sheet__title {
  text-align: center;
  font-size: 1rem;
  margin: 0 0 8px;
  text-decoration: underline;
}

.mrd-medical-board-print .mrd-print-sheet__subtitle {
  text-align: center;
  font-size: 0.8125rem;
  margin: 0 0 12px;
}

.mrd-board-field-group + .mrd-board-field-group {
  margin-top: 0;
}

.mrd-board-table .eu-input--sm {
  font-size: 0.75rem;
  padding: 4px 6px;
}

.mrd-board-yes-no .eu-input {
  margin-top: 6px;
}

.mrd-board-table th[scope="row"] {
  font-weight: 600;
  white-space: nowrap;
  width: 2rem;
}

/* ── Sectioned statutory forms (left vertical stepper) ─────────────────────── */

.mrd-sectioned-form {
  display: grid;
  grid-template-columns: minmax(200px, 240px) minmax(0, 1fr);
  gap: var(--eu-space-md, 16px);
  align-items: start;
  margin-top: var(--eu-space-sm, 12px);
}

.mrd-sectioned-form--server-steps {
  margin-top: var(--eu-space-sm, 12px);
}

.mrd-sectioned-form__main {
  min-width: 0;
}

.mrd-sectioned-form__panel[hidden] {
  display: none !important;
}

.mrd-vertical-stepper {
  position: sticky;
  top: 12px;
}

.mrd-vertical-stepper__list {
  list-style: none;
  margin: 0;
  padding: 8px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface-muted, #f8fafc);
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: calc(100vh - 160px);
  overflow-y: auto;
}

.mrd-vertical-stepper__item {
  margin: 0;
}

.mrd-vertical-stepper__link,
.mrd-vertical-stepper__btn,
.mrd-vertical-stepper__label-wrap {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
  padding: 8px 10px;
  border-radius: var(--eu-radius-sm, 6px);
  border: 1px solid transparent;
  background: transparent;
  color: var(--eu-text-secondary, #64748b);
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.mrd-vertical-stepper__btn {
  font-family: inherit;
}

.mrd-vertical-stepper__link:hover,
.mrd-vertical-stepper__btn:hover {
  background: var(--eu-surface-raised, #fff);
  border-color: var(--eu-border-subtle, #e5e7eb);
}

.mrd-vertical-stepper__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  min-width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  font-size: 0.625rem;
  font-weight: 700;
  background: var(--eu-surface-muted, #f1f5f9);
  color: var(--eu-text-secondary, #64748b);
}

.mrd-vertical-stepper__label {
  flex: 1;
  min-width: 0;
}

.mrd-vertical-stepper__item--current .mrd-vertical-stepper__link,
.mrd-vertical-stepper__item--current .mrd-vertical-stepper__btn,
.mrd-vertical-stepper__item--current .mrd-vertical-stepper__label-wrap {
  background: color-mix(in srgb, var(--chk-accent, #0f766e) 8%, white);
  border-color: var(--chk-accent, #0f766e);
  color: var(--chk-accent, #0f766e);
}

.mrd-vertical-stepper__item--current .mrd-vertical-stepper__num {
  background: color-mix(in srgb, var(--chk-accent, #0f766e) 18%, white);
  color: var(--chk-accent, #0f766e);
}

.mrd-vertical-stepper__item--done .mrd-vertical-stepper__link,
.mrd-vertical-stepper__item--done .mrd-vertical-stepper__label-wrap {
  border-color: #86efac;
  color: #047857;
}

.mrd-vertical-stepper__item--done .mrd-vertical-stepper__num {
  background: #dcfce7;
  color: #047857;
}

.mrd-afmsf15-form__errors {
  margin-bottom: var(--eu-space-md, 16px);
}

.mrd-form-errors {
  margin: 8px 0 0;
  padding-left: 18px;
  color: var(--eu-status-danger, #b91c1c);
  font-size: 0.875rem;
}

@media (max-width: 960px) {
  .mrd-sectioned-form {
    grid-template-columns: 1fr;
  }

  .mrd-vertical-stepper {
    position: static;
  }

  .mrd-vertical-stepper__list {
    flex-direction: row;
    flex-wrap: wrap;
    max-height: none;
  }

  .mrd-vertical-stepper__link,
  .mrd-vertical-stepper__btn,
  .mrd-vertical-stepper__label-wrap {
    width: auto;
    flex: 1 1 auto;
  }
}

/* Diagnosis coding — clinical-style terminology typeahead */
.mrd-coding-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 12px;
}

.mrd-coding-pair__title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  font-size: 0.8125rem;
  font-weight: 600;
}

.mrd-coding-typeahead__row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 8px;
  align-items: center;
}

.mrd-coding-typeahead__system {
  min-width: 110px;
}

.mrd-coding-typeahead__system-badge {
  white-space: nowrap;
}

.mrd-coding-selected {
  margin: 6px 0 0;
  font-weight: 600;
  color: var(--eu-text-primary, #0f172a);
}

.mrd-coding-chip-list,
.mrd-coding-hints {
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.mrd-coding-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface-raised, #fff);
  font-size: 0.8125rem;
}

.mrd-coding-chip--hint {
  background: var(--eu-surface-muted, #f8fafc);
}

.mrd-coding-chip__badge {
  flex-shrink: 0;
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--eu-text-secondary, #64748b);
  text-transform: uppercase;
}

.mrd-coding-chip__code {
  font-weight: 700;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  color: var(--eu-text-primary, #0f172a);
}

.mrd-coding-chip__display {
  flex: 1;
  min-width: 0;
  color: var(--eu-text-secondary, #475569);
}

.mrd-coding-drg {
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface-muted, #f8fafc);
}

.mrd-coding-drg__line {
  margin: 0;
  font-size: 0.875rem;
}

.clw-typeahead {
  position: relative;
  z-index: 1;
}

.clw-typeahead:has(.clw-typeahead__menu:not([hidden])) {
  z-index: 40;
}

.clw-typeahead__menu {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 4px);
  max-height: 240px;
  overflow: auto;
  background: var(--eu-surface-raised, #fff);
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-md, 8px);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  z-index: 50;
}

.clw-typeahead__item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  font-size: 0.8125rem;
}

.clw-typeahead__item small {
  color: var(--eu-text-secondary, #64748b);
  font-size: 0.6875rem;
}

.clw-typeahead__item.is-active,
.clw-typeahead__item:hover {
  background: var(--eu-surface-muted, #f1f5f9);
}

.clw-typeahead__empty {
  padding: 10px;
  font-size: 0.8125rem;
  color: var(--eu-text-secondary, #64748b);
}

.clw-typeahead__selected {
  margin: 4px 0 0;
}

@media (max-width: 900px) {
  .mrd-coding-pair {
    grid-template-columns: 1fr;
  }

  .mrd-coding-typeahead__row {
    grid-template-columns: 1fr;
  }
}


/* =============================================================================
   Emergency + Newborn Registration
   Extracted from inline styles — uses PEUF CSS variables (var(--eu-*)).
   ============================================================================= */

/* Sample-data banner (non-production) */
.reg-sample-banner {
  margin-bottom: 16px;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  border-left: 4px solid var(--eu-info);
}

.reg-sample-banner__hint {
  margin: 4px 0 0;
  font-size: 13px;
  color: var(--eu-text-muted);
}

.reg-sample-banner__loaded {
  margin: 4px 0 0;
  font-size: 13px;
  color: var(--eu-success);
}

/* Success flash strip */
.reg-success-banner {
  margin-bottom: 16px;
  padding: 12px 16px;
  border-left: 4px solid var(--eu-success, #16a34a);
}

.reg-success-hint {
  margin: 0 0 12px;
  color: var(--eu-text-soft);
}

/* Action rows */
.reg-actions-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.reg-actions-row--footer {
  margin-top: 16px;
}

.eu-registration-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

/* Mother search */
.reg-mother-search__hint {
  margin-bottom: 12px;
  color: var(--eu-text-muted);
  font-size: 13px;
}

.reg-mother-search__change {
  margin-top: 12px;
  font-size: 13px;
  color: var(--eu-text-muted);
}

.reg-mother-search__results {
  display: none;
  margin-top: 8px;
  padding: 0;
  max-height: 240px;
  overflow: auto;
}

.reg-mother-search__results.is-open {
  display: block;
}

.reg-mother-search__results[hidden] {
  display: none !important;
}

.reg-mother-search__result {
  display: block;
  width: 100%;
  text-align: left;
  border-radius: 0;
  border-bottom: 1px solid var(--eu-border);
}

.reg-mother-search__empty {
  padding: 12px;
  font-size: 13px;
  color: var(--eu-text-muted);
}

.reg-mother-search__picked {
  margin-top: 8px;
  font-size: 13px;
  color: var(--eu-success);
}

/* Shared service-number grid (entitled / registration forms) */
.eu-service-number-grid {
  display: grid;
  grid-template-columns: 120px 1fr 120px;
  gap: 16px;
  align-items: end;
}
/* NICU Phase A/B — dense case pulse + section panels */
.nicu-case__pulse {
  gap: 12px;
}

.nicu-case__next {
  margin-top: 12px;
}

.nicu-case__form {
  margin-top: 12px;
}

.nicu-case__charts {
  margin-bottom: 12px;
}

.nicu-case__recent {
  margin-top: 16px;
}

.nicu-case__recent .eu-list {
  margin: 8px 0 0;
  padding-left: 1.1rem;
}

.nicu-case__recent li {
  margin-bottom: 8px;
}

.nicu-acuity--critical,
.nicu-acuity--high {
  background: var(--eu-danger-bg, #fef2f2);
  color: var(--eu-danger, #dc2626);
}

.nicu-acuity--medium {
  background: var(--eu-warning-bg, #fffbeb);
  color: var(--eu-warning, #d97706);
}

.nicu-acuity--routine {
  background: var(--eu-surface-muted, #f8fafc);
  color: var(--eu-text, #0f172a);
}
/* Library list only. Designer chrome lives in eu/_form_builder.css. */

.nal-select {
  appearance: auto;
  min-width: 8rem;
}

.nal-versions {
  margin: 0;
  padding-left: 1.2rem;
}
/* Nursing desks — PEUF tokens, dense ward workstation */

.nur-desk {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.nur-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.nur-bars {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nur-bars li {
  display: grid;
  grid-template-columns: minmax(6rem, 10rem) 1fr auto;
  gap: 8px;
  align-items: center;
  margin-bottom: 6px;
  font-size: 0.8125rem;
}

.nur-bars__track {
  height: 8px;
  background: var(--eu-border, #e5e7eb);
  border-radius: 99px;
  overflow: hidden;
}

.nur-bars__fill {
  display: block;
  height: 100%;
  background: var(--chk-accent, var(--eu-accent, #0f766e));
}

.nur-bars__fill--0 { width: 0%; }
.nur-bars__fill--10 { width: 10%; }
.nur-bars__fill--20 { width: 20%; }
.nur-bars__fill--30 { width: 30%; }
.nur-bars__fill--40 { width: 40%; }
.nur-bars__fill--50 { width: 50%; }
.nur-bars__fill--60 { width: 60%; }
.nur-bars__fill--70 { width: 70%; }
.nur-bars__fill--80 { width: 80%; }
.nur-bars__fill--90 { width: 90%; }
.nur-bars__fill--100 { width: 100%; }

.nur-spark {
  width: 100%;
  height: 64px;
  color: var(--chk-accent, var(--eu-accent, #0f766e));
}

.nur-handover-general {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.nur-handover-general--compact {
  margin: 0 0 8px;
  padding: 8px 10px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
}

.nur-handover-general__block {
  min-width: 0;
}

.nur-handover-general__label {
  margin: 0 0 2px;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eu-text-secondary, #6b7280);
}

.nur-handover-general__critical {
  margin: 0;
  color: var(--eu-danger, #b91c1c);
  font-weight: 600;
  white-space: pre-wrap;
}

.nur-handover-general .eu-field {
  margin: 0;
}

.nur-handover-general .eu-label {
  margin-bottom: 2px;
  font-size: 0.6875rem;
}

.nur-handover-present-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.nur-handover-present-actions {
  display: flex;
  justify-content: flex-end;
  padding-top: 2px;
}

.nur-lane {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nur-lane li + li {
  border-top: 1px solid var(--eu-border, #e5e7eb);
}

.nur-lane__link {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 6px 0;
  text-decoration: none;
  color: inherit;
  font-size: 0.8125rem;
}

.nur-lane__more {
  margin: 8px 0 0;
}

.nur-patient-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 8px;
}

.nur-diet {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 8px 0 0;
  padding: 6px 12px;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 8px;
  font-size: 0.8125rem;
}

.nur-diet--npo {
  border-color: var(--eu-danger, #b91c1c);
}

.nur-diet__label {
  color: var(--eu-muted, #64748b);
  font-size: 0.75rem;
}

.nur-meal-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 8px 0;
}

.nur-meal-filters .eu-input {
  max-width: 16rem;
}

.nur-meal-actions,
.nur-meal-refuse {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.nur-meal-refuse .eu-input {
  min-width: 8rem;
  max-width: 12rem;
}

.nur-meal-slots {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nur-meal-slot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  border-top: 1px solid var(--eu-border, #e5e7eb);
}

.nur-meal-slot:first-child {
  border-top: 0;
  padding-top: 0;
}

.nur-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 8px;
}

.nur-form-grid__full {
  grid-column: 1 / -1;
}

.nur-bed-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  list-style: none;
  margin: 0 0 4px;
  padding: 0;
  font-size: 0.75rem;
  color: var(--eu-muted, #64748b);
}

.nur-bed-legend li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.nur-bed-legend__icon .adt-bed-tile__svg,
.nur-bed-list__icon .adt-bed-tile__svg {
  width: 40px;
  height: 26px;
}

.nur-bed-group {
  margin: 0 0 12px;
}

.nur-bed-group__title {
  margin: 0 0 8px;
  font-size: 0.8125rem;
  font-weight: 650;
}

.nur-beds {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
  gap: 8px;
}

.nur-bed.adt-bed-tile {
  min-height: 0;
  text-decoration: none;
  color: inherit;
}

.nur-bed.adt-bed-tile--occupied {
  border-color: #dc2626;
}

.nur-bed__who {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  min-width: 0;
  font-size: 0.75rem;
  text-align: left;
}

.nur-bed__who strong,
.nur-bed__empty {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nur-bed__meta {
  font-size: 0.68rem;
  color: var(--eu-muted, #64748b);
}

.nur-bed__diet {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.68rem;
  color: var(--eu-text, #0f172a);
}

.nur-bed__diet--npo {
  color: var(--eu-danger, #b91c1c);
  font-weight: 600;
}

.nur-bed-list__bed {
  display: flex;
  align-items: center;
  gap: 8px;
}

.nur-bed__who--row {
  width: auto;
}

.nur-mar {
  display: grid;
  grid-template-columns: minmax(16rem, 1.2fr) 1.4fr;
  gap: 12px;
  padding: 8px 0;
  border-top: 1px solid var(--eu-border, #e5e7eb);
  font-size: 0.8125rem;
}

.nur-mar__meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px 12px;
  margin: 6px 0 0;
}

.nur-mar__meta div {
  min-width: 0;
}

.nur-mar__meta dt {
  font-size: 0.6875rem;
  color: var(--eu-muted, #64748b);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.nur-mar__meta dd {
  margin: 0;
  font-weight: 500;
}

.nur-check {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-right: 8px;
  font-size: 0.75rem;
}

.nur-row--overdue td {
  color: var(--eu-danger, #b91c1c);
}

@media (max-width: 900px) {
  .nur-form-grid,
  .nur-mar,
  .nur-mar__meta {
    grid-template-columns: 1fr;
  }
}

.nur-shift-patients {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nur-shift-patients li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-top: 1px solid var(--eu-border);
}

.nur-shift-patients li > div {
  flex: 1;
}

.nur-desk--shift .eu-page {
  padding-top: 8px;
  padding-bottom: 12px;
  gap: 12px;
}

.nur-desk--shift .eu-workflow-page__body {
  gap: 12px;
  width: 100%;
  max-width: none;
}

.nur-shift-context {
  position: sticky;
  top: 0;
  z-index: 6;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  padding: 8px 10px;
  margin-bottom: 12px;
  background: var(--eu-surface);
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 6px);
}

.nur-shift-context__id {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 12rem;
  font-size: 0.8125rem;
}

.nur-shift-context__links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.nur-shift-layout {
  display: grid;
  grid-template-columns: 232px minmax(0, 1fr);
  gap: 16px 20px;
  align-items: start;
  width: 100%;
}

.nur-shift-work {
  min-width: 0;
  width: 100%;
}

.nur-shift-form {
  width: 100%;
}

.nur-shift-steps {
  position: sticky;
  top: 4.5rem;
  width: 232px;
}

.nur-shift-steps__count {
  margin: 0 0 8px;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--eu-text-muted);
}

.nur-shift-steps ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.nur-shift-steps__item a {
  display: grid;
  grid-template-columns: 1.4rem 1rem minmax(0, 1fr);
  gap: 6px;
  align-items: center;
  padding: 6px 8px;
  border-radius: var(--eu-radius-sm, 6px);
  text-decoration: none;
  color: inherit;
  font-size: 0.8125rem;
  border: 1px solid transparent;
}

.nur-shift-steps__num {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: var(--eu-text-muted);
}

.nur-shift-steps__item--done a { color: var(--eu-success); }
.nur-shift-steps__item--in_progress a { color: var(--eu-warning); font-weight: 600; }
.nur-shift-steps__item--attention a { color: var(--eu-danger, #b91c1c); font-weight: 600; }
.nur-shift-steps__item--idle a { color: var(--eu-text-muted); }
.nur-shift-steps__item.is-current a {
  font-weight: 700;
  color: var(--chk-accent, var(--eu-accent));
  background: color-mix(in srgb, var(--chk-accent, var(--eu-accent)) 10%, var(--eu-surface));
  border-color: color-mix(in srgb, var(--chk-accent, var(--eu-accent)) 35%, var(--eu-border));
}

.nur-shift-abcd {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface);
}

.nur-shift-block__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.nur-shift-block__fields {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}

.nur-shift-field--compact {
  flex: 0 1 10rem;
  margin: 0;
}

.nur-shift-alerts {
  list-style: none;
  margin: 0 0 10px;
  padding: 8px 10px;
  border-radius: var(--eu-radius-sm, 6px);
  border: 1px solid color-mix(in srgb, var(--eu-danger, #b91c1c) 35%, var(--eu-border));
  color: var(--eu-danger, #b91c1c);
  font-size: 0.8125rem;
  font-weight: 600;
}

.nur-shift-latest {
  margin-bottom: 12px;
  padding: 10px 12px;
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 6px);
}

.nur-shift-latest__title {
  margin: 0 0 4px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted);
}

.nur-shift-focused__add summary {
  cursor: pointer;
  font-weight: 600;
  margin: 8px 0;
}

.nur-shift-focused__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 8px 8px 0;
}

body:has(.nur-desk--shift) .shell-flash-stack {
  top: auto;
  bottom: 76px;
  right: 20px;
}

body:has(.nur-desk--shift) .shell-flash {
  min-width: 160px;
  max-width: 240px;
  padding: 8px 10px;
  border-radius: 8px;
  box-shadow: none;
}

body:has(.nur-desk--shift) .shell-flash p {
  font-size: 0.75rem;
  margin: 0;
}

body:has(.nur-desk--shift) .shell-flash__icon {
  width: 18px;
  height: 18px;
  font-size: 10px;
}

.nur-shift-work__title {
  margin: 0 0 10px;
  font-size: 1.05rem;
}

.nur-shift-facts {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
  gap: 8px 12px;
  margin: 0 0 12px;
}

.nur-shift-facts dt { font-size: 0.75rem; color: var(--eu-text-muted); }
.nur-shift-facts dd { margin: 0; font-weight: 600; }

.nur-shift-vitals {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}

.nur-shift-block {
  margin-bottom: 14px;
}

.nur-shift-block h3 {
  margin: 0 0 8px;
  font-size: 0.9rem;
}

.nur-shift-footer {
  position: sticky;
  bottom: 0;
  z-index: 5;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  background: var(--eu-surface);
  border-top: 1px solid var(--eu-border);
}

.nur-shift-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.nur-shift-review {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nur-shift-review li { padding: 4px 0; }

.nur-shift-checks,
.nur-shift-packs {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
  gap: 6px 12px;
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
}

.nur-shift-status--attention { color: var(--eu-danger, #b91c1c); font-weight: 600; }

@media (max-width: 900px) {
  .nur-shift-layout { grid-template-columns: 1fr; }
  .nur-shift-steps { position: static; }
}

.nur-shift-status--done { color: var(--eu-success); font-weight: 600; }
.nur-shift-status--in_progress { color: var(--eu-warning); font-weight: 600; }
.nur-shift-status--idle { color: var(--eu-text-muted); }

.nur-shift-cards {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 12px;
}

.nur-shift-card {
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 6px);
  padding: 10px 12px;
  background: var(--eu-surface);
}

.nur-shift-card header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.nur-shift-card h3 {
  margin: 0;
  font-size: 0.9375rem;
}

.nur-shift-card--done { box-shadow: inset 3px 0 0 var(--eu-success); }
.nur-shift-card--in_progress { box-shadow: inset 3px 0 0 var(--eu-warning); }
.nur-shift-card.is-open { box-shadow: inset 3px 0 0 var(--chk-accent, var(--eu-accent, #0f766e)); }

.nur-shift-radios {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}

.nur-shift-number {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.nur-desk--indent {
  padding-top: 16px;
}

.nur-desk--indent .eu-workspace-nav {
  position: relative;
  z-index: 2;
  margin-bottom: 8px;
}

.nur-desk--indent > .eu-page {
  gap: 8px;
  padding: 12px 0 8px;
  overflow: visible;
}

.nur-desk--indent .eu-page-header,
.nur-desk--indent .eu-page-header__row,
.nur-desk--indent .eu-page-header__info {
  overflow: visible;
  min-width: 0;
  max-width: 100%;
  margin-bottom: 0;
  padding-top: 4px;
}

.nur-desk--indent .eu-page-title {
  display: block;
  overflow: visible;
  white-space: normal;
  text-overflow: unset;
  word-break: normal;
  line-height: 1.4;
  padding-block: 0.15em;
}

.nur-desk--indent .eu-page-subtitle {
  margin-top: 2px;
  line-height: 1.35;
}

.nur-desk--indent .eu-workflow-page__body {
  gap: 8px;
}

.nur-desk--indent .eu-form-grid {
  gap: 8px 12px;
}

.nur-desk--indent .eu-card {
  padding: 0;
  overflow: visible;
}

.nur-desk--indent .eu-card--compact .eu-card__header {
  padding: 8px 10px;
}

.nur-desk--indent .eu-card--compact .eu-card__body {
  padding: 8px 10px;
}

.nur-desk--indent .eu-action-bar {
  margin-top: 4px;
}

.nur-indent-table-wrap {
  overflow: visible;
}

.nur-indent-table {
  table-layout: fixed;
  width: 100%;
}

.nur-indent-table th,
.nur-indent-table td {
  padding: 6px 8px;
  font-size: 0.8125rem;
  vertical-align: middle;
}

.nur-indent-table th:first-child,
.nur-indent-table td:first-child {
  width: 58%;
  min-width: 20rem;
}

.nur-indent-table th:nth-child(2),
.nur-indent-table td:nth-child(2),
.nur-indent-table th:nth-child(3),
.nur-indent-table td:nth-child(3),
.nur-indent-table th:nth-child(5),
.nur-indent-table td:nth-child(5),
.nur-indent-table th:nth-child(6),
.nur-indent-table td:nth-child(6) {
  width: 8%;
  white-space: nowrap;
}

.nur-indent-table th:nth-child(4),
.nur-indent-table td:nth-child(4) {
  width: 10%;
}

.nur-indent-table td:first-child .eu-input {
  min-width: 100%;
  max-width: none;
  width: 100%;
}

.nur-indent-table [data-ward-indent-form-target="qty"] {
  min-width: 4.5rem;
  max-width: 6rem;
}

.nur-indent-stock {
  white-space: nowrap;
  color: var(--eu-text-muted, #64748b);
}

.nur-indent-static {
  display: block;
  min-height: 34px;
  padding: 7px 10px;
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface-muted, #f8fafc);
  font-size: 0.8125rem;
  line-height: 1.3;
}

.nur-indent-table--show th:first-child,
.nur-indent-table--show td:first-child {
  width: 32%;
  min-width: 12rem;
}

.nur-indent-typeahead {
  position: relative;
}

.nur-indent-typeahead__menu {
  position: absolute;
  z-index: 20;
  left: 0;
  right: 0;
  min-width: 26rem;
  top: 100%;
  max-height: 280px;
  overflow: auto;
  background: var(--eu-card, #fff);
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 6px);
  box-shadow: var(--eu-shadow, 0 8px 24px rgba(15, 23, 42, 0.12));
}

.nur-indent-typeahead__item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.nur-indent-typeahead__name {
  font-weight: 600;
}

.nur-indent-typeahead__item small {
  color: var(--eu-text-muted, #6b7280);
  font-size: 0.75rem;
}

.nur-indent-typeahead__item:hover,
.nur-indent-typeahead__item:focus {
  background: var(--eu-secondary, #f3f4f6);
}

.nur-indent-typeahead__empty {
  margin: 0;
  padding: 8px 10px;
  color: var(--eu-text-light, #6b7280);
}

.nur-indent-flags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 4px;
}

.nur-indent-docs {
  margin: 0;
  padding-left: 1.1rem;
}

.nur-desk--consume .eu-pharm-order-workbench {
  margin-top: 8px;
}

.nur-consume-form {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 7.5rem;
}

.nur-consume-form .eu-btn {
  width: 100%;
  white-space: normal;
}

/* Meal sheet in-app print preview */
.nur-meal-print-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.nur-meal-print-toolbar__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.nur-meal-print-preview {
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius, 8px);
  padding: 16px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.nur-meal-print-preview__header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid var(--eu-border, #d1d5db);
  padding-bottom: 10px;
  margin-bottom: 10px;
}

.nur-meal-print-preview__hospital {
  margin: 0;
  font-size: 0.8rem;
  color: var(--eu-muted, #64748b);
}

.nur-meal-print-preview__title {
  margin: 2px 0 4px;
  font-size: 1.15rem;
}

.nur-meal-print-preview__meta,
.nur-meal-print-preview__summary,
.nur-meal-print-preview__date {
  margin: 0;
  font-size: 0.85rem;
  color: var(--eu-muted, #475569);
}

.nur-meal-print-ward {
  margin-top: 16px;
  padding-top: 8px;
  border-top: 2px solid var(--eu-text, #0f172a);
}

.nur-meal-print-ward:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.nur-meal-print-ward__title,
.nur-meal-print-group h4 {
  margin: 0 0 6px;
}

.nur-meal-print-ward__title span,
.nur-meal-print-group h4 span {
  font-weight: 400;
  font-size: 0.8rem;
  color: var(--eu-muted, #64748b);
  margin-left: 6px;
}

.nur-meal-print-group {
  margin-top: 10px;
}

.nur-meal-print-table td .eu-help {
  display: block;
}

.nur-meal-print-sign {
  min-width: 4.5rem;
  height: 1.4rem;
}

.nur-meal-print-signoff {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  margin-top: 20px;
}

.nur-meal-print-line {
  border-bottom: 1px solid var(--eu-text, #334155);
  min-height: 1.25rem;
  margin-top: 18px;
}

@media print {
  .no-print,
  .nur-meal-print-toolbar,
  .shell-sidebar,
  .shell-topbar,
  .shell-header,
  .app-sidebar,
  .eu-workspace-nav,
  .eu-page-header,
  nav,
  .timing-badge,
  .shell-flash-stack {
    display: none !important;
  }

  body {
    background: #fff !important;
  }

  .nur-desk--meal-print,
  .nur-meal-print-preview,
  .eu-workflow-page__body,
  .eu-page {
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
  }

  .nur-meal-print-ward {
    page-break-before: always;
  }

  .nur-meal-print-ward:first-of-type {
    page-break-before: auto;
  }

  .nur-meal-print-group {
    page-break-inside: avoid;
  }

  .eu-badge {
    border: 1px solid #999 !important;
    color: #000 !important;
    background: transparent !important;
  }
}


/* Linked family strip (mother ↔ child deep-links) */
.linked-family-strip { margin: 12px 0; }
.linked-family-strip__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.linked-family-strip__item { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.linked-family-strip__identity { display: flex; align-items: center; gap: 10px; min-width: 0; }
.linked-family-strip__actions { flex-wrap: wrap; }
/* Nursing eMAR workstation — PEUF tokens only */

.nur-mar-drawer {
  position: fixed;
  inset: 0;
  z-index: 40;
}

.nur-mar-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: var(--eu-text);
  opacity: 0.28;
}

.nur-mar-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  width: min(24rem, 100%);
  background: var(--eu-surface);
  box-shadow: var(--eu-shadow-lg, 0 10px 30px rgb(15 23 42 / 0.18));
  display: flex;
  flex-direction: column;
}

.nur-mar-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--eu-border);
}

.nur-mar-drawer__header h2 {
  margin: 0;
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 700;
}

.nur-mar-drawer__form {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
}

.nur-mar-drawer__body {
  overflow: auto;
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.nur-mar-drawer__footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 10px 16px;
  border-top: 1px solid var(--eu-border);
  background: var(--eu-surface);
}

.nur-mar-id {
  display: flex;
  align-items: center;
  gap: 10px;
}

.nur-mar-id__meta {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--eu-text-muted);
}

.nur-mar-alert {
  margin: 0;
  padding: 8px 10px;
  border-left: 3px solid var(--eu-warning);
  background: var(--eu-surface-subtle);
  font-size: 0.8125rem;
}

.nur-mar-alert--danger {
  border-left-color: var(--eu-danger);
}

.nur-mar-alert--warn {
  border-left-color: var(--eu-warning);
}

.nur-mar-block__title {
  margin: 0 0 6px;
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eu-text-muted);
  font-weight: 700;
}

.nur-mar-med__name {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
}

.nur-mar-med__sig {
  margin: 2px 0 0;
  font-size: 0.875rem;
}

.nur-mar-times {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 16px;
  margin: 0;
}

.nur-mar-times__full {
  grid-column: 1 / -1;
}

.nur-mar-times dt {
  font-size: 0.6875rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted);
}

.nur-mar-times dd {
  margin: 0;
  font-weight: 600;
}

.nur-mar-overdue {
  margin: 0;
  padding: 8px 10px;
  border-left: 3px solid var(--eu-danger);
  background: var(--eu-surface-subtle);
  color: var(--eu-danger);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.nur-mar-checks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 16px;
  font-size: 0.8125rem;
}

.nur-mar-checks li {
  padding: 2px 0;
}

.nur-mar-checks__detail {
  display: block;
  font-size: 0.75rem;
  color: var(--eu-text-muted);
  font-weight: 400;
}

.nur-mar-checks .is-ok::before {
  content: "✓ ";
  color: var(--eu-success);
  font-weight: 700;
}

.nur-mar-checks .is-warn::before,
.nur-mar-checks .is-block::before {
  content: "! ";
  font-weight: 700;
}

.nur-mar-checks .is-warn::before {
  color: var(--eu-warning);
}

.nur-mar-checks .is-block::before {
  color: var(--eu-danger);
}

.nur-mar-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nur-mar-timeline li {
  display: grid;
  grid-template-columns: 6.5rem 1fr auto auto auto auto;
  gap: 8px;
  align-items: center;
  padding: 6px 0;
  border-top: 1px solid var(--eu-border);
  font-size: 0.8125rem;
}

.nur-mar-timeline li.is-overdue {
  color: var(--eu-danger);
}

.nur-mar-group__who {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: inherit;
}

.nur-mar-day {
  display: inline-block;
  min-width: 2.5rem;
  text-align: center;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  font-size: 0.8125rem;
  padding: 2px 6px;
  border-radius: var(--eu-radius-sm, 4px);
  background: var(--eu-surface-subtle);
  color: var(--eu-text);
}

.nur-mar-row--administered {
  box-shadow: inset 3px 0 0 var(--eu-success);
}

.nur-mar-row--scheduled {
  box-shadow: inset 3px 0 0 var(--eu-info);
}

.nur-mar-row--due,
.nur-mar-row--held,
.nur-mar-row--withheld,
.nur-mar-row--not_available,
.nur-mar-row--other {
  box-shadow: inset 3px 0 0 var(--eu-warning);
}

.nur-mar-row--late,
.nur-mar-row--missed,
.nur-mar-row--refused,
.nur-mar-row--contraindicated {
  box-shadow: inset 3px 0 0 var(--eu-danger);
}

@media (max-width: 900px) {
  .nur-mar-checks,
  .nur-mar-timeline li,
  .nur-mar-times {
    grid-template-columns: 1fr;
  }
}

.nur-mar-allergy {
  color: var(--eu-danger);
  font-weight: 700;
}

.nur-mar-panels {
  margin-left: auto;
}

.nur-mar-find {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 8px 12px;
  margin: 8px 0;
}

.nur-mar-find__q {
  flex: 1 1 16rem;
}

.nur-mar-courses {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.nur-mar-course {
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 6px);
  padding: 10px 12px;
  background: var(--eu-surface);
}

.nur-mar-course--discontinued {
  opacity: 0.92;
}

.nur-mar-course__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.nur-mar-course__foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
}

.nur-mar-slots {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
}

.nur-mar-slot--administered::before {
  content: "✓ ";
  color: var(--eu-success);
  font-weight: 700;
}

.nur-mar-slot--due::before,
.nur-mar-slot--scheduled::before {
  content: "● ";
  color: var(--eu-warning);
  font-weight: 700;
}

.nur-mar-slot--late::before {
  content: "! ";
  color: var(--eu-danger);
  font-weight: 700;
}

.nur-mar-slot--cancelled::before,
.nur-mar-slot--refused::before {
  content: "⊘ ";
  color: var(--eu-text-muted);
}

.nur-mar-recent {
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
}

.nur-mar-recent li {
  display: grid;
  grid-template-columns: 9rem 1fr auto auto;
  gap: 8px;
  align-items: center;
  padding: 4px 0;
  border-top: 1px solid var(--eu-border);
  font-size: 0.8125rem;
}

@media (max-width: 900px) {
  .nur-mar-recent li,
  .nur-mar-course__foot,
  .nur-mar-course__head {
    grid-template-columns: 1fr;
    flex-direction: column;
    align-items: flex-start;
  }
}
/* =============================================================================
   OP Billing — enterprise workspace styles
   All OP Billing UI styles live here. Do not use inline styles in views.
   ============================================================================= */

.opb-workspace {
  --opb-accent: #0f766e;
  --opb-accent-soft: #ecfdf5;
  --opb-border: #e2e8f0;
  --opb-muted: #64748b;
  --opb-surface: #ffffff;
  --opb-bg: #f8fafc;
  --opb-radius: 14px;
  --opb-radius-sm: 10px;
  --opb-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  --opb-gap: 16px;
  max-width: 1480px;
  margin: 0 auto;
}

/* Layout ------------------------------------------------------------------- */

.opb-form {
  display: flex;
  flex-direction: column;
  gap: var(--opb-gap);
}

.opb-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: var(--opb-gap);
  align-items: start;
}

.opb-main {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.opb-sidebar {
  position: sticky;
  top: 16px;
  display: flex;
  flex-direction: column;
  gap: var(--opb-gap);
}

.opb-settlement {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.opb-panel--spaced {
  margin-top: var(--opb-gap);
}

@media (max-width: 1100px) {
  .opb-layout {
    grid-template-columns: 1fr;
  }

  .opb-sidebar {
    position: static;
  }
}

/* Toolbar ------------------------------------------------------------------ */

.opb-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 14px 18px;
  background: var(--opb-surface);
  border: 1px solid var(--opb-border);
  border-radius: var(--opb-radius);
  box-shadow: var(--opb-shadow);
}

.opb-toolbar__title {
  font-size: 13px;
  font-weight: 700;
  color: var(--opb-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.opb-toolbar__form,
.opb-toolbar form {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  flex: 1;
  flex-wrap: wrap;
  margin: 0;
}

.opb-toolbar .eu-field {
  margin: 0;
  min-width: 140px;
}

.opb-toolbar .eu-input {
  height: 40px;
}

.opb-patient-chip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  background: var(--opb-accent-soft);
  border: 1px solid #99f6e4;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  color: #115e59;
  margin-left: auto;
}

.opb-patient-chip span {
  font-weight: 500;
  color: var(--opb-muted);
}

/* Panels ------------------------------------------------------------------- */

.opb-panel {
  background: var(--opb-surface);
  border: 1px solid var(--opb-border);
  border-radius: var(--opb-radius);
  box-shadow: var(--opb-shadow);
  overflow: hidden;
}

.opb-panel--add-service {
  overflow: visible;
  position: relative;
  z-index: 30;
}

.opb-panel--add-service .opb-panel__body {
  overflow: visible;
}

.opb-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--opb-border);
  background: linear-gradient(180deg, #fafbfc 0%, #fff 100%);
}

.opb-panel__title {
  font-size: 15px;
  font-weight: 700;
  color: #0f172a;
}

.opb-panel__subtitle {
  font-size: 12px;
  color: var(--opb-muted);
  margin-top: 2px;
}

.opb-panel__body {
  padding: 16px 18px;
}

.opb-panel__body--flush {
  padding: 0;
}

.opb-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: var(--opb-accent);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

/* Add service -------------------------------------------------------------- */

.opb-add-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 88px 120px;
  gap: 10px;
  align-items: end;
}

.opb-add-bar .eu-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--opb-muted);
  margin-bottom: 6px;
  display: block;
}

.opb-add-bar .eu-input,
.opb-add-bar .eu-btn {
  height: 42px;
}

.opb-add-bar .eu-btn {
  width: 100%;
  font-weight: 700;
}

.opb-add-bar .eu-btn.is-loading {
  opacity: 0.7;
  pointer-events: none;
}

/* Autocomplete ------------------------------------------------------------- */

.opb-autocomplete {
  position: relative;
  z-index: 40;
}

.opb-autocomplete__menu {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 2000;
  background: #fff;
  border: 1px solid var(--opb-border);
  border-radius: var(--opb-radius-sm);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.18);
  max-height: 260px;
  overflow-y: auto;
}

.opb-autocomplete__item {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 11px 14px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  font-size: 14px;
}

.opb-autocomplete__item:hover,
.opb-autocomplete__item.is-active {
  background: #eff6ff;
}

.opb-autocomplete__item small {
  color: var(--opb-muted);
  font-weight: 600;
  white-space: nowrap;
}

.opb-autocomplete__empty {
  padding: 14px;
  color: var(--opb-muted);
  font-size: 13px;
}

/* Table -------------------------------------------------------------------- */

.opb-table-wrap {
  overflow-x: auto;
}

.opb-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.opb-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #f8fafc;
  text-align: left;
  padding: 10px 12px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--opb-muted);
  border-bottom: 1px solid var(--opb-border);
  white-space: nowrap;
}

.opb-table td {
  padding: 12px;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
}

.opb-table tbody tr:hover {
  background: #fafbfc;
}

.opb-table .num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.opb-table .service-name {
  font-weight: 600;
  color: #0f172a;
  max-width: 220px;
}

/* Empty state -------------------------------------------------------------- */

.opb-empty {
  padding: 48px 24px;
  text-align: center;
  color: var(--opb-muted);
}

.opb-empty__icon {
  font-size: 32px;
  margin-bottom: 8px;
  opacity: 0.5;
}

.opb-empty__hint {
  font-size: 12px;
  margin-top: 4px;
}

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

.opb-patient-card {
  display: grid;
  gap: 10px;
}

.opb-patient-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 13px;
}

.opb-patient-row dt {
  color: var(--opb-muted);
  font-weight: 500;
}

.opb-patient-row dd {
  margin: 0;
  font-weight: 600;
  color: #0f172a;
  text-align: right;
}

/* Bill summary ------------------------------------------------------------- */

.opb-summary-line {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  font-size: 13px;
  border-bottom: 1px dashed #e2e8f0;
}

.opb-summary-line:last-child {
  border-bottom: 0;
}

.opb-summary-line span:first-child {
  color: var(--opb-muted);
}

.opb-summary-line span:last-child {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.opb-summary-line--total {
  margin-top: 8px;
  padding-top: 14px;
  border-top: 2px solid #0f172a;
  border-bottom: 0;
  font-size: 16px;
}

.opb-summary-line--total span:last-child {
  font-size: 22px;
  font-weight: 800;
  color: var(--opb-accent);
}

/* Remarks ------------------------------------------------------------------ */

.opb-remarks-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.opb-remarks-grid textarea {
  width: 100%;
  min-height: 72px;
  resize: vertical;
}

/* Actions bar (full width) ------------------------------------------------- */

.opb-actions-bar {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding: 14px 18px;
  background: var(--opb-surface);
  border: 1px solid var(--opb-border);
  border-radius: var(--opb-radius);
  box-shadow: var(--opb-shadow);
}

.opb-actions-bar__buttons {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}

.opb-actions-bar__hint {
  flex: 1;
  font-size: 12px;
  color: var(--opb-muted);
  line-height: 1.5;
  min-width: 200px;
}

.opb-actions-bar__secondary {
  margin-left: auto;
}

.opb-action-btn {
  height: 44px;
  min-width: 140px;
  font-weight: 700;
  border-radius: 12px;
}

.opb-action-btn--primary {
  background: var(--app-primary, #2563eb);
  border-color: var(--app-primary, #2563eb);
  color: #fff;
}

.opb-action-btn--primary:hover {
  background: var(--app-primary-strong, #1d4ed8);
  border-color: var(--app-primary-strong, #1d4ed8);
}

/* Payment strip (full width, horizontal) ----------------------------------- */

.opb-payment-strip {
  background: var(--opb-surface);
  border: 1px solid var(--opb-border);
  border-radius: var(--opb-radius);
  box-shadow: var(--opb-shadow);
  overflow: hidden;
}

.opb-payment-strip[hidden] {
  display: none !important;
}

.opb-payment-strip.is-open {
  border-color: var(--app-primary, #2563eb);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--app-primary, #2563eb) 12%, transparent);
}

.opb-payment-strip__toolbar {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  padding: 14px 18px;
  border-bottom: 1px solid var(--opb-border);
  background: linear-gradient(180deg, #fafbfc 0%, #fff 100%);
}

.opb-payment-strip__intro {
  flex: 1;
  min-width: 220px;
}

.opb-payment-strip__title {
  font-size: 15px;
  font-weight: 700;
  color: #0f172a;
}

.opb-payment-strip__subtitle {
  font-size: 12px;
  color: var(--opb-muted);
  margin-top: 2px;
}

.opb-payment-strip__metrics {
  display: flex;
  align-items: stretch;
  gap: 12px;
  flex-wrap: wrap;
}

.opb-metric {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 14px;
  background: var(--opb-bg);
  border: 1px solid var(--opb-border);
  border-radius: var(--opb-radius-sm);
  min-width: 100px;
}

.opb-metric__label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--opb-muted);
}

.opb-metric__value {
  font-size: 16px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: #0f172a;
}

.opb-metric__value--primary {
  color: var(--app-primary, #2563eb);
}

.opb-remaining.is-error {
  color: #dc2626;
}

.opb-payment-strip__tools {
  flex-shrink: 0;
}

/* Payment cards — horizontal left-to-right ----------------------------------- */

.opb-payment-strip__lines {
  display: flex;
  flex-direction: row;
  gap: 14px;
  padding: 16px 18px;
  overflow-x: auto;
  align-items: stretch;
  scroll-snap-type: x proximity;
  background: var(--opb-bg);
}

.opb-payment-card {
  flex: 0 0 260px;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px;
  background: var(--opb-surface);
  border: 1px solid var(--opb-border);
  border-radius: var(--opb-radius-sm);
  box-shadow: var(--opb-shadow);
}

.opb-payment-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.opb-payment-card__label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--opb-muted);
}

.opb-payment-card__field .eu-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--opb-muted);
  margin-bottom: 4px;
  display: block;
}

.opb-payment-card__field .eu-input,
.opb-payment-card__field .eu-select {
  width: 100%;
  height: 40px;
}

.opb-amount-field {
  display: flex;
  gap: 6px;
}

.opb-amount-field .eu-input {
  flex: 1;
  min-width: 0;
}

.opb-fill-btn {
  flex-shrink: 0;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--opb-border);
  border-radius: 8px;
  background: #fff;
  font-size: 11px;
  font-weight: 700;
  color: var(--app-primary, #2563eb);
  cursor: pointer;
  transition: background 0.15s;
}

.opb-fill-btn:hover {
  background: #eff6ff;
}

.opb-payment-strip__footer {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  border-top: 1px solid var(--opb-border);
  background: #fff;
}

.opb-payment-strip__footer .opb-action-btn {
  min-width: 200px;
}

/* Icon buttons ------------------------------------------------------------- */

.opb-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid #fecaca;
  background: #fff;
  color: #dc2626;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.15s;
}

.opb-icon-btn--sm {
  width: 28px;
  height: 28px;
  font-size: 12px;
}

.opb-icon-btn:hover {
  background: #fef2f2;
}

/* Flash -------------------------------------------------------------------- */

.opb-flash {
  margin-bottom: 12px;
}

.opb-flash .eu-alert {
  border-radius: var(--opb-radius-sm);
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 600;
}

.opb-flash .eu-alert-success {
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #a7f3d0;
  animation: opb-flash-in 0.2s ease;
}

.opb-flash .eu-alert-danger {
  background: #fef2f2;
  color: #b91c1c;
  border: 1px solid #fecaca;
}

@keyframes opb-flash-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Responsive --------------------------------------------------------------- */

@media (max-width: 700px) {
  .opb-add-bar {
    grid-template-columns: 1fr;
  }

  .opb-remarks-grid {
    grid-template-columns: 1fr;
  }

  .opb-actions-bar {
    flex-direction: column;
    align-items: stretch;
  }

  .opb-actions-bar__buttons {
    flex-direction: column;
  }

  .opb-actions-bar__secondary {
    margin-left: 0;
    text-align: center;
  }

  .opb-action-btn {
    width: 100%;
    min-width: 0;
  }

  .opb-payment-strip__toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .opb-payment-strip__metrics {
    width: 100%;
  }

  .opb-metric {
    flex: 1;
    min-width: 0;
  }

  .opb-payment-card {
    flex-basis: 240px;
  }
}
/* =============================================================================
   OPD Walk-In Booking + OPD Consultation Checkout
   Compact PEUF styles — no inline styles in views.
   ============================================================================= */

/* ── Shared tokens ─────────────────────────────────────────────────────────── */

:root {
  --chk-border:  #e2e8f0;
  --chk-surface: #ffffff;
  --chk-muted:   #64748b;
  --chk-accent:  #0f766e;
  --chk-radius:  12px;
  --chk-gap:     14px;
}

/* ── OPD Checkout layout ───────────────────────────────────────────────────── */

.opd-chk {
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--chk-gap);
  padding: 0 0 40px;
}

/* Header strip — patient + visit info in one compact bar */

.opd-chk__header {
  background: var(--chk-surface);
  border: 1px solid var(--chk-border);
  border-radius: var(--chk-radius);
  padding: 14px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.opd-chk__header-title {
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.opd-chk__label {
  font-size: 15px;
  font-weight: 600;
  color: #0f172a;
}

.opd-chk__sub {
  font-size: 12px;
  color: var(--chk-muted);
}

.opd-chk__header-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 24px;
}

.opd-chk__meta-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
}

.opd-chk__meta-label {
  color: var(--chk-muted);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .4px;
  white-space: nowrap;
}

.opd-chk__meta-val {
  color: #1e293b;
  font-size: 13px;
}

/* Two-column body */

.opd-chk__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: var(--chk-gap);
  align-items: start;
}

@media (max-width: 960px) {
  .opd-chk__body { grid-template-columns: 1fr; }
  .opd-chk__sidebar { position: static !important; }
}

.opd-chk__main {
  display: flex;
  flex-direction: column;
  gap: var(--chk-gap);
  min-width: 0;
}

/* Panels */

.opd-chk__panel {
  background: var(--chk-surface);
  border: 1px solid var(--chk-border);
  border-radius: var(--chk-radius);
  overflow: hidden;
}

.opd-chk__panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  border-bottom: 1px solid var(--chk-border);
  gap: 8px;
}

.opd-chk__panel-title {
  font-size: 13px;
  font-weight: 600;
  color: #0f172a;
}

.opd-chk__panel > .eu-table {
  margin: 0;
  border-radius: 0;
}

.opd-chk__num {
  width: 28px;
  color: var(--chk-muted);
  font-size: 12px;
}

/* Payment strip inside panel */

.opd-chk__panel--payment .opd-chk__panel-head {
  flex-wrap: wrap;
}

.opd-chk__pay-metrics {
  display: flex;
  align-items: center;
  gap: 16px;
}

.opd-chk__pay-lines {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding: 14px 16px;
}

/* Reuse opb-payment-card inside checkout panel */
.opd-chk__pay-lines .opb-payment-card {
  flex: 1 1 260px;
  max-width: 340px;
}

/* Sidebar */

.opd-chk__sidebar {
  position: sticky;
  top: 16px;
  display: flex;
  flex-direction: column;
  gap: var(--chk-gap);
}

/* Summary card */

.opd-chk__summary {
  background: var(--chk-surface);
  border: 1px solid var(--chk-border);
  border-radius: var(--chk-radius);
  overflow: hidden;
}

.opd-chk__summary-title {
  font-size: 13px;
  font-weight: 600;
  color: #0f172a;
  padding: 10px 16px;
  border-bottom: 1px solid var(--chk-border);
}

.opd-chk__summary-rows {
  padding: 10px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.opd-chk__summary-row {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: #334155;
  padding: 2px 0;
}

.opd-chk__summary-row--soft {
  color: var(--chk-muted);
}

.opd-chk__summary-row--highlight {
  font-size: 14px;
  font-weight: 700;
  color: var(--chk-accent);
  padding-top: 6px;
}

.opd-chk__summary-divider {
  border-top: 1px solid var(--chk-border);
  margin: 4px 0;
}

/* Actions stack */

.opd-chk__actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.eu-btn--full { width: 100%; justify-content: center; }
.eu-btn--ghost {
  background: transparent;
  color: var(--chk-muted);
  border: 1px solid var(--chk-border);
}
.eu-btn--ghost:hover { background: #f8fafc; color: #0f172a; }

/* ── OPD Walk-In Booking form ──────────────────────────────────────────────── */

.owb-appt { display: flex; flex-direction: column; gap: 16px; }

.owb-toggle { display: flex; gap: 8px; flex-wrap: wrap; }

.owb-toggle__btn {
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 6px 14px;
  font-size: 13px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  background: #fff;
  transition: background .15s, border-color .15s;
}

.owb-toggle__btn.is-active {
  background: #eff6ff;
  border-color: #2563eb;
  color: #1d4ed8;
  font-weight: 600;
}

.owb-toggle__btn input[type="radio"] { display: none; }

.owb-mode-panel { display: flex; flex-direction: column; gap: 12px; }
.owb-mode-panel.is-hidden { display: none; }

.owb-appt__hint {
  font-size: 12px;
  color: var(--chk-muted);
  margin: 0;
}

/* Autocomplete */

.owb-autocomplete { position: relative; }

.owb-autocomplete__menu {
  position: absolute;
  z-index: 999;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(15,23,42,.1);
  max-height: 240px;
  overflow-y: auto;
}

.owb-autocomplete__item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 8px 12px;
  font-size: 13px;
  background: none;
  border: none;
  text-align: left;
  cursor: pointer;
  gap: 8px;
}

.owb-autocomplete__item:hover { background: #f1f5f9; }

.owb-autocomplete__item span { display: flex; flex-direction: column; gap: 1px; }
.owb-autocomplete__item small { font-size: 11px; color: var(--chk-muted); }

/* Doctor selected pill */

.owb-selected-doctor {
  display: none;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
  font-size: 13px;
  color: #0f172a;
}

.owb-selected-doctor.is-visible { display: flex; }

/* Availability badge */

.owb-badge {
  font-size: 10px;
  padding: 2px 7px;
  border-radius: 99px;
  border: 1px solid #d1d5db;
  color: var(--chk-muted);
  white-space: nowrap;
}

.owb-badge--available {
  background: #f0fdf4;
  border-color: #86efac;
  color: #166534;
}

/* Slots */

.owb-slots { display: flex; flex-direction: column; gap: 6px; }

.owb-slots__meta { font-size: 12px; color: var(--chk-muted); }

.owb-slots__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.owb-slot {
  border: 1px solid #d1d5db;
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 12px;
  cursor: pointer;
  background: #fff;
  transition: background .12s, border-color .12s;
}

.owb-slot:hover { background: #f1f5f9; }

.owb-slot.is-selected {
  background: #eff6ff;
  border-color: #2563eb;
  color: #1d4ed8;
  font-weight: 600;
}

.owb-slots__empty { font-size: 12px; color: var(--chk-muted); margin: 0; }

/* Utility */
.text-center { text-align: center; }
.text-end    { text-align: right; }
.fw-bold     { font-weight: 600; }
.mb-2        { margin-bottom: 8px; }
.mt-3        { margin-top: 12px; }
.eu-ot-dash {
  display: grid;
  gap: 16px;
}

.eu-ot-dash__toolbar {
  display: flex;
  justify-content: flex-end;
}

.eu-ot-dash__split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.eu-ot-rooms,
.eu-ot-pending {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}

.eu-ot-rooms__item,
.eu-ot-pending__link {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 8px;
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 4px);
  font-size: 0.8125rem;
}

.eu-ot-rooms__item.is-busy {
  border-color: var(--eu-warning, #ffc107);
  background: var(--eu-warning-bg, #fef3c7);
}

.eu-ot-pending__link--warn {
  border-color: var(--eu-danger, #dc3545);
  background: var(--eu-danger-bg, #fef2f2);
}

.eu-ot-next {
  margin: 0;
  display: grid;
  gap: 4px;
}

.eu-ot-next__name {
  font-weight: 700;
}

@media (max-width: 900px) {
  .eu-ot-dash__split {
    grid-template-columns: 1fr;
  }
}

.eu-ot-rail {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
}

.eu-ot-rail__step {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: var(--eu-radius-sm, 4px);
  border: 1px solid var(--eu-border);
  font-size: 0.75rem;
  color: var(--eu-text-muted);
  text-decoration: none;
  background: var(--eu-surface, #fff);
}

a.eu-ot-rail__step:hover {
  border-color: var(--eu-accent, #0f766e);
  color: var(--eu-text);
}

.eu-ot-rail__step.is-done {
  background: var(--eu-secondary, #eaf4fb);
  color: var(--eu-text);
}

.eu-ot-rail__step.is-current {
  border-color: var(--eu-accent, #0f766e);
  background: var(--eu-accent-bg, #f0fdfa);
  color: var(--eu-text);
  font-weight: 700;
}

.eu-ot-rail__step.is-locked {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
}

.eu-ot-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 12px;
}

.eu-ot-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 12px;
  margin-bottom: 8px;
}

.eu-ot-checks {
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 12px;
}

.eu-ot-note {
  margin: 0 0 8px;
  font-size: 0.875rem;
  white-space: pre-wrap;
}

.eu-ot-handoff {
  margin: 0 0 8px;
  padding-left: 1.1rem;
  font-size: 0.8125rem;
}

.eu-ot-schedule {
  display: grid;
  gap: 10px;
}

.eu-ot-schedule-shell {
  display: grid;
  gap: 10px;
}

.eu-ot-schedule__primary .eu-card {
  border-color: var(--eu-accent, #0f766e);
  box-shadow: 0 0 0 1px var(--eu-accent-bg, #f0fdfa);
}

.eu-ot-schedule__primary .eu-card__title-text {
  font-weight: 700;
  color: var(--eu-accent, #0f766e);
}

.eu-ot-schedule__context {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  padding: 8px 10px;
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 4px);
  background: var(--eu-surface-muted, #f8fafc);
  font-size: 0.8125rem;
}

.eu-ot-schedule__toolbar,
.eu-ot-schedule__footer {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

.eu-ot-schedule__footer {
  position: sticky;
  bottom: 0;
  padding: 8px 0;
  background: var(--eu-surface, #fff);
  border-top: 1px solid var(--eu-border);
  z-index: 5;
}

.eu-ot-schedule__confirm-block {
  margin: 8px 0 0;
  padding: 10px 12px;
}

.eu-ot-schedule__confirm-block p {
  margin: 0 0 4px;
}

.eu-ot-schedule__confirm-block p:last-child {
  margin-bottom: 0;
}

.eu-ot-schedule__cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.eu-ot-schedule__resources {
  margin-top: 0;
}

.eu-ot-schedule__resource-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 16px;
  align-items: start;
}

.eu-ot-schedule__resource-block--blood {
  grid-column: 1 / -1;
}

.eu-ot-schedule__grid--schedule {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.eu-ot-schedule__grid--compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 10px;
}

.eu-ot-schedule__indicator {
  margin-top: 4px;
}

.eu-ot-indicator {
  display: inline-block;
  font-size: 0.6875rem;
  padding: 2px 6px;
  border-radius: var(--eu-radius-sm, 4px);
}

.eu-ot-indicator.is-ok {
  color: var(--eu-success, #15803d);
  background: var(--eu-success-bg, #ecfdf5);
}

.eu-ot-indicator.is-conflict {
  color: var(--eu-danger, #dc3545);
  background: var(--eu-danger-bg, #fef2f2);
}

.eu-ot-indicator.is-pending {
  color: var(--eu-text-muted);
  background: var(--eu-surface-muted, #f1f5f9);
}

.eu-ot-chips {
  display: grid;
  gap: 6px;
}

.eu-ot-chips__list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  min-height: 24px;
}

.eu-ot-chips__typeahead {
  position: relative;
  max-width: 100%;
}

.eu-ot-chips__search {
  width: 100%;
  max-width: 360px;
}

.eu-ot-chips__results {
  position: absolute;
  z-index: 40;
  top: calc(100% + 2px);
  left: 0;
  width: min(360px, 100%);
  max-height: 180px;
  overflow-y: auto;
  margin: 0;
  padding: 4px 0;
  list-style: none;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 4px);
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
}

.eu-ot-chips__option {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 10px;
  cursor: pointer;
  font-size: 0.8125rem;
}

.eu-ot-chips__option:hover,
.eu-ot-chips__option:focus {
  background: var(--eu-surface-muted, #f1f5f9);
}

.eu-ot-chips__option-name {
  font-weight: 600;
}

.eu-ot-chips__option-status {
  font-size: 0.6875rem;
  color: var(--eu-text-muted);
}

.eu-ot-chips__option.is-available .eu-ot-chips__option-status { color: var(--eu-success, #15803d); }
.eu-ot-chips__option.is-conflict .eu-ot-chips__option-status { color: var(--eu-danger, #dc3545); }
.eu-ot-chips__option.is-pending .eu-ot-chips__option-status { color: var(--eu-warning-text, #b45309); }

.eu-ot-chips__empty {
  padding: 8px 10px;
  font-size: 0.75rem;
  color: var(--eu-text-muted);
}

.eu-ot-chips__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid var(--eu-border);
  background: var(--eu-surface-muted, #f8fafc);
  font-size: 0.75rem;
  max-width: 100%;
}

.eu-ot-chips__chip.is-available {
  border-color: var(--eu-success, #15803d);
  background: var(--eu-success-bg, #ecfdf5);
  color: var(--eu-success, #15803d);
}

.eu-ot-chips__chip.is-conflict {
  border-color: var(--eu-danger, #dc3545);
  background: var(--eu-danger-bg, #fef2f2);
  color: var(--eu-danger, #dc3545);
}

.eu-ot-chips__chip.is-pending,
.eu-ot-chips__chip.is-unavailable {
  border-color: var(--eu-warning, #d97706);
  background: var(--eu-warning-bg, #fef3c7);
  color: var(--eu-warning-text, #b45309);
}

.eu-ot-chips__name {
  font-weight: 600;
  color: var(--eu-text);
}

.eu-ot-chips__status {
  font-size: 0.6875rem;
  white-space: nowrap;
}

.eu-ot-chips__remove {
  border: 0;
  background: transparent;
  cursor: pointer;
  line-height: 1;
  padding: 0;
  font-size: 0.875rem;
  color: inherit;
}

.eu-ot-readiness {
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 10px;
}

.eu-ot-readiness__item {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 4px 8px;
  border-radius: var(--eu-radius-sm, 4px);
  font-size: 0.75rem;
  border: 1px solid var(--eu-border);
}

.eu-ot-readiness__item.is-ok {
  background: var(--eu-success-bg, #ecfdf5);
}

.eu-ot-readiness__item.is-pending {
  background: var(--eu-warning-bg, #fef3c7);
}

.eu-ot-schedule__summary {
  padding: 8px 10px;
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 4px);
  background: var(--eu-surface-muted, #f8fafc);
}

.eu-ot-schedule__summary h4 {
  margin: 0 0 6px;
  font-size: 0.8125rem;
}

.eu-ot-schedule__summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px 12px;
  margin: 0;
  font-size: 0.75rem;
}

.eu-ot-schedule__summary-grid dt {
  color: var(--eu-text-muted);
  font-weight: 500;
}

.eu-ot-schedule__summary-grid dd {
  margin: 0;
  font-weight: 600;
}

.eu-ot-schedule__override {
  padding: 8px 10px;
  border: 1px dashed var(--eu-warning, #ffc107);
  border-radius: var(--eu-radius-sm, 4px);
  background: var(--eu-warning-bg, #fef3c7);
}

.eu-ot-schedule__locked {
  font-size: 0.8125rem;
  padding: 6px 8px;
  background: var(--eu-surface-muted, #f8fafc);
  border-radius: var(--eu-radius-sm, 4px);
}

body.eu-ot-modal-open {
  overflow: hidden;
}

.eu-btn.is-disabled,
.eu-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.eu-ot-schedule__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px 12px;
}

.eu-ot-schedule__procedure-banner {
  padding: 10px 12px;
  border: 1px solid var(--eu-border);
  border-left: 4px solid var(--eu-accent, #0f766e);
  border-radius: var(--eu-radius-sm, 4px);
  background: var(--eu-surface-muted, #f8fafc);
}

.eu-ot-schedule__procedure-title {
  margin: 0 0 4px;
  font-size: 1.05rem;
  font-weight: 700;
}

.eu-ot-schedule__procedure-meta {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--eu-text-muted);
}

.eu-ot-theatre-status {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  margin-top: 6px;
  font-size: 0.8125rem;
}

.eu-ot-theatre-status__name {
  font-weight: 600;
}

.eu-ot-theatre-status__detail {
  color: var(--eu-text-muted);
  font-size: 0.75rem;
}

.eu-ot-avail {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid var(--eu-border);
}

.eu-ot-avail__head,
.eu-ot-conflicts__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
  font-size: 0.8125rem;
}

.eu-ot-avail__list,
.eu-ot-conflicts__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 4px;
}

.eu-ot-avail__item {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  gap: 8px;
  align-items: center;
  padding: 4px 8px;
  border-radius: var(--eu-radius-sm, 4px);
  font-size: 0.75rem;
  border: 1px solid var(--eu-border);
}

.eu-ot-avail__item.is-ok { background: var(--eu-success-bg, #ecfdf5); }
.eu-ot-avail__item.is-conflict { background: var(--eu-danger-bg, #fef2f2); }
.eu-ot-avail__item.is-pending { background: var(--eu-surface-muted, #f1f5f9); }

.eu-ot-conflicts {
  margin-top: 8px;
}

.eu-ot-conflicts__ok {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--eu-success, #15803d);
}

.eu-ot-conflicts__list li {
  font-size: 0.8125rem;
  padding: 2px 0;
}

.eu-ot-team-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 16px;
}

.eu-ot-team-block {
  display: grid;
  gap: 4px;
  align-content: start;
}

.eu-ot-team-block--full {
  grid-column: 1 / -1;
}

.eu-ot-team-block__input {
  width: 100%;
}

.eu-ot-team-block__selected {
  margin: 0;
  font-size: 0.75rem;
  color: var(--eu-text-muted);
}

.eu-ot-team-block__selected strong {
  color: var(--eu-text);
}

.eu-ot-person-status {
  display: block;
  margin-top: 2px;
  font-size: 0.75rem;
}

.eu-ot-person-status.is-ok { color: var(--eu-success, #15803d); }
.eu-ot-person-status.is-conflict { color: var(--eu-danger, #dc3545); }
.eu-ot-person-status.is-pending { color: var(--eu-text-muted); }

.eu-ot-resource-status {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
  font-size: 0.75rem;
}

.eu-ot-resource-status li {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 2px 0;
}

.eu-ot-resource-status li.is-ok span { color: var(--eu-success, #15803d); }
.eu-ot-resource-status li.is-conflict span { color: var(--eu-danger, #dc3545); }

.eu-ot-schedule__blood-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.eu-input--narrow {
  max-width: 5rem;
}

.eu-ot-resource-status__line.is-ok { color: var(--eu-success, #15803d); }
.eu-ot-resource-status__line.is-conflict { color: var(--eu-danger, #dc3545); }

.eu-ot-readiness-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
  margin-bottom: 8px;
}

.eu-ot-readiness-table th,
.eu-ot-readiness-table td {
  padding: 4px 8px;
  border-bottom: 1px solid var(--eu-border);
  text-align: left;
}

.eu-ot-readiness-table tr.is-ok td:nth-child(2),
.eu-ot-readiness-table tr.is-completed td:nth-child(2) { color: var(--eu-success, #15803d); }
.eu-ot-readiness-table tr.is-pending td:nth-child(2) { color: var(--eu-warning-text, #b45309); }
.eu-ot-readiness-table tr.is-failed td:nth-child(2) { color: var(--eu-danger, #dc3545); }
.eu-ot-readiness-table tr.is-not-required td:nth-child(2) { color: var(--eu-text-muted); }

.eu-ot-readiness-badge {
  display: inline-block;
  font-weight: 600;
  font-size: 0.8125rem;
}

.eu-ot-readiness-badge--completed { color: var(--eu-success, #15803d); }
.eu-ot-readiness-badge--pending { color: var(--eu-warning-text, #b45309); }
.eu-ot-readiness-badge--failed { color: var(--eu-danger, #dc3545); }
.eu-ot-readiness-badge--not_required { color: var(--eu-text-muted); }

.eu-ot-person-status-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 2px;
}

.eu-ot-conflicts__pending {
  margin: 6px 0 0;
  font-size: 0.8125rem;
  color: var(--eu-text-muted);
}

.eu-ot-schedule__confirm-title {
  margin: 0 0 4px;
  font-weight: 600;
}

.eu-ot-schedule__confirm-reasons {
  margin: 0 0 4px;
  padding-left: 1.1rem;
}

.eu-ot-schedule__confirm-reasons li[hidden] {
  display: none;
}

.eu-ot-avail-panel__live[hidden] {
  display: none !important;
}

.eu-ot-schedule__full {
  grid-column: 1 / -1;
}

.eu-ot-schedule__checks {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 10px;
  margin-bottom: 8px;
}

.eu-ot-schedule__actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

.eu-ot-schedule--show .eu-ot-schedule__summary-grid--show {
  margin: 0;
}

.eu-ot-schedule__override-form {
  margin-top: 10px;
}

.eu-ot-schedule__override-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.eu-ot-schedule__override-row .eu-input {
  flex: 1 1 220px;
}

.eu-ot-show-conflicts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 4px;
}

.eu-ot-show-conflicts__row {
  display: grid;
  grid-template-columns: 1.25rem minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 6px 8px;
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 4px);
  background: var(--eu-surface, #fff);
  font-size: 0.8125rem;
}

.eu-ot-show-conflicts__row.is-ok {
  border-color: color-mix(in srgb, var(--eu-success, #15803d) 25%, var(--eu-border));
}

.eu-ot-show-conflicts__row.is-conflict {
  border-color: color-mix(in srgb, var(--eu-danger, #dc3545) 30%, var(--eu-border));
  background: var(--eu-danger-bg, #fef2f2);
}

.eu-ot-show-conflicts__icon {
  text-align: center;
}

.eu-ot-show-conflicts__row.is-ok .eu-ot-show-conflicts__icon,
.eu-ot-show-conflicts__row.is-ok .eu-ot-show-conflicts__status {
  color: var(--eu-success, #15803d);
}

.eu-ot-show-conflicts__row.is-conflict .eu-ot-show-conflicts__icon,
.eu-ot-show-conflicts__row.is-conflict .eu-ot-show-conflicts__status {
  color: var(--eu-danger, #dc3545);
}

.eu-ot-show-conflicts__label {
  font-weight: 600;
}

.eu-ot-show-conflicts__status {
  text-align: right;
  white-space: nowrap;
}

.eu-ot-cal-modal {
  position: fixed;
  inset: 0;
  z-index: 60;
}

.eu-ot-cal-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
}

.eu-ot-cal-modal__panel {
  position: relative;
  margin: 4vh auto;
  width: min(1000px, 96vw);
  max-height: 92vh;
  overflow: auto;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius, 8px);
  padding: 12px;
}

.eu-ot-cal-modal__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.eu-ot-cal-modal__close {
  border: 0;
  background: transparent;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.eu-ot-cal-preview .eu-table {
  width: 100%;
}

@media (max-width: 1100px) {
  .eu-ot-schedule__grid,
  .eu-ot-schedule__grid--schedule,
  .eu-ot-schedule__summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .eu-ot-schedule__cols,
  .eu-ot-schedule__resource-list {
    grid-template-columns: 1fr;
  }

  .eu-ot-schedule__resource-block--blood {
    grid-column: auto;
  }
}

.eu-ot-case {
  display: grid;
  gap: 16px;
}

.eu-ot-case__context .eu-meta-strip,
.eu-ot-case__context .eu-card.eu-meta-strip {
  margin: 0;
}

.eu-ot-case__context .eu-meta-strip__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px 16px;
}

.eu-ot-case__ops {
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 4px);
  padding: 8px 12px;
  background: var(--eu-surface-muted, #f8fafc);
}

.eu-ot-case__ops > summary {
  cursor: pointer;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--eu-text-muted);
}

.eu-ot-case__ops[open] > summary {
  margin-bottom: 10px;
}

.eu-ot-case__ops .eu-ot-schedule__ops {
  margin: 0;
  background: transparent;
  border: 0;
  padding: 0;
}

@media (max-width: 900px) {
  .eu-ot-case__context .eu-meta-strip__grid {
    grid-template-columns: 1fr;
  }
}

.eu-ot-tabs__item {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 4px);
  font-size: 0.75rem;
  color: var(--eu-text);
  text-decoration: none;
  background: var(--eu-surface, #fff);
}

.eu-ot-tabs__item.is-current {
  border-color: var(--eu-accent, #0f766e);
  background: var(--eu-accent-soft, #ecfdf5);
  color: var(--eu-accent, #0f766e);
  font-weight: 600;
}

.eu-ot-tabs__item.is-locked {
  opacity: 0.45;
  cursor: not-allowed;
  text-decoration: none;
}

.eu-ot-assessment__picker {
  display: grid;
  gap: 8px;
  margin-bottom: 12px;
}

.eu-ot-assessment__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px 12px;
  margin-bottom: 12px;
}

.eu-ot-assessment__header .eu-help {
  margin: 0;
  flex: 1 1 12rem;
}

.eu-ot-assessment__tpl {
  margin-bottom: 14px;
  padding: 10px 12px;
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 4px);
  background: var(--eu-surface-muted, #f8fafc);
}

.eu-ot-assessment__tpl-selected .eu-label {
  display: block;
  margin-bottom: 2px;
}

.eu-ot-assessment__tpl-name {
  margin: 0 0 8px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
}

.eu-ot-assessment__tpl-change > summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  margin-bottom: 8px;
}

.eu-ot-assessment__tpl-change > summary::-webkit-details-marker {
  display: none;
}

.eu-ot-assessment__section {
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--eu-border);
}

.eu-ot-assessment__form .eu-form-builder__actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 12px;
}

.eu-ot-assessment__form--operative .eu-form-builder__actions .eu-btn--primary {
  order: 2;
}

.eu-ot-assessment__form--operative .eu-form-builder__actions .eu-btn--secondary {
  order: 1;
}

.eu-ot-assessment__form--operative .clw-typeahead--helper-system {
  display: grid;
  gap: 6px;
}

.eu-ot-assessment__form--operative .eu-input--compact {
  max-width: 14rem;
}

.eu-note-capture--quiet .eu-note-capture__more > summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
}

.eu-note-capture--quiet .eu-note-capture__more > summary::-webkit-details-marker {
  display: none;
}

.eu-note-capture--quiet .eu-note-capture__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}

.eu-ot-supplies__kpis {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 8px;
  margin: 0 0 10px;
}

.eu-ot-supplies__links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 8px;
  margin: 0 0 14px;
  align-items: center;
}

.eu-ot-supplies__row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 6px;
  align-items: flex-start;
}

.eu-ot-supplies__inline-form {
  display: inline;
}

.eu-ot-supplies__add {
  margin-top: 10px;
}

.eu-ot-supplies__add > summary,
.eu-ot-supplies__inline > summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  margin-bottom: 8px;
}

.eu-ot-supplies__add > summary::-webkit-details-marker,
.eu-ot-supplies__inline > summary::-webkit-details-marker {
  display: none;
}

.eu-ot-supplies__form {
  display: grid;
  gap: 8px;
  max-width: 28rem;
}

.eu-table--dense th,
.eu-table--dense td {
  padding: 6px 8px;
  font-size: 0.875rem;
  vertical-align: top;
}

.eu-ot-schedule__ops {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 0 0 16px;
  padding: 12px;
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 4px);
  background: var(--eu-surface-muted, #f8fafc);
}

.eu-ot-schedule__ops-form {
  display: grid;
  gap: 6px;
}

.eu-ot-schedule__ops-row {
  display: flex;
  gap: 8px;
  align-items: center;
}

.eu-ot-schedule__ops-row .eu-input {
  flex: 1;
  min-width: 0;
}

.eu-ot-calendar {
  display: grid;
  gap: 16px;
}

.eu-ot-calendar__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: end;
  padding: 12px;
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 4px);
  background: var(--eu-surface, #fff);
}

.eu-ot-calendar__board {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}

.eu-ot-calendar__room {
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 4px);
  background: var(--eu-surface, #fff);
  padding: 10px 12px;
  display: grid;
  gap: 8px;
  align-content: start;
}

.eu-ot-calendar__room-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
}

.eu-ot-calendar__room-head h3 {
  margin: 0;
  font-size: 0.875rem;
}

.eu-ot-calendar__slots {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.eu-ot-calendar__slot {
  display: grid;
  grid-template-columns: 72px 1fr auto;
  gap: 8px;
  align-items: start;
  padding: 8px;
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 4px);
  font-size: 0.75rem;
}

.eu-ot-calendar__slot.is-emergency {
  border-color: var(--eu-danger, #dc3545);
  background: var(--eu-danger-bg, #fef2f2);
}

.eu-ot-calendar__slot-time {
  font-weight: 600;
  color: var(--eu-text-muted);
}

.eu-ot-calendar__slot-body {
  display: grid;
  gap: 2px;
}

.eu-ot-calendar__slot-body strong {
  font-size: 0.8125rem;
}

@media (max-width: 900px) {
  .eu-ot-team-grid {
    grid-template-columns: 1fr;
  }

  .eu-ot-grid,
  .eu-ot-checks,
  .eu-ot-schedule__grid,
  .eu-ot-schedule__checks {
    grid-template-columns: 1fr;
  }

  .eu-ot-schedule__ops {
    grid-template-columns: 1fr;
  }

  .eu-ot-calendar__slot {
    grid-template-columns: 1fr;
  }
}

.eu-ot-anaes-chart {
  display: grid;
  gap: 16px;
}

.eu-ot-anaes-chart__apply {
  display: grid;
  gap: 12px;
  margin-bottom: 16px;
}

.eu-ot-anaes-chart__type {
  max-width: 20rem;
}

.eu-ot-anaes-chart__tpl-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  align-items: stretch;
}

.eu-ot-anaes-chart__tpl-card {
  display: grid;
  gap: 8px;
  padding: 12px 14px;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface, #fff);
  min-height: 0;
}

.eu-ot-anaes-chart__tpl-card--dose {
  border-left: 3px solid var(--eu-primary, #1d4ed8);
}

.eu-ot-anaes-chart__tpl-card--assessment {
  border-left: 3px solid var(--eu-success, #15803d);
}

.eu-ot-anaes-chart__tpl-title {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--eu-text, #0f172a);
}

.eu-ot-anaes-chart__tpl-selected {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.eu-ot-anaes-chart__tpl-change {
  margin-top: 4px;
}

.eu-ot-anaes-chart__tpl-change > summary {
  list-style: none;
  cursor: pointer;
  width: fit-content;
}

.eu-ot-anaes-chart__tpl-change > summary::-webkit-details-marker {
  display: none;
}

.eu-ot-anaes-chart__tpl-change[open] > summary {
  margin-bottom: 8px;
}

.eu-ot-anaes-chart__apply-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.eu-ot-anaes-chart__weight-input {
  max-width: 7rem;
  display: inline-block;
}

@media (max-width: 900px) {
  .eu-ot-anaes-chart__tpl-row {
    grid-template-columns: 1fr;
  }
}

.eu-ot-anaes-chart__table {
  width: 100%;
  font-size: 0.8125rem;
}

.eu-ot-anaes-chart__table th,
.eu-ot-anaes-chart__table td {
  padding: 6px 8px;
  vertical-align: middle;
}

.eu-ot-anaes-chart__table .eu-input {
  min-width: 4.5rem;
}

.eu-ot-anaes-chart__add {
  position: relative;
  margin-top: 12px;
  max-width: 28rem;
}

.eu-ot-anaes-tpl__typeahead {
  max-width: 36rem;
  margin-top: 0;
  margin-bottom: 12px;
}

.eu-ot-anaes-chart__results {
  position: absolute;
  z-index: 40;
  left: 0;
  right: 0;
  top: calc(100% - 2px);
  display: grid;
  gap: 2px;
  max-height: 220px;
  overflow: auto;
  padding: 4px;
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm, 4px);
  background: var(--eu-surface, #fff);
  box-shadow: var(--eu-shadow-md, 0 4px 16px rgba(0, 0, 0, 0.12));
}

.eu-ot-anaes-chart__results[hidden] {
  display: none !important;
}

.eu-ot-anaes-chart__pick {
  display: grid;
  gap: 2px;
  text-align: left;
  padding: 6px 8px;
  border: 0;
  border-radius: var(--eu-radius-sm, 4px);
  background: transparent;
  cursor: pointer;
  font: inherit;
  color: inherit;
}

.eu-ot-anaes-chart__pick:hover,
.eu-ot-anaes-chart__pick:focus {
  background: var(--eu-surface-muted, #f1f5f9);
}

.eu-ot-summary__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.eu-ot-summary__sheet {
  display: grid;
  gap: 16px;
}

.eu-ot-summary__header {
  text-align: center;
  border-bottom: 1px solid var(--eu-border);
  padding-bottom: 8px;
}

.eu-ot-summary__hospital {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--eu-text);
}

.eu-ot-summary__doc-title {
  margin: 4px 0 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--eu-text-muted);
}

.eu-ot-summary__dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 16px;
  margin: 0;
}

.eu-ot-summary__dl > div {
  display: grid;
  gap: 2px;
}

.eu-ot-summary__dl dt {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--eu-text-muted);
  margin: 0;
}

.eu-ot-summary__dl dd {
  margin: 0;
  font-size: 0.875rem;
  color: var(--eu-text);
  font-weight: 600;
}

.eu-ot-summary__footer {
  margin: 0;
  font-size: 0.75rem;
  color: var(--eu-text-muted);
  text-align: right;
}

.eu-ot-adverse__list {
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.eu-ot-adverse__item {
  padding: 10px 12px;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface-muted, #f8fafc);
}

.eu-ot-adverse__item-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  margin-bottom: 4px;
}

.eu-ot-adverse__meta {
  margin: 0 0 4px;
  font-size: 0.8125rem;
  color: var(--eu-text-muted);
}

.eu-ot-adverse__capture {
  margin-top: 8px;
}

.eu-ot-adverse__capture > summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  margin-bottom: 10px;
}

.eu-ot-adverse__capture > summary::-webkit-details-marker {
  display: none;
}

.eu-ot-adverse__form .eu-ot-grid {
  margin-bottom: 8px;
}

.eu-ot-adverse__full {
  grid-column: 1 / -1;
}

@media (max-width: 700px) {
  .eu-ot-summary__dl {
    grid-template-columns: 1fr;
  }
}

@media print {
  .eu-ot-summary__no-print,
  .app-shell__sidebar,
  .app-shell__topbar,
  .eu-flash,
  .eu-workflow-page__header .eu-btn,
  nav,
  aside {
    display: none !important;
  }

  .eu-ot-summary__sheet {
    gap: 12px;
  }

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

  .eu-card {
    break-inside: avoid;
    box-shadow: none !important;
    border: 1px solid #ccc !important;
  }
}
/* Paediatrics Phase A/B — dense case pulse + panels */
.paeds-case__pulse {
  gap: 12px;
}

.paeds-case__next {
  margin-top: 12px;
}

.paeds-case__form,
.paeds-case__charts,
.paeds-case__recent,
.paeds-case__growth-hint {
  margin-top: 12px;
}

.paeds-case__recent .eu-list {
  margin: 8px 0 0;
  padding-left: 1.1rem;
}

.paeds-acuity--high {
  background: var(--eu-warning-bg, #fffbeb);
  color: var(--eu-warning, #d97706);
}

.paeds-acuity--medium {
  background: var(--eu-info-bg, #eff6ff);
  color: var(--eu-info, #2563eb);
}

.paeds-acuity--routine {
  background: var(--eu-surface-muted, #f8fafc);
  color: var(--eu-text, #0f172a);
}

/* Growth charts Phase A */
.paeds-growth__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}

.paeds-growth__tab {
  max-width: 100%;
}

.paeds-growth__empty-points {
  margin: 0 0 8px;
}

.paeds-growth__chart {
  position: relative;
  height: 360px;
  max-height: 50vh;
  margin-top: 8px;
  padding: 8px 12px;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius, 8px);
  background: var(--eu-surface, #fff);
}

.paeds-growth__status {
  margin: 8px 0;
}

.paeds-growth__chart canvas {
  width: 100% !important;
  height: 100% !important;
}

/* Immunisation / RCH */
.paeds-imm__kpis {
  gap: 12px;
  margin: 12px 0;
}

.paeds-imm__filters {
  margin: 12px 0;
}

.paeds-imm__filter-actions {
  display: flex;
  align-items: flex-end;
  gap: 8px;
}

.paeds-imm__list {
  margin-top: 12px;
}

.paeds-imm__quick {
  display: inline;
}

.paeds-imm-status--given {
  background: var(--eu-success-bg, #ecfdf5);
  color: var(--eu-success, #15803d);
}

.paeds-imm-status--due {
  background: var(--eu-warning-bg, #fffbeb);
  color: var(--eu-warning, #d97706);
}

.paeds-imm-status--overdue {
  background: var(--eu-danger-bg, #fef2f2);
  color: var(--eu-danger, #b91c1c);
}

.paeds-imm-status--upcoming {
  background: var(--eu-surface-muted, #f8fafc);
  color: var(--eu-text-muted, #64748b);
}

.paeds-imm-cal {
  margin-top: 12px;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius, 8px);
  overflow: hidden;
}

.paeds-imm-cal__weekdays,
.paeds-imm-cal__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.paeds-imm-cal__weekday {
  padding: 6px 8px;
  font-size: 12px;
  font-weight: 600;
  background: var(--eu-surface-muted, #f8fafc);
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
}

.paeds-imm-cal__cell {
  min-height: 88px;
  padding: 6px;
  border-right: 1px solid var(--eu-border, #e2e8f0);
  border-bottom: 1px solid var(--eu-border, #e2e8f0);
  background: var(--eu-surface, #fff);
}

.paeds-imm-cal__cell--other {
  background: var(--eu-surface-muted, #f8fafc);
  opacity: 0.7;
}

.paeds-imm-cal__cell--today {
  outline: 2px solid var(--eu-info, #2563eb);
  outline-offset: -2px;
}

.paeds-imm-cal__day {
  margin: 0 0 4px;
  font-size: 12px;
  font-weight: 600;
}

.paeds-imm-cal__item {
  margin: 0 0 2px;
  padding: 2px 4px;
  font-size: 11px;
  border-radius: 4px;
  line-height: 1.3;
}

.paeds-imm-cal__link {
  color: inherit;
  text-decoration: none;
}

.paeds-imm-cal-nav {
  margin: 8px 0 12px;
  align-items: center;
  gap: 12px;
}

.paeds-well-child__search-actions {
  display: flex;
  align-items: flex-end;
  gap: 8px;
}

.paeds-well-child__context .eu-flex {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

/* Patient merge dashboard + workbench */
.eu-merge-workbench {
  gap: var(--eu-space-4, 16px);
  margin-top: var(--eu-space-4, 16px);
}

.eu-merge-workbench__results {
  margin-top: var(--eu-space-3, 12px);
}

.eu-merge-history-filter {
  margin-bottom: var(--eu-space-3, 12px);
  gap: var(--eu-space-2, 8px);
}

.eu-text-strong {
  display: block;
  font-weight: 600;
}

.eu-text-muted {
  display: block;
  color: var(--eu-text-muted, #64748b);
  font-size: 0.875rem;
}

.eu-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: var(--eu-space-3, 12px);
}

.eu-summary-grid__item {
  padding: var(--eu-space-3, 12px);
  border: 1px solid var(--eu-border-subtle, #e2e8f0);
  border-radius: var(--eu-radius-md, 8px);
  background: var(--eu-surface-subtle, #f8fafc);
}

.eu-summary-grid__label {
  font-size: 0.8125rem;
  color: var(--eu-text-muted, #64748b);
}

.eu-summary-grid__value {
  font-size: 1.25rem;
  font-weight: 700;
}
.po-banner {
  margin: 0.75rem 0 1rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--chk-warning-border, #f59e0b);
  border-radius: var(--eu-radius, 6px);
  background: var(--chk-warning-bg, #fffbeb);
  color: var(--chk-text, #0f172a);
}

.po-banner__head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  align-items: baseline;
  margin-bottom: 0.5rem;
}

.po-banner__title {
  color: var(--chk-warning-text, #92400e);
}

.po-banner__amount {
  font-weight: 600;
}

.po-banner__bills {
  margin: 0 0 0.5rem;
  padding-left: 1.1rem;
  font-size: 0.875rem;
}

.po-banner__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.po-banner__gate {
  margin-top: 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
/* ============================================================
   Patient Photo — Avatar display + Capture form component
   ============================================================ */

/* ── Avatar (display anywhere) ─────────────────────────────── */

.pt-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  overflow: hidden;
  background: var(--eu-color-primary-100, #dbeafe);
  color: var(--eu-color-primary-700, #1d4ed8);
  font-weight: 600;
  flex-shrink: 0;
  border: 2px solid var(--eu-color-border, #e2e8f0);
}

.pt-avatar--sm  { width: 32px;  height: 32px;  font-size: 11px; }
.pt-avatar--md  { width: 48px;  height: 48px;  font-size: 15px; }
.pt-avatar--lg  { width: 80px;  height: 80px;  font-size: 22px; }

.pt-avatar__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pt-avatar__initials {
  line-height: 1;
  user-select: none;
}

/* ── Capture widget (used inside patient registration / edit form) ─ */

.pt-capture {
  display: grid;
  gap: 16px;
}

.pt-capture__viewport {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  background: var(--eu-color-surface-alt, #f8fafc);
  border: 1.5px solid var(--eu-color-border, #e2e8f0);
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pt-capture__video,
.pt-capture__preview {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
  display: block;
}

.pt-capture__placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: var(--eu-color-text-muted, #94a3b8);
  font-size: 13px;
}

.pt-capture__placeholder-icon {
  font-size: 40px;
  opacity: 0.5;
}

.pt-capture__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.pt-capture__actions .eu-btn {
  flex: 1;
  min-width: 100px;
}

.pt-capture__upload-hint {
  font-size: 12px;
  color: var(--eu-color-text-muted, #94a3b8);
  margin-top: 4px;
}

/* ── Patient card with photo (op billing, walk-in) ─────────── */

.pt-card-with-photo {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}

.pt-card-with-photo__info {
  flex: 1;
  min-width: 0;
}

/* ── op_billing panel header with photo ─────────────────────── */

.opb-panel__head--photo {
  display: flex;
  align-items: center;
  gap: 12px;
}

.opb-panel__head--photo .opb-panel__title-group {
  flex: 1;
  min-width: 0;
}
/* Patient Registration — compact workbench (UI only; scoped to .patient-reg-page) */

.patient-reg-page {
  --reg-field-h: 36px;
  --reg-gap: 10px;
  --reg-section-gap: 12px;
}

.patient-reg-page .eu-page-header {
  margin-bottom: var(--reg-section-gap);
  padding-bottom: 0;
}

.patient-reg-page .eu-page-header__row {
  align-items: center;
  gap: 10px;
}

.patient-reg-page .eu-error-summary {
  margin-bottom: var(--reg-section-gap);
  padding: 10px 12px;
}

/* Progress strip */
.patient-reg-progress {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: var(--reg-section-gap);
  font-size: 0.75rem;
  color: var(--eu-text-secondary, #64748b);
}

.patient-reg-progress__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.patient-reg-sample-btn {
  white-space: nowrap;
}

.patient-reg-sample-loaded {
  margin: -4px 0 var(--reg-section-gap);
  font-size: 0.6875rem;
  color: var(--eu-success, #047857);
}

.patient-reg-progress__label {
  font-weight: 600;
  color: var(--eu-text-primary, #0f172a);
}

.patient-reg-progress__hint {
  font-size: 0.6875rem;
  color: var(--eu-text-muted, #94a3b8);
}

/* Sticky horizontal stepper */
.patient-reg-stepper-wrap {
  position: sticky;
  top: 0;
  z-index: 5;
  margin-bottom: var(--reg-section-gap);
  padding: 6px 0 8px;
  background: color-mix(in srgb, var(--eu-surface, #fff) 92%, transparent);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--eu-border-subtle, #e5e7eb);
}

.patient-reg-stepper {
  display: flex;
  align-items: stretch;
  gap: 4px;
  overflow-x: auto;
  scrollbar-width: thin;
  padding: 2px 0;
  list-style: none;
  margin: 0;
}

.patient-reg-stepper__item {
  flex: 1 1 0;
  min-width: 72px;
  max-width: 160px;
  margin: 0;
}

.patient-reg-stepper__btn {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  min-height: 32px;
  padding: 4px 8px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: 6px;
  background: var(--eu-surface-muted, #f8fafc);
  color: var(--eu-text-secondary, #64748b);
  font-family: inherit;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.2;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.patient-reg-stepper__btn:hover {
  background: var(--eu-surface-raised, #fff);
  border-color: var(--eu-border, #cbd5e1);
}

.patient-reg-stepper__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 999px;
  font-size: 0.625rem;
  font-weight: 700;
  background: var(--eu-surface, #fff);
  color: inherit;
}

.patient-reg-stepper__label {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.patient-reg-stepper__item--current .patient-reg-stepper__btn {
  background: color-mix(in srgb, var(--chk-accent, #0f766e) 8%, white);
  border-color: var(--chk-accent, #0f766e);
  color: var(--chk-accent, #0f766e);
}

.patient-reg-stepper__item--current .patient-reg-stepper__num {
  background: color-mix(in srgb, var(--chk-accent, #0f766e) 18%, white);
}

.patient-reg-stepper__item--done .patient-reg-stepper__btn {
  border-color: #86efac;
  color: #047857;
  background: #f0fdf4;
}

.patient-reg-stepper__item--done .patient-reg-stepper__num {
  background: #dcfce7;
}

/* Section panel */
.patient-reg-main {
  min-width: 0;
}

.patient-reg-panel[hidden] {
  display: none !important;
}

.patient-reg-panel__shell {
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: 8px;
  background: var(--eu-surface, #fff);
  overflow: visible;
}

.patient-reg-panel__header {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 12px;
  border-bottom: 1px solid var(--eu-border-subtle, #e5e7eb);
  background: var(--eu-surface-muted, #f8fafc);
}

.patient-reg-panel__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.375rem;
  height: 1.375rem;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 700;
  background: color-mix(in srgb, var(--chk-accent, #0f766e) 12%, white);
  color: var(--chk-accent, #0f766e);
}

.patient-reg-panel__titles {
  min-width: 0;
  flex: 1;
}

.patient-reg-panel__title {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--eu-text-primary, #0f172a);
}

.patient-reg-panel__desc {
  margin: 2px 0 0;
  font-size: 0.6875rem;
  line-height: 1.35;
  color: var(--eu-text-secondary, #64748b);
}

.patient-reg-panel__body {
  padding: 10px 12px 12px;
  overflow: visible;
}

.patient-reg-page .patient-reg-form .eu-field {
  overflow: visible;
}

/* Native selects — PEUF .eu-input uses appearance:none globally; restore on registration */
.patient-reg-page .patient-reg-form select {
  appearance: menulist !important;
  -webkit-appearance: menulist-button !important;
  cursor: pointer;
  width: 100%;
  max-width: 100%;
  height: var(--reg-field-h);
  min-height: var(--reg-field-h);
  padding: 4px 24px 4px 10px;
  font-size: 0.8125rem;
  line-height: normal;
  background-color: var(--eu-surface, #fff) !important;
  background-image: none !important;
  box-sizing: border-box;
}

.patient-reg-page .patient-reg-form select:disabled {
  cursor: not-allowed;
  opacity: 0.65;
}

/* Compact form density */
.patient-reg-page .patient-reg-form .eu-grid {
  gap: var(--reg-gap);
}

.patient-reg-page .patient-reg-form .eu-field {
  gap: 4px;
}

.patient-reg-page .patient-reg-form .eu-label {
  font-size: 0.625rem;
  letter-spacing: 0.08em;
}

.patient-reg-page .patient-reg-form .eu-input:not(select),
.patient-reg-page .patient-reg-form .eu-textarea {
  min-height: var(--reg-field-h);
  padding: 6px 10px;
  font-size: 0.8125rem;
}

.patient-reg-page .patient-reg-form select {
  font-size: 0.8125rem;
}

.patient-reg-page .patient-reg-form .eu-textarea {
  min-height: 64px;
}

.patient-reg-page .patient-reg-form .eu-field-hint,
.patient-reg-page .patient-reg-form .eu-field-error {
  font-size: 0.6875rem;
}

.patient-reg-page .patient-reg-form .eu-service-number-grid {
  grid-template-columns: 100px 1fr 100px;
  gap: var(--reg-gap);
}

.patient-reg-page .patient-reg-form .eu-address-toolbar {
  margin: -4px 0 8px;
}

.patient-reg-page .patient-reg-form .eu-section-header {
  margin-bottom: 8px;
}

.patient-reg-page .patient-reg-form .eu-section-title {
  font-size: 0.8125rem;
  font-weight: 700;
}

/* Address sub-blocks */
.patient-reg-address-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--reg-gap);
}

.patient-reg-address-block {
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: 6px;
  padding: 8px 10px;
  background: var(--eu-surface-muted, #fafafa);
}

.patient-reg-address-block__title {
  margin: 0 0 8px;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eu-text-secondary, #64748b);
}

/* Visit booking */
.patient-reg-visit-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: var(--reg-gap);
  margin-top: 8px;
}

.patient-reg-visit-toolbar .eu-field {
  flex: 1 1 180px;
  min-width: 0;
}

.patient-reg-visit-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
}

.patient-reg-page .patient-reg-form .eu-table {
  font-size: 0.75rem;
  margin-top: 8px;
}

.patient-reg-page .patient-reg-form .eu-table th,
.patient-reg-page .patient-reg-form .eu-table td {
  padding: 6px 8px;
}

/* Review step */
.patient-reg-review {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid var(--eu-border-subtle, #e5e7eb);
  border-radius: 8px;
  background: var(--eu-surface-muted, #f8fafc);
}

.patient-reg-review__title {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
}

.patient-reg-review__subtitle {
  margin: 2px 0 0;
  font-size: 0.6875rem;
  color: var(--eu-text-secondary, #64748b);
}

.patient-reg-review__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

/* Completed step summaries (collapsed chips) */
.patient-reg-done-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: var(--reg-section-gap);
}

.patient-reg-done-strip:empty {
  display: none;
}

.patient-reg-done-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  padding: 3px 8px;
  border: 1px solid #86efac;
  border-radius: 999px;
  background: #f0fdf4;
  color: #047857;
  font-size: 0.6875rem;
  font-weight: 600;
  cursor: pointer;
}

.patient-reg-done-chip:hover {
  background: #dcfce7;
}

.patient-reg-done-chip__label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.patient-reg-page .patient-reg-form [data-controller="patient-photo"] {
  gap: 8px;
}

.patient-reg-page .patient-reg-form [data-controller="patient-photo"] > div:first-of-type {
  width: 56px !important;
  height: 56px !important;
}

.patient-reg-page .patient-reg-form [data-controller="patient-photo"] button {
  padding: 4px 8px !important;
  font-size: 11px !important;
}

@media (max-width: 992px) {
  .patient-reg-address-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .patient-reg-stepper__item {
    min-width: 56px;
    max-width: none;
  }

  .patient-reg-stepper__label {
    display: none;
  }

  .patient-reg-stepper__btn {
    justify-content: center;
    padding: 4px 6px;
  }

  .patient-reg-progress {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* —— Success / registration details print —— */
.patient-reg-success__toolbar {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 16px;
}

.patient-reg-success__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.patient-reg-print {
  background: #fff;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: 12px;
  padding: 20px 24px;
  color: #0f172a;
}

.patient-reg-print__header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  border-bottom: 2px solid #0f172a;
  padding-bottom: 12px;
  margin-bottom: 16px;
}

.patient-reg-print__hospital {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 700;
}

.patient-reg-print__doc-title {
  margin: 4px 0 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: #334155;
}

.patient-reg-print__meta {
  margin: 4px 0 0;
  font-size: 0.75rem;
  color: #64748b;
}

.patient-reg-print__qr {
  text-align: center;
}

.patient-reg-print__qr-caption {
  display: block;
  margin-top: 4px;
  font-family: ui-monospace, monospace;
  font-size: 0.75rem;
  font-weight: 600;
}

.patient-reg-print__banner {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  align-items: center;
  margin-bottom: 16px;
  padding: 12px;
  background: #f8fafc;
  border-radius: 8px;
}

.patient-reg-print__id-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 16px;
  margin: 0;
}

.patient-reg-print__id-grid dt,
.patient-reg-print__grid dt {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #64748b;
  margin: 0;
}

.patient-reg-print__id-grid dd,
.patient-reg-print__grid dd {
  margin: 2px 0 0;
  font-size: 0.9rem;
  font-weight: 600;
}

.patient-reg-print__uhid {
  font-family: ui-monospace, monospace;
  font-size: 1.05rem !important;
}

.patient-reg-print__section {
  margin-bottom: 14px;
  break-inside: avoid;
}

.patient-reg-print__section h2 {
  margin: 0 0 8px;
  font-size: 0.85rem;
  font-weight: 700;
  color: #1e293b;
  border-bottom: 1px solid #e2e8f0;
  padding-bottom: 4px;
}

.patient-reg-print__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 16px;
  margin: 0;
}

.patient-reg-print__span-2 {
  grid-column: 1 / -1;
}

.patient-reg-print__visit {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px dashed #e2e8f0;
}

.patient-reg-print__note {
  font-size: 0.85rem;
  color: #64748b;
}

.patient-reg-print__footer {
  display: flex;
  justify-content: space-between;
  margin-top: 20px;
  padding-top: 10px;
  border-top: 1px solid #e2e8f0;
  font-size: 0.75rem;
  color: #64748b;
}

.patient-reg-print-receipt {
  margin-top: 24px;
}

.patient-reg-print-receipt__label {
  margin: 0 0 8px;
  font-size: 0.85rem;
  font-weight: 600;
  color: #334155;
}

@media print {
  .patient-reg-success__toolbar,
  .print\\:hidden,
  .eu-flash,
  .app-sidebar,
  .app-header,
  nav,
  .no-print {
    display: none !important;
  }

  .patient-reg-page,
  .patient-reg-print {
    border: none;
    box-shadow: none;
    padding: 0;
    margin: 0;
    max-width: none;
  }

  .patient-reg-print__banner {
    background: transparent;
  }

  .patient-reg-print-receipt {
    margin-top: 0;
    padding-top: 0;
    page-break-before: always;
    break-before: page;
  }

  .patient-reg-print-receipt .receipt-doc {
    box-shadow: none;
    border: none;
  }
}

/* Patient Revisit — shared with OPD walk-in visual language via --eu-* tokens */
.prv-page .prv-kind-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.prv-page .prv-meta {
  margin-top: 12px;
  font-size: 13px;
  color: var(--eu-text-muted, #64748b);
}

.prv-page .prv-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 16px;
}

.prv-page .prv-banner {
  margin-bottom: 16px;
  padding: 12px 16px;
  border-radius: 8px;
}

.prv-page .prv-banner--success {
  border-left: 4px solid var(--eu-success, #16a34a);
  background: color-mix(in srgb, var(--eu-success, #16a34a) 8%, transparent);
}

.prv-page .prv-recent--fresh td {
  font-weight: 600;
}

.prv-page .prv-mlc-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
  font-size: 14px;
}
/* Exchange rates admin */
.peuf-fx-rates__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
/* Patient Print Workbench — dense find + hub + print products */

/* ── Workbench shell ──────────────────────────────────────────── */

.ppc-workbench,
.ppc-workspace {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-bottom: 24px;
}

.ppc-workbench .eu-page-header,
.ppc-workspace__search .eu-page-header {
  margin-bottom: 4px;
}

.ppc-workbench .eu-search-page__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Scan field emphasis (dense adaptive grid otherwise from PEUF) */
.ppc-search-compact__scan .eu-label {
  color: var(--eu-accent, #0f766e);
}

.ppc-search-compact__scan-input {
  border-color: color-mix(in srgb, var(--eu-accent, #0f766e) 45%, #cbd5e1);
  background: color-mix(in srgb, var(--eu-accent, #0f766e) 6%, #fff);
}

/* ── Results + empty / idle ───────────────────────────────────── */

.ppc-results__row--selected {
  background: color-mix(in srgb, var(--eu-accent, #0f766e) 8%, #fff);
}

.ppc-results__empty,
.ppc-results__idle .eu-empty {
  padding: 24px 16px 28px;
}

/* ── Selected patient hub ─────────────────────────────────────── */

.ppc-hub {
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
  padding: 14px 16px 16px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.ppc-hub__patient {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
  margin-bottom: 12px;
}

.ppc-hub__uhid {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--eu-accent, #0f766e);
  text-transform: uppercase;
}

.ppc-hub__name {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
}

.ppc-hub__meta {
  margin-top: 2px;
  font-size: 0.8125rem;
  color: #64748b;
}

.ppc-hub__status {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.ppc-hub__badge {
  display: inline-flex;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #0f766e;
  background: #ccfbf1;
}

.ppc-hub__actions-title {
  margin: 0 0 10px;
  font-size: 0.8rem;
  font-weight: 700;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.ppc-hub__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px;
}

.ppc-hub__tile {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 12px 14px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.12s ease, background 0.12s ease, box-shadow 0.12s ease;
}

.ppc-hub__tile:hover {
  border-color: #99f6e4;
  background: #fff;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}

.ppc-hub__tile--primary {
  border-color: color-mix(in srgb, var(--eu-accent, #0f766e) 35%, #e2e8f0);
  background: color-mix(in srgb, var(--eu-accent, #0f766e) 8%, #fff);
}

.ppc-hub__tile--disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.ppc-hub__tile-label {
  font-size: 0.875rem;
  font-weight: 700;
  color: #0f172a;
}

.ppc-hub__tile-hint {
  font-size: 0.72rem;
  color: #64748b;
  line-height: 1.35;
}

.ppc-hub__recent {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #e2e8f0;
}

.ppc-hub__recent-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ppc-hub__recent-link {
  display: inline-flex;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid #e2e8f0;
  font-size: 0.75rem;
  font-weight: 600;
  color: #334155;
  text-decoration: none;
  background: #fff;
}

.ppc-hub__recent-link:hover {
  border-color: #99f6e4;
  color: #0f766e;
}

.ppc-preview-panel {
  padding: 0;
}

/* ── Visit slip ───────────────────────────────────────────────── */

.ppc-slip-page {
  padding: 16px;
}

.ppc-slip {
  max-width: 420px;
  margin: 0 auto;
  padding: 18px 20px;
  border: 1px solid #0f172a;
  background: #fff;
}

.ppc-slip__hospital {
  font-size: 0.95rem;
  font-weight: 700;
  text-align: center;
}

.ppc-slip__title {
  margin: 6px 0 14px;
  font-size: 0.8rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #475569;
}

.ppc-slip__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 14px;
}

.ppc-slip__label {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
}

.ppc-slip__value {
  font-size: 0.875rem;
  color: #0f172a;
}

.ppc-slip__value--strong {
  font-weight: 700;
  font-size: 1rem;
}

.ppc-slip__qr {
  margin-top: 14px;
  text-align: center;
}

.ppc-slip__footer {
  margin-top: 10px;
  font-size: 0.7rem;
  text-align: center;
  color: #64748b;
}

.ppc-consent-label__tag {
  display: inline-block;
  margin-bottom: 4px;
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #9a3412;
  background: #ffedd5;
  border: 1px solid #fdba74;
}

/* ── ID card preview + options ────────────────────────────────── */

.ppc-preview {
  max-width: 760px;
}

.ppc-preview__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px;
  margin-bottom: 14px;
}

.ppc-preview__titles {
  flex: 1 1 180px;
  min-width: 0;
}

.ppc-preview__title {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--eu-text, #0f172a);
}

.ppc-preview__subtitle {
  margin: 2px 0 0;
  font-size: 0.8125rem;
  color: var(--eu-text-muted, #64748b);
}

.ppc-preview__options {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px;
}

.ppc-preview__field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 0.75rem;
  font-weight: 600;
  color: #475569;
}

.ppc-preview__field .eu-input,
.ppc-preview__field select {
  min-width: 140px;
  font-weight: 500;
}

.ppc-card {
  display: grid;
  grid-template-columns: 110px 1fr auto;
  gap: 16px 20px;
  align-items: start;
  padding: 18px 20px;
  border: 1px solid #0f172a;
  background: #fff;
  color: #0f172a;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
}

.ppc-preview[data-paper="cr80"] .ppc-card {
  max-width: 86mm;
}

.ppc-card__photo {
  width: 110px;
  height: 130px;
  border: 1px solid #94a3b8;
  background: #e2e8f0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ppc-card__photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ppc-card__photo-fallback {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, #cbd5e1 0%, #94a3b8 100%);
}

.ppc-card__photo-initials {
  font-size: 1.75rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #f8fafc;
}

.ppc-card__fields {
  margin: 0;
}

.ppc-card__row {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 6px 10px;
  margin: 0 0 6px;
  font-size: 0.875rem;
  line-height: 1.35;
}

.ppc-card__row dt {
  margin: 0;
  font-weight: 600;
  color: #334155;
}

.ppc-card__row dd {
  margin: 0;
  font-weight: 700;
  color: #0f172a;
  word-break: break-word;
}

.ppc-card__row dd::before {
  content: ": ";
  font-weight: 600;
  color: #64748b;
  margin-right: 2px;
}

.ppc-card__instruction {
  margin: 12px 0 0;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #0f172a;
  line-height: 1.35;
}

.ppc-card__qr {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  min-width: 110px;
}

.ppc-card__qr svg {
  width: 110px;
  height: 110px;
  display: block;
}

.ppc-card__qr-caption {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.6875rem;
  font-weight: 600;
  color: #475569;
  text-align: center;
  max-width: 120px;
  word-break: break-all;
}

/* ── OP Labels (A4, 3 columns) ────────────────────────────────── */

.ppc-op-page {
  padding: 16px;
}

.ppc-op-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px;
  margin-bottom: 16px;
}

.ppc-op-toolbar__titles {
  flex: 1 1 200px;
  min-width: 0;
}

.ppc-op-toolbar__title {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 700;
}

.ppc-op-toolbar__subtitle {
  margin: 2px 0 0;
  font-size: 0.8125rem;
  color: #64748b;
}

.ppc-op-toolbar__form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px;
}

.ppc-op-sheet {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3mm;
}

.ppc-op-label {
  display: grid;
  grid-template-columns: 1fr 52px;
  gap: 4px;
  align-items: center;
  min-height: 32mm;
  padding: 3mm 3.5mm;
  border: 1px dashed #94a3b8;
  background: #fff;
  color: #0f172a;
  break-inside: avoid;
  page-break-inside: avoid;
}

.ppc-op-label__uhid {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.75rem;
  font-weight: 800;
}

.ppc-op-label__name {
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.25;
}

.ppc-op-label__meta {
  font-size: 0.65rem;
  color: #334155;
  line-height: 1.25;
}

.ppc-op-label__qr {
  display: flex;
  justify-content: center;
}

.ppc-op-label__qr svg {
  width: 48px;
  height: 48px;
}

/* ── Patient barcode printer labels ───────────────────────────── */

.ppc-bc-page {
  padding: 16px;
}

.ppc-bc-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px;
  margin-bottom: 16px;
}

.ppc-bc-toolbar__titles {
  flex: 1 1 200px;
  min-width: 0;
}

.ppc-bc-toolbar__title {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 700;
}

.ppc-bc-toolbar__subtitle {
  margin: 2px 0 0;
  font-size: 0.8125rem;
  color: #64748b;
}

.ppc-bc-toolbar__form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px;
}

.ppc-bc-sheet {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ppc-bc-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 3mm;
  border: 1px dashed #94a3b8;
  background: #fff;
  color: #0f172a;
  break-inside: avoid;
  page-break-inside: avoid;
  box-sizing: border-box;
}

.ppc-bc-sheet--50x25 .ppc-bc-label { width: 50mm; height: 25mm; }
.ppc-bc-sheet--40x30 .ppc-bc-label { width: 40mm; height: 30mm; }
.ppc-bc-sheet--58x40 .ppc-bc-label { width: 58mm; height: 40mm; }
.ppc-bc-sheet--80x50 .ppc-bc-label { width: 80mm; height: 50mm; }

.ppc-bc-label__meta {
  width: 100%;
  text-align: center;
  line-height: 1.15;
}

.ppc-bc-label__uhid {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.7rem;
  font-weight: 800;
}

.ppc-bc-label__name {
  font-size: 0.62rem;
  font-weight: 600;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ppc-bc-label__age {
  font-size: 0.58rem;
  color: #475569;
}

.ppc-bc-label__symbol {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  flex: 1;
}

.ppc-bc-label__img {
  max-width: 100%;
  height: auto;
  display: block;
  image-rendering: pixelated;
}

.ppc-bc-label__img--code128,
.ppc-bc-label__img--code39 {
  max-height: 14mm;
  width: 100%;
  object-fit: contain;
}

.ppc-bc-label__img--qr,
.ppc-bc-label__img--datamatrix {
  max-height: 22mm;
  max-width: 22mm;
}

.ppc-bc-label__caption {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.58rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.ppc-bc-label__error {
  margin: 0;
  font-size: 0.65rem;
  color: #b91c1c;
}

/* ── MRD file label (EMR_3) ─────────────────────────────────── */

.mfl-page {
  padding: 16px;
}

.mfl-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px;
  margin-bottom: 16px;
}

.mfl-toolbar__titles {
  flex: 1 1 220px;
  min-width: 0;
}

.mfl-toolbar__title {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 700;
}

.mfl-toolbar__subtitle {
  margin: 2px 0 0;
  font-size: 0.8125rem;
  color: #64748b;
}

.mfl-toolbar__form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px;
}

.mfl-toolbar__hint {
  flex: 1 1 100%;
  margin: 0;
  font-size: 0.75rem;
  color: #64748b;
}

.mfl-sheet {
  display: flex;
  flex-wrap: wrap;
  gap: 4mm;
}

.mfl-label {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  padding: 1.5mm;
  border: 0.2mm solid #cbd5e1;
  overflow: hidden;
  font-family: system-ui, sans-serif;
  background: #fff;
}

.mfl-sheet--50x25 .mfl-label { width: 50mm; height: 25mm; }
.mfl-sheet--40x30 .mfl-label { width: 40mm; height: 30mm; }
.mfl-sheet--58x40 .mfl-label { width: 58mm; height: 40mm; }
.mfl-sheet--80x50 .mfl-label { width: 80mm; height: 50mm; }

.mfl-label__head {
  display: flex;
  justify-content: space-between;
  gap: 2mm;
  font-size: 0.55rem;
  font-weight: 700;
  line-height: 1.1;
}

.mfl-label__hospital {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mfl-label__uhid {
  font-family: "JetBrains Mono", ui-monospace, monospace;
}

.mfl-label__meta {
  flex: 0 0 auto;
  font-size: 0.5rem;
  line-height: 1.15;
}

.mfl-label__name {
  font-weight: 600;
  margin-bottom: 0.5mm;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mfl-label__line {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mfl-label__symbol {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
}

.mfl-label__img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.mfl-label__img--code128,
.mfl-label__img--code39 {
  width: 100%;
  height: auto;
}

.mfl-label__img--qr,
.mfl-label__img--datamatrix {
  width: auto;
  height: 100%;
}

.mfl-label__caption {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.48rem;
  font-weight: 600;
  text-align: center;
}

.mfl-label__error {
  margin: 0;
  font-size: 0.55rem;
  color: #b91c1c;
}

/* ── Wrist band (FO + future IP) ──────────────────────────────── */

.ppc-wb-page {
  padding: 16px;
}

.ppc-wb-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px;
  margin-bottom: 16px;
}

.ppc-wb-toolbar__titles {
  flex: 1 1 220px;
  min-width: 0;
}

.ppc-wb-toolbar__title {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 700;
}

.ppc-wb-toolbar__subtitle {
  margin: 2px 0 0;
  font-size: 0.8125rem;
  color: #64748b;
}

.ppc-wb-toolbar__form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px;
}

.ppc-wb-sheet {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ppc-wb-band {
  width: var(--wb-w, 280mm);
  height: var(--wb-h, 25mm);
  max-width: 100%;
  box-sizing: border-box;
  padding: 1.5mm 3mm;
  border: 1px solid #0f172a;
  background: #fff;
  color: #0f172a;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1mm;
  break-inside: avoid;
  page-break-inside: avoid;
}

.ppc-wb-band--ip {
  border-width: 2px;
  border-color: #b45309;
}

.ppc-wb-band__hospital {
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #475569;
}

.ppc-wb-band__body {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4mm;
  align-items: center;
}

.ppc-wb-band__uhid {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.78rem;
  font-weight: 800;
}

.ppc-wb-band__name {
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.15;
}

.ppc-wb-band__meta,
.ppc-wb-band__ward,
.ppc-wb-band__ctx {
  font-size: 0.58rem;
  line-height: 1.2;
  color: #334155;
}

.ppc-wb-band__ctx {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.ppc-wb-band__symbol {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
}

.ppc-wb-band__img--code128 {
  height: 10mm;
  max-width: 55mm;
  object-fit: contain;
}

.ppc-wb-band__img--qr {
  height: 16mm;
  width: 16mm;
  object-fit: contain;
}

.ppc-wb-band__caption {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.5rem;
  font-weight: 600;
}

.ppc-wb-hint {
  margin-top: 12px;
  font-size: 0.8125rem;
  color: #64748b;
  max-width: 640px;
}

@media (max-width: 640px) {
  .ppc-card {
    grid-template-columns: 90px 1fr;
  }

  .ppc-card__qr {
    grid-column: 1 / -1;
    flex-direction: row;
    justify-content: flex-start;
  }

  .ppc-op-sheet {
    grid-template-columns: 1fr;
  }
}

/* ── Print ────────────────────────────────────────────────────── */

@media print {
  body * {
    visibility: hidden;
  }

  .ppc-card,
  .ppc-card *,
  .ppc-op-sheet,
  .ppc-op-sheet *,
  .ppc-bc-sheet,
  .mfl-sheet,
  .ppc-bc-sheet *,
  .mfl-sheet *,
  .ppc-wb-sheet,
  .ppc-wb-sheet *,
  .ppc-slip,
  .ppc-slip * {
    visibility: visible;
  }

  .ppc-card,
  .ppc-slip {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    max-width: none;
    box-shadow: none;
  }

  .ppc-op-sheet,
  .ppc-bc-sheet,
  .mfl-sheet,
  .ppc-wb-sheet {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
  }

  .ppc-op-label,
  .ppc-bc-label,
  .mfl-label,
  .ppc-wb-band {
    border-style: solid;
  }

  .ppc-workbench__search,
  .ppc-workbench__hub,
  .ppc-workbench__results,
  .ppc-workspace__search,
  .ppc-preview__toolbar,
  .ppc-op-toolbar,
  .ppc-bc-toolbar,
  .mfl-toolbar,
  .ppc-wb-toolbar,
  .ppc-wb-hint,
  .app-shell__sidebar,
  .app-sidebar,
  .app-shell__topbar,
  .app-topbar,
  .eu-request-timing,
  .ai-chat-widget,
  #page-loader {
    display: none !important;
  }
}
/*!
 * Quill Editor v1.3.7
 * https://quilljs.com/
 * Copyright (c) 2014, Jason Chen
 * Copyright (c) 2013, salesforce.com
 */
.ql-container {
  box-sizing: border-box;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 13px;
  height: 100%;
  margin: 0px;
  position: relative;
}
.ql-container.ql-disabled .ql-tooltip {
  visibility: hidden;
}
.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {
  pointer-events: none;
}
.ql-clipboard {
  left: -100000px;
  height: 1px;
  overflow-y: hidden;
  position: absolute;
  top: 50%;
}
.ql-clipboard p {
  margin: 0;
  padding: 0;
}
.ql-editor {
  box-sizing: border-box;
  line-height: 1.42;
  height: 100%;
  outline: none;
  overflow-y: auto;
  padding: 12px 15px;
  tab-size: 4;
  -moz-tab-size: 4;
  text-align: left;
  white-space: pre-wrap;
  word-wrap: break-word;
}
.ql-editor > * {
  cursor: text;
}
.ql-editor p,
.ql-editor ol,
.ql-editor ul,
.ql-editor pre,
.ql-editor blockquote,
.ql-editor h1,
.ql-editor h2,
.ql-editor h3,
.ql-editor h4,
.ql-editor h5,
.ql-editor h6 {
  margin: 0;
  padding: 0;
  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol,
.ql-editor ul {
  padding-left: 1.5em;
}
.ql-editor ol > li,
.ql-editor ul > li {
  list-style-type: none;
}
.ql-editor ul > li::before {
  content: '\2022';
}
.ql-editor ul[data-checked=true],
.ql-editor ul[data-checked=false] {
  pointer-events: none;
}
.ql-editor ul[data-checked=true] > li *,
.ql-editor ul[data-checked=false] > li * {
  pointer-events: all;
}
.ql-editor ul[data-checked=true] > li::before,
.ql-editor ul[data-checked=false] > li::before {
  color: #777;
  cursor: pointer;
  pointer-events: all;
}
.ql-editor ul[data-checked=true] > li::before {
  content: '\2611';
}
.ql-editor ul[data-checked=false] > li::before {
  content: '\2610';
}
.ql-editor li::before {
  display: inline-block;
  white-space: nowrap;
  width: 1.2em;
}
.ql-editor li:not(.ql-direction-rtl)::before {
  margin-left: -1.5em;
  margin-right: 0.3em;
  text-align: right;
}
.ql-editor li.ql-direction-rtl::before {
  margin-left: 0.3em;
  margin-right: -1.5em;
}
.ql-editor ol li:not(.ql-direction-rtl),
.ql-editor ul li:not(.ql-direction-rtl) {
  padding-left: 1.5em;
}
.ql-editor ol li.ql-direction-rtl,
.ql-editor ul li.ql-direction-rtl {
  padding-right: 1.5em;
}
.ql-editor ol li {
  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
  counter-increment: list-0;
}
.ql-editor ol li:before {
  content: counter(list-0, decimal) '. ';
}
.ql-editor ol li.ql-indent-1 {
  counter-increment: list-1;
}
.ql-editor ol li.ql-indent-1:before {
  content: counter(list-1, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-1 {
  counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-2 {
  counter-increment: list-2;
}
.ql-editor ol li.ql-indent-2:before {
  content: counter(list-2, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-2 {
  counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-3 {
  counter-increment: list-3;
}
.ql-editor ol li.ql-indent-3:before {
  content: counter(list-3, decimal) '. ';
}
.ql-editor ol li.ql-indent-3 {
  counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-4 {
  counter-increment: list-4;
}
.ql-editor ol li.ql-indent-4:before {
  content: counter(list-4, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-4 {
  counter-reset: list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-5 {
  counter-increment: list-5;
}
.ql-editor ol li.ql-indent-5:before {
  content: counter(list-5, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-5 {
  counter-reset: list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-6 {
  counter-increment: list-6;
}
.ql-editor ol li.ql-indent-6:before {
  content: counter(list-6, decimal) '. ';
}
.ql-editor ol li.ql-indent-6 {
  counter-reset: list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-7 {
  counter-increment: list-7;
}
.ql-editor ol li.ql-indent-7:before {
  content: counter(list-7, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-7 {
  counter-reset: list-8 list-9;
}
.ql-editor ol li.ql-indent-8 {
  counter-increment: list-8;
}
.ql-editor ol li.ql-indent-8:before {
  content: counter(list-8, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-8 {
  counter-reset: list-9;
}
.ql-editor ol li.ql-indent-9 {
  counter-increment: list-9;
}
.ql-editor ol li.ql-indent-9:before {
  content: counter(list-9, decimal) '. ';
}
.ql-editor .ql-indent-1:not(.ql-direction-rtl) {
  padding-left: 3em;
}
.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {
  padding-left: 4.5em;
}
.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {
  padding-right: 3em;
}
.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {
  padding-right: 4.5em;
}
.ql-editor .ql-indent-2:not(.ql-direction-rtl) {
  padding-left: 6em;
}
.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {
  padding-left: 7.5em;
}
.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {
  padding-right: 6em;
}
.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {
  padding-right: 7.5em;
}
.ql-editor .ql-indent-3:not(.ql-direction-rtl) {
  padding-left: 9em;
}
.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {
  padding-left: 10.5em;
}
.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {
  padding-right: 9em;
}
.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {
  padding-right: 10.5em;
}
.ql-editor .ql-indent-4:not(.ql-direction-rtl) {
  padding-left: 12em;
}
.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {
  padding-left: 13.5em;
}
.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {
  padding-right: 12em;
}
.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {
  padding-right: 13.5em;
}
.ql-editor .ql-indent-5:not(.ql-direction-rtl) {
  padding-left: 15em;
}
.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {
  padding-left: 16.5em;
}
.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {
  padding-right: 15em;
}
.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {
  padding-right: 16.5em;
}
.ql-editor .ql-indent-6:not(.ql-direction-rtl) {
  padding-left: 18em;
}
.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {
  padding-left: 19.5em;
}
.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {
  padding-right: 18em;
}
.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {
  padding-right: 19.5em;
}
.ql-editor .ql-indent-7:not(.ql-direction-rtl) {
  padding-left: 21em;
}
.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {
  padding-left: 22.5em;
}
.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {
  padding-right: 21em;
}
.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {
  padding-right: 22.5em;
}
.ql-editor .ql-indent-8:not(.ql-direction-rtl) {
  padding-left: 24em;
}
.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {
  padding-left: 25.5em;
}
.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {
  padding-right: 24em;
}
.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {
  padding-right: 25.5em;
}
.ql-editor .ql-indent-9:not(.ql-direction-rtl) {
  padding-left: 27em;
}
.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {
  padding-left: 28.5em;
}
.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {
  padding-right: 27em;
}
.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {
  padding-right: 28.5em;
}
.ql-editor .ql-video {
  display: block;
  max-width: 100%;
}
.ql-editor .ql-video.ql-align-center {
  margin: 0 auto;
}
.ql-editor .ql-video.ql-align-right {
  margin: 0 0 0 auto;
}
.ql-editor .ql-bg-black {
  background-color: #000;
}
.ql-editor .ql-bg-red {
  background-color: #e60000;
}
.ql-editor .ql-bg-orange {
  background-color: #f90;
}
.ql-editor .ql-bg-yellow {
  background-color: #ff0;
}
.ql-editor .ql-bg-green {
  background-color: #008a00;
}
.ql-editor .ql-bg-blue {
  background-color: #06c;
}
.ql-editor .ql-bg-purple {
  background-color: #93f;
}
.ql-editor .ql-color-white {
  color: #fff;
}
.ql-editor .ql-color-red {
  color: #e60000;
}
.ql-editor .ql-color-orange {
  color: #f90;
}
.ql-editor .ql-color-yellow {
  color: #ff0;
}
.ql-editor .ql-color-green {
  color: #008a00;
}
.ql-editor .ql-color-blue {
  color: #06c;
}
.ql-editor .ql-color-purple {
  color: #93f;
}
.ql-editor .ql-font-serif {
  font-family: Georgia, Times New Roman, serif;
}
.ql-editor .ql-font-monospace {
  font-family: Monaco, Courier New, monospace;
}
.ql-editor .ql-size-small {
  font-size: 0.75em;
}
.ql-editor .ql-size-large {
  font-size: 1.5em;
}
.ql-editor .ql-size-huge {
  font-size: 2.5em;
}
.ql-editor .ql-direction-rtl {
  direction: rtl;
  text-align: inherit;
}
.ql-editor .ql-align-center {
  text-align: center;
}
.ql-editor .ql-align-justify {
  text-align: justify;
}
.ql-editor .ql-align-right {
  text-align: right;
}
.ql-editor.ql-blank::before {
  color: rgba(0,0,0,0.6);
  content: attr(data-placeholder);
  font-style: italic;
  left: 15px;
  pointer-events: none;
  position: absolute;
  right: 15px;
}
.ql-snow.ql-toolbar:after,
.ql-snow .ql-toolbar:after {
  clear: both;
  content: '';
  display: table;
}
.ql-snow.ql-toolbar button,
.ql-snow .ql-toolbar button {
  background: none;
  border: none;
  cursor: pointer;
  display: inline-block;
  float: left;
  height: 24px;
  padding: 3px 5px;
  width: 28px;
}
.ql-snow.ql-toolbar button svg,
.ql-snow .ql-toolbar button svg {
  float: left;
  height: 100%;
}
.ql-snow.ql-toolbar button:active:hover,
.ql-snow .ql-toolbar button:active:hover {
  outline: none;
}
.ql-snow.ql-toolbar input.ql-image[type=file],
.ql-snow .ql-toolbar input.ql-image[type=file] {
  display: none;
}
.ql-snow.ql-toolbar button:hover,
.ql-snow .ql-toolbar button:hover,
.ql-snow.ql-toolbar button:focus,
.ql-snow .ql-toolbar button:focus,
.ql-snow.ql-toolbar button.ql-active,
.ql-snow .ql-toolbar button.ql-active,
.ql-snow.ql-toolbar .ql-picker-label:hover,
.ql-snow .ql-toolbar .ql-picker-label:hover,
.ql-snow.ql-toolbar .ql-picker-label.ql-active,
.ql-snow .ql-toolbar .ql-picker-label.ql-active,
.ql-snow.ql-toolbar .ql-picker-item:hover,
.ql-snow .ql-toolbar .ql-picker-item:hover,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected {
  color: #06c;
}
.ql-snow.ql-toolbar button:hover .ql-fill,
.ql-snow .ql-toolbar button:hover .ql-fill,
.ql-snow.ql-toolbar button:focus .ql-fill,
.ql-snow .ql-toolbar button:focus .ql-fill,
.ql-snow.ql-toolbar button.ql-active .ql-fill,
.ql-snow .ql-toolbar button.ql-active .ql-fill,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,
.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,
.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,
.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,
.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,
.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,
.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {
  fill: #06c;
}
.ql-snow.ql-toolbar button:hover .ql-stroke,
.ql-snow .ql-toolbar button:hover .ql-stroke,
.ql-snow.ql-toolbar button:focus .ql-stroke,
.ql-snow .ql-toolbar button:focus .ql-stroke,
.ql-snow.ql-toolbar button.ql-active .ql-stroke,
.ql-snow .ql-toolbar button.ql-active .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
.ql-snow.ql-toolbar button:hover .ql-stroke-miter,
.ql-snow .ql-toolbar button:hover .ql-stroke-miter,
.ql-snow.ql-toolbar button:focus .ql-stroke-miter,
.ql-snow .ql-toolbar button:focus .ql-stroke-miter,
.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,
.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {
  stroke: #06c;
}
@media (pointer: coarse) {
  .ql-snow.ql-toolbar button:hover:not(.ql-active),
  .ql-snow .ql-toolbar button:hover:not(.ql-active) {
    color: #444;
  }
  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,
  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,
  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,
  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {
    fill: #444;
  }
  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,
  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,
  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,
  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {
    stroke: #444;
  }
}
.ql-snow {
  box-sizing: border-box;
}
.ql-snow * {
  box-sizing: border-box;
}
.ql-snow .ql-hidden {
  display: none;
}
.ql-snow .ql-out-bottom,
.ql-snow .ql-out-top {
  visibility: hidden;
}
.ql-snow .ql-tooltip {
  position: absolute;
  transform: translateY(10px);
}
.ql-snow .ql-tooltip a {
  cursor: pointer;
  text-decoration: none;
}
.ql-snow .ql-tooltip.ql-flip {
  transform: translateY(-10px);
}
.ql-snow .ql-formats {
  display: inline-block;
  vertical-align: middle;
}
.ql-snow .ql-formats:after {
  clear: both;
  content: '';
  display: table;
}
.ql-snow .ql-stroke {
  fill: none;
  stroke: #444;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}
.ql-snow .ql-stroke-miter {
  fill: none;
  stroke: #444;
  stroke-miterlimit: 10;
  stroke-width: 2;
}
.ql-snow .ql-fill,
.ql-snow .ql-stroke.ql-fill {
  fill: #444;
}
.ql-snow .ql-empty {
  fill: none;
}
.ql-snow .ql-even {
  fill-rule: evenodd;
}
.ql-snow .ql-thin,
.ql-snow .ql-stroke.ql-thin {
  stroke-width: 1;
}
.ql-snow .ql-transparent {
  opacity: 0.4;
}
.ql-snow .ql-direction svg:last-child {
  display: none;
}
.ql-snow .ql-direction.ql-active svg:last-child {
  display: inline;
}
.ql-snow .ql-direction.ql-active svg:first-child {
  display: none;
}
.ql-snow .ql-editor h1 {
  font-size: 2em;
}
.ql-snow .ql-editor h2 {
  font-size: 1.5em;
}
.ql-snow .ql-editor h3 {
  font-size: 1.17em;
}
.ql-snow .ql-editor h4 {
  font-size: 1em;
}
.ql-snow .ql-editor h5 {
  font-size: 0.83em;
}
.ql-snow .ql-editor h6 {
  font-size: 0.67em;
}
.ql-snow .ql-editor a {
  text-decoration: underline;
}
.ql-snow .ql-editor blockquote {
  border-left: 4px solid #ccc;
  margin-bottom: 5px;
  margin-top: 5px;
  padding-left: 16px;
}
.ql-snow .ql-editor code,
.ql-snow .ql-editor pre {
  background-color: #f0f0f0;
  border-radius: 3px;
}
.ql-snow .ql-editor pre {
  white-space: pre-wrap;
  margin-bottom: 5px;
  margin-top: 5px;
  padding: 5px 10px;
}
.ql-snow .ql-editor code {
  font-size: 85%;
  padding: 2px 4px;
}
.ql-snow .ql-editor pre.ql-syntax {
  background-color: #23241f;
  color: #f8f8f2;
  overflow: visible;
}
.ql-snow .ql-editor img {
  max-width: 100%;
}
.ql-snow .ql-picker {
  color: #444;
  display: inline-block;
  float: left;
  font-size: 14px;
  font-weight: 500;
  height: 24px;
  position: relative;
  vertical-align: middle;
}
.ql-snow .ql-picker-label {
  cursor: pointer;
  display: inline-block;
  height: 100%;
  padding-left: 8px;
  padding-right: 2px;
  position: relative;
  width: 100%;
}
.ql-snow .ql-picker-label::before {
  display: inline-block;
  line-height: 22px;
}
.ql-snow .ql-picker-options {
  background-color: #fff;
  display: none;
  min-width: 100%;
  padding: 4px 8px;
  position: absolute;
  white-space: nowrap;
}
.ql-snow .ql-picker-options .ql-picker-item {
  cursor: pointer;
  display: block;
  padding-bottom: 5px;
  padding-top: 5px;
}
.ql-snow .ql-picker.ql-expanded .ql-picker-label {
  color: #ccc;
  z-index: 2;
}
.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill {
  fill: #ccc;
}
.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke {
  stroke: #ccc;
}
.ql-snow .ql-picker.ql-expanded .ql-picker-options {
  display: block;
  margin-top: -1px;
  top: 100%;
  z-index: 1;
}
.ql-snow .ql-color-picker,
.ql-snow .ql-icon-picker {
  width: 28px;
}
.ql-snow .ql-color-picker .ql-picker-label,
.ql-snow .ql-icon-picker .ql-picker-label {
  padding: 2px 4px;
}
.ql-snow .ql-color-picker .ql-picker-label svg,
.ql-snow .ql-icon-picker .ql-picker-label svg {
  right: 4px;
}
.ql-snow .ql-icon-picker .ql-picker-options {
  padding: 4px 0px;
}
.ql-snow .ql-icon-picker .ql-picker-item {
  height: 24px;
  width: 24px;
  padding: 2px 4px;
}
.ql-snow .ql-color-picker .ql-picker-options {
  padding: 3px 5px;
  width: 152px;
}
.ql-snow .ql-color-picker .ql-picker-item {
  border: 1px solid transparent;
  float: left;
  height: 16px;
  margin: 2px;
  padding: 0px;
  width: 16px;
}
.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {
  position: absolute;
  margin-top: -9px;
  right: 0;
  top: 50%;
  width: 18px;
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {
  content: attr(data-label);
}
.ql-snow .ql-picker.ql-header {
  width: 98px;
}
.ql-snow .ql-picker.ql-header .ql-picker-label::before,
.ql-snow .ql-picker.ql-header .ql-picker-item::before {
  content: 'Normal';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
  content: 'Heading 1';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
  content: 'Heading 2';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
  content: 'Heading 3';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
  content: 'Heading 4';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
  content: 'Heading 5';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
  content: 'Heading 6';
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
  font-size: 2em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
  font-size: 1.5em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
  font-size: 1.17em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
  font-size: 1em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
  font-size: 0.83em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
  font-size: 0.67em;
}
.ql-snow .ql-picker.ql-font {
  width: 108px;
}
.ql-snow .ql-picker.ql-font .ql-picker-label::before,
.ql-snow .ql-picker.ql-font .ql-picker-item::before {
  content: 'Sans Serif';
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
  content: 'Serif';
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
  content: 'Monospace';
}
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
  font-family: Georgia, Times New Roman, serif;
}
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
  font-family: Monaco, Courier New, monospace;
}
.ql-snow .ql-picker.ql-size {
  width: 98px;
}
.ql-snow .ql-picker.ql-size .ql-picker-label::before,
.ql-snow .ql-picker.ql-size .ql-picker-item::before {
  content: 'Normal';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
  content: 'Small';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
  content: 'Large';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
  content: 'Huge';
}
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
  font-size: 10px;
}
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
  font-size: 18px;
}
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
  font-size: 32px;
}
.ql-snow .ql-color-picker.ql-background .ql-picker-item {
  background-color: #fff;
}
.ql-snow .ql-color-picker.ql-color .ql-picker-item {
  background-color: #000;
}
.ql-toolbar.ql-snow {
  border: 1px solid #ccc;
  box-sizing: border-box;
  font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
  padding: 8px;
}
.ql-toolbar.ql-snow .ql-formats {
  margin-right: 15px;
}
.ql-toolbar.ql-snow .ql-picker-label {
  border: 1px solid transparent;
}
.ql-toolbar.ql-snow .ql-picker-options {
  border: 1px solid transparent;
  box-shadow: rgba(0,0,0,0.2) 0 2px 8px;
}
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label {
  border-color: #ccc;
}
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
  border-color: #ccc;
}
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover {
  border-color: #000;
}
.ql-toolbar.ql-snow + .ql-container.ql-snow {
  border-top: 0px;
}
.ql-snow .ql-tooltip {
  background-color: #fff;
  border: 1px solid #ccc;
  box-shadow: 0px 0px 5px #ddd;
  color: #444;
  padding: 5px 12px;
  white-space: nowrap;
}
.ql-snow .ql-tooltip::before {
  content: "Visit URL:";
  line-height: 26px;
  margin-right: 8px;
}
.ql-snow .ql-tooltip input[type=text] {
  display: none;
  border: 1px solid #ccc;
  font-size: 13px;
  height: 26px;
  margin: 0px;
  padding: 3px 5px;
  width: 170px;
}
.ql-snow .ql-tooltip a.ql-preview {
  display: inline-block;
  max-width: 200px;
  overflow-x: hidden;
  text-overflow: ellipsis;
  vertical-align: top;
}
.ql-snow .ql-tooltip a.ql-action::after {
  border-right: 1px solid #ccc;
  content: 'Edit';
  margin-left: 16px;
  padding-right: 8px;
}
.ql-snow .ql-tooltip a.ql-remove::before {
  content: 'Remove';
  margin-left: 8px;
}
.ql-snow .ql-tooltip a {
  line-height: 26px;
}
.ql-snow .ql-tooltip.ql-editing a.ql-preview,
.ql-snow .ql-tooltip.ql-editing a.ql-remove {
  display: none;
}
.ql-snow .ql-tooltip.ql-editing input[type=text] {
  display: inline-block;
}
.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
  border-right: 0px;
  content: 'Save';
  padding-right: 0px;
}
.ql-snow .ql-tooltip[data-mode=link]::before {
  content: "Enter link:";
}
.ql-snow .ql-tooltip[data-mode=formula]::before {
  content: "Enter formula:";
}
.ql-snow .ql-tooltip[data-mode=video]::before {
  content: "Enter video:";
}
.ql-snow a {
  color: #06c;
}
.ql-container.ql-snow {
  border: 1px solid #ccc;
}
/* Radiology desks — PEUF tokens, Lab workstation density, slight card curve */

.rad-desk {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.rad-desk--worklist .eu-search-page,
.rad-desk--worklist .eu-workflow-page__body {
  gap: 12px;
}

.rad-desk .eu-results-table,
.rad-desk .eu-search-panel {
  border-radius: var(--eu-radius-md, 10px);
  box-shadow: var(--eu-shadow-xs, 0 1px 3px rgba(15, 23, 42, 0.06));
  overflow: hidden;
}

.rad-desk .eu-results-table .eu-table-wrap,
.rad-desk .eu-table-wrap {
  overflow-x: auto;
}

.rad-desk .eu-table {
  width: 100%;
}

.rad-desk .eu-table th,
.rad-desk .eu-table td {
  padding: 8px 10px;
  vertical-align: middle;
}

.rad-desk .eu-table th:first-child,
.rad-desk .eu-table td:first-child {
  padding-left: 14px;
}

.rad-desk .eu-table th:last-child,
.rad-desk .eu-table td:last-child {
  padding-right: 14px;
  text-align: right;
  width: 1%;
  white-space: nowrap;
}

.rad-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.rad-cell__meta {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--eu-text-muted, #64748b);
}

.rad-actions {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  white-space: nowrap;
}

.rad-actions .eu-btn,
.rad-actions a.eu-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: var(--eu-field-h-sm, 34px);
  min-height: var(--eu-field-h-sm, 34px);
  min-width: 5.5rem;
  margin: 0;
  padding: 0 12px;
  line-height: 1;
  vertical-align: middle;
}

.rad-desk .eu-card,
.rad-desk .lab-desk__banner,
.rad-desk .lab-desk__lifecycle,
.rad-desk .lab-desk__context,
.rad-desk .lab-ws__more--cancel {
  border-radius: var(--eu-radius-md, 10px);
  box-shadow: var(--eu-shadow-xs, 0 1px 3px rgba(15, 23, 42, 0.06));
}

.rad-desk .eu-card--compact .eu-card__header {
  padding: 10px 14px;
}

.rad-desk .eu-card--compact .eu-card__body,
.rad-desk .eu-card__body {
  padding: 14px 16px;
}

.rad-desk .lab-desk__banner--patient {
  padding: 8px 12px;
}

.rad-desk--exam {
  gap: 10px;
}

.rad-exam__header .lab-desk__identity-copy strong {
  font-size: 0.95rem;
}

.rad-exam__summary,
.rad-exam__ops {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 6px 16px;
  padding: 8px 12px;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-md, 10px);
}

.rad-exam__summary-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.rad-exam__summary-main strong {
  font-size: 0.95rem;
}

.rad-exam__ops {
  padding: 6px 12px;
}

.rad-exam__tat--due_soon {
  color: var(--eu-warning, #b45309);
}

.rad-exam__tat--overdue {
  color: var(--eu-danger, #b91c1c);
}

.rad-exam__context {
  padding: 6px 12px;
}

.rad-toolbar--lead {
  margin-top: 0;
  padding: 8px 0 2px;
  border-top: 0;
  justify-content: flex-start;
}

.rad-exam__primary {
  min-width: 14rem;
  font-weight: 700;
}

.rad-desk--exam .eu-section {
  margin: 0 0 14px;
}

.rad-desk--exam .eu-section:last-child {
  margin-bottom: 0;
}

.rad-desk--exam .eu-section-title {
  margin: 0 0 8px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #64748b);
}

.rad-contrast-details {
  display: none;
  margin-top: 12px;
}

.rad-contrast-details.is-open,
.rad-protocol:has(#contrast_required:checked) .rad-contrast-details {
  display: block;
}

.rad-protocol:has(#contrast_required:not(:checked)) .rad-contrast-details {
  display: none;
}

.rad-exam__remarks {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--eu-border, #e5e7eb);
}

.rad-exam__remarks summary {
  cursor: pointer;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--eu-text-soft, #334155);
}

.rad-exam__remarks[open] summary {
  margin-bottom: 8px;
}

.rad-desk--report {
  gap: 8px;
}

.rad-desk--report .lab-desk__lifecycle {
  box-shadow: none;
  background: transparent;
  border: 0;
  padding: 2px 2px 0;
}

.rad-desk--report .rad-exam__header--compact {
  grid-template-columns: auto minmax(0, 1fr);
  padding: 6px 10px;
  box-shadow: none;
  background: var(--eu-surface, #fff);
}

.rad-desk--report .rad-exam__header--compact .lab-desk__identity-copy strong {
  font-size: 0.875rem;
}

.rad-desk--report .rad-exam__header--compact .lab-desk__banner-meta {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 2px 12px;
  align-items: start;
}

.rad-desk--report .rad-exam__header--compact .lab-desk__banner-meta > div {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.rad-desk--report .lab-desk__life--focus.lab-desk__life--current,
.rad-desk--report .lab-desk__life--focus:not(.lab-desk__life--upcoming) {
  color: var(--chk-accent, #0f766e);
  font-weight: 700;
}

.rad-ws {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-md, 10px);
}

.rad-ws__head {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px 12px 8px;
  border-bottom: 1px solid var(--eu-border, #e5e7eb);
  background: var(--eu-surface-muted, #f8fafc);
}

.rad-ws__head-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
}

.rad-ws__kicker {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #64748b);
}

.rad-ws__meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px 16px;
  align-items: start;
}

.rad-template {
  position: relative;
  grid-column: 1 / -1;
  max-width: none;
  min-width: 0;
}

.rad-template__control {
  position: relative;
}

.rad-template__search {
  display: block;
  width: 100%;
  height: 36px;
  padding: 6px 28px 6px 10px;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 6px;
  background: var(--eu-surface, #fff);
  color: var(--eu-text, #0f172a);
  font: inherit;
}

.rad-template__search:focus {
  outline: none;
  border-color: var(--eu-primary, #0f766e);
}

.rad-template__chevron {
  position: absolute;
  top: 50%;
  right: 10px;
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid var(--eu-text-muted, #64748b);
  transform: translateY(-40%);
  pointer-events: none;
}

.rad-template__list {
  position: absolute;
  z-index: 20;
  top: calc(100% + 2px);
  left: 0;
  right: 0;
  max-height: 16rem;
  margin: 0;
  padding: 4px;
  overflow: auto;
  list-style: none;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-sm, 8px);
  box-shadow: var(--eu-shadow-sm, 0 1px 3px rgba(15, 23, 42, 0.08));
}

.rad-template__item {
  display: block;
  width: 100%;
  padding: 6px 8px;
  border: 0;
  border-radius: var(--eu-radius-sm, 6px);
  background: transparent;
  color: var(--eu-text, #0f172a);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.rad-template__item:hover,
.rad-template__item:focus {
  background: var(--eu-surface-muted, #f8fafc);
  outline: none;
}

.rad-check--critical {
  margin: 0;
  background: var(--eu-surface, #fff);
}

.rad-context {
  display: contents;
}

.rad-context__item {
  min-width: 0;
}

.rad-context__item dt,
.rad-ws__label {
  display: block;
  margin: 0 0 4px;
  min-height: 1rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #64748b);
}

.rad-context__item dd {
  margin: 0;
  min-height: 36px;
  padding: 8px 10px;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 6px;
  background: var(--eu-surface, #fff);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--eu-text, #0f172a);
  line-height: 1.25;
}

.rad-context__item dd:has(.rad-context__select) {
  padding: 0;
  border: 0;
  background: transparent;
  min-height: 0;
}

.rad-context__select {
  display: block;
  width: 100%;
  max-width: none;
  height: 36px;
  padding: 6px 10px;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 6px;
  background: var(--eu-surface, #fff);
  color: var(--eu-text, #0f172a);
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
}

.rad-ws__compose {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px;
}

.rad-ws__section {
  width: 100%;
  min-width: 0;
}

.rad-ws__section--findings {
  position: relative;
}

.rad-ws__label--primary {
  color: var(--eu-text, #0f172a);
}

.rad-editor {
  display: block;
  width: 100%;
  box-sizing: border-box;
  height: auto;
  padding: 6px 8px;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 6px;
  background: var(--eu-surface, #fff);
  color: var(--eu-text, #0f172a);
  font: inherit;
  line-height: 1.45;
  resize: vertical;
}

.rad-editor:focus {
  outline: none;
  border-color: var(--eu-primary, #0f766e);
}

.rad-editor[readonly] {
  background: var(--eu-surface-muted, #f8fafc);
}

.rad-desk--report textarea.rad-editor--technique {
  min-height: 2.75rem;
  height: 3.25rem;
}

.rad-desk--report textarea.rad-editor--recs {
  min-height: 2.75rem;
  height: 3.5rem;
}

.rad-desk--report textarea.rad-editor--critical,
.rad-desk--report .eu-field textarea.rad-editor--critical {
  min-height: 2.75rem;
  height: 3.25rem;
}

.rad-desk--report textarea.rad-editor--impression {
  min-height: 6.5rem;
  height: 7.25rem;
  font-weight: 600;
  box-shadow: inset 3px 0 0 var(--eu-primary, #0f766e);
}

.rad-critical-details {
  display: none;
}

.rad-critical-details.is-open,
.rad-critical-host:has(#critical_finding:checked) .rad-critical-details {
  display: block;
}

.rad-critical-host:has(#critical_finding:not(:checked)) .rad-critical-details {
  display: none;
}

.rad-critical-details__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px 16px;
  align-items: start;
}

.rad-critical-details__grid .eu-field,
.rad-critical-details__grid .eu-input,
.rad-critical-details__grid textarea {
  width: 100%;
  max-width: 100%;
}

.rad-ws__finalize {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
  padding: 8px 12px 10px;
  border-top: 1px solid var(--eu-border, #e5e7eb);
  background: var(--eu-surface-muted, #f8fafc);
}

.rad-ws__finalize-meta {
  min-width: 12rem;
}

.rad-toolbar--report {
  margin: 0;
  padding: 0;
  border: 0;
  flex: 0 0 auto;
  justify-content: flex-end;
}

.rad-toolbar--report .eu-btn--primary {
  min-width: 12rem;
}

.rad-editor-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 4px 12px;
  margin-bottom: 4px;
}

.rad-editor-head .rad-ws__label {
  margin-bottom: 0;
}

.rad-editor-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}

.rad-rich {
  width: 100%;
  box-sizing: border-box;
  min-height: 10rem;
  height: 12rem;
  max-height: 16rem;
  overflow: auto;
  padding: 8px 10px;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 6px;
  background: var(--eu-surface, #fff);
  color: var(--eu-text, #0f172a);
  line-height: 1.45;
  box-shadow: inset 3px 0 0 var(--eu-border-strong, #cbd5e1);
}

.rad-rich.is-readonly {
  background: var(--eu-surface-muted, #f8fafc);
}

.rad-rich:focus {
  outline: none;
  border-color: var(--eu-primary, #0f766e);
}

.rad-rich p {
  margin: 0 0 0.6em;
}

.rad-rich ul,
.rad-rich ol {
  margin: 0 0 0.6em;
  padding-left: 1.25rem;
}

.rad-rich-source {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.rad-ws__assist {
  margin: 4px 0 0;
  font-size: 0.75rem;
  color: var(--eu-text-muted, #64748b);
}

.rad-docs__list {
  margin: 2px 0 0;
  padding-left: 1.1rem;
}

.rad-upload {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  padding: 8px 12px;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-md, 10px);
}

.rad-upload .rad-ws__label {
  flex: 0 0 auto;
  margin: 0;
  min-width: 8rem;
}

.rad-upload__row {
  display: flex;
  flex: 1 1 22rem;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.rad-upload__file {
  display: block;
  flex: 1 1 auto;
  box-sizing: border-box;
  width: auto;
  min-width: 0;
  height: var(--eu-field-h-sm, 34px);
  padding: 0;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 6px;
  background: var(--eu-surface, #fff);
  color: var(--eu-text, #0f172a);
  font-size: 12px;
  line-height: var(--eu-field-h-sm, 34px);
}

.rad-upload__file::file-selector-button {
  height: var(--eu-field-h-sm, 34px);
  margin: 0 8px 0 0;
  padding: 0 12px;
  border: 0;
  border-right: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 6px 0 0 6px;
  background: var(--eu-surface-muted, #f8fafc);
  color: var(--eu-text, #0f172a);
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  line-height: var(--eu-field-h-sm, 34px);
  cursor: pointer;
}

.rad-upload__row .eu-btn {
  flex: 0 0 auto;
  height: var(--eu-field-h-sm, 34px);
  min-height: var(--eu-field-h-sm, 34px);
}

.rad-report__rich ul,
.rad-report__rich ol {
  padding-left: 1.25rem;
}

@media (max-width: 900px) {
  .rad-ws__meta,
  .rad-critical-details__grid,
  .rad-desk--report .rad-exam__header--compact .lab-desk__banner-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .rad-template {
    grid-column: 1 / -1;
  }

  .rad-context {
    display: contents;
  }

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

  .rad-toolbar--report,
  .rad-preview-toolbar {
    flex-wrap: wrap;
    justify-content: flex-end;
    width: 100%;
  }

  .rad-preview__chrome {
    flex-wrap: wrap;
  }
}

@media (max-width: 720px) {
  .rad-ws__meta,
  .rad-critical-details__grid,
  .rad-desk--report .rad-exam__header--compact .lab-desk__banner-meta {
    grid-template-columns: 1fr;
  }

  .rad-template {
    max-width: none;
  }

  .rad-rich {
    height: 11rem;
    min-height: 10rem;
  }
}

.rad-desk .eu-form-grid {
  align-items: start;
  gap: 12px 16px;
}

.rad-desk .eu-field {
  min-width: 0;
}

.rad-desk .eu-field .eu-label {
  display: block;
  margin: 0 0 4px;
}

.rad-desk .eu-field .eu-input,
.rad-desk .eu-field select.eu-input,
.rad-desk .eu-field textarea.eu-input {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.rad-desk .eu-field textarea.eu-input {
  min-height: 4.5rem;
  padding-top: 8px;
  padding-bottom: 8px;
}

.rad-field--check {
  justify-content: flex-end;
}

.rad-check {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: var(--eu-field-h-sm, 34px);
  padding: 0 10px;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-sm, 8px);
  background: var(--eu-surface-muted, #f8fafc);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--eu-text, #0f172a);
}

.rad-toolbar,
.rad-desk .lab-ws__toolbar--actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--eu-border, #e5e7eb);
}

.rad-desk .lab-ws__more--cancel {
  padding: 10px 14px;
  background: var(--eu-surface, #fff);
  border: 1px solid var(--eu-border, #e5e7eb);
}

.rad-desk .lab-ws__more--cancel summary {
  cursor: pointer;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--eu-text-soft, #334155);
}

.rad-desk .lab-ws__more--cancel[open] summary {
  margin-bottom: 10px;
}

.rad-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 16px;
  margin-bottom: 12px;
}

.layout-embed {
  margin: 0;
  background: var(--eu-surface, #fff);
}

.layout-embed .rad-preview {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 12px 16px 24px;
  box-sizing: border-box;
}

.layout-embed .rad-preview__chrome {
  align-items: center;
  gap: 8px 12px;
}

.layout-embed .rad-preview__page-title {
  min-width: 0;
}

.layout-embed .rad-report {
  max-width: none;
  width: 100%;
  margin: 0;
  box-sizing: border-box;
}

.layout-embed .rad-report__identity {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.layout-embed .rad-report__signoff {
  align-items: start;
}

@media (max-width: 720px) {
  .layout-embed .rad-report__identity {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .layout-embed .rad-report__identity > div:nth-child(2n) {
    border-right: 0;
  }

  .layout-embed .rad-report__signoff {
    grid-template-columns: minmax(0, 1fr);
  }
}

.rad-preview {
  max-width: 210mm;
  margin: 0 auto;
}

.rad-preview__screen {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
}

.rad-preview__chrome {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.rad-preview__page-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--eu-text, #0f172a);
}

.rad-preview-toolbar {
  flex: 0 0 auto;
}

.rad-preview .rad-exam__header--compact {
  grid-template-columns: auto minmax(0, 1fr);
  padding: 6px 10px;
}

.rad-report {
  max-width: 210mm;
  margin: 0 auto;
  padding: 22px 24px 18px;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: 2px;
  background: #fff;
  color: #111827;
  box-shadow: var(--eu-shadow-sm, 0 1px 3px rgba(15, 23, 42, 0.08));
}

.rad-report__letterhead {
  text-align: center;
  padding-bottom: 10px;
  margin-bottom: 12px;
  border-bottom: 2px solid #0f172a;
}

.rad-report__logo {
  display: block;
  max-height: 40px;
  margin: 0 auto 6px;
}

.rad-report__hospital {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.rad-report__dept {
  margin: 2px 0 4px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #334155;
}

.rad-report__addr {
  margin: 0;
  font-size: 0.75rem;
  color: #475569;
}

.rad-report__title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px 12px;
  margin-top: 10px;
}

.rad-report__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.rad-report__badge {
  margin: 0;
  padding: 2px 8px;
  border: 1px solid currentColor;
  border-radius: 2px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.rad-report__badge--preliminary {
  color: #b45309;
}

.rad-report__badge--final {
  color: #0f766e;
}

.rad-report__badge--amended {
  color: #b91c1c;
}

.rad-report__accession {
  margin: 6px 0 0;
  font-size: 0.75rem;
  font-weight: 600;
  color: #334155;
}

.rad-report__identity {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0 0 12px;
  border: 1px solid #d1d5db;
}

.rad-report__identity > div {
  padding: 6px 8px;
  border-right: 1px solid #e5e7eb;
  border-bottom: 1px solid #e5e7eb;
}

.rad-report__identity > div:nth-child(4n) {
  border-right: 0;
}

.rad-report__identity dt {
  margin: 0 0 2px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748b;
}

.rad-report__identity dd {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #0f172a;
}

.rad-report__critical {
  margin: 0 0 12px;
  padding: 8px 10px;
  border: 1px solid #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

.rad-report__critical strong {
  display: block;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.rad-report__critical p {
  margin: 4px 0 0;
  font-size: 0.8125rem;
  font-weight: 600;
}

.rad-report__amend {
  margin: 0 0 12px;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #b45309;
}

.rad-report__section {
  margin: 0 0 10px;
}

.rad-report__section h3 {
  margin: 0 0 4px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #475569;
}

.rad-report__section p {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
  white-space: pre-wrap;
}

.rad-report__rich {
  font-size: 0.875rem;
  line-height: 1.5;
}

.rad-report__section--technique p {
  font-size: 0.8125rem;
  color: #334155;
}

.rad-report__section--impression {
  padding: 8px 10px;
  background: #f8fafc;
  border-left: 3px solid #0f766e;
}

.rad-report__section--impression p {
  font-weight: 700;
  font-size: 0.9rem;
}

.rad-report__pending {
  margin: 16px 0 4px;
  font-size: 0.9rem;
  font-weight: 700;
}

.rad-report__pending-hint {
  margin: 0 0 12px;
  font-size: 0.8125rem;
  color: #64748b;
}

.rad-report__signoff {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 16px 24px;
  margin-top: 28px;
  padding-top: 12px;
  border-top: 1px solid #d1d5db;
}

.rad-report__sign-line {
  max-width: 16rem;
  margin-top: 28px;
  padding-top: 6px;
  border-top: 1px solid #111827;
  font-size: 0.75rem;
  line-height: 1.4;
}

.rad-report__sign-name {
  margin: 0 0 2px;
  font-size: 0.875rem;
  font-weight: 700;
}

.rad-report__sign-line p {
  margin: 0;
}

.rad-report__sign-meta {
  margin: 0;
  display: grid;
  gap: 6px;
}

.rad-report__sign-meta div {
  display: grid;
  grid-template-columns: 6.5rem minmax(0, 1fr);
  gap: 8px;
  font-size: 0.75rem;
}

.rad-report__sign-meta dt {
  margin: 0;
  color: #64748b;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.rad-report__sign-meta dd {
  margin: 0;
  font-weight: 600;
}

.rad-report__legal {
  margin: 16px 0 0;
  padding-top: 8px;
  border-top: 1px solid #e5e7eb;
  font-size: 0.68rem;
  color: #64748b;
}

@media (max-width: 1100px) {
  .rad-desk .eu-form-grid--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .rad-desk .eu-form-grid--3,
  .rad-desk .eu-form-grid--2,
  .rad-form-grid {
    grid-template-columns: 1fr;
  }

  .rad-field--check {
    justify-content: flex-start;
  }

  .rad-report__identity,
  .rad-report__signoff {
    grid-template-columns: 1fr 1fr;
  }

  .rad-report__identity > div:nth-child(4n) {
    border-right: 1px solid #e5e7eb;
  }

  .rad-report__identity > div:nth-child(2n) {
    border-right: 0;
  }
}

.rad-pacs {
  max-width: 210mm;
  margin: 0 auto;
}

.rad-pacs__stage {
  padding: 12px 14px 14px;
  border: 1px solid var(--eu-border, #e5e7eb);
  border-radius: var(--eu-radius-md, 10px);
  background: var(--eu-surface, #fff);
}

.rad-pacs__banner {
  margin: 0 0 10px;
  padding: 8px 10px;
  border: 1px solid var(--eu-border, #e5e7eb);
  background: var(--eu-surface-muted, #f8fafc);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--eu-text, #0f172a);
}

.rad-pacs__meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px 12px;
  margin: 0 0 12px;
}

.rad-pacs__meta dt {
  margin: 0 0 2px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eu-text-muted, #64748b);
}

.rad-pacs__meta dd {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 700;
}

.rad-pacs__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.rad-pacs__tile {
  min-height: 9rem;
  padding: 10px;
  border: 1px solid var(--eu-border, #e5e7eb);
  background: #0b1220;
  color: #e2e8f0;
}

.rad-pacs__tile-label,
.rad-pacs__tile-view {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.rad-pacs__tile-view {
  margin-top: 2px;
  color: #94a3b8;
}

.rad-pacs__tile-empty {
  margin: 28px 0 0;
  font-size: 0.75rem;
  color: #64748b;
}

.rad-pacs__legal {
  margin: 12px 0 0;
  font-size: 0.68rem;
  color: var(--eu-text-muted, #64748b);
}

@media (max-width: 720px) {
  .rad-pacs__meta,
  .rad-pacs__grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media print {
  .app-sidebar,
  .app-shell__overlay,
  .app-topbar,
  .app-topnav,
  .rad-preview__screen,
  .app-flash,
  .eu-flash,
  .loader,
  .app-loader {
    display: none !important;
  }

  .app-shell,
  .app-shell__workspace,
  .app-shell__main {
    display: block !important;
    position: static !important;
    width: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
  }

  .rad-preview {
    max-width: none;
  }

  .rad-report {
    box-shadow: none;
    border: 0;
    max-width: none;
    padding: 0;
  }

  .rad-report__section,
  .rad-report__signoff,
  .rad-report__critical {
    break-inside: avoid;
  }
}
/* Receipt documents */

.receipt-screen {
  max-width: 900px;
  margin: 0 auto;
}

.receipt-screen__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 20px;
}

.receipt-doc {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 28px 32px;
  color: #0f172a;
  font-size: 13px;
}

.receipt-doc__header {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 2px solid #0f172a;
  padding-bottom: 16px;
  margin-bottom: 20px;
}

.receipt-doc__hospital {
  font-size: 22px;
  font-weight: 800;
  margin: 0;
  color: var(--app-primary, #2563eb);
}

.receipt-doc__tagline {
  margin: 4px 0 0;
  color: #64748b;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
}

.receipt-doc__meta {
  text-align: right;
  font-size: 12px;
  line-height: 1.7;
}

.receipt-doc__section {
  margin-bottom: 20px;
}

.receipt-doc__section h2 {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #64748b;
  margin: 0 0 10px;
  font-weight: 800;
}

.receipt-doc__info {
  width: 100%;
  border-collapse: collapse;
}

.receipt-doc__info td {
  padding: 6px 10px 6px 0;
  vertical-align: top;
}

.receipt-doc__info td:nth-child(odd) {
  color: #64748b;
  width: 110px;
  font-size: 12px;
}

.receipt-doc__table {
  width: 100%;
  border-collapse: collapse;
}

.receipt-doc__table th,
.receipt-doc__table td {
  border: 1px solid #e2e8f0;
  padding: 10px 12px;
}

.receipt-doc__table th {
  background: #f8fafc;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
}

.receipt-doc__table tfoot td {
  background: #f8fafc;
  font-size: 14px;
}

.receipt-doc__table .num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.receipt-doc__amount-box {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 10px;
  margin: 20px 0;
}

.receipt-doc__footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;
  margin-top: 28px;
  padding-top: 16px;
  border-top: 1px dashed #cbd5e1;
}

.receipt-doc__sign-line {
  width: 180px;
  border-top: 1px solid #334155;
  margin-bottom: 8px;
}

.receipt-doc__note {
  max-width: 280px;
  font-size: 11px;
  color: #64748b;
  text-align: right;
}

.receipt-batch__summary {
  margin-bottom: 16px;
  font-size: 14px;
  color: #334155;
}

.receipt-batch__item {
  margin-bottom: 28px;
  position: relative;
}

.receipt-batch__item-actions {
  display: flex;
  gap: 8px;
  margin-bottom: 10px;
}

@media print {
  .no-print { display: none !important; }
  .receipt-doc {
    border: 0;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
  }
  .page-break { page-break-before: always; }
}
/* Corner request-timing badge — high contrast (do not use --eu-surface; light theme is white) */

.eu-request-timing {
  position: fixed;
  left: 12px;
  bottom: 12px;
  right: auto;
  z-index: 10050;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  max-width: min(420px, calc(100vw - 24px));
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid #334155;
  background: #0f172a;
  color: #f8fafc;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.3;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.45);
  pointer-events: none;
  user-select: none;
}

.eu-request-timing__title {
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #94a3b8;
}

.eu-request-timing__sep {
  color: #64748b;
}

.eu-request-timing.is-ok {
  border-color: #22c55e;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.45), 0 0 0 1px rgba(34, 197, 94, 0.35);
}

.eu-request-timing.is-warn {
  border-color: #f59e0b;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.45), 0 0 0 1px rgba(245, 158, 11, 0.4);
}

.eu-request-timing.is-slow {
  border-color: #ef4444;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.45), 0 0 0 1px rgba(239, 68, 68, 0.45);
}

@media (max-width: 640px) {
  .eu-request-timing {
    left: 8px;
    bottom: 8px;
    font-size: 11px;
    padding: 6px 10px;
  }
}
/* Shared specialty case MAR / handover panels */

.sb-mar-courses {
  list-style: none;
  padding: 0;
  margin: 12px 0 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.sb-mar-course {
  padding: 12px;
  border: 1px solid var(--eu-border, #e2e8f0);
  border-radius: var(--eu-radius-sm, 6px);
  background: var(--eu-surface, #fff);
}

.sb-case__recent {
  margin-top: 16px;
}

.sb-pulse-tile--warning {
  border-color: var(--eu-warning, #d97706);
}

.sb-pulse-tile--danger {
  border-color: var(--eu-danger, #dc2626);
}
/* Store Administration hub — PEUF tokens only */

.eu-stores-admin-hub {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}

.eu-master-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.eu-master-list__link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 6px 8px;
  border-radius: var(--eu-radius-sm, 6px);
  text-decoration: none;
  color: inherit;
}

.eu-master-list__link:hover,
.eu-master-list__link:focus-visible {
  background: var(--eu-secondary);
}

.eu-master-list__label {
  font-size: 13px;
  font-weight: 600;
}

.eu-master-list__count {
  font-size: 12px;
  font-weight: 700;
  color: var(--eu-primary);
  min-width: 1.5rem;
  text-align: right;
}

@media (max-width: 1100px) {
  .eu-stores-admin-hub {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .eu-stores-admin-hub {
    grid-template-columns: 1fr;
  }
}

.st-req-issue-page .eu-page {
  gap: 8px;
  padding-top: 8px;
  padding-bottom: 12px;
}

.st-req-issue-page .eu-workflow-page__body {
  gap: 8px;
}

.st-req-issue-page .eu-card {
  padding: 0;
  overflow: visible;
}

.st-req-issue-page .eu-card--compact .eu-card__header {
  padding: 8px 10px;
}

.st-req-issue-page .eu-card--compact .eu-card__body {
  padding: 8px 10px;
}

.st-req-issue-page .eu-action-bar {
  margin-top: 4px;
}

.st-req-issue {
  overflow-x: auto;
}

.st-req-issue .eu-table {
  width: 100%;
}

.st-req-issue .eu-table th,
.st-req-issue .eu-table td {
  padding: 6px 8px;
  vertical-align: middle;
  font-size: 0.8125rem;
}

.st-req-issue .eu-table th:first-child,
.st-req-issue .eu-table td:first-child {
  width: 38%;
}

.st-req-issue__qty,
.st-req-issue__stock {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.st-req-issue__stock .eu-badge {
  margin-left: 6px;
}

.st-req-issue__reject {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px;
  margin-top: 8px;
}

.st-req-issue__reject .eu-field {
  flex: 1 1 16rem;
  margin: 0;
}
/* Medical Stores command center — PEUF tokens only */

.eu-command-alert {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.eu-command-alert__link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 8px 10px;
  border-radius: 8px;
  text-decoration: none;
  color: inherit;
  background: var(--eu-secondary);
}

.eu-command-alert__row--danger .eu-command-alert__link {
  box-shadow: inset 4px 0 0 var(--eu-danger);
}

.eu-command-alert__row--warning .eu-command-alert__link {
  box-shadow: inset 4px 0 0 var(--eu-warning);
}

.eu-command-alert__go {
  font-size: 12px;
  font-weight: 600;
  color: var(--eu-primary);
  white-space: nowrap;
}

.eu-command-queue {
  min-width: 0;
}

.eu-command-queue__title {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 700;
}

.eu-command-queue__list {
  list-style: none;
  margin: 0 0 10px;
  padding: 0;
}

.eu-command-queue__list li {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 4px 0;
  font-size: 13px;
}

.eu-command-move {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.eu-command-move__link {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  text-decoration: none;
  color: inherit;
  padding: 6px 0;
  border-bottom: 1px solid var(--eu-border);
}
.stores-movement-lines .eu-table {
  width: 100%;
}

.stores-movement-status {
  display: flex;
  align-items: center;
  gap: var(--eu-space-3, 12px);
  margin: 0 0 var(--eu-space-4, 16px);
}
/* Pharmacy queue / verify — PEUF tokens only */

.eu-pharm-path {
  margin: 0 0 8px;
  font-weight: 600;
  color: var(--eu-text-light);
}

/* Compact patient / encounter header */
.eu-pharm-header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--eu-card);
  border: 1px solid var(--eu-border);
}

.eu-pharm-header__meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px 16px;
  margin: 0;
  flex: 1;
  font-size: 13px;
}

.eu-pharm-header__meta > div {
  min-width: 0;
}

.eu-pharm-header__meta dt {
  margin: 0;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--eu-text-light);
}

.eu-pharm-header__meta dd {
  margin: 0;
  font-weight: 500;
}

.eu-pharm-header__allergy {
  color: var(--eu-danger);
  font-weight: 700;
}

/* Workflow rail: Prescription → Billing → Stock → Batch → Dispense */
.eu-pharm-workflow-rail {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  margin: 0 0 12px;
  padding: 8px 12px;
  list-style: none;
  border-radius: 8px;
  background: var(--eu-secondary);
  border: 1px solid var(--eu-border);
}

.eu-pharm-workflow-rail__step {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--eu-text-light);
}

.eu-pharm-workflow-rail__step:not(:last-child)::after {
  content: "→";
  margin-left: 4px;
  color: var(--eu-text-light);
  font-weight: 400;
}

.eu-pharm-workflow-rail__mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  font-size: 11px;
  background: var(--eu-card);
  border: 1px solid var(--eu-border);
}

.eu-pharm-workflow-rail__step--done .eu-pharm-workflow-rail__mark {
  background: var(--eu-success-bg, #ecfdf5);
  border-color: var(--eu-success);
  color: var(--eu-success);
}

.eu-pharm-workflow-rail__step--done .eu-pharm-workflow-rail__label {
  color: var(--eu-success);
}

.eu-pharm-workflow-rail__step--current.is-current .eu-pharm-workflow-rail__mark,
.eu-pharm-workflow-rail__step.is-current .eu-pharm-workflow-rail__mark {
  background: var(--eu-warning-bg, #fff7ed);
  border-color: var(--eu-warning);
  color: var(--eu-warning);
}

.eu-pharm-workflow-rail__step--blocked .eu-pharm-workflow-rail__mark {
  background: var(--eu-danger-bg, #fef2f2);
  border-color: var(--eu-danger);
  color: var(--eu-danger);
}

.eu-pharm-workflow-rail__step--blocked .eu-pharm-workflow-rail__label {
  color: var(--eu-danger);
}

/* Medicine summary */
.eu-pharm-med-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px 16px;
  margin: 0;
  font-size: 13px;
}

.eu-pharm-med-summary__drug {
  grid-column: 1 / -1;
}

.eu-pharm-med-summary__instructions {
  grid-column: 1 / -1;
}

.eu-pharm-med-summary dt {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--eu-text-light);
}

.eu-pharm-med-summary dd {
  margin: 0;
}

/* Batch table */
.eu-pharm-batch-table th,
.eu-pharm-batch-table td {
  padding: 6px 8px;
  font-size: 13px;
  vertical-align: middle;
}

.eu-pharm-batch-table__pick {
  width: 32px;
}

.eu-pharm-batch-table tr.is-fefo {
  background: var(--eu-secondary);
}

/* Quantity row */
.eu-pharm-qty-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
  margin: 0 0 12px;
  padding: 8px 12px;
  border-radius: 8px;
  background: var(--eu-card);
  border: 1px solid var(--eu-border);
  font-size: 13px;
}

.eu-pharm-qty-row__label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--eu-text-light);
  margin-bottom: 2px;
}

.eu-pharm-qty-row .eu-input--sm {
  width: 72px;
  display: inline-block;
}

/* CDSS grid */
.eu-pharm-cdss-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.eu-pharm-cdss-grid__item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px;
  border-radius: 6px;
  background: var(--eu-secondary);
  font-size: 12px;
}

.eu-pharm-cdss-grid__cat {
  font-weight: 600;
}

.eu-pharm-cdss-grid__detail {
  color: var(--eu-text-light);
  font-size: 11px;
}

/* Billing summary inline */
.eu-pharm-summary {
  margin: 0;
  display: grid;
  gap: 6px;
}

.eu-pharm-summary--inline {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 8px 16px;
}

.eu-pharm-summary > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 13px;
}

.eu-pharm-summary--inline > div {
  flex-direction: column;
  gap: 2px;
}

.eu-pharm-summary > div.is-emphasis dd {
  color: var(--eu-warning);
  font-weight: 700;
}

.eu-pharm-summary dt {
  color: var(--eu-text-light);
}

.eu-pharm-summary dd {
  margin: 0;
  font-weight: 600;
}

/* Action bar */
.eu-pharm-action-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 8px 0 0;
  position: static;
  background: transparent;
  border-top: 0;
}

.eu-pharm-more {
  position: relative;
}

.eu-pharm-more__menu {
  position: absolute;
  right: 0;
  bottom: 100%;
  min-width: 240px;
  margin-bottom: 4px;
  padding: 10px;
  background: var(--eu-card);
  border: 1px solid var(--eu-border);
  border-radius: 8px;
  box-shadow: var(--eu-shadow, 0 8px 24px rgba(15, 23, 42, 0.12));
}

.eu-pharm-dispense-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.eu-pharm-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 8px;
}

.eu-pharm-alert {
  margin: 8px 0 0;
  padding: 8px 12px;
  border-radius: 8px;
  background: var(--eu-secondary);
}

.eu-pharm-alert--danger {
  box-shadow: inset 4px 0 0 var(--eu-danger);
}

.eu-pharm-alert--warning {
  box-shadow: inset 4px 0 0 var(--eu-warning);
}

.eu-pharm-sub-fields {
  margin-top: 10px;
}

.eu-pharm-pay-strip {
  margin-top: 0;
}

.eu-pharm-settle-hint {
  margin: 0 0 8px;
}

.eu-pharm-pay-strip.opb-payment-strip {
  box-shadow: none;
  border: 0;
  background: transparent;
  overflow: visible;
}

.eu-pharm-pay-strip .opb-payment-strip__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: nowrap;
  padding: 0 0 8px;
  border-bottom: 0;
  background: transparent;
}

.eu-pharm-pay-strip .opb-payment-strip__metrics {
  flex: 1 1 auto;
  justify-content: flex-start;
  gap: 8px;
}

.eu-pharm-pay-strip .opb-metric {
  min-width: 0;
  padding: 4px 10px;
}

.eu-pharm-pay-strip .opb-payment-strip__lines {
  display: block;
  padding: 0;
  overflow: visible;
  background: transparent;
}

.eu-pharm-pay-strip .opb-payment-card {
  width: 100%;
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: auto minmax(10rem, 1fr) minmax(12rem, 1.4fr) minmax(16rem, 1.3fr);
  gap: 8px 12px;
  align-items: end;
  padding: 0;
  border: 0;
  box-shadow: none;
  background: transparent;
}

.eu-pharm-pay-strip .opb-payment-card__head {
  margin: 0;
  align-self: end;
}

.eu-pharm-pay-strip .opb-payment-card__label {
  display: none;
}

.eu-pharm-pay-strip .opb-payment-card__field {
  min-width: 0;
}

.eu-pharm-pay-strip .opb-amount-field .opb-fill-btn {
  flex: 0 0 auto;
  min-width: 4.5rem;
}


.eu-pharm-auth-check {
  padding: 0 4px;
}

/* Typeahead (manual capture) */
.eu-pharm-typeahead {
  position: relative;
}

.eu-pharm-typeahead__menu {
  position: absolute;
  z-index: 20;
  left: 0;
  right: 0;
  top: 100%;
  max-height: 280px;
  overflow: auto;
  background: var(--eu-card);
  border: 1px solid var(--eu-border);
  border-radius: 8px;
  box-shadow: var(--eu-shadow, 0 8px 24px rgba(15, 23, 42, 0.12));
}

.eu-pharm-typeahead__item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.eu-pharm-typeahead__item:hover,
.eu-pharm-typeahead__item:focus {
  background: var(--eu-secondary);
}

.eu-pharm-typeahead__empty {
  margin: 0;
  padding: 8px 10px;
  color: var(--eu-text-light);
}

@media (max-width: 1100px) {
  .eu-pharm-pay-strip .opb-payment-strip__toolbar,
  .eu-pharm-pay-strip .opb-payment-card {
    grid-template-columns: 1fr 1fr;
    flex-wrap: wrap;
  }

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

  .eu-pharm-med-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

@media (max-width: 640px) {
  .eu-pharm-header {
    flex-direction: column;
  }

  .eu-pharm-header__meta,
  .eu-pharm-med-summary,
  .eu-pharm-cdss-grid {
    grid-template-columns: 1fr;
  }

  .eu-pharm-workflow-rail__step:not(:last-child)::after {
    display: none;
  }
}

/* Order workbench — one Rx, many lines */
.eu-pharm-order-line {
  padding: 12px 0;
  border-bottom: 1px solid var(--eu-border);
}

.eu-pharm-order-line:last-child {
  border-bottom: 0;
}

.eu-pharm-order-line__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.eu-pharm-order-line__amounts {
  margin-bottom: 10px;
}

.eu-pharm-order-line__form {
  margin-top: 8px;
}

.stores-pharmacy-order__context {
  margin-bottom: 12px;
}

/* Order workbench — readable inline-edit table */
.eu-pharm-order-workbench {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.eu-pharm-order-workbench > .eu-card.eu-card--compact {
  padding: 0;
}

.eu-pharm-order-workbench > .eu-card.eu-card--compact .eu-card__body {
  padding: 8px 10px;
}

.eu-pharm-order-table-wrap {
  overflow-x: auto;
}

.eu-pharm-order-table {
  width: 100%;
  min-width: 960px;
  font-size: 12px;
  table-layout: auto;
}

.eu-pharm-order-table.eu-table thead th,
.eu-pharm-order-table.eu-table tbody td {
  padding: 6px 8px;
  vertical-align: top;
  overflow: visible;
  text-overflow: unset;
  white-space: normal;
}

.eu-pharm-order-table.eu-table thead th:first-child,
.eu-pharm-order-table.eu-table tbody td:first-child,
.eu-pharm-order-table.eu-table thead th:last-child,
.eu-pharm-order-table.eu-table tbody td:last-child {
  padding-left: 8px;
  padding-right: 8px;
}

.eu-pharm-order-table thead th {
  white-space: nowrap;
  font-size: 11px;
  font-weight: 700;
}

.eu-pharm-order-table__sl {
  width: 40px;
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: var(--eu-text-light);
}

.eu-pharm-order-table__generic {
  min-width: 88px;
  max-width: 140px;
}

.eu-pharm-order-table__code {
  min-width: 108px;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  word-break: break-word;
}

.eu-pharm-order-table__item {
  min-width: 160px;
}

.eu-pharm-order-table__item-name {
  display: block;
  font-weight: 600;
  line-height: 1.3;
}

.eu-pharm-order-table__qty {
  width: 88px;
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.eu-pharm-order-table__batch {
  min-width: 168px;
  max-width: 220px;
}

.eu-pharm-order-table__batch-no {
  font-weight: 600;
}

.eu-pharm-batch-meta {
  margin: 4px 0 0;
  font-size: 11px;
  color: var(--eu-text-light);
  line-height: 1.3;
}

.eu-pharm-qty-unit {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

.eu-pharm-qty-unit__uom {
  color: var(--eu-text-light);
  font-size: 11px;
}

.eu-pharm-order-table__stack {
  min-width: 132px;
}

.eu-pharm-order-table__stack--pay {
  min-width: 120px;
}

.eu-pharm-kv {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-variant-numeric: tabular-nums;
  line-height: 1.45;
  white-space: nowrap;
}

.eu-pharm-kv > span:first-child,
.eu-pharm-kv > label {
  color: var(--eu-text-light);
  font-size: 11px;
  font-weight: 600;
}

.eu-pharm-kv.is-total {
  margin-top: 2px;
  padding-top: 2px;
  border-top: 1px solid var(--eu-border);
  font-weight: 700;
}

.eu-pharm-kv--input .eu-pharm-order-table__input {
  width: 56px;
  flex: 0 0 56px;
}

.eu-pharm-order-table__action {
  width: 56px;
  text-align: right;
  white-space: nowrap;
}

.eu-pharm-order-table__input {
  width: 56px;
  min-width: 56px;
  height: 28px;
  padding: 2px 6px;
  font-size: 12px;
}

.eu-pharm-order-table__select {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.eu-pharm-order-table__input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}

.eu-pharm-order-table__input[type="number"]::-webkit-outer-spin-button,
.eu-pharm-order-table__input[type="number"]::-webkit-inner-spin-button {
  appearance: none;
  margin: 0;
}

.eu-pharm-order-table__disc .eu-pharm-disc-reason,
.eu-pharm-fefo-override--inline {
  margin-top: 4px;
}

.eu-pharm-fefo-override--inline {
  padding: 0;
  background: transparent;
  border: 0;
}

.eu-pharm-order-table__more {
  padding-inline: 6px;
}

.eu-pharm-line-more {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
}

.eu-pharm-order-line-block.is-invalid {
  outline: 1px solid var(--eu-danger);
  outline-offset: -1px;
}

.eu-pharm-line-detail--compact {
  padding: 8px 10px;
}

.eu-pharm-line-editor__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px 12px;
}

.eu-pharm-line-editor__batch {
  min-width: 220px;
  flex: 1 1 220px;
}

.eu-pharm-line-editor__live {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  font-size: 12px;
  align-items: center;
}

.eu-pharm-line-editor__actions {
  display: flex;
  gap: 6px;
  margin-left: auto;
}

.eu-pharm-line-editor__sub {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-top: 8px;
  align-items: flex-end;
}

.eu-pharm-order-banner {
  margin: 0;
}

.eu-pharm-collect-errors {
  margin: 8px 0 0;
  padding-left: 1.2em;
}

.eu-pharm-order-table__row.is-collect-error {
  box-shadow: inset 3px 0 0 var(--eu-danger);
}

.eu-pharm-order-table__row.is-more-open {
  background: var(--eu-secondary);
}

.eu-pharm-order-table__row.is-stock-short,
.eu-pharm-order-table__row.is-more-open.is-stock-short {
  background: var(--eu-warning-bg);
  box-shadow: inset 3px 0 0 var(--eu-warning);
}

.eu-pharm-order-table__row.is-stock-empty,
.eu-pharm-order-table__row.is-more-open.is-stock-empty {
  background: var(--eu-danger-bg);
  box-shadow: inset 3px 0 0 var(--eu-danger);
}

.eu-pharm-order-table__row.is-stock-short .eu-pharm-order-table__qty[data-pharmacy-order-line-target="avail"],
.eu-pharm-order-table__row.is-stock-empty .eu-pharm-order-table__qty[data-pharmacy-order-line-target="avail"] {
  font-weight: 700;
}

.eu-pharm-substitute-panel {
  flex: 1 1 100%;
}

.eu-pharm-substitute-heading {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--eu-text);
}

.eu-pharm-substitute-form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px 12px;
}

.eu-pharm-order-table__row:hover {
  background: var(--eu-secondary);
}

.eu-pharm-order-table__row.is-stock-short:hover {
  background: var(--eu-warning-bg);
}

.eu-pharm-order-table__row.is-stock-empty:hover {
  background: var(--eu-danger-bg);
}

.eu-pharm-line-persist-form {
  display: none;
}

.eu-pharm-order-table__sig {
  font-size: 12px;
  color: var(--eu-text-light);
  margin-top: 2px;
}

.eu-pharm-badges--compact {
  margin: 0;
  gap: 4px;
}

.eu-pharm-order-detail > td {
  padding: 0 8px 12px;
  background: var(--eu-secondary);
  border-bottom: 1px solid var(--eu-border);
}

.eu-pharm-line-detail {
  padding: 12px;
  border-radius: 8px;
  background: var(--eu-card);
  border: 1px solid var(--eu-border);
}

.eu-pharm-line-detail__batch {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.eu-pharm-line-detail__stock {
  margin: 0;
  gap: 12px;
}

.eu-pharm-line-detail__actions {
  margin-top: 4px;
}

.eu-pharm-line-detail__cdss {
  margin-bottom: 10px;
}

.eu-pharm-cdss-grid--compact {
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
}

.eu-pharm-batch-select {
  max-width: 100%;
  min-width: 280px;
}

.eu-pharm-fefo-hint {
  margin: 4px 0 0;
}

.eu-pharm-line-detail__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.eu-pharm-line-detail__stock-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-bottom: 10px;
  font-size: 13px;
}

.eu-pharm-line-detail__stock-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--eu-text-light);
}

.eu-pharm-line-amounts {
  margin: 10px 0;
}

.eu-pharm-non-disp-panel {
  margin-top: 10px;
}

.eu-pharm-non-disp-form {
  margin-top: 8px;
  padding: 10px;
  border-radius: 8px;
  background: var(--eu-secondary);
  border: 1px solid var(--eu-border);
}

.eu-pharm-change-item {
  margin: 10px 0;
  padding: 10px;
  border-radius: 8px;
  background: var(--eu-secondary);
}

.eu-pharm-identity-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px 16px;
  margin: 0 0 10px;
  font-size: 13px;
}

.eu-pharm-identity-strip dt {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--eu-text-light);
}

.eu-pharm-identity-strip dd {
  margin: 0;
  font-weight: 600;
}

.eu-pharm-order-billing {
  position: static;
  margin-top: 4px;
  background: transparent;
  padding-top: 0;
}

.eu-pharm-order-discount__fields {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px 16px;
  margin-bottom: 10px;
}

.eu-pharm-fefo-override {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 6px;
  background: var(--eu-secondary);
  border: 1px solid var(--eu-border);
}

.eu-pharm-bill-page {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.eu-pharm-bill-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px 12px;
  padding: 10px 12px;
  border: 1px solid var(--eu-border);
  border-radius: 8px;
  background: var(--eu-card);
}

.eu-pharm-bill-toolbar__field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
  color: var(--eu-text-light);
}

.eu-pharm-bill {
  width: 210mm;
  max-width: 100%;
  margin: 0 auto;
  padding: 12mm 10mm;
  background: var(--eu-card);
  border: 1px solid var(--eu-border);
  color: var(--eu-text);
}

.eu-pharm-bill[data-paper="a5"] {
  width: 148mm;
}

.eu-pharm-bill__masthead {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 2px solid var(--eu-border-strong, var(--eu-border));
  padding-bottom: 10px;
  margin-bottom: 12px;
}

.eu-pharm-bill__hospital {
  margin: 0;
  font-size: 13px;
  color: var(--eu-text-light);
}

.eu-pharm-bill__title {
  margin: 2px 0 0;
  font-size: 20px;
}

.eu-pharm-bill__ids {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 16px;
  margin: 0;
  font-size: 12px;
}

.eu-pharm-bill__ids dt {
  color: var(--eu-text-light);
}

.eu-pharm-bill__ids dd {
  margin: 0;
  font-weight: 600;
}

.eu-pharm-bill__patient {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 10px;
}

.eu-pharm-bill__patient dl {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 16px;
  margin: 0;
  flex: 1;
  font-size: 13px;
}

.eu-pharm-bill__patient dt {
  color: var(--eu-text-light);
  font-size: 11px;
}

.eu-pharm-bill__patient dd {
  margin: 0;
}

.eu-pharm-bill__status {
  margin: 0 0 10px;
  font-size: 12px;
  color: var(--eu-text-light);
}

.eu-pharm-bill__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.eu-pharm-bill__table th,
.eu-pharm-bill__table td {
  border: 1px solid var(--eu-border);
  padding: 6px 8px;
  text-align: left;
}

.eu-pharm-bill__table th {
  background: var(--eu-secondary);
  font-weight: 600;
}

.eu-pharm-bill__table td:nth-child(n+5) {
  text-align: right;
}

.eu-pharm-bill__totals {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 24px;
  margin: 12px 0 0;
  font-size: 13px;
}

.eu-pharm-bill__totals dt {
  color: var(--eu-text-light);
}

.eu-pharm-bill__totals dd {
  margin: 0;
  font-weight: 600;
  text-align: right;
}

.eu-pharm-bill__totals .is-emphasis dt,
.eu-pharm-bill__totals .is-emphasis dd {
  font-size: 15px;
}

@media print {
  .no-print {
    display: none !important;
  }

  .app-shell__sidebar,
  .app-shell__topbar,
  .app-shell__topnav,
  .app-shell__overlay,
  .eu-page-header,
  .eu-pharm-header {
    display: none !important;
  }

  .app-shell__main,
  .app-shell__workspace,
  .app-shell {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: none !important;
  }

  .eu-pharm-bill {
    width: 100%;
    max-width: none;
    border: 0;
    margin: 0;
    padding: 0;
  }
}

@media (max-width: 1100px) {
  .eu-pharm-identity-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
/*
 * ui_harmony.css — HIMS Global UI Consistency Layer
 *
 * PURPOSE: Makes every page look consistent without touching any existing views.
 * HOW:     Maps the Tailwind classes already used across 600+ views to the
 *          design-system.css CSS variables. Same class names, unified output.
 *
 * RULES:
 *   - Never override design-system.css intentionally
 *   - Never use !important (except emoji normalization where required)
 *   - All colors reference CSS variables — dark mode is automatic
 *   - Zero JS dependencies
 *
 * LOAD ORDER: Listed after design-system in application.html.erb
 */

/* ============================================================
   SECTION 1 — PERFORMANCE FOUNDATIONS
   GPU-composited layers on the elements that repaint most often
   ============================================================ */

.card,
.overflow-hidden.rounded-2xl,
.overflow-hidden.rounded-xl {
  contain: layout style;
  will-change: auto;
}

/* Smooth scroll on the main content area */
.app-shell__main,
.main {
  scroll-behavior: smooth;
}

/* Prevent layout thrash on table rows during hover */
table.data tbody tr,
.min-w-full tbody tr {
  transform: translateZ(0);
}

/* ============================================================
   SECTION 2 — EMOJI CONSISTENCY
   Makes emoji render same size and baseline across Windows/Mac/Android
   ============================================================ */

.emoji,
[class*="btn"] .emoji,
button .emoji,
td .emoji,
th .emoji,
.badge .emoji,
.card-title .emoji {
  font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif !important;
  font-style: normal;
  font-size: 1em;
  line-height: 1;
  vertical-align: -0.1em;
  display: inline-block;
}

/* Inline emoji in buttons — keep them proportional */
.btn .emoji,
button.btn .emoji { font-size: 0.95em; }

/* Page title emoji — slightly larger */
.page-title .emoji,
h1 .emoji { font-size: 0.9em; vertical-align: -0.08em; }

/* Status badge emoji */
.badge .emoji { font-size: 0.85em; vertical-align: -0.05em; }

/* Raw emoji in text (no class) — apply to common HIMS clinical emoji */
/* 🩸🔬📋💳🧾✅⚙️📤🖨️👨‍⚕️🏥💊🎯🔴🟢🟡⚠️📊📈🗓️ */
.page-title,
.card-title,
.stat-label,
td,
th,
.btn,
.badge,
h1, h2, h3 {
  font-variant-emoji: text;
}

/* ============================================================
   SECTION 3 — TAILWIND COLOR → DESIGN SYSTEM VARIABLE MAP
   Most-used classes from audit (1000+ occurrences first)
   ============================================================ */

/* ── Text colors ── */
.text-slate-950,
.text-slate-900,
.text-gray-900    { color: var(--text); }

.text-slate-700,
.text-slate-600,
.text-gray-700,
.text-gray-600    { color: var(--text-2); }

.text-slate-500,
.text-slate-400,
.text-gray-500,
.text-gray-400    { color: var(--text-3); }

.text-slate-300,
.text-slate-200,
.text-gray-300    { color: var(--text-4); }

.text-slate-100,
.text-white       { color: var(--surface); }

.text-blue-700,
.text-blue-600    { color: var(--teal); }
.text-blue-300    { color: var(--teal-soft); }

.text-amber-700   { color: var(--amber); }
.text-amber-800   { color: var(--amber-ink); }

.text-red-700,
.text-rose-700    { color: var(--red); }
.text-rose-300,
.text-red-300     { color: var(--red-soft); }

.text-emerald-700,
.text-green-700   { color: var(--green); }

/* ── Background colors ── */
.bg-white         { background-color: var(--surface); }
.bg-slate-50,
.bg-gray-50       { background-color: var(--surface-2); }
.bg-slate-100,
.bg-gray-100      { background-color: var(--surface-3); }

.bg-slate-950,
.bg-slate-900,
.bg-slate-800     {
  background-color: var(--ink);
  color: rgba(230, 239, 255, 0.85);
}

.bg-blue-600,
.bg-blue-700      { background-color: var(--teal); color: #fff; }
.bg-blue-500      { background-color: var(--teal-2); color: #fff; }
.bg-blue-50,
.bg-blue-950      { background-color: var(--teal-soft); }

.bg-amber-50      { background-color: var(--amber-soft); }
.bg-amber-500,
.bg-amber-600     { background-color: var(--amber); color: #fff; }
.bg-amber-950     { background-color: var(--amber-soft); }

.bg-red-50,
.bg-rose-50       { background-color: var(--red-soft); }
.bg-rose-950      { background-color: var(--red-soft); }

.bg-emerald-50,
.bg-green-50      { background-color: var(--green-soft); }
.bg-emerald-950   { background-color: var(--green-soft); }

/* ── Border colors ── */
.border-slate-200,
.border-gray-200,
.border-gray-100  { border-color: var(--border); }

.border-slate-800,
.border-slate-700,
.border-gray-300  { border-color: var(--border-strong); }

.border-slate-300 { border-color: var(--border-strong); }

.border-blue-500,
.border-blue-600  { border-color: var(--teal); }

.border-red-200,
.border-rose-200  { border-color: var(--red-soft); }

/* ── Dark mode overrides for Tailwind dark: classes ── */
/* These are already inlined in views as dark:bg-slate-950 etc.
   We normalise them so they use design system dark values */
[data-theme="dark"] .dark\:bg-slate-950,
[data-theme="dark"] .dark\:bg-slate-900 {
  background-color: var(--surface);
}
[data-theme="dark"] .dark\:bg-slate-800 {
  background-color: var(--surface-2);
}
[data-theme="dark"] .dark\:text-white {
  color: var(--text);
}
[data-theme="dark"] .dark\:text-slate-400,
[data-theme="dark"] .dark\:text-slate-300 {
  color: var(--text-3);
}
[data-theme="dark"] .dark\:border-slate-800,
[data-theme="dark"] .dark\:border-slate-700 {
  border-color: var(--border);
}

/* ============================================================
   SECTION 4 — TYPOGRAPHY NORMALISATION
   Unify font-weight and size classes so every screen reads the same
   ============================================================ */

.font-black,
.font-extrabold,
.font-bold        { font-weight: 600; }    /* cap at 600 — 700/900 look heavy */
.font-semibold    { font-weight: 500; }
.font-medium      { font-weight: 500; }

.text-2xl         { font-size: 22px; line-height: 1.3; }
.text-xl          { font-size: 18px; line-height: 1.35; }
.text-lg          { font-size: 16px; line-height: 1.4; }
.text-base        { font-size: 14px; line-height: 1.5; }
.text-sm          { font-size: 13px; line-height: 1.5; }
.text-xs          { font-size: 11px; line-height: 1.45; }

/* Tracking (letter-spacing) — harmonise the multiple tracking values used */
.tracking-widest,
.tracking-\[0\.18em\],
.tracking-\[0\.16em\],
.tracking-wide    { letter-spacing: 0.07em; }   /* same as table.data th */

/* ============================================================
   SECTION 5 — LAYOUT & SPACING NORMALISATION
   Round border-radius values to match design system tokens
   ============================================================ */

.rounded-2xl      { border-radius: var(--radius-lg); }   /* 12px */
.rounded-xl       { border-radius: var(--radius); }       /* 8px  */
.rounded-lg       { border-radius: var(--radius-sm); }    /* 6px  */
.rounded-md       { border-radius: var(--radius-sm); }    /* 6px  */
.rounded-full     { border-radius: 9999px; }

/* Shadow normalisation */
.shadow-sm        { box-shadow: var(--shadow-sm); }
.shadow,
.shadow-md        { box-shadow: var(--shadow-md); }
.shadow-lg        { box-shadow: var(--shadow-lg); }

/* ============================================================
   SECTION 6 — COMPONENT PATCHES
   Fix specific pages that use non-standard layout patterns
   ============================================================ */

/* Billing page: dark internal sidebar — make it match the app shell */
.billing-sidebar,
aside.bg-slate-900.w-56,
.w-56.bg-slate-900 {
  background: linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%);
  color: rgba(230, 239, 255, 0.8);
  border-right: 1px solid rgba(255,255,255,0.06);
}

/* Lab/radiology status chips — standardise inline bg+text combos */
.bg-yellow-100.text-yellow-800,
.bg-orange-100.text-orange-800 {
  background-color: var(--amber-soft);
  color: var(--amber-ink);
  border-radius: var(--radius-sm);
}

.bg-blue-100.text-blue-800 {
  background-color: var(--blue-soft);
  color: var(--blue);
  border-radius: var(--radius-sm);
}

.bg-green-100.text-green-800,
.bg-emerald-100.text-emerald-700 {
  background-color: var(--green-soft);
  color: var(--green);
  border-radius: var(--radius-sm);
}

.bg-red-100.text-red-800,
.bg-rose-100.text-rose-700 {
  background-color: var(--red-soft);
  color: var(--red);
  border-radius: var(--radius-sm);
}

/* Inline "badge" spans that hardcode colors (lab show page pattern) */
.inline-block.px-3.py-2.rounded-lg,
.inline-block.px-3.py-2.rounded-xl {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 11.5px;
  font-weight: 500;
  line-height: 1.4;
}

/* Tailwind "flex items-center gap-2" button pattern → match .btn feel */
a.inline-flex.items-center.gap-2.rounded-xl.bg-blue-600,
a.inline-flex.items-center.gap-2.rounded-xl.bg-blue-700,
button.inline-flex.items-center.gap-2.rounded-xl.bg-blue-600 {
  height: 32px;
  padding: 0 14px;
  font-size: 13px;
  font-weight: 500;
  background-color: var(--teal);
  color: #fff;
  border: 1px solid var(--teal);
  border-radius: var(--radius-sm);
  transition: background 0.08s, border-color 0.08s;
  text-decoration: none;
}

a.inline-flex.items-center.gap-2.rounded-xl.bg-blue-600:hover,
button.inline-flex.items-center.gap-2.rounded-xl.bg-blue-600:hover {
  background-color: var(--teal-2);
  border-color: var(--teal-2);
}

/* Amber primary buttons (used in billings) */
a.rounded-lg.bg-amber-500,
button.rounded-lg.bg-amber-500,
a.bg-amber-500.px-4,
button.bg-amber-500.px-4 {
  height: 32px;
  padding: 0 14px;
  font-size: 13px;
  font-weight: 500;
  background-color: var(--teal);   /* unify amber buttons to teal */
  color: #fff;
  border: 1px solid var(--teal);
  border-radius: var(--radius-sm);
  transition: background 0.08s;
}

/* ============================================================
   SECTION 7 — TABLE CONSISTENCY
   Many pages use Tailwind table markup instead of table.data
   ============================================================ */

/* Any full-width table inside overflow-x-auto gets data-table treatment */
.overflow-x-auto table,
.overflow-auto table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.overflow-x-auto table thead,
.overflow-auto table thead {
  background-color: var(--surface-2);
}

.overflow-x-auto table thead th,
.overflow-auto table thead th {
  padding: 11px 16px;
  font-size: 11px;
  font-weight: 600;
  color: var(--text-3);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  border-bottom: 1px solid var(--border);
  text-align: left;
  white-space: nowrap;
}

.overflow-x-auto table tbody td,
.overflow-auto table tbody td {
  padding: 13px 16px;
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
  color: var(--text-2);
}

.overflow-x-auto table tbody tr:last-child td,
.overflow-auto table tbody tr:last-child td {
  border-bottom: none;
}

.overflow-x-auto table tbody tr:hover td,
.overflow-auto table tbody tr:hover td {
  background-color: var(--surface-2);
}

/* ============================================================
   SECTION 8 — CARD WRAPPERS (Tailwind pattern → design system feel)
   ============================================================ */

/* The most common Tailwind card pattern in the app */
.overflow-hidden.rounded-2xl.border.bg-white,
.overflow-hidden.rounded-xl.border.bg-white {
  background-color: var(--surface);
  border-color: var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

/* Card header row */
.border-b.border-slate-200.px-6.py-4,
.border-b.border-slate-200.px-4.py-3 {
  border-bottom-color: var(--border);
  background-color: var(--surface);
}

[data-theme="dark"] .overflow-hidden.rounded-2xl.border.bg-white,
[data-theme="dark"] .overflow-hidden.rounded-xl.border.bg-white {
  background-color: var(--surface);
  border-color: var(--border);
}

/* ============================================================
   SECTION 9 — FORM CONSISTENCY
   Patient form and admission form use Tailwind inputs
   Restyle them to match .form-input without changing the HTML
   ============================================================ */

/* h-12 w-full rounded-xl border — the patient/admission form input pattern */
input.h-12.w-full.rounded-xl,
input.h-12.w-full.rounded-xl.border,
select.h-12.w-full.rounded-xl,
textarea.w-full.rounded-xl {
  height: auto;
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-family: inherit;
  background: var(--surface);
  color: var(--text);
  transition: border-color 0.08s;
  box-shadow: none;
}

input.h-12.w-full.rounded-xl:focus,
select.h-12.w-full.rounded-xl:focus,
textarea.w-full.rounded-xl:focus {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* Label style: "mb-2 block text-xs font-semibold uppercase tracking-[0.16em]" */
label.mb-2.block.text-xs,
.mb-2.block.text-xs.font-semibold.uppercase {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-3);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin-bottom: 6px;
}

/* ============================================================
   SECTION 10 — HEADING NORMALISATION
   Unify page titles used with Tailwind classes vs .page-title
   ============================================================ */

h1.text-lg.font-bold,
h1.text-xl.font-bold,
h1.text-2xl.font-bold,
h1.text-2xl.font-semibold,
h1.page-title {
  font-size: var(--eu-font-page, 20px);
  font-weight: var(--eu-font-page-weight, 700);
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--text);
  margin: 0;
}

h2.text-base.font-semibold,
h2.text-lg.font-semibold,
h2.text-lg.font-bold {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  margin: 0;
}

/* ============================================================
   SECTION 11 — STAT / KPI CARD CONSISTENCY
   Dashboard and module dashboards use different stat card markup
   ============================================================ */

/* Tailwind stat value pattern */
.text-2xl.font-bold.text-slate-900,
.text-3xl.font-bold.text-slate-900,
.text-2xl.font-semibold {
  font-size: var(--eu-font-kpi, 22px);
  font-weight: var(--eu-font-kpi-weight, 700);
  letter-spacing: -0.02em;
  font-family: 'Courier New', monospace;
  color: var(--text);
}

/* ============================================================
   SECTION 12 — RECEPTIONIST PAYMENT SCREEN
   100% inline styles — patch the wrapping divs we CAN select
   ============================================================ */

/* max-width container used by collect_payment */
div[style*="max-width: 600px"][style*="margin: 0 auto"] > div[style*="background: #fff"],
div[style*="max-width:600px"] > div[style*="background:#fff"] {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-md) !important;
}

/* Amount due box — gradient background patch */
div[style*="linear-gradient"][style*="dbeafe"] {
  background: var(--teal-soft) !important;
  border-color: var(--border) !important;
}

/* ============================================================
   SECTION 13 — RESPONSIVE
   ============================================================ */

@media (max-width: 768px) {
  .text-2xl { font-size: 18px; }
  .text-xl  { font-size: 16px; }
  .text-lg  { font-size: 14px; }

  .overflow-x-auto table thead th,
  .overflow-auto table thead th {
    padding: 8px 12px;
  }

  .overflow-x-auto table tbody td,
  .overflow-auto table tbody td {
    padding: 10px 12px;
  }
}

/* ============================================================
   SECTION 14 — DARK MODE: Tailwind dark: class normalisation
   Tailwind writes dark:X as a class that only activates when
   the .dark class is on <html>. Our app uses data-theme="dark".
   These selectors bridge the gap.
   ============================================================ */

[data-theme="dark"] .dark\:bg-slate-950 { background-color: var(--surface); }
[data-theme="dark"] .dark\:bg-slate-900 { background-color: var(--surface-2); }
[data-theme="dark"] .dark\:bg-slate-800 { background-color: var(--surface-3); }
[data-theme="dark"] .dark\:bg-blue-950  { background-color: var(--teal-soft); }
[data-theme="dark"] .dark\:bg-blue-500  { background-color: var(--teal); }
[data-theme="dark"] .dark\:bg-amber-950 { background-color: var(--amber-soft); }
[data-theme="dark"] .dark\:bg-rose-950  { background-color: var(--red-soft); }
[data-theme="dark"] .dark\:bg-emerald-950 { background-color: var(--green-soft); }

[data-theme="dark"] .dark\:text-white        { color: var(--text); }
[data-theme="dark"] .dark\:text-slate-100    { color: var(--text); }
[data-theme="dark"] .dark\:text-slate-200    { color: var(--text-2); }
[data-theme="dark"] .dark\:text-slate-300    { color: var(--text-2); }
[data-theme="dark"] .dark\:text-slate-400    { color: var(--text-3); }
[data-theme="dark"] .dark\:text-slate-500    { color: var(--text-4); }
[data-theme="dark"] .dark\:text-blue-300     { color: var(--teal-soft); }
[data-theme="dark"] .dark\:text-blue-400     { color: var(--teal); }
[data-theme="dark"] .dark\:text-amber-300    { color: var(--amber-soft); }
[data-theme="dark"] .dark\:text-rose-300     { color: var(--red-soft); }
[data-theme="dark"] .dark\:text-emerald-300  { color: var(--green-soft); }

[data-theme="dark"] .dark\:border-slate-800  { border-color: var(--border); }
[data-theme="dark"] .dark\:border-slate-700  { border-color: var(--border-strong); }
[data-theme="dark"] .dark\:hover\:bg-slate-900:hover { background-color: var(--surface-2); }
[data-theme="dark"] .dark\:hover\:bg-slate-800:hover { background-color: var(--surface-3); }

/* ============================================================
   END OF ui_harmony.css
   ============================================================ */
/* Validate Bills — FO financial authorization workbench. Tokens only. */

.vb-workbench {
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-md);
  min-width: 0;
  max-width: 100%;
}

.vb-workbench .eu-search-page,
.vb-workbench .eu-search-page--dense .eu-search-page__body,
.vb-workbench .clinical-workbench .eu-search-page__body,
.vb-workbench .clinical-workbench__body,
.vb-workbench .eu-results-frame__body {
  gap: var(--eu-space-md);
  min-width: 0;
  max-width: 100%;
}

.vb-workbench .eu-page-header {
  margin-bottom: 0;
  align-items: center;
}

.vb-workbench .eu-search-panel--dense .eu-card__header {
  padding: var(--eu-space-xs) var(--eu-space-sm);
}

.vb-workbench .eu-search-panel--dense .eu-card__body {
  padding: var(--eu-space-sm) var(--eu-space-sm) var(--eu-space-xs);
}

.vb-workbench .eu-search-panel--dense .eu-label {
  margin-bottom: 2px;
}

.vb-workbench .eu-search-dense {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: var(--eu-space-sm);
  row-gap: var(--eu-space-xs);
  align-items: end;
}

.vb-workbench .eu-search-dense > .eu-search-compact__grid {
  grid-column: 1;
  grid-row: 1;
  align-items: end;
}

.vb-workbench .eu-search-dense > .eu-search-dense__actions {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  align-items: center;
  align-self: end;
  flex-wrap: nowrap;
  gap: var(--eu-space-xs);
  padding: 0 0 2px;
  white-space: nowrap;
}

.vb-workbench .eu-search-dense > .eu-search-progressive__panel {
  grid-column: 1 / -1;
  grid-row: 2;
}

.vb-workbench .eu-search-compact__actions,
.vb-workbench .eu-search-dense__actions--inline {
  align-items: center;
  align-self: end;
}

.vb-workbench .eu-kpi-summary {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--eu-space-sm);
  margin: 0;
}

.vb-workbench .eu-kpi-summary__item,
.vb-workbench a.eu-kpi-summary__item {
  padding: 6px 10px;
  min-height: 0;
  border-radius: var(--eu-radius-sm);
}

.vb-workbench .eu-kpi-summary__label {
  margin-bottom: 2px;
  font-size: 0.625rem;
}

.vb-workbench .eu-kpi-summary__value {
  font-size: 1.05rem;
  font-variant-numeric: tabular-nums;
}

.vb-workbench .eu-kpi-summary__item--info {
  border-top-color: var(--eu-info);
}

.vb-workbench .eu-kpi-summary__item--warning {
  border-top-color: var(--eu-warning);
}

.vb-workbench .eu-kpi-summary__item--danger {
  border-top-color: var(--eu-danger);
}

.vb-workbench .eu-kpi-summary__item--success {
  border-top-color: var(--eu-success);
}

.vb-workbench .eu-results-table .eu-card__header {
  padding: var(--eu-space-xs) var(--eu-space-sm);
}

.vb-workbench .eu-results-table,
.vb-workbench .eu-results-frame,
.vb-workbench .eu-card {
  min-width: 0;
  max-width: 100%;
  overflow: visible;
}

.vb-workbench .clinical-workbench .eu-table-wrap,
.vb-workbench .eu-table-wrap {
  overflow: visible;
  max-width: 100%;
}

.vb-workbench .clinical-workbench .eu-table,
.vb-workbench .eu-table {
  min-width: 0;
  width: 100%;
  table-layout: fixed;
}

.vb-workbench .eu-table thead th,
.vb-workbench .eu-table tbody td {
  padding: 6px 8px;
  vertical-align: top;
  white-space: normal;
  overflow: hidden;
}

.vb-workbench .eu-table thead th {
  font-size: 0.625rem;
  letter-spacing: 0.06em;
}

.vb-workbench .eu-table thead th:nth-child(1),
.vb-workbench .eu-table tbody td:nth-child(1) {
  width: 2.5%;
  padding-left: var(--eu-space-sm);
}

.vb-workbench .eu-table thead th:nth-child(2),
.vb-workbench .eu-table tbody td:nth-child(2) {
  width: 13%;
}

.vb-workbench .eu-table thead th:nth-child(3),
.vb-workbench .eu-table tbody td:nth-child(3) {
  width: 13%;
}

.vb-workbench .eu-table thead th:nth-child(4),
.vb-workbench .eu-table tbody td:nth-child(4) {
  width: 11%;
}

.vb-workbench .eu-table thead th:nth-child(5),
.vb-workbench .eu-table tbody td:nth-child(5) {
  width: 13%;
}

.vb-workbench .eu-table thead th:nth-child(6),
.vb-workbench .eu-table tbody td:nth-child(6) {
  width: 9%;
}

.vb-workbench .eu-table thead th:nth-child(7),
.vb-workbench .eu-table tbody td:nth-child(7) {
  width: 8%;
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.vb-workbench .eu-table thead th:nth-child(8),
.vb-workbench .eu-table tbody td:nth-child(8) {
  width: 16%;
}

.vb-workbench .eu-table thead th:nth-child(9),
.vb-workbench .eu-table tbody td:nth-child(9),
.vb-workbench .eu-table__cell-actions {
  width: 14.5%;
  padding-right: var(--eu-space-sm);
  overflow: visible;
}

.vb-workbench .eu-table__stack-primary {
  font-size: 0.8125rem;
  line-height: 1.3;
}

.vb-workbench .eu-table__stack-meta {
  margin-top: 1px;
  font-size: 0.6875rem;
  line-height: 1.3;
}

.vb-order-no {
  font-family: ui-monospace, "JetBrains Mono", monospace;
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  color: var(--eu-text);
}

.vb-financial {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}

.vb-financial__badge {
  font-weight: 700;
  letter-spacing: 0.02em;
}

.vb-hold-reason {
  margin-top: 0;
  font-size: 0.6875rem;
  color: var(--eu-text-muted);
  line-height: 1.3;
}

.vb-workbench .eu-row-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 4px;
  width: 100%;
}

.vb-workbench .eu-row-actions .eu-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 1.75rem;
  padding: 0.15rem 0.5rem;
  font-size: 0.75rem;
  line-height: 1.2;
  white-space: nowrap;
}

.vb-workbench .eu-action-menu {
  position: relative;
  z-index: 2;
  width: 100%;
}

.vb-workbench .eu-action-menu__trigger {
  width: 100%;
  min-width: 0;
  height: 1.75rem;
  padding: 0 var(--eu-space-sm);
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1;
}

.vb-workbench .eu-action-menu__panel {
  z-index: 60;
}

.vb-trace-link {
  border: 0;
  background: transparent;
  color: var(--eu-primary);
  cursor: pointer;
  font: inherit;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.vb-trace-link:hover,
.vb-trace-link:focus-visible {
  color: var(--eu-primary-dark);
}

.vb-row--hold {
  background: var(--eu-surface-subtle);
}

.vb-row--ready td:first-child {
  box-shadow: inset 3px 0 0 var(--eu-primary);
}

.vb-bulk__bar {
  display: flex;
  align-items: center;
  gap: var(--eu-space-sm);
  flex-wrap: wrap;
  padding: var(--eu-space-sm) var(--eu-space-md);
  background: var(--eu-surface-raised);
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-md);
}

.vb-bulk__count {
  font-weight: 600;
  color: var(--eu-text);
}

.vb-bulk__hint {
  flex: 1 1 16rem;
  font-size: 0.75rem;
  color: var(--eu-text-muted);
}

.vb-drawer,
.vb-modal {
  position: fixed;
  inset: 0;
  z-index: 40;
}

.vb-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: var(--eu-text);
  opacity: 0.28;
}

.vb-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  width: min(32rem, 100%);
  background: var(--eu-surface);
  box-shadow: var(--eu-shadow-lg);
  display: flex;
  flex-direction: column;
}

.vb-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--eu-space-sm);
  padding: var(--eu-space-sm) var(--eu-space-md);
  border-bottom: 1px solid var(--eu-border);
}

.vb-drawer__header h2 {
  margin: 0;
  font-size: 1rem;
}

.vb-drawer__body {
  overflow: auto;
  padding: var(--eu-space-md);
}

.vb-modal__panel {
  position: relative;
  margin: 12vh auto 0;
  width: min(28rem, calc(100% - 2rem));
  background: var(--eu-surface);
  box-shadow: var(--eu-shadow-lg);
  border-radius: var(--eu-radius-md);
  padding: var(--eu-space-md);
}

.vb-modal__panel h2 {
  margin: 0 0 var(--eu-space-sm);
  font-size: 1rem;
}

.vb-modal__warning {
  margin: 0 0 var(--eu-space-md);
  padding: var(--eu-space-sm);
  background: var(--eu-surface-subtle);
  border-left: 3px solid var(--eu-border-strong);
  color: var(--eu-text);
  font-size: 0.875rem;
}

.vb-modal__confirm {
  margin: var(--eu-space-sm) 0 var(--eu-space-md);
}

.vb-lifecycle {
  display: flex;
  flex-wrap: wrap;
  gap: var(--eu-space-xs);
  list-style: none;
  margin: 0 0 var(--eu-space-md);
  padding: 0;
}

.vb-lifecycle__step {
  display: flex;
  align-items: center;
  color: var(--eu-text-muted);
  font-size: 0.7rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.vb-lifecycle__step:not(:last-child)::after {
  content: "→";
  margin-left: var(--eu-space-xs);
  color: var(--eu-text-faint);
}

.vb-lifecycle__step.is-current {
  color: var(--eu-primary);
  font-weight: 700;
}

.vb-review__service h3 {
  margin: var(--eu-space-md) 0 var(--eu-space-sm);
  font-size: 0.875rem;
}

.vb-trace__id {
  font-family: ui-monospace, monospace;
  font-size: 0.75rem;
  color: var(--eu-text-muted);
  margin: 0 0 var(--eu-space-md);
}

.vb-trace__steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--eu-space-sm);
}

.vb-trace__step {
  padding: var(--eu-space-sm);
  border: 1px solid var(--eu-border);
  border-radius: var(--eu-radius-sm);
  background: var(--eu-surface-subtle);
  color: var(--eu-text-muted);
}

.vb-trace__step.is-present {
  background: var(--eu-surface);
  color: var(--eu-text);
}

.vb-trace__label {
  font-size: 0.7rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--eu-text-muted);
}

.vb-trace__ref {
  margin-top: 2px;
  font-size: 0.875rem;
}

.vb-legacy-actions {
  display: flex;
  align-items: flex-end;
  gap: var(--eu-space-sm);
}

@media (max-width: 1200px) {
  .vb-workbench .eu-kpi-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .vb-drawer__panel {
    width: 100%;
  }

  .vb-workbench .eu-search-dense {
    grid-template-columns: minmax(0, 1fr);
  }

  .vb-workbench .eu-search-dense > .eu-search-dense__actions {
    grid-column: 1;
    grid-row: 2;
    flex-wrap: wrap;
  }

  .vb-workbench .eu-search-dense > .eu-search-progressive__panel {
    grid-row: 3;
  }

  .vb-workbench .eu-kpi-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vb-workbench .clinical-workbench .eu-table-wrap,
  .vb-workbench .eu-table-wrap {
    overflow-x: auto;
  }
}
