@import url("../hre-shared/ui/identity.css?v=0.2.0");
@import url("../hre-shared/ui/components.css?v=0.2.0");
/* Paleta institucional tomada del logo: alias semanticos comunes y compatibilidad de gestion. */
:root {
  --ink: var(--hre-text);
  --muted: var(--hre-muted);
  --line: var(--hre-border);
  --bg: #f5f8f9;
  --panel: #ffffff;
  --blue: var(--hre-primary);
  --green: var(--hre-success);
  --red: var(--hre-danger);
  --amber: var(--hre-warning);
  --teal: #5689bf;
  --gold: #f9ae34;
  --hospital-navy: #003878;
  --hospital-navy-dark: #002868;
  --hospital-red: #e83c3e;
  --hospital-yellow: #f9ae34;
  --hospital-celeste: #5689bf;
  --hospital-green: #079c3c;
  --hospital-white: #ffffff;
  --shadow: 0 12px 28px rgba(31, 41, 51, 0.07);
}

.private-billing-panel h4 {
  margin: 0 0 12px;
}

#privateBudget .private-billing-panel {
  border-color: #b9ded2;
  background: #f8fcfb;
  overflow-x: hidden;
}

#privateBudget .finance-panel-title {
  border-bottom: 1px solid #d8ebe4;
  padding-bottom: 12px;
}

#privateBudget .private-billing-layout article {
  min-width: 0;
  overflow-x: hidden;
  border-top: 3px solid var(--hospital-celeste);
  padding-top: 12px;
}

#privateBudget .private-billing-layout article:nth-child(2) {
  border-top-color: var(--hospital-yellow);
}

#privateBudget .private-tariff-block {
  border-top: 1px solid #d8ebe4;
  padding-top: 14px;
}

#privateBudget .finance-panel-title > span {
  max-width: 100%;
  white-space: normal;
  line-height: 1.25;
}

.budget-trace-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.budget-trace-summary > div {
  display: grid;
  gap: 4px;
  min-width: 0;
  border: 1px solid #cfdae2;
  border-left: 4px solid var(--hospital-navy);
  border-radius: 8px;
  background: #fbfdff;
  padding: 12px;
}

.budget-trace-summary > div:nth-child(2) {
  border-left-color: var(--hospital-celeste);
}

.budget-trace-summary > div:nth-child(3) {
  border-left-color: var(--hospital-yellow);
}

.budget-trace-summary span,
.budget-trace-summary small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.budget-trace-summary strong {
  color: #142232;
  font-size: 18px;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.budget-report-panel {
  display: grid;
  gap: 12px;
  margin-top: 14px;
  border-top: 1px solid #d8ebe4;
  padding-top: 14px;
}

.budget-report-panel[hidden] {
  display: none;
}

.budget-report-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
}

.budget-report-head > div:first-child {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.budget-report-head span,
.budget-report-head small,
.budget-report-controls label span,
.budget-report-row.header,
.budget-report-row small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

.budget-report-head strong {
  color: #142232;
  font-size: 18px;
  line-height: 1.15;
}

.budget-report-controls {
  display: grid;
  grid-template-columns: repeat(2, minmax(132px, 1fr)) repeat(2, auto);
  gap: 8px;
  align-items: end;
}

.budget-report-controls label {
  display: grid;
  gap: 5px;
}

.budget-report-controls input {
  width: 100%;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  background: #fbfdff;
  color: var(--ink);
  padding: 8px 10px;
}

.budget-report-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.budget-report-summary span {
  min-width: 0;
  border-top: 2px solid #b8d8c5;
  padding-top: 8px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.budget-report-summary strong {
  display: block;
  color: #142232;
  font-size: 17px;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.budget-report-table-wrapper {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  background: #ffffff;
}

.budget-report-row {
  display: grid;
  grid-template-columns: minmax(130px, 0.65fr) minmax(220px, 1.2fr) minmax(140px, 0.75fr) minmax(140px, 0.75fr) minmax(140px, 0.75fr) minmax(150px, 0.8fr);
  gap: 10px;
  align-items: center;
  min-width: 920px;
  padding: 10px 12px;
  border-top: 1px solid #edf2f7;
}

.budget-report-row:first-child {
  border-top: 0;
}

.budget-report-row.header {
  background: #f3f8f7;
  text-transform: uppercase;
}

.budget-report-row strong,
.budget-report-row span,
.budget-report-row small {
  display: block;
  overflow-wrap: anywhere;
}

.budget-report-row strong {
  color: #142232;
}

.budget-import-panel {
  display: grid;
  gap: 10px;
  margin-top: 14px;
  border-top: 1px solid #d8ebe4;
  padding-top: 14px;
}

.budget-import-panel[hidden] {
  display: none;
}

.budget-import-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
}

.budget-import-head > div:first-child {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.budget-import-head span,
.budget-import-controls label span,
.budget-import-row.header,
.budget-import-row small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

.budget-import-head strong {
  color: #142232;
  font-size: 18px;
  line-height: 1.15;
}

.budget-import-controls {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) repeat(3, auto);
  gap: 8px;
  align-items: end;
}

.budget-import-controls label {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.budget-import-controls select,
.budget-import-panel textarea {
  width: 100%;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  background: #fbfdff;
  color: var(--ink);
  padding: 8px 10px;
}

.budget-import-panel textarea {
  min-height: 120px;
  resize: vertical;
  font-family: var(--font-datos);
  font-size: 12px;
  line-height: 1.45;
}

.budget-import-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.budget-import-summary span {
  min-width: 0;
  border-top: 2px solid #b8d8c5;
  padding-top: 8px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.budget-import-summary strong {
  display: block;
  color: #142232;
  font-size: 17px;
  line-height: 1.2;
}

.budget-import-table {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  background: #ffffff;
}

.budget-import-row {
  display: grid;
  grid-template-columns: minmax(95px, 0.45fr) minmax(140px, 0.7fr) minmax(260px, 1.4fr) minmax(120px, 0.7fr);
  gap: 10px;
  align-items: center;
  min-width: 740px;
  padding: 10px 12px;
  border-top: 1px solid #edf2f7;
}

.budget-import-row:first-child {
  border-top: 0;
}

.budget-import-row.header {
  background: #f3f8f7;
  text-transform: uppercase;
}

.budget-import-row strong,
.budget-import-row span,
.budget-import-row small {
  display: block;
  overflow-wrap: anywhere;
}

.budget-import-row strong {
  color: #142232;
}

.private-budget-form {
  display: grid;
  gap: 14px;
  min-width: 0;
  border-top: 1px solid var(--line);
  margin-top: 16px;
  padding-top: 16px;
}

.private-form-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.private-budget-form label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.private-budget-form label span,
.private-item-row.header,
.private-budget-preview span,
.private-budget-preview small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.private-budget-form input,
.private-budget-form select {
  width: 100%;
  min-width: 0;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  background: #fbfdff;
  color: var(--ink);
  padding: 9px 10px;
}

.private-item-table {
  display: grid;
  gap: 8px;
  max-width: 100%;
  overflow-x: auto;
  padding-bottom: 2px;
}

.private-item-row {
  display: grid;
  grid-template-columns: minmax(260px, 1.35fr) minmax(90px, 0.45fr) minmax(130px, 0.55fr) minmax(220px, 1fr);
  gap: 8px;
  align-items: center;
  min-width: 720px;
}

.private-item-row.header {
  padding: 0 4px;
  text-transform: uppercase;
}

.private-budget-form-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
}

.private-budget-preview {
  display: grid;
  gap: 8px;
  min-width: 0;
  border: 1px solid #dbe5ea;
  border-left: 4px solid var(--hospital-celeste);
  border-radius: 8px;
  background: #fbfdff;
  padding: 12px;
}

.private-budget-preview-head {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.private-budget-preview-head > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.private-budget-preview strong {
  overflow-wrap: anywhere;
}

.private-budget-preview-lines {
  display: grid;
  gap: 6px;
}

.private-detail-line.compact {
  grid-template-columns: minmax(0, 1fr) minmax(110px, 0.35fr) minmax(160px, 0.7fr);
  padding: 6px 0;
}

.private-form-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  min-width: 190px;
}

.private-budget-save-feedback {
  margin-top: 10px;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 750;
  border-left: 4px solid transparent;
}
.private-budget-save-feedback.is-ok {
  background: #e9f7ef;
  color: #1c7a4a;
  border-left-color: #1c7a4a;
}
.private-budget-save-feedback.is-error {
  background: #fdecec;
  color: #b3261e;
  border-left-color: #b3261e;
}

/* Banner de presupuestos locales pendientes de migracion al server */
.presupuestos-local-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid #e7c98a;
  border-left: 4px solid #c9931f;
  border-radius: 8px;
  background: #fdf6e7;
}

.presupuestos-local-banner > div {
  display: grid;
  gap: 4px;
  min-width: 0;
  flex: 1 1 320px;
}

.presupuestos-local-banner strong {
  color: #7a5a10;
}

.presupuestos-local-banner span {
  color: #6b5a2e;
  font-size: 13px;
}

/* Acciones por fila de la lista de presupuestos del server */
.budget-list-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.budget-list-actions button {
  font-size: 12px;
  padding: 4px 8px;
}

.private-billing-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.8fr);
  gap: 16px;
}

.private-quote-row {
  grid-template-columns: minmax(240px, 1.4fr) minmax(120px, 0.75fr) minmax(130px, 0.8fr) minmax(120px, 0.75fr) minmax(130px, 0.8fr);
}

.budget-list-controls {
  display: grid;
  grid-template-columns: minmax(180px, 1.2fr) minmax(120px, 0.7fr) minmax(160px, 0.85fr) repeat(2, minmax(130px, 0.7fr)) minmax(130px, 0.75fr) auto auto;
  gap: 8px;
  align-items: end;
  margin-bottom: 10px;
}

.budget-list-controls label {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.budget-list-controls label span,
.budget-list-count,
.budget-list-row small,
.budget-list-row.header,
.budget-detail-title span,
.budget-detail-title small,
.budget-detail-meta span,
.budget-detail-meta small,
.budget-audit-chain span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.budget-list-controls input,
.budget-list-controls select {
  border: 1px solid #e4edf2;
  border-radius: 8px;
  background: #fbfdff;
  color: var(--ink);
  min-width: 0;
  padding: 9px 10px;
}

.budget-sort-direction {
  min-height: 39px;
  padding: 9px 11px;
}

.budget-list-count {
  display: inline-grid;
  place-items: center;
  min-height: 39px;
  border: 1px solid #e4edf2;
  border-radius: 8px;
  background: #fbfdff;
  padding: 8px 10px;
}

.private-catalog-controls {
  grid-template-columns: minmax(150px, 1fr) minmax(120px, 0.8fr) minmax(120px, 0.7fr) auto auto;
}

.private-service-table {
  display: grid;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
}

.private-service-row {
  display: grid;
  grid-template-columns: minmax(110px, 0.55fr) minmax(220px, 1.2fr) minmax(130px, 0.7fr) minmax(110px, 0.55fr) minmax(240px, 1.2fr);
  gap: 10px;
  align-items: center;
  min-width: 780px;
  border-bottom: 1px solid var(--line);
  padding: 9px 4px;
}

.private-service-row.header {
  border-top: 1px solid var(--line);
  background: #eef7f4;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.private-service-row strong,
.private-service-row span,
.private-service-row small {
  min-width: 0;
  overflow-wrap: anywhere;
}

.private-service-row small {
  display: block;
  color: var(--muted);
  font-weight: 700;
}

.private-service-money {
  text-align: right;
}

.budget-list-table {
  display: grid;
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
}

.budget-list-row {
  display: grid;
  grid-template-columns: minmax(128px, 0.8fr) minmax(190px, 1.25fr) minmax(170px, 1fr) minmax(116px, 0.7fr) minmax(128px, 0.75fr) minmax(150px, 0.95fr) minmax(190px, 1.2fr);
  gap: 10px;
  min-width: 1080px;
  align-items: center;
  border-top: 1px solid var(--line);
  padding: 10px 12px;
}

.budget-list-row:first-child {
  border-top: 0;
}

.budget-list-row.header {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #eef5f2;
  text-transform: uppercase;
}

.budget-list-row.header button {
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  font-weight: 900;
  padding: 0;
  text-align: left;
}

.budget-list-row strong,
.budget-list-row small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.budget-list-money strong {
  white-space: nowrap;
}

.budget-list-trace {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.budget-list-trace span {
  border: 1px solid #dbe5ea;
  border-radius: 999px;
  background: #fbfdff;
  color: #425466;
  font-size: 11px;
  font-weight: 800;
  padding: 4px 7px;
}

.budget-list-trace span.done {
  border-color: #b8d8c5;
  background: #f7fbf8;
  color: var(--hospital-green);
}

.budget-list-trace span.pending {
  border-color: #ead7a9;
  background: #fffaf0;
  color: #8a5b16;
}

.budget-detail-title {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  border: 1px solid #cfdae2;
  border-left: 5px solid var(--hospital-navy);
  border-radius: 8px;
  background: white;
  padding: 12px;
}

.budget-detail-meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.budget-detail-meta > div {
  display: grid;
  gap: 3px;
  min-width: 0;
  border: 1px solid #e4edf2;
  border-radius: 8px;
  background: #fbfdff;
  padding: 9px;
}

.budget-detail-meta strong {
  color: #203040;
  font-size: 13px;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.budget-detail-sheet {
  display: grid;
  gap: 12px;
}

.budget-detail-title > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.budget-detail-title strong {
  color: #102033;
  font-size: 24px;
  line-height: 1;
  overflow-wrap: anywhere;
}

.budget-detail-lines,
.budget-total-box,
.budget-audit-chain {
  display: grid;
  gap: 8px;
}

.budget-audit-chain {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.budget-audit-chain > div {
  display: grid;
  gap: 4px;
  min-width: 0;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  background: #fbfdff;
  padding: 9px;
}

.budget-audit-chain > div.done {
  border-color: #b8d8c5;
  background: #f7fbf8;
}

.budget-audit-chain > div.pending {
  border-color: #ead7a9;
  background: #fffaf0;
}

.budget-audit-chain strong {
  color: #203040;
  font-size: 12px;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.private-catalog-list,
.private-quote-detail,
.private-tariff-table {
  display: grid;
  gap: 10px;
}

.private-catalog-row,
.private-detail-line,
.private-detail-total,
.private-detail-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 10px 12px;
}

.private-catalog-row {
  grid-template-columns: minmax(0, 1fr) auto auto minmax(120px, 0.65fr);
}

.private-catalog-row span,
.private-catalog-row small,
.private-detail-head span,
.private-detail-line span,
.private-detail-total span {
  color: var(--muted);
  font-weight: 700;
}

.private-detail-total.strong {
  border-color: #9fc8ba;
  background: #f4fbf8;
}

.private-tariff-block {
  display: grid;
  gap: 10px;
}

.private-tariff-row {
  display: grid;
  grid-template-columns: minmax(120px, 0.7fr) minmax(90px, 0.5fr) minmax(90px, 0.5fr) minmax(110px, 0.6fr) minmax(200px, 1fr) minmax(100px, 0.5fr);
  gap: 10px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding: 9px 4px;
}

.private-tariff-row.header {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.private-tariff-row span {
  overflow-wrap: anywhere;
}

@media (max-width: 980px) {
  .private-billing-layout,
  .budget-trace-summary,
  .budget-detail-meta,
  .budget-audit-chain,
  .budget-list-controls,
  .budget-import-summary,
  .private-catalog-controls,
  .private-form-grid,
  .budget-report-summary,
  .private-budget-preview-head {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .budget-report-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .budget-import-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .private-budget-form-footer {
    grid-template-columns: 1fr;
  }

  .private-form-actions {
    justify-content: flex-start;
  }

  .private-quote-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  #privateBudget > .module-head {
    gap: 12px;
  }

  #privateBudget > .module-head h2 {
    font-size: 34px;
    line-height: 1.12;
  }

  #privateBudget .topbar-actions {
    justify-content: flex-start;
    width: 100%;
  }

  #privateBudget .topbar-actions .primary {
    width: auto;
    min-height: 44px;
    padding: 10px 14px;
    font-size: 14px;
  }

  .private-billing-layout,
  .budget-trace-summary,
  .budget-detail-meta,
  .budget-audit-chain,
  .budget-list-controls,
  .private-catalog-controls,
  .private-form-grid,
  .budget-report-controls,
  .budget-report-summary,
  .budget-import-controls,
  .budget-import-summary,
  .private-budget-preview-head,
  .private-item-row,
  .private-detail-line.compact,
  .private-service-row {
    grid-template-columns: 1fr;
  }

  .private-item-row,
  .private-service-row {
    min-width: 0;
  }

  .private-form-actions button {
    flex: 1 1 150px;
  }

  .budget-detail-title {
    flex-direction: column;
  }

  .private-catalog-row,
  .private-tariff-row,
  .private-detail-line,
  .private-detail-total {
    grid-template-columns: 1fr;
  }
}

@media print {
  body {
    display: block;
    background: white;
  }

  .sidebar,
  .topbar,
  .nav,
  .print-actions,
  body:not(.printing-surgery-agenda) .section:not(#clinicalRecords):not(#admission),
  #clinicalRecordSummary,
  #clinicalRecordSearchBox,
  #clinicalRecordRows,
  .clinical-record-layout > article:first-child,
  .clinical-record-layout > article > h3,
  #clinicalRecords > .module-head,
  #clinicalRecords > .panel {
    display: none !important;
  }

  .shell,
  #clinicalRecords,
  .clinical-record-layout,
  #clinicalRecordDetail,
  .clinical-print-sheet {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    border: 0 !important;
  }

  body:not(.printing-appointment):not(.printing-daily-board) #admission,
  body.printing-appointment #clinicalRecords,
  body.printing-daily-board #clinicalRecords {
    display: none !important;
  }

  body.printing-appointment #admission,
  body.printing-daily-board #admission {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    border: 0 !important;
  }

  body.printing-appointment #admission > :not(.appointment-constancy-print) {
    display: none !important;
  }

  body.printing-appointment .appointment-constancy-print {
    display: block !important;
  }

  body.printing-daily-board #admission > :not(.admission-workspace) {
    display: none !important;
  }

  body.printing-daily-board .admission-workspace {
    display: block !important;
    margin: 0 !important;
  }

  body.printing-daily-board .admission-pane:not([data-admission-pane="today"]) {
    display: none !important;
  }

  body.printing-daily-board [data-admission-pane="today"] {
    display: block !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
  }

  body.printing-daily-board .daily-bulk-actions,
  body.printing-daily-board .appointment-filter-bar,
  body.printing-daily-board button,
  body.printing-daily-board .inline-actions {
    display: none !important;
  }

  .clinical-print-sheet {
    color: black;
    background: white;
  }
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

.appointment-constancy-print {
  display: none;
}

body {
  margin: 0;
  min-height: 100vh;
  max-width: 100%;
  overflow-x: hidden;
  color: var(--ink);
  background: var(--bg);
  font-family: var(--font-ui);
  display: grid;
  grid-template-columns: 300px 1fr;
}

button {
  font: inherit;
}

input {
  font: inherit;
}

select,
textarea {
  font: inherit;
}

.auth-view {
  grid-column: 1 / -1;
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 28px;
  background:
    linear-gradient(135deg, rgba(0, 56, 120, 0.94), rgba(0, 40, 104, 0.9)),
    linear-gradient(25deg, rgba(232, 60, 62, 0.18), rgba(249, 174, 52, 0.18)),
    #003878;
}

.login-card {
  width: min(100%, 430px);
  background: white;
  border: 1px solid rgba(219, 229, 234, 0.85);
  border-radius: 8px;
  box-shadow: 0 22px 54px rgba(18, 58, 82, 0.28);
  padding: 28px;
}

.public-card {
  width: min(100%, 1040px);
  max-height: calc(100vh - 56px);
  overflow: auto;
  background: white;
  border: 1px solid rgba(219, 229, 234, 0.85);
  border-radius: 8px;
  box-shadow: 0 22px 54px rgba(18, 58, 82, 0.28);
  padding: 28px;
}

.public-view {
  align-items: start;
}

.login-brand {
  margin-bottom: 26px;
}

.login-copy h1 {
  margin: 0;
  font-size: 30px;
}

.login-copy p:last-child {
  margin: 8px 0 0;
  color: var(--muted);
}

.login-form {
  display: grid;
  gap: 10px;
  margin-top: 24px;
}

.full-button {
  width: 100%;
  margin-top: 12px;
}

.login-shortcuts {
  display: grid;
  gap: 6px;
  margin-top: 12px;
}

.login-shortcuts .full-button {
  margin-top: 0;
}

.login-shortcuts span {
  color: var(--muted);
  font-size: 12px;
  text-align: center;
}

.login-form label {
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
}

.login-form input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px 13px;
  color: var(--ink);
  background: #fbfdff;
}

.login-form input:focus {
  border-color: var(--hospital-navy);
  box-shadow: 0 0 0 3px rgba(0, 56, 120, 0.14);
  outline: 0;
}

.form-error {
  min-height: 20px;
  margin: 2px 0 0;
  color: var(--red);
  font-size: 13px;
  font-weight: 700;
}

.sidebar {
  min-height: 100vh;
  background: #ffffff;
  border-right: 1px solid var(--line);
  padding: 22px 16px;
  position: sticky;
  top: 0;
  max-height: 100vh;
  overflow: hidden;
}

.brand {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 18px;
  padding: 0 6px 14px;
  border-bottom: 1px solid #edf2f5;
}

.brand-mark {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--blue), var(--green));
  color: white;
  font-weight: 800;
}

.brand-mark-logo {
  width: 56px;
  height: 56px;
  overflow: hidden;
  border: 1px solid #dbe6ee;
  background: #ffffff;
  box-shadow: 0 6px 16px rgba(18, 63, 90, 0.08);
}

.brand-mark-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 4px;
}

.login-brand .brand-mark-logo {
  width: 64px;
  height: 64px;
}

.brand strong,
.brand span {
  display: block;
}

.brand span {
  color: var(--muted);
  font-size: 13px;
  margin-top: 3px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.nav-tools {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px;
  margin: -4px 2px 12px;
}

.nav-search {
  min-width: 0;
  width: 100%;
  border: 1px solid #dbe6ee;
  border-radius: 8px;
  background: #f8fbfd;
  color: var(--ink);
  font-family: inherit;
  font-size: 13px;
  font-weight: 650;
  min-height: 36px;
  padding: 8px 10px;
}

.nav-search:focus {
  border-color: var(--hospital-navy);
  box-shadow: 0 0 0 3px rgba(0, 56, 120, 0.14);
  outline: 0;
}

.nav-search-clear {
  border: 1px solid #dbe6ee;
  border-radius: 8px;
  background: white;
  color: #51667b;
  cursor: pointer;
  font-family: inherit;
  font-size: 12px;
  font-weight: 800;
  min-height: 36px;
  padding: 0 10px;
}

.nav-search-clear:hover {
  border-color: #c8e4d8;
  color: var(--green);
}

.nav {
  display: grid;
  gap: 12px;
  max-height: calc(100vh - 152px);
  overflow-y: auto;
  padding: 2px 4px 12px 0;
  scrollbar-width: thin;
  scrollbar-color: #bfd0dc transparent;
}

.nav::-webkit-scrollbar {
  width: 8px;
}

.nav::-webkit-scrollbar-thumb {
  background: #bfd0dc;
  border-radius: 999px;
}

.nav-group {
  --nav-accent: var(--green);
  --nav-accent-dark: #1f6757;
  --nav-accent-soft: #e9f5f1;
  --nav-accent-border: #b8ded2;
  --nav-accent-ink: #1f6757;
  --nav-active-text: #ffffff;
  display: grid;
  gap: 5px;
  padding: 8px;
  border: 1px solid var(--nav-accent-border);
  border-left: 5px solid var(--nav-accent);
  border-radius: 8px;
  background:
    linear-gradient(90deg, var(--nav-accent-soft), rgba(255, 255, 255, 0) 38%),
    var(--hospital-white);
}

.nav-group-celeste {
  --nav-accent: var(--hospital-celeste);
  --nav-accent-dark: #003878;
  --nav-accent-soft: #edf6ff;
  --nav-accent-border: #c7dced;
  --nav-accent-ink: #003878;
}

.nav-group-rojo {
  --nav-accent: var(--hospital-red);
  --nav-accent-dark: #ba1f29;
  --nav-accent-soft: #fff0f0;
  --nav-accent-border: #f4c5ca;
  --nav-accent-ink: #ba1f29;
}

.nav-group-amarillo {
  --nav-accent: var(--hospital-yellow);
  --nav-accent-dark: #f9ae34;
  --nav-accent-soft: #fff8e8;
  --nav-accent-border: #f4d59b;
  --nav-accent-ink: #8a5800;
  --nav-active-text: #3d2f08;
}

.nav-group-verde {
  --nav-accent: var(--hospital-green);
  --nav-accent-dark: #079c3c;
  --nav-accent-soft: #effaf3;
  --nav-accent-border: #bee8cd;
  --nav-accent-ink: #087f34;
}

.nav-group-blanco-verde {
  --nav-accent: #079c3c;
  --nav-accent-dark: #087f34;
  --nav-accent-soft: #ffffff;
  --nav-accent-border: #bee8cd;
  --nav-accent-ink: #087f34;
  background: var(--hospital-white);
}

/* --- Colores por funcion: cada solapa con su tono distinguible --- */
/* Turnos */
.nav-group-indigo {
  --nav-accent: var(--hospital-navy);
  --nav-accent-dark: var(--hospital-navy-dark);
  --nav-accent-soft: #eef6ff;
  --nav-accent-border: #c9dff4;
  --nav-accent-ink: var(--hospital-navy);
}

/* Ingresos */
.nav-group-teal {
  --nav-accent: var(--hospital-celeste);
  --nav-accent-dark: var(--hospital-navy);
  --nav-accent-soft: #edf6ff;
  --nav-accent-border: #c7dced;
  --nav-accent-ink: var(--hospital-navy);
}

/* Soporte */
.nav-group-pizarra {
  --nav-accent: var(--hospital-navy-dark);
  --nav-accent-dark: var(--hospital-navy);
  --nav-accent-soft: #eef1f5;
  --nav-accent-border: #ccd5e0;
  --nav-accent-ink: var(--hospital-navy);
}

/* Administracion */
.nav-group-naranja {
  --nav-accent: var(--hospital-yellow);
  --nav-accent-dark: #8a5800;
  --nav-accent-soft: #fff8e8;
  --nav-accent-border: #f4d59b;
  --nav-accent-ink: #8a5800;
  --nav-active-text: #3d2f08;
}

/* RRHH */
.nav-group-purpura {
  --nav-accent: var(--hospital-celeste);
  --nav-accent-dark: var(--hospital-navy);
  --nav-accent-soft: #edf6ff;
  --nav-accent-border: #c7dced;
  --nav-accent-ink: var(--hospital-navy);
}

/* Reglas y procesos */
.nav-group-magenta {
  --nav-accent: var(--hospital-navy);
  --nav-accent-dark: var(--hospital-navy-dark);
  --nav-accent-soft: #eef6ff;
  --nav-accent-border: #c9dff4;
  --nav-accent-ink: var(--hospital-navy);
}

.nav-group.is-collapsed > .nav-item,
.nav-group.is-collapsed > .nav-submenu {
  display: none;
}

.nav.is-searching .nav-group.is-collapsed > .nav-item:not([hidden]) {
  display: block;
}

.nav.is-searching .nav-group.is-collapsed > .nav-submenu:not([hidden]) {
  display: grid;
}

.nav-group-toggle {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 6px;
  width: 100%;
  min-height: 28px;
  padding: 0 4px 4px;
  border: 0;
  background: transparent;
  color: var(--nav-accent-ink);
  cursor: pointer;
  font-family: inherit;
  text-align: left;
}

.nav-group-label {
  color: inherit;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.nav-group-meta {
  min-width: 20px;
  border-radius: 999px;
  background: var(--nav-accent-soft);
  color: var(--nav-accent-ink);
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  padding: 4px 6px;
  text-align: center;
}

.nav-group-chevron {
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: var(--nav-accent-soft);
  color: var(--nav-accent-ink);
  font-size: 10px;
  font-weight: 900;
  transition: transform 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.nav-group-toggle:hover,
.nav-group-toggle:focus-visible {
  color: var(--nav-accent-dark);
  outline: 0;
}

.nav-group-toggle:hover .nav-group-chevron,
.nav-group-toggle:focus-visible .nav-group-chevron {
  background: var(--nav-accent);
  color: var(--nav-active-text);
}

.nav-group.is-collapsed .nav-group-chevron {
  transform: none;
}

.nav-item {
  position: relative;
  border: 1px solid transparent;
  background: white;
  text-align: left;
  padding: 9px 10px 9px 14px;
  border-radius: 8px;
  color: #425466;
  cursor: pointer;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.2;
  min-height: 36px;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.nav-item-parent {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.nav-item-caret {
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  background: #edf4f7;
  color: #607589;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  transition: transform 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.nav-item-parent.active .nav-item-caret {
  background: rgba(255, 255, 255, 0.18);
  color: white;
  transform: rotate(180deg);
}

.nav-item:hover {
  background: var(--nav-accent-soft);
  color: var(--nav-accent-ink);
  border-color: var(--nav-accent-border);
}

.nav-item.active {
  background: var(--nav-accent-dark);
  color: var(--nav-active-text);
  font-weight: 700;
  border-color: var(--nav-accent-dark);
  box-shadow: 0 8px 18px rgba(18, 63, 90, 0.13);
}

.nav-item.active::before {
  content: "";
  position: absolute;
  left: 6px;
  top: 9px;
  bottom: 9px;
  width: 3px;
  border-radius: 999px;
  background: var(--hospital-white);
}

.nav-submenu {
  display: grid;
  gap: 4px;
  margin: 1px 0 6px;
  padding: 6px 0 6px 14px;
  border-left: 2px solid var(--nav-accent-border);
}

.nav-submenu-label {
  color: #7b8da1;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1.1;
  padding: 1px 8px 2px;
  text-transform: uppercase;
}

.nav-subitem {
  border: 1px solid transparent;
  border-radius: 8px;
  background: #f6fafc;
  color: #51667b;
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  min-height: 31px;
  padding: 7px 9px;
  text-align: left;
}

.nav-subitem:hover {
  background: var(--nav-accent-soft);
  color: var(--nav-accent-ink);
  border-color: var(--nav-accent-border);
}

.nav-subitem.active {
  background: var(--nav-accent-soft);
  color: var(--nav-accent-ink);
  border-color: var(--nav-accent);
}

.shell {
  padding: 28px;
  min-width: 0;
}

.topbar,
.module-head,
.workflow {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
}

.topbar {
  margin-bottom: 24px;
  flex-wrap: wrap;
}

.topbar > div:first-child {
  flex: 1 1 420px;
  min-width: 260px;
}

.topbar h1,
.module-head h2,
.workflow h2 {
  margin: 0;
}

.lead {
  color: var(--muted);
  margin: 8px 0 0;
  max-width: 880px;
  line-height: 1.45;
}

.eyebrow {
  margin: 0 0 6px;
  color: var(--green);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

/* --- Identidad de color por funcion en el contenido ---
   function-colors.js estampa data-function-color en cada <section> leyendo su
   grupo de nav. El header del modulo (parte izquierda) toma ese color: barra de
   acento + eyebrow, asi cada funcionalidad se distingue de un vistazo. */
.section[data-function-color] {
  --fn-accent: var(--hospital-navy);
  --fn-ink: var(--hospital-navy);
  --fn-soft: #f1f7ff;
  --fn-border: #c9def2;
}
.section[data-function-color="celeste"]  { --fn-accent: #5689bf; --fn-ink: #003878; --fn-soft: #edf6ff; --fn-border: #c7dced; }
.section[data-function-color="indigo"]   { --fn-accent: var(--hospital-navy); --fn-ink: var(--hospital-navy); --fn-soft: #eef6ff; --fn-border: #c9dff4; }
.section[data-function-color="teal"]     { --fn-accent: var(--hospital-celeste); --fn-ink: var(--hospital-navy); --fn-soft: #edf6ff; --fn-border: #c7dced; }
.section[data-function-color="rojo"]     { --fn-accent: #e83c3e; --fn-ink: #ba1f29; --fn-soft: #fff0f1; --fn-border: #f4c5ca; }
.section[data-function-color="verde"]    { --fn-accent: #079c3c; --fn-ink: #087f34; --fn-soft: #effaf3; --fn-border: #bee8cd; }
.section[data-function-color="pizarra"]  { --fn-accent: var(--hospital-navy-dark); --fn-ink: var(--hospital-navy); --fn-soft: #f1f5f9; --fn-border: #d8e1ea; }
.section[data-function-color="amarillo"] { --fn-accent: #f9ae34; --fn-ink: #8a5800; --fn-soft: #fff8e8; --fn-border: #f4d59b; }
.section[data-function-color="naranja"]  { --fn-accent: var(--hospital-yellow); --fn-ink: #8a5800; --fn-soft: #fff8e8; --fn-border: #f4d59b; }
.section[data-function-color="purpura"]  { --fn-accent: var(--hospital-celeste); --fn-ink: var(--hospital-navy); --fn-soft: #edf6ff; --fn-border: #c7dced; }
.section[data-function-color="magenta"]  { --fn-accent: var(--hospital-navy); --fn-ink: var(--hospital-navy); --fn-soft: #eef6ff; --fn-border: #c9dff4; }

.section[data-function-color] > .module-head {
  position: relative;
  border: 1px solid var(--fn-border);
  border-left: 6px solid var(--fn-accent);
  border-radius: 8px;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--fn-soft) 84%, white), #ffffff 74%),
    #ffffff;
  box-shadow: 0 10px 24px rgba(31, 41, 51, 0.055);
  margin-bottom: 16px;
  padding: 16px 18px;
}

.section[data-function-color] > .module-head .eyebrow {
  color: var(--fn-ink);
}

.section[data-function-color] > .module-head h2 {
  color: #172433;
  font-size: clamp(24px, 2.1vw, 34px);
  line-height: 1.12;
}

.section[data-function-color] > .module-head .body-copy,
.section[data-function-color] > .module-head p:not(.eyebrow) {
  color: #516174;
  max-width: 920px;
}

.section[data-function-color] .command-header {
  border-color: var(--fn-border);
  border-left: 6px solid var(--fn-accent);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--fn-ink) 88%, #142232), color-mix(in srgb, var(--fn-accent) 44%, #102033)),
    #102033;
}

.section[data-function-color] input:not([type="checkbox"]):not([type="radio"]),
.section[data-function-color] select,
.section[data-function-color] textarea {
  min-height: 38px;
  border: 1px solid #ccd7e1;
  border-radius: 8px;
  background: #fbfdff;
  color: #172433;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.section[data-function-color] textarea {
  min-height: 88px;
}

.section[data-function-color] input:not([type="checkbox"]):not([type="radio"]):focus,
.section[data-function-color] select:focus,
.section[data-function-color] textarea:focus {
  outline: 0;
  border-color: var(--fn-accent);
  background: #ffffff;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--fn-accent) 18%, transparent);
}

.section[data-function-color] input:not([type="checkbox"]):not([type="radio"]):disabled,
.section[data-function-color] select:disabled,
.section[data-function-color] textarea:disabled {
  background: #f2f5f8;
  color: #8a98a8;
  cursor: not-allowed;
}

.section[data-function-color] label span,
.section[data-function-color] .ui-field span,
.section[data-function-color] [class*="filters"] label span,
.section[data-function-color] [class*="toolbar"] label span,
.section[data-function-color] [class*="form"] label span {
  color: #516174;
  font-size: 12px;
  font-weight: 850;
}

.section[data-function-color] .panel,
.section[data-function-color] .hsi-pantalla,
.section[data-function-color] .ui-section,
.section[data-function-color] .admission-kpi,
.section[data-function-color] .ops-card,
.section[data-function-color] .doctor-circuit-card,
.section[data-function-color] .pharmacy-api-card {
  border-color: color-mix(in srgb, var(--fn-border) 72%, #dbe5ea);
  box-shadow: 0 10px 22px rgba(31, 41, 51, 0.045);
}

.section[data-function-color] .panel > h3:first-child,
.section[data-function-color] .panel > h2:first-child,
.section[data-function-color] .hsi-pantalla > h3:first-child {
  border-left: 4px solid var(--fn-accent);
  padding-left: 10px;
}

.topbar-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  max-width: 100%;
  justify-content: flex-end;
}

.session-chip {
  min-width: 150px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  padding: 8px 12px;
  text-align: right;
}

.session-chip strong,
.session-chip span {
  display: block;
}

.session-chip strong {
  font-size: 13px;
}

.session-chip span {
  color: var(--muted);
  font-size: 12px;
  margin-top: 2px;
}

.primary,
.ghost,
.secondary {
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 11px 14px;
  cursor: pointer;
  font-weight: 700;
  white-space: nowrap;
}

.primary {
  background: var(--green);
  color: white;
}

.primary:disabled,
.ghost:disabled,
.secondary:disabled {
  cursor: not-allowed;
  opacity: 0.52;
}

.ghost {
  background: white;
  border-color: var(--line);
  color: var(--ink);
}

.secondary {
  background: white;
  border-color: var(--line);
  color: var(--ink);
}

.secondary:hover,
.secondary:focus-visible {
  background: #f4fbf8;
  border-color: #c8e4d8;
  color: var(--green);
  outline: 0;
}

.section {
  display: none;
}

.section.active {
  display: block;
}

.command-strip {
  display: grid;
  grid-template-columns: minmax(180px, 0.32fr) minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  background: #123f5a;
  color: white;
  border-radius: 8px;
  padding: 18px 22px;
  margin-bottom: 18px;
}

.command-strip span {
  color: #d9e8f2;
  font-size: 17px;
  font-weight: 800;
}

.command-strip strong {
  display: block;
  min-width: 0;
  color: #ffffff;
  font-size: clamp(17px, 1.65vw, 22px);
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.command-strip.compact {
  margin-bottom: 12px;
}

.command-dashboard {
  display: grid;
  gap: 16px;
}

.section:not(.active) {
  display: none;
}

.command-header {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(420px, 1fr);
  gap: 18px;
  align-items: stretch;
  border: 1px solid #cfdce7;
  border-radius: 8px;
  background: #0f344b;
  color: white;
  padding: 18px;
}

.command-header h2,
.command-header p {
  margin: 0;
}

.command-header h2 {
  font-size: clamp(24px, 2.5vw, 34px);
}

.command-header .eyebrow,
.command-header p {
  color: #d9e8f2;
}

.command-header p {
  margin-top: 10px;
  line-height: 1.45;
}

.command-status-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.command-status-card {
  display: grid;
  gap: 4px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  padding: 12px;
}

.command-status-card span,
.command-status-card small {
  color: #d9e8f2;
}

.command-status-card strong {
  font-size: 28px;
  line-height: 1;
}

.command-status-card.critica {
  border-left: 4px solid #e45757;
}

.command-status-card.riesgo {
  border-left: 4px solid #d89b2a;
}

.command-status-card.gestion {
  border-left: 4px solid #26a269;
}

.management-api-workbench {
  min-width: 0;
}

.management-api-panel {
  display: grid;
  gap: 14px;
}

.management-api-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
}

.management-api-head h2 {
  margin: 0;
}

.management-api-kpis {
  grid-template-columns: repeat(6, minmax(130px, 1fr));
}

.management-api-panel .layout-stack > article {
  flex: 1;
  min-width: 0;
  border: 1px solid #d9e5ee;
  border-radius: 8px;
  background: #f8fbfd;
  padding: 14px;
}

.management-api-panel .layout-stack h3 {
  margin: 0 0 10px;
  color: #123f5a;
  font-size: 15px;
}

.fund-flow-api-workbench {
  min-width: 0;
}

.fund-flow-api-panel {
  display: grid;
  gap: 14px;
  border-left: 4px solid #1f8f6f;
}

.fund-flow-api-kpis {
  grid-template-columns: repeat(6, minmax(130px, 1fr));
}

.fund-flow-api-panel .layout-stack > article {
  flex: 1;
  min-width: 0;
  border: 1px solid #d9e5ee;
  border-radius: 8px;
  background: #f8fbfd;
  padding: 14px;
}

.fund-flow-api-panel .layout-stack h3 {
  margin: 0 0 10px;
  color: #123f5a;
  font-size: 15px;
}

.kpi-grid {
  display: grid;
  gap: 14px;
  margin-bottom: 18px;
}

.dashboard-finance-band {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.finance-mini-kpi {
  display: grid;
  gap: 6px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  padding: 14px;
}

.finance-mini-kpi span,
.finance-mini-kpi small {
  color: var(--muted);
  font-weight: 800;
}

.finance-mini-kpi strong {
  color: #142232;
  font-size: clamp(20px, 2vw, 28px);
  line-height: 1.05;
  white-space: nowrap;
}

.finance-mini-kpi.critica {
  border-left: 4px solid #c45445;
  background: #fff8f7;
}

.finance-mini-kpi.riesgo {
  border-left: 4px solid #c7922b;
  background: #fffbf2;
}

.finance-mini-kpi.gestion {
  border-left: 4px solid #1f8a70;
  background: #f7fbf8;
}

/* Sin dato: gris y apagado. Una ausencia no se pinta ni de verde ni de rojo,
   y el valor tiene que leerse claramente como "no hay medicion". */
.finance-mini-kpi.sin-dato,
.operational-decision-card.sin-dato {
  border-left: 4px solid #9aa7b1;
  background: #f4f6f8;
}

.finance-mini-kpi.sin-dato strong,
.operational-decision-card.sin-dato strong {
  color: #6b7885;
  font-style: italic;
  font-size: clamp(15px, 1.4vw, 19px);
}

/* Estado del tablero: cargando / API caida / indicadores faltantes. */
.dashboard-kpi-state {
  margin: 0 0 12px;
  padding: 9px 12px;
  border-radius: 8px;
  font-weight: 800;
  font-size: 13px;
}

.dashboard-kpi-state.loading {
  border: 1px solid #cfdae2;
  background: #f4f7fa;
  color: #4a5b6b;
}

.dashboard-kpi-state.error {
  border: 1px solid #c45445;
  background: #fff8f7;
  color: #8f2f22;
}

.dashboard-kpi-state.warning {
  border: 1px solid #c7922b;
  background: #fffbf2;
  color: #7a5a12;
}

.dashboard-gaps-panel .eyebrow {
  margin-bottom: 10px;
}

.dashboard-gaps-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.dashboard-gap-card {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 11px 13px;
  border: 1px dashed #b6c2cc;
  border-radius: 8px;
  background: #fafbfc;
}

.dashboard-gap-card strong {
  color: #4a5b6b;
  font-size: 14px;
}

.dashboard-gap-card small {
  color: var(--muted);
  line-height: 1.35;
}

/* ===== Calidad y seguridad del paciente ===== */

.calidad-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin: 0 0 14px;
}

.calidad-toolbar label {
  color: var(--muted);
  font-weight: 800;
  font-size: 13px;
}

.calidad-toolbar input[type="month"] {
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
}

.calidad-estado {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.calidad-kpis {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  margin-bottom: 16px;
}

.calidad-kpi {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 13px 15px;
  border: 1px solid var(--line);
  border-left: 4px solid #1f8a70;
  border-radius: 8px;
  background: white;
}

.calidad-kpi span,
.calidad-kpi small {
  color: var(--muted);
  font-weight: 800;
}

.calidad-kpi strong {
  color: #142232;
  font-size: clamp(19px, 1.9vw, 26px);
  line-height: 1.05;
}

/* Sin dato: mismo criterio que el tablero de Direccion. Gris, cursiva y
   tipograficamente mas chico, para que no compita con una medicion real. */
.calidad-kpi.sin-dato {
  border-left-color: #9aa7b1;
  background: #f4f6f8;
}

.calidad-kpi strong.sin-dato,
.ui-planilla-table .sin-dato {
  color: #6b7885;
  font-style: italic;
  font-weight: 700;
  font-size: 15px;
}

.calidad-aviso {
  margin: 0 0 12px;
  padding: 9px 12px;
  border: 1px solid #c7922b;
  border-radius: 8px;
  background: #fffbf2;
  color: #7a5a12;
  font-weight: 800;
  font-size: 13px;
}

.calidad-subtitulo {
  margin: 18px 0 8px;
  font-size: 15px;
  color: #142232;
}

/* ===== Eventos adversos ===== */

.ea-acciones {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.ea-nota {
  margin: 0;
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.4;
  max-width: 60ch;
}

.calidad-kpi.critico {
  border-left-color: #c45445;
  background: #fff8f7;
}

/* Solo grave y centinela se pintan como criticos: si todo es rojo, nada lo es. */
.ea-gravedad {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.ea-gravedad.centinela {
  background: #c45445;
  color: white;
}

.ea-gravedad.grave {
  background: #fdece9;
  color: #8f2f22;
}

.ea-gravedad.cuasi {
  background: #eef4f8;
  color: #4a5b6b;
}

.ea-gravedad.normal {
  background: #f2f5f7;
  color: #4a5b6b;
}

.ea-form {
  display: grid;
  gap: 12px;
}

.ea-error {
  margin: 0;
  padding: 8px 11px;
  border: 1px solid #c45445;
  border-radius: 7px;
  background: #fff8f7;
  color: #8f2f22;
  font-size: 13px;
  font-weight: 700;
}

.ui-planilla-table .ea-avanzar {
  padding: 3px 10px;
  font-size: 12px;
  white-space: nowrap;
}

/* ===== Tendencia / variacion ===== */

/* El color dice si el movimiento es bueno o malo PARA ESE INDICADOR: menos
   mortalidad es verde, mas giro de cama tambien. Neutro cuando el indicador no
   tiene una direccion deseable (ocupacion) o cuando subir no es peor
   (notificacion de eventos adversos). */
.metric-trend {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.metric-trend.mejor {
  background: #e8f5f0;
  color: #14664f;
}

.metric-trend.peor {
  background: #fdece9;
  color: #8f2f22;
}

.metric-trend.neutro {
  background: #eef2f5;
  color: #4a5b6b;
}

.serie-bloque .serie-head {
  margin-bottom: 10px;
}

.serie-bloque .serie-head h3 {
  margin: 0 0 3px;
  font-size: 15px;
  color: #142232;
}

.serie-bloque .serie-head small {
  color: var(--muted);
  font-size: 12.5px;
}

/* ===== Antiguedad de datos congelados =====
   Va ARRIBA de los titulares, no al pie: el que mira un "Resultado financiero"
   en grande tiene que ver de cuando es antes de leer el numero. */
.data-vintage {
  margin: 0 0 12px;
  padding: 9px 13px;
  border-radius: 8px;
  font-weight: 800;
  font-size: 13px;
  line-height: 1.35;
}

.data-vintage.vigente {
  border: 1px solid #cfdae2;
  background: #f4f7fa;
  color: #4a5b6b;
}

.data-vintage.envejecido {
  border: 1px solid #c7922b;
  background: #fffbf2;
  color: #7a5a12;
}

/* Obsoleto se ve como una advertencia, no como una nota al pie. */
.data-vintage.obsoleto {
  border: 1px solid #c45445;
  border-left-width: 4px;
  background: #fff8f7;
  color: #8f2f22;
}

.data-vintage.desconocido {
  border: 1px dashed #b6c2cc;
  background: #fafbfc;
  color: #6b7885;
}

.payer-risk-gaps {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px dashed #cfdae2;
}

.payer-risk-gap {
  display: grid;
  gap: 2px;
  padding: 6px 0;
}

.payer-risk-gap strong {
  color: #4a5b6b;
  font-size: 13px;
}

.payer-risk-gap small {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.operational-decision-panel {
  border: 1px solid #cfdae2;
  border-radius: 8px;
  background: white;
  padding: 16px;
}

.operational-decision-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 12px;
}

.operational-decision-head h3,
.operational-decision-head p {
  margin: 0;
}

.operational-decision-head > span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #eef5f8;
  color: #31566c;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

.operational-decision-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.operational-decision-card {
  display: grid;
  grid-template-columns: minmax(74px, auto) minmax(0, 1fr);
  gap: 12px;
  min-height: 108px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 13px;
}

.operational-decision-card > div:first-child {
  display: grid;
  align-content: start;
  gap: 5px;
}

.operational-decision-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}

.operational-decision-card strong {
  color: #111f2d;
  font-size: clamp(24px, 2.5vw, 34px);
  line-height: 1;
}

.operational-decision-card small,
.operational-decision-card p {
  color: var(--muted);
  margin: 0;
  line-height: 1.35;
}

.decision-pill {
  display: inline-flex;
  width: max-content;
  border-radius: 999px;
  background: #edf3f7;
  padding: 5px 8px;
  margin-bottom: 8px;
}

.operational-decision-card.critica {
  border-left: 4px solid #c45445;
  background: #fff8f7;
}

.operational-decision-card.riesgo {
  border-left: 4px solid #c7922b;
  background: #fffbf2;
}

.operational-decision-card.gestion {
  border-left: 4px solid #1f8a70;
  background: #f7fbf8;
}

.kpi,
.panel,
.workflow > article,
.alert-panel,
.data-table,
.ledger,
.bank-list,
.automation-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.kpi {
  display: grid;
  align-content: center;
  min-width: 0;
  min-height: 150px;
  overflow: hidden;
  padding: 20px 22px;
}

.kpi span,
.kpi small {
  display: block;
  color: var(--muted);
  min-width: 0;
  overflow-wrap: anywhere;
}

.kpi strong {
  display: block;
  min-width: 0;
  margin: 12px 0 8px;
  color: #102033;
  font-size: clamp(25px, 2.6vw, 34px);
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.kpi.money-kpi strong {
  font-size: clamp(23px, 2.25vw, 32px);
  letter-spacing: 0;
  white-space: nowrap;
}

.command-kpi {
  min-height: 132px;
  border-top: 5px solid #92a5b7;
  box-shadow: none;
}

.command-kpi.critica {
  border-top-color: #e45757;
  background: #fff7f7;
}

.command-kpi.riesgo {
  border-top-color: #d89b2a;
  background: #fffbf2;
}

.command-kpi.gestion {
  border-top-color: #26a269;
  background: #f6fbf8;
}

.command-kpi small {
  display: inline-flex;
  justify-self: start;
  border-radius: 999px;
  background: #eef3f7;
  padding: 5px 8px;
  font-weight: 800;
}

.workflow {
  align-items: stretch;
}

.insight-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 16px;
  margin-bottom: 18px;
}

.action-grid,
.report-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.action-card,
.report-card,
.agreement-card,
.episode-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.action-card strong,
.report-card h3,
.agreement-card h3 {
  display: block;
  margin: 8px 0;
}

.operation-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

.operation-check {
  display: grid;
  gap: 8px;
  align-content: start;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
  min-width: 0;
}

.operation-check span,
.operation-check strong,
.operation-check small {
  display: block;
  overflow-wrap: anywhere;
}

.operation-check span {
  color: var(--muted);
  font-size: 13px;
}

.operation-check strong {
  font-size: 20px;
}

.operation-check small {
  color: var(--muted);
  line-height: 1.35;
}

.operation-check .ghost {
  justify-self: start;
  padding: 8px 10px;
  font-size: 12px;
}

.operation-check.gestion {
  border-color: #c7dfd4;
}

.operation-check.riesgo {
  border-color: #f0d28f;
}

.operation-check.critica {
  border-color: #e7a4a4;
}

.action-card p,
.report-card p,
.agreement-card p {
  color: var(--muted);
  line-height: 1.4;
  margin: 0;
}

.priority {
  display: inline-flex;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.priority.alta {
  background: #fdecec;
  color: var(--red);
}

.priority.media {
  background: #fff4df;
  color: var(--amber);
}

.insight strong {
  display: block;
  margin-bottom: 4px;
}

.insight small {
  display: block;
  color: var(--muted);
  margin-top: 4px;
  line-height: 1.35;
}

.procurement-workflow {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.procurement-runtime-status {
  display: grid;
  gap: 4px;
  border: 1px solid #c7dfd4;
  border-radius: 8px;
  background: #f6fcf9;
  color: #1f6f4a;
  padding: 12px 14px;
  margin-bottom: 14px;
}

.procurement-runtime-status.has-error {
  border-color: #e7a4a4;
  background: #fffafa;
  color: var(--red);
}

.procurement-runtime-status strong,
.procurement-runtime-status span,
.procurement-runtime-status small {
  display: block;
}

.procurement-runtime-status span,
.procurement-runtime-status small {
  font-size: 13px;
  font-weight: 800;
}

.procurement-panel-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: end;
  margin-bottom: 14px;
}

.procurement-panel-head h3,
.procurement-panel-head p {
  margin: 0;
}

.procurement-panel-head p {
  color: var(--muted);
  margin-top: 4px;
}

.procurement-count {
  display: grid;
  justify-items: end;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.procurement-count strong {
  color: var(--ink);
  font-size: 26px;
  line-height: 1;
}

.procurement-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) repeat(3, minmax(130px, 0.8fr)) repeat(3, auto);
  gap: 10px;
  align-items: end;
  margin-bottom: 14px;
}

.procurement-filters label {
  display: grid;
  gap: 6px;
}

.procurement-filters label span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}

.procurement-filters input,
.procurement-filters select {
  width: 100%;
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  padding: 8px 10px;
}

.procurement-table {
  display: grid;
  gap: 10px;
  overflow-x: auto;
}

.procurement-row {
  display: grid;
  grid-template-columns: minmax(130px, 0.8fr) minmax(150px, 0.9fr) minmax(190px, 1.1fr) minmax(95px, 0.65fr) minmax(110px, 0.75fr) minmax(95px, 0.65fr) minmax(145px, 0.85fr) minmax(240px, 1.4fr);
  gap: 10px;
  align-items: center;
  min-width: 1200px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 11px;
}

.procurement-row.header {
  background: #eef5fb;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.procurement-row strong,
.procurement-row span,
.procurement-row small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.procurement-row small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  margin-top: 2px;
}

.procurement-row .numeric,
.procurement-row.header span:nth-child(4),
.procurement-row.header span:nth-child(5) {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.procurement-card-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
}

.procurement-control-card {
  display: grid;
  gap: 8px;
  align-content: start;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 13px;
}

.procurement-control-card.critical {
  border-color: #e7a4a4;
  background: #fffafa;
}

.procurement-control-card span,
.procurement-control-card small,
.procurement-control-card dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.procurement-control-card strong {
  display: block;
  overflow-wrap: anywhere;
}

.procurement-control-card dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.procurement-control-card dd {
  margin: 0;
  font-weight: 850;
}

.procurement-quick-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.procurement-quick-form label {
  display: grid;
  gap: 6px;
}

.procurement-quick-form label.wide,
.procurement-quick-form button {
  grid-column: 1 / -1;
}

.procurement-quick-form span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}

.procurement-quick-form input,
.procurement-quick-form select,
.procurement-quick-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  padding: 8px 10px;
}

.procurement-quick-form textarea {
  resize: vertical;
}

.finance-close {
  display: grid;
  gap: 16px;
}

.finance-close-status {
  display: grid;
  gap: 4px;
  min-width: 220px;
  max-width: 360px;
  border: 1px solid #d7e5ed;
  border-radius: 8px;
  background: #f8fbfd;
  padding: 10px 12px;
}

.finance-close-status.has-error {
  border-color: #e0b4ad;
  background: #fff7f5;
}

.finance-close-status strong,
.finance-close-status span,
.finance-close-status small {
  display: block;
  overflow-wrap: anywhere;
}

.finance-close-status span,
.finance-close-status small {
  color: var(--muted);
  font-size: 12px;
}

.finance-close-kpis {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.finance-close-kpis .admission-kpi small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  overflow-wrap: anywhere;
}

.finance-close-toolbar {
  display: grid;
  gap: 14px;
}

.finance-close-filters,
.finance-close-actions,
.finance-close-batch-form {
  display: grid;
  gap: 10px;
}

.finance-close-filters {
  grid-template-columns: minmax(220px, 2fr) minmax(180px, 1fr) minmax(180px, 1fr);
}

.finance-close-actions {
  grid-template-columns: repeat(3, max-content);
  align-items: center;
}

.finance-close-batch-form {
  grid-template-columns: minmax(220px, 1.4fr) 160px minmax(220px, 1fr) max-content;
  align-items: end;
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.finance-close-filters label,
.finance-close-batch-form label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.finance-close-filters span,
.finance-close-batch-form span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .03em;
}

.finance-close-filters input,
.finance-close-filters select,
.finance-close-batch-form input,
.finance-close-batch-form select {
  width: 100%;
  min-width: 0;
  border: 1px solid #d8e1e8;
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  padding: 10px 11px;
}

.finance-close-count {
  border: 1px solid #d8e1e8;
  border-radius: 999px;
  background: #f8fbfd;
  color: #2e596f;
  font-size: 12px;
  font-weight: 900;
  padding: 7px 10px;
}

.finance-close-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, .82fr);
}

.treasury-workspace {
  display: grid;
  gap: 16px;
}

.treasury-kpis {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.treasury-kpis .admission-kpi small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  overflow-wrap: anywhere;
}

.treasury-forms {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: 12px;
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.treasury-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  min-width: 0;
  border: 1px solid #d8e1e8;
  border-radius: 8px;
  background: #fbfdff;
  padding: 12px;
}

.treasury-form h4,
.treasury-form .wide,
.treasury-form button {
  grid-column: 1 / -1;
}

.treasury-form h4 {
  margin: 0;
  color: #123f5a;
}

.treasury-form label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.treasury-form span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .03em;
}

.treasury-form input,
.treasury-form select,
.treasury-form textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #d8e1e8;
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  padding: 10px 11px;
  font: inherit;
}

.treasury-form textarea {
  resize: vertical;
}

.treasury-grid {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
}

.hr-workspace {
  display: grid;
  gap: 16px;
}

.hr-kpis {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.hr-kpis .admission-kpi small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  overflow-wrap: anywhere;
}

.hr-grid {
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
}

.hr-forms {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.hr-notice {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  border-left: 4px solid var(--amber);
  background: #fffdf5;
}

.hr-notice strong,
.hr-notice span {
  overflow-wrap: anywhere;
}

.hr-notice span {
  color: var(--muted);
}

.hr-legajos-panel {
  display: grid;
  gap: 14px;
}

.hr-legajos-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.42fr);
  gap: 14px;
  align-items: start;
}

.hr-legajos-table {
  min-width: 0;
}

.hr-profile-card {
  position: sticky;
  top: 18px;
  display: grid;
  gap: 12px;
  border: 1px solid #c7dced;
  border-left: 6px solid var(--fn-accent, var(--hospital-celeste));
  border-radius: 8px;
  background: linear-gradient(180deg, #ffffff, #edf6ff);
  padding: 16px;
  box-shadow: 0 10px 22px rgba(31, 41, 51, 0.045);
}

.hr-profile-card-warning {
  border-color: #eed99d;
  border-left-color: var(--hospital-yellow);
  background: linear-gradient(180deg, #ffffff, #fff8e3);
}

.hr-profile-card h3 {
  margin: 0;
  font-size: 22px;
}

.hr-profile-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.4;
}

.hr-profile-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.hr-profile-grid div {
  border: 1px solid #e6edf3;
  border-radius: 8px;
  background: #ffffff;
  padding: 9px;
}

.hr-profile-grid span,
.hr-profile-summary span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.hr-profile-grid strong {
  display: block;
  margin-top: 3px;
  overflow-wrap: anywhere;
}

.hr-profile-missing {
  display: grid;
  gap: 7px;
  border: 1px solid #ead7a7;
  border-radius: 8px;
  background: #fffaf0;
  padding: 10px;
}

.hr-profile-missing div,
.hr-profile-summary,
.hr-profile-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.hr-profile-missing span,
.hr-profile-summary span {
  border: 1px solid #e5edf2;
  border-radius: 999px;
  background: #ffffff;
  padding: 5px 8px;
}

.hr-profile-actions .ui-btn {
  width: 100%;
  justify-content: center;
}

.insight.critica {
  border-left: 4px solid var(--red);
}

.insight.riesgo {
  border-left: 4px solid var(--amber);
}

.insight.gestion {
  border-left: 4px solid var(--teal);
}

.workflow > article {
  flex: 1;
  padding: 22px;
}

.flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 10px;
  margin-top: 18px;
}

.flow-step {
  border: 1px dashed #b8c7d6;
  border-radius: 8px;
  padding: 14px;
  background: #fbfdff;
  color: #425466;
  font-weight: 700;
}

.flow-step.done {
  border-style: solid;
  background: #eef8f3;
  color: var(--green);
}

.flow-step.current {
  border-style: solid;
  background: #fff7ec;
  color: var(--amber);
}

.pharmacy-workflow-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.pharmacy-workflow-card {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.pharmacy-workflow-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.pharmacy-workflow-head div {
  min-width: 0;
}

.pharmacy-workflow-card span,
.pharmacy-workflow-card strong,
.pharmacy-workflow-card small {
  display: block;
  overflow-wrap: anywhere;
}

.pharmacy-workflow-card p {
  color: var(--muted);
  line-height: 1.4;
  margin: 0;
}

.pharmacy-workflow-card p strong {
  display: inline;
  color: #102033;
}

.pharmacy-workflow-head span,
.pharmacy-workflow-head small,
.pharmacy-workflow-card > small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.pharmacy-workflow-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.pharmacy-workflow-steps span {
  border: 1px solid #dbe5ea;
  border-radius: 999px;
  background: white;
  color: #425466;
  font-size: 12px;
  font-weight: 800;
  padding: 6px 8px;
}

.alert-list,
.compact-list {
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.alert-list li,
.compact-list li,
.item {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfdff;
}

.alert-list strong {
  display: block;
  margin-bottom: 5px;
  color: var(--red);
  text-transform: uppercase;
  font-size: 12px;
}

.alert-list span {
  color: #344054;
}

.module-head {
  align-items: center;
  margin-bottom: 18px;
}

.layout-stack {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
  width: 100%;
}

.layout-stack > * {
  min-width: 0;
  width: 100%;
}

.three-col {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.panel {
  padding: 22px;
}

.panel h3 {
  margin: 0 0 16px;
}

.record {
  display: grid;
  gap: 12px;
  margin: 0;
}

.record div {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
}

.record dt {
  color: var(--muted);
}

.record dd {
  margin: 0;
  font-weight: 700;
}

.stack,
.rules {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style-position: inside;
}

.body-copy {
  color: var(--muted);
  line-height: 1.5;
}

.data-table {
  overflow: hidden;
}

.table-row {
  display: grid;
  grid-template-columns: 1fr 0.9fr 1.4fr 0.8fr 1fr 0.8fr 0.8fr;
  gap: 10px;
  padding: 14px 16px;
  border-top: 1px solid var(--line);
  align-items: center;
}

.table-row:first-child {
  border-top: 0;
}

.table-row.header {
  background: #edf5f4;
  color: #475467;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
}

.mini-table,
.permission-grid,
.complexity-grid {
  display: grid;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

.mini-row,
.permission-row,
.procedure-row,
.complexity-row {
  display: grid;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border-top: 1px solid var(--line);
  background: #fbfdff;
}

.mini-row {
  grid-template-columns: minmax(170px, 1.2fr) minmax(170px, 1fr) minmax(96px, 0.65fr) minmax(88px, 0.55fr) minmax(120px, 0.75fr);
}

.mini-row.vat-row {
  grid-template-columns: minmax(150px, 1.6fr) minmax(42px, 0.35fr) minmax(92px, 0.75fr) minmax(82px, 0.65fr);
}

.permission-row {
  grid-template-columns: repeat(5, minmax(140px, 1fr));
}

.procedure-row {
  grid-template-columns: 0.9fr 0.9fr 1.1fr 0.4fr 0.4fr 1.7fr;
}

.complexity-row {
  grid-template-columns: 0.9fr repeat(10, minmax(34px, 1fr));
  text-align: center;
}

.matrix-row {
  display: grid;
  grid-template-columns: 0.8fr 1fr 0.9fr 0.9fr 0.8fr 1fr 0.8fr 0.6fr;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border-top: 1px solid var(--line);
  background: #fbfdff;
}

.guardia-price-row {
  grid-template-columns: 0.9fr 1.7fr 0.8fr 0.8fr 0.8fr 1.4fr;
}

.mini-row:first-child,
.permission-row:first-child,
.procedure-row:first-child,
.complexity-row:first-child,
.matrix-row:first-child {
  border-top: 0;
}

.mini-row.header,
.permission-row.header,
.procedure-row.header,
.complexity-row.header,
.matrix-row.header {
  background: #edf5f4;
  color: #475467;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.source-summary {
  margin-bottom: 12px;
}

.numbered-list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding-left: 22px;
}

/* ====== CONVENIOS Y NOMENCLADORES API ====== */
.nom-api-workbench,
.agreement-api-workbench {
  display: grid;
  gap: 14px;
  margin-bottom: 16px;
}

.nom-api-kpis {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.nom-api-kpis article,
.agreement-api-risks article {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.nom-api-kpis article {
  padding: 12px;
  background: #f8fafc;
}

.nom-api-kpis span,
.nom-api-filters label span,
.nom-api-form label span {
  display: block;
  color: #64748b;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.nom-api-kpis strong {
  display: block;
  margin-top: 4px;
  color: #14324f;
  font-size: 22px;
}

.nom-api-filters {
  display: grid;
  grid-template-columns: minmax(180px, 1.4fr) repeat(3, minmax(140px, 1fr)) minmax(230px, auto);
  gap: 10px;
  align-items: end;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
}

.nom-api-filters label,
.nom-api-form label {
  display: grid;
  gap: 5px;
}

.nom-api-filters input,
.nom-api-filters select,
.nom-api-form input {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  padding: 9px 10px;
  color: #14324f;
  font-size: 13px;
}

.nom-api-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.nom-api-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(300px, 0.8fr);
  gap: 14px;
}

.nom-api-table {
  display: grid;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

.nom-api-row {
  display: grid;
  grid-template-columns: 0.7fr minmax(180px, 1.4fr) 1fr 0.8fr 0.8fr auto;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border-top: 1px solid var(--line);
  background: #fbfdff;
  color: #14324f;
  font-size: 13px;
}

.nom-api-row:first-child {
  border-top: 0;
}

.nom-api-row.header {
  background: #edf5f4;
  color: #475467;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.nom-api-row small {
  display: block;
  margin-top: 3px;
  color: #64748b;
}

.nom-api-panel,
.nom-api-form {
  display: grid;
  gap: 10px;
}

.nom-api-check {
  display: flex !important;
  grid-template-columns: none !important;
  align-items: center;
  gap: 8px;
  color: #14324f;
  font-size: 13px;
}

.nom-api-check input {
  width: auto;
}

.agreement-api-risks article {
  border-radius: 7px;
  background: #f8fafc;
  padding: 8px;
}

.agreement-api-list {
  display: grid;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: auto;
  background: #ffffff;
}

.agreement-api-row {
  display: grid;
  grid-template-columns: minmax(210px, 1.35fr) minmax(90px, 0.55fr) minmax(150px, 0.85fr) minmax(130px, 0.7fr) minmax(110px, 0.6fr) minmax(110px, 0.6fr);
  gap: 10px;
  align-items: center;
  min-width: 920px;
  padding: 11px 12px;
  border-top: 1px solid var(--line);
  background: #fbfdff;
  color: #14324f;
  font-size: 13px;
}

.agreement-api-row:first-child {
  border-top: 0;
}

.agreement-api-row-head {
  background: #edf5f4;
  color: #475467;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.agreement-api-row strong,
.agreement-api-row span,
.agreement-api-row small {
  display: block;
}

.agreement-api-row small {
  margin-top: 3px;
  color: #64748b;
}

.agreement-api-risks {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.agreement-api-risks article {
  display: grid;
  gap: 4px;
}

.agreement-api-risks strong {
  color: #14324f;
}

.agreement-api-risks span {
  color: var(--hospital-green);
  font-size: 22px;
  font-weight: 800;
}

.agreement-api-risks small {
  color: #64748b;
  line-height: 1.35;
}

@media (max-width: 1160px) {
  .nom-api-kpis,
  .agreement-api-risks {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .nom-api-filters,
  .nom-api-layout {
    grid-template-columns: 1fr;
  }

  .nom-api-toolbar {
    justify-content: flex-start;
  }
}

@media (max-width: 760px) {
  .nom-api-kpis,
  .agreement-api-risks {
    grid-template-columns: 1fr;
  }

  .nom-api-row {
    min-width: 760px;
  }
}

.numbered-list li {
  padding: 10px 12px;
  background: #fbfdff;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.badge {
  display: inline-flex;
  width: fit-content;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: 12px;
  font-weight: 800;
}

.badge.waiting {
  background: #fff4df;
  color: var(--amber);
}

.badge.ready,
.badge.done {
  background: #e8f6ef;
  color: var(--green);
}

.badge.review {
  background: #fdecec;
  color: var(--red);
}

.ledger,
.bank-list {
  padding: 10px;
  display: grid;
  gap: 10px;
}

.ledger-entry,
.bank-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  padding: 14px;
  border-radius: 8px;
  background: #fbfdff;
  border: 1px solid var(--line);
}

.ledger-entry strong,
.bank-row strong {
  display: block;
  margin-bottom: 4px;
}

.ledger-entry small,
.bank-row small {
  color: var(--muted);
}

.automation-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.automation-card {
  padding: 18px;
}

.layout-stack {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.automation-card h3 {
  margin: 0 0 8px;
}

.automation-card p {
  color: var(--muted);
  margin: 0 0 14px;
  line-height: 1.45;
}

.automation-api-workbench {
  display: grid;
  gap: 14px;
}

.automation-api-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.automation-api-kpi {
  border: 1px solid var(--line);
  background: #ffffff;
  border-radius: 8px;
  padding: 12px;
}

.automation-api-kpi span,
.automation-api-rule small,
.automation-api-events small {
  display: block;
  color: var(--muted);
  font-size: 12px;
}

.automation-api-kpi strong {
  display: block;
  margin-top: 4px;
  color: var(--ink);
  font-size: 24px;
}

.automation-api-filters,
.automation-api-evaluator {
  display: grid;
  gap: 10px;
}

.automation-api-filters {
  grid-template-columns: minmax(220px, 1fr) 170px 170px auto auto;
  align-items: end;
}

.automation-api-filters label,
.automation-api-evaluator label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.automation-api-filters input,
.automation-api-filters select,
.automation-api-evaluator input,
.automation-api-evaluator select,
.automation-api-evaluator textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px 10px;
  color: var(--ink);
  font: inherit;
  background: #ffffff;
}

.automation-api-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(300px, 0.9fr);
  gap: 14px;
  align-items: start;
}

.automation-api-rules,
.automation-api-panel,
.automation-api-events {
  display: grid;
  gap: 10px;
}

.automation-api-rule {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  background: #ffffff;
}

.automation-api-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  color: var(--muted);
  font-size: 12px;
}

.automation-api-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbfd;
  padding: 14px;
}

.automation-api-panel h3 {
  margin: 0;
}

.automation-api-events article {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 10px;
}

.automation-api-events strong,
.automation-api-events span {
  display: block;
}

.automation-api-events span {
  margin: 3px 0;
  color: var(--muted);
  font-size: 13px;
}

.integration-api-workbench {
  display: grid;
  gap: 14px;
}

.integration-api-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.integration-api-card {
  display: grid;
  gap: 10px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 14px;
}

.integration-api-card header,
.integration-api-card footer {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.integration-api-card header div,
.integration-api-card footer small {
  min-width: 0;
}

.integration-api-card strong,
.integration-api-card span,
.integration-api-card small {
  display: block;
}

.integration-api-card header span,
.integration-api-card p,
.integration-api-card small {
  color: var(--muted);
  font-size: 13px;
}

.integration-api-card p {
  margin: 0;
}

.integration-api-missing {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.integration-api-missing span {
  border: 1px solid #fed7aa;
  border-radius: 999px;
  background: #fff7ed;
  color: #9a3412;
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 700;
}

.integration-api-events {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbfd;
  padding: 14px;
}

.module-number {
  color: var(--gold);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.segmented-control {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}

.segmented {
  border: 1px solid var(--line);
  background: white;
  border-radius: 8px;
  padding: 9px 12px;
  cursor: pointer;
  color: #425466;
  font-weight: 700;
}

.segmented.active {
  background: var(--blue);
  border-color: var(--blue);
  color: white;
}

.role-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.role-pill {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 7px 10px;
  background: #fbfdff;
  color: #344054;
  font-size: 13px;
  font-weight: 700;
}

.status-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.status-list li {
  border-radius: 999px;
  background: #eef3f7;
  color: #425466;
  padding: 7px 10px;
  font-size: 13px;
  font-weight: 700;
}

.agreement-card {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 16px;
}

.risk-card {
  display: grid;
  grid-template-columns: 1fr 220px;
  gap: 14px;
  align-items: start;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.risk-card strong {
  display: block;
  margin: 6px 0;
}

.risk-card p {
  color: var(--muted);
  line-height: 1.4;
  margin: 0;
}

.risk-card small {
  display: block;
  color: var(--muted);
  margin-top: 8px;
}

.prevention-api-workbench {
  display: grid;
  gap: 12px;
  margin-bottom: 16px;
}

.prevention-api-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.prevention-api-kpi,
.prevention-api-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.prevention-api-kpi {
  padding: 12px;
}

.prevention-api-kpi span,
.prevention-api-list small {
  display: block;
  color: var(--muted);
  font-size: 12px;
}

.prevention-api-kpi strong {
  display: block;
  margin-top: 4px;
  color: var(--ink);
  font-size: 24px;
}

.prevention-api-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(290px, 0.8fr);
  gap: 14px;
  align-items: start;
}

.prevention-api-panel {
  display: grid;
  gap: 12px;
  padding: 14px;
}

.prevention-api-filters,
.prevention-api-form {
  display: grid;
  gap: 10px;
}

.prevention-api-filters {
  grid-template-columns: minmax(160px, 1fr) minmax(160px, 1fr) auto;
  align-items: end;
}

.prevention-api-filters label,
.prevention-api-form label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.prevention-api-filters input,
.prevention-api-filters select,
.prevention-api-form input,
.prevention-api-form select,
.prevention-api-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px 10px;
  font: inherit;
  color: var(--ink);
  background: #ffffff;
}

.prevention-api-list {
  display: grid;
  gap: 10px;
}

.prevention-api-list article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  border: 1px solid #e5edf2;
  border-radius: 8px;
  background: #f8fbfd;
  padding: 10px;
}

.prevention-api-list strong,
.prevention-api-list span {
  display: block;
}

.prevention-api-list span {
  color: var(--muted);
  margin: 3px 0;
}

.check-row {
  display: flex !important;
  align-items: center;
  grid-template-columns: none !important;
  gap: 8px !important;
}

.check-row input {
  width: auto;
}

.episode-list {
  display: grid;
  gap: 12px;
}

.admission-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
}

.admission-summary-compact {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 14px;
}

.admission-summary-compact .admission-kpi {
  padding: 11px 12px;
}

.admission-summary-compact .admission-kpi strong {
  margin-top: 4px;
  font-size: 24px;
}

.admission-subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.admission-subnav-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  color: #425466;
  cursor: pointer;
  font-weight: 800;
  padding: 10px 12px;
}

.admission-subnav-button strong {
  min-width: 24px;
  border-radius: 999px;
  background: #eef3f7;
  color: var(--blue);
  font-size: 12px;
  padding: 3px 7px;
  text-align: center;
}

.admission-subnav-button.active {
  background: var(--blue);
  border-color: var(--blue);
  color: white;
}

.admission-subnav-button.active strong {
  background: rgba(255, 255, 255, 0.18);
  color: white;
}

.section[data-function-color] .admission-subnav,
.section[data-function-color] .hsi-tabs,
.section[data-function-color] .personas-core-tabs,
.section[data-function-color] .catalogo-core-tabs,
.section[data-function-color] .eventos-core-tabs,
.section[data-function-color] .day-hospital-tabs,
.section[data-function-color] .ts-tabs {
  border: 1px solid var(--fn-border);
  border-radius: 8px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--fn-soft) 82%, white), #ffffff),
    #ffffff;
  box-shadow: 0 8px 18px rgba(31, 41, 51, 0.045);
  padding: 6px;
}

.section[data-function-color] .admission-subnav-button,
.section[data-function-color] .hsi-tab,
.section[data-function-color] .tab-btn,
.section[data-function-color] .day-hospital-tabs button,
.section[data-function-color] .ts-tab {
  min-height: 36px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #46586b;
  font-weight: 850;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.section[data-function-color] .admission-subnav-button:hover,
.section[data-function-color] .hsi-tab:hover,
.section[data-function-color] .tab-btn:hover,
.section[data-function-color] .day-hospital-tabs button:hover,
.section[data-function-color] .ts-tab:hover {
  border-color: var(--fn-border);
  background: #ffffff;
  color: var(--fn-ink);
}

.section[data-function-color] .admission-subnav-button.active,
.section[data-function-color] .hsi-tab.active,
.section[data-function-color] .tab-btn.active,
.section[data-function-color] .day-hospital-tabs button.active,
.section[data-function-color] .ts-tab.active {
  border-color: var(--fn-accent);
  background: var(--fn-accent);
  color: #ffffff;
  box-shadow: 0 8px 18px color-mix(in srgb, var(--fn-accent) 22%, transparent);
}

.section[data-function-color] .admission-subnav-button strong,
.section[data-function-color] .tab-btn strong,
.section[data-function-color] .ts-tab strong {
  background: color-mix(in srgb, var(--fn-soft) 75%, white);
  color: var(--fn-ink);
}

.section[data-function-color] .admission-subnav-button.active strong,
.section[data-function-color] .tab-btn.active strong,
.section[data-function-color] .ts-tab.active strong {
  background: rgba(255, 255, 255, 0.2);
  color: #ffffff;
}

.admission-kpi {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  padding: 16px;
  box-shadow: var(--shadow);
}

.admission-kpi span {
  display: block;
  color: var(--muted);
  font-weight: 700;
}

.admission-kpi strong {
  display: block;
  margin-top: 8px;
  font-size: 28px;
}

.admission-priority {
  display: grid;
  gap: 12px;
  border: 1px solid #d4e1ec;
  border-radius: 8px;
  background: #f8fbff;
  padding: 14px;
  margin-top: 14px;
}

.priority-board-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

.priority-board-head h3 {
  margin: 3px 0 0;
}

.priority-board-head span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  margin-top: 4px;
}

.admission-priority-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.admission-priority-card {
  display: grid;
  gap: 5px;
  min-height: 146px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  color: var(--ink);
  cursor: pointer;
  padding: 12px;
  text-align: left;
}

.admission-priority-card.has-work {
  border-color: #b8d5c8;
  box-shadow: inset 3px 0 0 var(--green);
}

.admission-priority-card:hover,
.admission-priority-card:focus-visible {
  border-color: var(--blue);
  outline: none;
  box-shadow: inset 3px 0 0 var(--blue);
}

.admission-priority-card span,
.admission-priority-card small,
.admission-priority-card em,
.admission-priority-card b {
  display: block;
}

.admission-priority-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.admission-priority-card strong {
  color: var(--blue);
  font-size: 30px;
  line-height: 1;
}

.admission-priority-card small {
  color: var(--ink);
  font-weight: 900;
}

.admission-priority-card em,
.admission-priority-card b {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.35;
}

.admission-priority-card em {
  min-height: 34px;
  overflow-wrap: anywhere;
}

.appointment-list {
  display: grid;
  gap: 10px;
}

.admission-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.95fr);
  gap: 16px;
  align-items: start;
}

#dailyAdmissionBoard {
  display: grid;
  gap: 12px;
}

.agenda-pane,
.appointment-pane {
  grid-column: 1 / -1;
}

.section-subhead {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: start;
  margin-bottom: 12px;
}

.section-subhead h3 {
  margin: 3px 0 0;
}

.section-subhead .eyebrow {
  margin-bottom: 0;
}

.appointment-filter-bar {
  display: grid;
  grid-template-columns: minmax(170px, 1fr) minmax(220px, 1.35fr) repeat(2, minmax(140px, 0.9fr)) auto;
  gap: 10px;
  align-items: end;
  margin-bottom: 12px;
}

.appointment-filter-bar label {
  display: grid;
  gap: 6px;
}

.appointment-filter-bar label span {
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
}

.appointment-filter-bar input,
.appointment-filter-bar select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  color: var(--ink);
  padding: 10px 11px;
}

.appointment-filter-summary {
  grid-column: 1 / -1;
  color: var(--muted);
  font-weight: 800;
}

.daily-capacity-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.daily-capacity-card {
  display: grid;
  gap: 5px;
  min-height: 112px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  color: var(--ink);
  cursor: pointer;
  padding: 11px 12px;
  text-align: left;
}

.daily-capacity-card:hover,
.daily-capacity-card.active {
  border-color: var(--green);
  box-shadow: inset 3px 0 0 var(--green);
}

.daily-capacity-card span,
.daily-capacity-card small,
.daily-capacity-card em {
  display: block;
}

.daily-capacity-card span {
  font-size: 13px;
  font-weight: 900;
}

.daily-capacity-card strong {
  color: var(--blue);
  font-size: 26px;
  line-height: 1;
}

.daily-capacity-card small,
.daily-capacity-card em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
}

.daily-capacity-card div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  color: var(--muted);
  font-size: 12px;
}

.daily-capacity-card b {
  color: var(--ink);
}

.daily-bulk-actions {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 10px 12px;
  margin-bottom: 12px;
}

.daily-board-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.75fr);
  gap: 14px;
  align-items: start;
}

.daily-board-main,
.daily-board-side > section {
  border: 1px solid color-mix(in srgb, var(--fn-border, #d4e1ec) 76%, #e5edf2);
  border-radius: 8px;
  background: #ffffff;
  padding: 14px;
  box-shadow: 0 8px 18px rgba(31, 41, 51, 0.04);
}

.daily-board-side {
  display: grid;
  gap: 12px;
}

.daily-board-title {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
  border-bottom: 1px solid #e5edf2;
  margin-bottom: 10px;
  padding-bottom: 10px;
}

.daily-board-title h3 {
  margin: 2px 0 0;
}

.daily-board-title > span {
  border: 1px solid var(--fn-border, #d4e1ec);
  border-radius: 999px;
  background: var(--fn-soft, #f8fbff);
  color: var(--fn-ink, #176f9f);
  font-size: 12px;
  font-weight: 900;
  padding: 5px 9px;
  white-space: nowrap;
}

.daily-board-title.compact h3 {
  font-size: 18px;
}

.daily-board-grid .item {
  border: 1px solid #e1eaf1;
  border-left: 4px solid var(--fn-accent, var(--blue));
  border-radius: 8px;
  background: #fbfdff;
  padding: 12px;
}

.daily-board-grid .item .section-subhead {
  margin-bottom: 6px;
}

.daily-board-grid .item .inline-actions {
  gap: 6px;
}

.daily-board-grid .item .inline-actions .ghost,
.daily-board-grid .item .inline-actions .primary {
  padding: 8px 10px;
}

.daily-alert-row {
  grid-template-columns: minmax(0, 1fr);
}

.daily-bulk-actions strong,
.daily-bulk-actions span {
  display: block;
}

.daily-bulk-actions span {
  color: var(--muted);
  font-size: 12px;
}

.turn-row-select {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 7px 9px;
  font-size: 12px;
  font-weight: 800;
}

.turn-row-select input {
  width: auto;
}

.appointment-admin-buckets {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 10px;
}

.appointment-admin-buckets button {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  padding: 10px 12px;
  text-align: left;
}

.appointment-admin-buckets button.active {
  border-color: #0f4c81;
  background: #eaf4ff;
  color: #0a365f;
}

.appointment-admin-buckets span {
  font-size: 0.82rem;
  font-weight: 800;
}

.appointment-admin-buckets strong {
  font-size: 1.05rem;
}

.appointment-list-more {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  border: 1px dashed #b8cad8;
  border-radius: 8px;
  background: #f8fbff;
  color: var(--muted);
  padding: 12px;
}

.appointment-list-more span {
  font-weight: 800;
}

.patient-quick-panel {
  border: 1px solid #c9d9e8;
  border-radius: 8px;
  background: #f8fbff;
  padding: 14px;
  margin-bottom: 12px;
}

.patient-quick-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.patient-quick-grid article {
  display: grid;
  gap: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  padding: 10px;
}

.patient-quick-grid span,
.patient-quick-grid small,
.patient-quick-appointment span,
.patient-quick-appointment small,
.patient-quick-note small {
  color: var(--muted);
}

.patient-quick-body {
  gap: 12px;
}

.patient-quick-body article,
.patient-quick-history,
.appointment-history-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  padding: 12px;
}

.patient-quick-body h4,
.patient-quick-history h4,
.appointment-history-panel h4 {
  margin: 0 0 8px;
}

.patient-quick-appointment,
.patient-quick-note,
.appointment-history-item {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: start;
  border-top: 1px solid var(--line);
  padding: 9px 0;
}

.patient-quick-appointment:first-child,
.patient-quick-note:first-child,
.appointment-history-item:first-child {
  border-top: 0;
  padding-top: 0;
}

.patient-quick-appointment strong,
.patient-quick-appointment span,
.patient-quick-note strong,
.patient-quick-note small,
.appointment-history-item strong,
.appointment-history-item span,
.appointment-history-item small {
  display: block;
}

.appointment-history-panel {
  margin-top: 12px;
}

.appointment-note-form {
  display: grid;
  grid-template-columns: minmax(120px, 0.7fr) minmax(110px, 0.55fr) minmax(220px, 2fr) auto;
  gap: 10px;
  align-items: end;
  border-bottom: 1px solid var(--line);
  margin-bottom: 10px;
  padding-bottom: 10px;
}

.appointment-note-form label {
  display: grid;
  gap: 4px;
}

.appointment-note-form span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.appointment-note-form textarea {
  min-height: 42px;
  resize: vertical;
}

.appointment-history-item span,
.appointment-history-item small {
  color: var(--muted);
}

.appointment-history-item div:last-child {
  text-align: right;
}

.patient-quick-note {
  justify-content: flex-start;
}

.patient-quick-note .badge {
  flex: 0 0 auto;
}

.compact-empty {
  padding: 10px;
}

.reprogram-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f7fbfa;
  padding: 14px;
  margin-bottom: 12px;
}

.reprogram-filter-bar {
  grid-template-columns: repeat(3, minmax(150px, 1fr));
}

.reprogram-target-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
}

.reprogram-target {
  display: grid;
  gap: 5px;
  text-align: left;
  border: 1px solid #b9decf;
  border-radius: 8px;
  background: white;
  color: var(--ink);
  padding: 12px;
  cursor: pointer;
}

.reprogram-target:hover {
  border-color: var(--green);
}

.reprogram-target span,
.reprogram-target small {
  color: var(--muted);
}

.web-inquiry-row {
  border-left: 4px solid var(--gold);
}

.turn-form {
  display: grid;
  gap: 14px;
}

.form-grid,
.step-grid {
  display: grid;
  gap: 12px;
}

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

.step-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.turn-form label {
  display: grid;
  gap: 6px;
}

.turn-form label span {
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
}

.turn-form input,
.turn-form select,
.turn-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  color: var(--ink);
  padding: 11px 12px;
}

.turn-form input:focus,
.turn-form select:focus,
.turn-form textarea:focus {
  border-color: var(--hospital-navy);
  box-shadow: 0 0 0 3px rgba(0, 56, 120, 0.13);
  outline: 0;
}

.turn-form .wide {
  grid-column: 1 / -1;
}

.preview-strip,
.slot-grid,
.inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.preview-strip span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #eef8f3;
  color: var(--green);
  font-size: 12px;
  font-weight: 800;
  padding: 6px 9px;
}

.schedule-list {
  display: grid;
  gap: 14px;
}

.schedule-card {
  display: grid;
  grid-template-columns: 1.2fr 220px;
  gap: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.schedule-card h3 {
  margin: 5px 0;
}

.schedule-card p,
.schedule-meta small {
  color: var(--muted);
  margin: 0;
}

.schedule-meta {
  display: grid;
  gap: 7px;
  justify-items: end;
  text-align: right;
}

.slot-grid {
  grid-column: 1 / -1;
}

.slot {
  min-width: 82px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  color: var(--ink);
  cursor: pointer;
  padding: 9px 10px;
  text-align: left;
}

.slot strong,
.slot span,
.slot small {
  display: block;
}

.slot span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  margin-top: 3px;
}

.slot small {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.25;
  margin-top: 4px;
}

.slot.disponible {
  border-color: #b9decf;
  background: #f0faf5;
}

.slot.reservado,
.slot.confirmado,
.slot.asistio {
  border-color: #c4d6e7;
  background: #eef5fb;
}

.slot.sobreturno {
  border-color: #f0d18a;
  background: #fff8e6;
}

.slot.bloqueado,
.slot.cancelado,
.slot.ausente {
  border-color: #f0caca;
  background: #fff3f3;
}

.inline-actions {
  grid-column: 1 / -1;
  justify-content: flex-end;
}

.compact-actions {
  justify-content: flex-start;
}

.compact-actions .ghost {
  padding: 8px 10px;
  font-size: 12px;
}

.terms-line {
  display: flex !important;
  align-items: start;
}

.terms-line input {
  width: auto;
  margin-top: 2px;
}

.public-panel {
  background: #fffdf8;
}

.confirmation-ticket,
.empty-state {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  padding: 14px;
}

.confirmation-ticket h3 {
  margin: 0 0 12px;
}

.appointment-constancy-sheet {
  max-width: 760px;
  margin: 0 auto;
  color: #111827;
  background: white;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 28px;
}

.appointment-constancy-sheet header {
  display: flex;
  gap: 16px;
  align-items: center;
  border-bottom: 1px solid #d1d5db;
  padding-bottom: 16px;
  margin-bottom: 18px;
}

.appointment-constancy-sheet h1 {
  margin: 2px 0;
  font-size: 26px;
}

.appointment-constancy-record {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.appointment-constancy-sheet footer {
  display: grid;
  gap: 6px;
  border-top: 1px solid #d1d5db;
  margin-top: 18px;
  padding-top: 14px;
}

.appointment-constancy-sheet footer span {
  color: #4b5563;
}

.queue-list {
  display: grid;
  gap: 10px;
}

.billing-turn-bridge {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f7fbfa;
  padding: 14px;
}

.billing-turn-bridge .module-head {
  margin: 0;
}

.billing-liquidation-list {
  display: grid;
  gap: 12px;
}

.billing-circuit-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.billing-circuit-card {
  display: grid;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.billing-circuit-card h3,
.billing-circuit-card p {
  margin: 0;
}

.billing-circuit-card p,
.billing-circuit-kpis {
  color: var(--muted);
}

.billing-circuit-card > strong {
  font-size: 24px;
}

.billing-circuit-kpis {
  display: grid;
  gap: 4px;
}

.billing-liquidation-card {
  display: grid;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.billing-liquidation-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(170px, auto);
  gap: 14px;
  align-items: start;
}

.billing-liquidation-head h3 {
  margin: 4px 0;
}

.billing-liquidation-head p {
  margin: 0;
  color: var(--muted);
}

.billing-liquidation-total {
  display: grid;
  gap: 6px;
  justify-items: end;
  text-align: right;
}

.billing-liquidation-total strong {
  font-size: 24px;
}

.billing-liquidation-items {
  display: grid;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

.billing-liquidation-item {
  display: grid;
  grid-template-columns: 0.8fr 1.4fr 0.9fr 1fr 0.75fr;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border-top: 1px solid var(--line);
  background: white;
}

.billing-liquidation-item:first-child {
  border-top: 0;
}

.billing-liquidation-item span,
.billing-liquidation-card small {
  color: var(--muted);
}

.billing-api-workbench {
  display: grid;
  gap: 14px;
  margin: 0 0 18px;
}

.billing-api-toolbar,
.billing-api-subhead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.billing-api-toolbar h3 {
  margin: 4px 0 0;
}

.billing-api-kpis {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.billing-api-kpi,
.billing-api-panel,
.billing-api-empty {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 13px;
  min-width: 0;
}

.billing-api-kpi span,
.billing-api-panel span {
  color: var(--muted);
}

.billing-api-kpi strong {
  display: block;
  margin-top: 6px;
  color: #102033;
  font-size: 24px;
  line-height: 1;
}

.billing-api-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) minmax(160px, 0.8fr) minmax(170px, 0.8fr) auto;
  gap: 10px;
  align-items: end;
}

.billing-api-filters label,
.billing-api-panel,
.billing-api-context {
  display: grid;
  gap: 8px;
}

.billing-api-filters input,
.billing-api-filters select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  color: var(--text);
  font: inherit;
  padding: 10px 11px;
}

.billing-api-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(260px, 0.65fr);
  gap: 12px;
  align-items: start;
}

.billing-api-list-table,
.pami-api-list-table,
.pami-api-item-table {
  display: grid;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: auto;
  background: #ffffff;
}

.billing-api-row {
  display: grid;
  grid-template-columns: minmax(180px, 1.2fr) minmax(160px, 0.9fr) minmax(150px, 0.8fr) minmax(140px, 0.75fr) minmax(130px, 0.7fr) minmax(160px, auto);
  gap: 12px;
  align-items: center;
  min-width: 1080px;
  padding: 12px;
  border-top: 1px solid var(--line);
}

.billing-api-row:first-child,
.pami-api-row:first-child,
.pami-api-item-row:first-child {
  border-top: 0;
}

.billing-api-row-head,
.pami-api-row-head {
  background: #edf5f4;
  color: #475467;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.billing-api-row strong,
.billing-api-row span,
.billing-api-row small,
.pami-api-row strong,
.pami-api-row span,
.pami-api-row small,
.pami-api-item-row strong,
.pami-api-item-row span,
.pami-api-item-row small {
  display: block;
}

.billing-api-row small,
.billing-api-row span,
.pami-api-row small,
.pami-api-row span,
.pami-api-item-row small,
.pami-api-item-row span {
  color: var(--muted);
}

.billing-api-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.billing-api-context span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: white;
  font-size: 12px;
  font-weight: 800;
  padding: 6px 9px;
}

.ops-sort-button {
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  letter-spacing: 0;
  padding: 0;
  text-align: left;
  text-transform: uppercase;
}

.ops-sort-button.is-active {
  color: #0f4c81;
}

.pami-api-workbench {
  display: grid;
  gap: 14px;
  margin: 0 0 18px;
}

.pami-api-toolbar,
.pami-api-head,
.pami-api-subhead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.pami-api-toolbar h3 {
  margin: 4px 0 0;
}

.pami-api-kpis {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.pami-api-kpi,
.pami-api-panel,
.pami-api-empty {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 13px;
  min-width: 0;
}

.pami-api-kpi span,
.pami-api-panel span {
  color: var(--muted);
}

.pami-api-kpi strong {
  display: block;
  margin-top: 6px;
  color: #102033;
  font-size: 24px;
  line-height: 1;
}

.pami-api-filters {
  display: grid;
  grid-template-columns: minmax(150px, 0.75fr) minmax(150px, 0.75fr) minmax(220px, 1.4fr) auto;
  gap: 10px;
  align-items: end;
}

.pami-api-filters label,
.pami-api-create,
.pami-api-panel {
  display: grid;
  gap: 8px;
}

.pami-api-filters input,
.pami-api-filters select,
.pami-api-create input,
.pami-api-create textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  color: var(--text);
  font: inherit;
  padding: 10px 11px;
}

.pami-api-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.8fr);
  gap: 12px;
  align-items: start;
}

.pami-api-layout.compact {
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.65fr);
}

.pami-api-row {
  display: grid;
  grid-template-columns: minmax(120px, 0.65fr) minmax(260px, 1.4fr) minmax(120px, 0.65fr) minmax(140px, 0.75fr) minmax(150px, 0.75fr);
  gap: 12px;
  align-items: center;
  min-width: 920px;
  padding: 12px;
  border-top: 1px solid var(--line);
}

.pami-api-item-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) minmax(150px, 0.8fr) minmax(170px, 0.9fr) minmax(140px, 0.75fr);
  gap: 12px;
  align-items: center;
  min-width: 760px;
  padding: 12px;
  border-top: 1px solid var(--line);
}

.pami-api-money,
.pami-api-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.pami-api-tags.vertical {
  display: grid;
}

.pami-api-money span,
.pami-api-tags span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: white;
  font-size: 12px;
  font-weight: 800;
  padding: 5px 8px;
}

.pami-api-money strong {
  border-radius: 999px;
  background: #fff7e8;
  color: #7c4f00;
  font-size: 12px;
  padding: 6px 9px;
}

.pami-api-create .wide {
  grid-column: 1 / -1;
}

.cashbox-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.cashbox-card {
  display: grid;
  gap: 10px;
  align-content: start;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.cashbox-card h3,
.cashbox-card p {
  margin: 0;
}

.cashbox-card strong {
  font-size: 24px;
}

.cashbox-card small {
  color: var(--muted);
}

.fund-flow-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.fund-flow-card {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.fund-flow-card span:first-child {
  color: var(--muted);
  font-weight: 800;
}

.fund-flow-card strong {
  font-size: 22px;
}

.fund-flow-card small {
  color: var(--muted);
}

.finance-dashboard {
  display: none;
}

.finance-dashboard.active {
  display: block;
}

.finance-hero {
  align-items: center;
  margin-bottom: 18px;
  border: 1px solid #173f5f;
  border-radius: 8px;
  background: linear-gradient(135deg, #123a52, #1f6f78);
  color: white;
  padding: 22px;
  box-shadow: 0 18px 38px rgba(18, 58, 82, 0.18);
}

.finance-hero h2,
.finance-hero p {
  color: white;
}

.finance-hero .eyebrow {
  color: #a8f0d0;
}

.finance-hero .body-copy {
  max-width: 820px;
  opacity: 0.9;
}

.finance-hero-actions {
  display: grid;
  gap: 8px;
  min-width: 230px;
}

.finance-hero-actions span {
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.12);
  padding: 9px 11px;
  font-size: 13px;
  font-weight: 900;
}

.finance-kpi-grid {
  display: block;
  margin-bottom: 18px;
}

.finance-executive-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 12px;
}

.finance-priority-card {
  display: grid;
  gap: 8px;
  min-width: 0;
  min-height: 142px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  padding: 18px;
}

.finance-priority-card span {
  color: #586b80;
  font-size: 14px;
  font-weight: 900;
}

.finance-priority-card strong {
  color: #17212f;
  font-size: clamp(25px, 2.6vw, 36px);
  line-height: 1;
  overflow-wrap: anywhere;
}

.finance-priority-card small {
  color: var(--muted);
  font-weight: 700;
  line-height: 1.35;
}

.finance-priority-card.danger {
  border-top: 5px solid #c45445;
  background: #fff8f7;
}

.finance-priority-card.warning {
  border-top: 5px solid #c7922b;
  background: #fffbf2;
}

.finance-priority-card.neutral {
  border-top: 5px solid #5f7f96;
  background: #f8fbfd;
}

.finance-support-strip {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  border: 1px solid #d5e2e9;
  border-radius: 8px;
  background: #f7fbfd;
  padding: 8px;
}

.finance-support-strip div {
  min-width: 0;
  border-right: 1px solid #d5e2e9;
  padding: 6px 10px;
}

.finance-support-strip div:last-child {
  border-right: 0;
}

.finance-support-strip span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.finance-support-strip strong {
  display: block;
  margin-top: 4px;
  color: #162331;
  font-size: clamp(14px, 1.3vw, 18px);
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.finance-dashboard .admission-kpi {
  min-height: 104px;
  box-shadow: none;
  border-top: 4px solid #7f97aa;
  background: #fbfdff;
}

.finance-dashboard .admission-kpi:nth-child(1),
.finance-dashboard .admission-kpi:nth-child(2),
.finance-dashboard .admission-kpi:nth-child(3) {
  border-top-color: #c45445;
  background: #fff8f7;
}

.finance-dashboard .admission-kpi:nth-child(4),
.finance-dashboard .admission-kpi:nth-child(5) {
  border-top-color: #c7922b;
  background: #fffbf2;
}

.finance-dashboard .admission-kpi strong {
  font-size: clamp(20px, 2.1vw, 28px);
  line-height: 1.05;
  white-space: nowrap;
}

.finance-flow-panel,
.finance-section-panel,
.finance-dashboard .layout-stack > .panel {
  box-shadow: none;
  border-color: #cfdce4;
}

.finance-panel-title {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 8px;
}

.finance-panel-title h3,
.finance-panel-title p {
  margin: 0;
}

.finance-panel-title > span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #eef5f8;
  color: #31566c;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

.finance-explain-grid .panel {
  background: #f9fcfd;
}

.decision-chart {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}

.decision-bar-row {
  display: grid;
  gap: 6px;
}

.decision-bar-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  gap: 12px;
  align-items: baseline;
}

.decision-bar-head strong {
  min-width: 0;
  font-size: 14px;
}

.decision-bar-head span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.decision-bar-track {
  height: 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #eef4f7;
  overflow: hidden;
}

.decision-bar {
  min-width: 12px;
  height: 100%;
  border-radius: inherit;
}

.decision-bar.positive {
  background: #1f8a70;
}

.decision-bar.warning {
  background: #c7922b;
}

.decision-bar.danger {
  background: #c45445;
}

.horizontal-chart {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 18px;
}

.cash-flow-scroll {
  overflow-x: auto;
  margin-top: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f7fbfd;
}

.cash-flow-table {
  min-width: 1260px;
  display: grid;
  background: white;
}

.cash-flow-row {
  display: grid;
  grid-template-columns: minmax(240px, 1.25fr) repeat(8, minmax(116px, 0.7fr));
  align-items: stretch;
  min-height: 32px;
  border-top: 1px solid var(--line);
}

.cash-flow-row:first-child {
  border-top: 0;
}

.cash-flow-row strong,
.cash-flow-row span {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 7px 9px;
  font-size: 12px;
  border-left: 1px solid var(--line);
  white-space: nowrap;
}

.cash-flow-row strong {
  justify-content: flex-start;
  position: sticky;
  left: 0;
  z-index: 1;
  border-left: 0;
  background: #f8fbfd;
}

.cash-flow-header strong,
.cash-flow-header span,
.cash-flow-section,
.cash-flow-total strong,
.cash-flow-total span,
.cash-flow-net strong,
.cash-flow-net span,
.cash-flow-final strong,
.cash-flow-final span {
  background: #0f4c81;
  color: white;
  font-weight: 900;
}

.cash-flow-header strong,
.cash-flow-header span {
  position: sticky;
  top: 0;
  z-index: 2;
}

.cash-flow-header strong {
  z-index: 3;
}

.cash-flow-section {
  display: block;
  padding: 9px 10px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  border-top: 1px solid #0b3f6d;
}

.cash-flow-start strong,
.cash-flow-start span {
  background: #eaf3fb;
  font-weight: 900;
}

.finance-dashboard .bank-list {
  box-shadow: none;
  background: #f7fbfd;
}

.finance-dashboard .bank-row {
  border-color: #d6e2e8;
  background: white;
}

.cash-flow-row .negative {
  color: #b64034;
}

.cash-flow-row .positive {
  color: #126b58;
}

.cash-flow-total .negative,
.cash-flow-total .positive,
.cash-flow-net .negative,
.cash-flow-net .positive,
.cash-flow-final .negative,
.cash-flow-final .positive {
  color: white;
}

.fee-decision-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
}

.danger-action {
  border-color: #f0caca;
  color: #9d2f2f;
  background: #fff8f8;
}

.fee-api-workbench {
  margin-bottom: 16px;
}

.fee-api-panel {
  border-color: #cfdde6;
  background: #f8fbfc;
}

.fee-api-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
}

.fee-api-head h3,
.fee-api-head p,
.fee-api-total span {
  margin: 0;
}

.fee-api-kpis {
  margin: 14px 0;
}

.fee-api-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) minmax(140px, 0.7fr) minmax(180px, 1fr) minmax(150px, 0.8fr) auto auto;
  gap: 10px;
  align-items: end;
  margin: 12px 0 16px;
}

.fee-api-toolbar input,
.fee-api-toolbar select,
.fee-api-forms input,
.fee-api-forms select {
  width: 100%;
}

.fee-api-forms {
  align-items: stretch;
  margin-bottom: 16px;
}

.fee-api-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.fee-api-grid h4,
.fee-api-forms h4,
.fee-api-rules h4 {
  margin: 0 0 10px;
  color: #123f5a;
}

.fee-api-rule-list,
.fee-api-detail {
  display: grid;
  gap: 10px;
}

.fee-api-list-table .ui-table-header,
.fee-api-list-table .fee-api-row {
  grid-template-columns: minmax(180px, 1.15fr) minmax(160px, 1fr) minmax(130px, 0.8fr) minmax(120px, auto) minmax(150px, 0.9fr);
}

.fee-api-row {
  display: grid;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  padding: 12px;
}

.fee-api-settlement-table .ui-table-header,
.fee-api-settlement-row {
  grid-template-columns: minmax(170px, 1.3fr) minmax(150px, 1fr) minmax(120px, 0.8fr) minmax(110px, 0.7fr) minmax(120px, 0.7fr) minmax(220px, auto);
}

.fee-api-settlement-row,
.fee-professional-row {
  display: grid;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  padding: 12px;
}

.fee-professional-table .ui-table-header,
.fee-professional-row {
  grid-template-columns: minmax(220px, 1.4fr) minmax(140px, 0.8fr) minmax(130px, 0.8fr) minmax(130px, 0.8fr) minmax(220px, auto);
}

.fee-api-total {
  display: grid;
  gap: 4px;
  justify-items: end;
  text-align: right;
}

.fee-api-total strong {
  font-size: 22px;
}

.fee-api-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.fee-api-detail {
  border-top: 1px solid var(--line);
  padding-top: 10px;
}

.fee-api-rule {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) minmax(160px, 0.8fr);
  gap: 10px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding: 9px 0;
}

.fee-api-rule:last-child {
  border-bottom: 0;
}

.fee-api-row small,
.fee-api-row span,
.fee-api-settlement-row small,
.fee-api-settlement-row span,
.fee-professional-row small,
.fee-professional-row span,
.fee-api-rule span,
.fee-api-rule small,
.fee-api-total span {
  color: var(--muted);
}

.floor-stock-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.iva-book-layout {
  display: grid;
  grid-template-columns: 1.1fr 1.1fr 0.9fr;
  gap: 14px;
  margin-top: 16px;
}

.iva-book-layout article {
  min-width: 0;
}

.iva-book-layout h4 {
  margin: 0 0 10px;
  color: #123f5a;
  font-size: 15px;
}

.party-master-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.party-master-layout h4 {
  margin: 0 0 10px;
  color: #123f5a;
  font-size: 15px;
}

.party-master-table {
  display: grid;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: auto;
}

.party-master-row {
  display: grid;
  grid-template-columns: minmax(190px, 1.3fr) minmax(86px, 0.55fr) minmax(98px, 0.65fr) minmax(112px, 0.7fr) minmax(165px, 1fr) minmax(165px, 1fr) minmax(125px, 0.75fr) minmax(110px, 0.75fr);
  gap: 8px;
  align-items: center;
  min-width: 1180px;
  padding: 10px 12px;
  border-top: 1px solid var(--line);
  background: #fbfdff;
  font-size: 13px;
}

.party-master-row:first-child {
  border-top: 0;
}

.party-master-row.header {
  background: #edf5f4;
  color: #475467;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.party-master-row strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.party-master-row small,
.party-master-row strong small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pdf-upload {
  display: grid;
  gap: 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.pdf-upload input {
  width: 100%;
  max-width: 118px;
  font-size: 11px;
}

.sector-inventory-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.valued-inventory-table {
  display: grid;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 2px;
}

.valued-inventory-panel h3 {
  text-align: center;
}

.valued-row {
  display: grid;
  grid-template-columns: minmax(60px, 0.55fr) minmax(210px, 2fr) minmax(105px, 1fr) minmax(70px, 0.7fr) minmax(90px, 0.85fr) minmax(105px, 0.95fr) minmax(40px, 0.45fr);
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  min-width: 760px;
  padding: 13px 12px;
}

.valued-row.header {
  background: #eef5fb;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0;
  position: sticky;
  top: 0;
  z-index: 1;
}

.valued-row strong,
.valued-row span,
.valued-row small {
  display: block;
}

.valued-row strong:first-child,
.valued-row span {
  line-height: 1.35;
}

.valued-row strong:first-child {
  text-align: center;
}

.valued-row span:nth-child(2) {
  text-align: left;
}

.valued-row span:nth-child(3) {
  text-align: center;
}

.valued-row .numeric,
.valued-row.header span:nth-child(n + 4) {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.valued-row.header span {
  text-align: center;
}

.valued-row small {
  color: var(--muted);
  font-weight: 600;
  margin-top: 3px;
}

.pharmacy-alert-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 14px 0;
}

.pharmacy-procedure-grid,
.pharmacy-checklist-grid,
.pharmacy-rule-grid {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}

.pharmacy-procedure-grid,
.pharmacy-rule-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

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

.pharmacy-principle,
.pharmacy-procedure-card,
.pharmacy-rule-card,
.pharmacy-check-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
  min-width: 0;
}

.pharmacy-principle {
  display: grid;
  gap: 5px;
  margin-top: 14px;
  text-align: center;
}

.pharmacy-principle span,
.pharmacy-principle small {
  color: var(--muted);
}

.pharmacy-search-field {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.pharmacy-branch-nav {
  display: flex;
  gap: 8px;
  margin-top: 16px;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-gutter: stable;
}

.pharmacy-branch-nav a,
.pharmacy-branch-nav button {
  --ph-tab: var(--hospital-navy);
  --ph-tab-soft: #eef6f8;
  --ph-tab-border: #cddbe5;
  flex: 1 0 168px;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  border: 1px solid var(--ph-tab-border);
  border-bottom: 3px solid var(--ph-tab);
  border-radius: 6px;
  background: #fff;
  color: #102033;
  padding: 10px 12px;
  text-decoration: none;
  font: inherit;
  text-align: left;
  cursor: pointer;
  box-shadow: none;
}

.pharmacy-branch-nav [data-pharmacy-tab="tablero"] { --ph-tab: var(--hospital-navy); --ph-tab-soft: #eef6ff; --ph-tab-border: #c9dff4; }
.pharmacy-branch-nav [data-pharmacy-tab="inventario"] { --ph-tab: var(--hospital-celeste); --ph-tab-soft: #edf6ff; --ph-tab-border: #c9dff4; }
.pharmacy-branch-nav [data-pharmacy-tab="licitador"] { --ph-tab: var(--hospital-yellow); --ph-tab-soft: #fff8e8; --ph-tab-border: #f4d59b; }
.pharmacy-branch-nav [data-pharmacy-tab="dispensacion"] { --ph-tab: var(--hospital-green); --ph-tab-soft: #effaf3; --ph-tab-border: #bee8cd; }
.pharmacy-branch-nav [data-pharmacy-tab="controlados"] { --ph-tab: var(--hospital-red); --ph-tab-soft: #fff0f1; --ph-tab-border: #f4c5ca; }
.pharmacy-branch-nav [data-pharmacy-tab="vademecum"] { --ph-tab: var(--hospital-navy-dark); --ph-tab-soft: #f1f7ff; --ph-tab-border: #c9dff4; }

.pharmacy-branch-nav a.active,
.pharmacy-branch-nav button.active {
  border-color: var(--ph-tab);
  background: var(--ph-tab-soft);
  box-shadow: none;
}

.pharmacy-branch-nav a span,
.pharmacy-branch-nav button span {
  display: grid;
  place-items: center;
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: var(--ph-tab);
  color: white;
  font-weight: 900;
}

.pharmacy-branch-nav a.active strong,
.pharmacy-branch-nav button.active strong {
  color: var(--ph-tab);
}

.pharmacy-branch-nav a strong,
.pharmacy-branch-nav a small,
.pharmacy-branch-nav button strong,
.pharmacy-branch-nav button small {
  display: block;
  overflow-wrap: anywhere;
}

.pharmacy-branch-nav a small,
.pharmacy-branch-nav button small {
  display: none;
  color: var(--muted);
  font-weight: 700;
}

.pharmacy-branch {
  --pharmacy-accent: var(--hospital-navy);
  --pharmacy-soft: #f5f9fc;
  --pharmacy-border: #cddbe5;
  scroll-margin-top: 18px;
  margin-top: 18px;
}

.pharmacy-branch[data-pharmacy-pane="tablero"] { --pharmacy-accent: var(--hospital-navy); --pharmacy-soft: #eef6ff; --pharmacy-border: #c9dff4; }
.pharmacy-branch[data-pharmacy-pane="inventario"] { --pharmacy-accent: var(--hospital-celeste); --pharmacy-soft: #edf6ff; --pharmacy-border: #c9dff4; }
.pharmacy-branch[data-pharmacy-pane="licitador"] { --pharmacy-accent: var(--hospital-yellow); --pharmacy-soft: #fff8e8; --pharmacy-border: #f4d59b; }
.pharmacy-branch[data-pharmacy-pane="dispensacion"] { --pharmacy-accent: var(--hospital-green); --pharmacy-soft: #effaf3; --pharmacy-border: #bee8cd; }
.pharmacy-branch[data-pharmacy-pane="controlados"] { --pharmacy-accent: var(--hospital-red); --pharmacy-soft: #fff0f1; --pharmacy-border: #f4c5ca; }
.pharmacy-branch[data-pharmacy-pane="vademecum"] { --pharmacy-accent: var(--hospital-navy-dark); --pharmacy-soft: #f1f7ff; --pharmacy-border: #c9dff4; }

.pharmacy-system-map {
  border-color: #cddbe5;
  background: #fbfdff;
}

.pharmacy-map-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 14px;
}

.pharmacy-map-head h3,
.pharmacy-map-head p {
  margin: 0;
}

.pharmacy-map-head p {
  color: var(--muted);
  margin-top: 4px;
  line-height: 1.4;
}

.pharmacy-map-head > span {
  border: 1px solid #cddbe5;
  border-radius: 999px;
  background: #eef5f8;
  color: #31566c;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

.pharmacy-system-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

.pharmacy-system-grid article {
  --ph-system-accent: var(--hospital-navy);
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  border: 0;
  border-top: 1px solid var(--line);
  border-left: 4px solid var(--ph-system-accent);
  border-radius: 0;
  background: white;
  padding: 10px 12px;
}

.pharmacy-system-grid article:first-child {
  border-top: 0;
}

.pharmacy-system-grid article:nth-child(1) { --ph-system-accent: var(--hospital-navy); }
.pharmacy-system-grid article:nth-child(2) { --ph-system-accent: var(--hospital-celeste); }
.pharmacy-system-grid article:nth-child(3) { --ph-system-accent: var(--hospital-yellow); }
.pharmacy-system-grid article:nth-child(4) { --ph-system-accent: var(--hospital-green); }
.pharmacy-system-grid article:nth-child(5) { --ph-system-accent: var(--hospital-red); }
.pharmacy-system-grid article:nth-child(6) { --ph-system-accent: var(--hospital-navy-dark); }

.pharmacy-system-grid strong {
  color: var(--ph-system-accent);
  font-size: 15px;
}

.pharmacy-system-grid ul {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding-left: 0;
  list-style: none;
  color: #51667b;
  font-size: 13px;
  line-height: 1.35;
}

.pharmacy-system-grid li {
  border: 1px solid #dbe5ea;
  border-radius: 999px;
  background: #f8fbfd;
  padding: 4px 8px;
}

.pharmacy-feature-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 12px;
}

.pharmacy-feature-strip span {
  border: 1px solid var(--pharmacy-border, #d6e4ec);
  border-radius: 999px;
  background: var(--pharmacy-soft, #f7fbfd);
  color: var(--pharmacy-accent, #31566c);
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 900;
}

.pharmacy-branch-head {
  border: 1px solid var(--pharmacy-border);
  border-left: 6px solid var(--pharmacy-accent);
  border-radius: 8px;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--pharmacy-soft) 88%, white), #ffffff 74%),
    #ffffff;
  box-shadow: 0 10px 24px rgba(31, 41, 51, 0.045);
  padding: 14px 16px;
}

.pharmacy-branch-head span,
.pharmacy-branch-head h3,
.pharmacy-branch-head p {
  display: block;
  margin: 0;
}

.pharmacy-branch-head span {
  color: var(--pharmacy-accent);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.pharmacy-branch-head h3 {
  color: #172433;
  margin-top: 4px;
  font-size: 22px;
}

.pharmacy-branch .panel {
  border-color: color-mix(in srgb, var(--pharmacy-border) 80%, #dbe5ea);
}

.pharmacy-branch .panel > h3:first-child,
.pharmacy-branch .panel > .pharmacy-feature-strip + h3 {
  border-left: 4px solid var(--pharmacy-accent);
  color: #172433;
  padding-left: 10px;
}

#stock .pharmacy-branch .panel > h3:first-child,
#stock .pharmacy-branch .panel > .pharmacy-feature-strip + h3 {
  border-left-color: var(--pharmacy-accent);
}

.pharmacy-branch .decision-card,
.pharmacy-branch .decision-panel,
.pharmacy-branch .pharmacy-tender-card,
.pharmacy-branch .pharmacy-stage-card,
.pharmacy-branch .pharmacy-request-card,
.pharmacy-branch .pharmacy-ops-card,
.pharmacy-branch .pharmacy-procedure-card,
.pharmacy-branch .pharmacy-rule-card,
.pharmacy-branch .pharmacy-check-card,
.pharmacy-branch .category-value-card,
.pharmacy-branch .floor-stock-card {
  border-left: 4px solid var(--pharmacy-accent);
}

.pharmacy-branch .pharmacy-pricing-row:not(.header),
.pharmacy-branch .pharmacy-ledger-row:not(.header),
.pharmacy-branch .pharmacy-treatment-row:not(.header),
.pharmacy-branch .pharmacy-search-row:not(.header),
.pharmacy-branch .pharmacy-quote-row:not(.header) {
  border-left: 4px solid color-mix(in srgb, var(--pharmacy-accent) 74%, #dbe5ea);
}

.pharmacy-branch .pharmacy-pricing-row.header,
.pharmacy-branch .pharmacy-ledger-row.header,
.pharmacy-branch .pharmacy-treatment-row.header,
.pharmacy-branch .pharmacy-search-row.header,
.pharmacy-branch .pharmacy-quote-row.header {
  background: color-mix(in srgb, var(--pharmacy-soft) 78%, white);
  color: var(--pharmacy-accent);
}

.pharmacy-branch-head p {
  color: var(--muted);
  margin-top: 4px;
  line-height: 1.4;
}

.pharmacy-search-field span {
  color: var(--muted);
  font-weight: 800;
}

.pharmacy-search-field input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  font: inherit;
  font-size: 18px;
  padding: 13px 14px;
}

.pharmacy-search-summary {
  display: grid;
  grid-template-columns: 0.7fr 1fr 1.4fr;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f6fafc;
  margin: 12px 0;
  padding: 12px;
}

.pharmacy-search-summary span,
.pharmacy-search-summary small {
  color: var(--muted);
  font-weight: 800;
}

.pharmacy-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}

.pharmacy-filter {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fbfdff;
  color: #425466;
  cursor: pointer;
  font-size: 13px;
  font-weight: 850;
  padding: 8px 10px;
}

.pharmacy-filter span {
  border-radius: 999px;
  background: #edf3f7;
  color: var(--muted);
  font-size: 12px;
  padding: 2px 7px;
}

.pharmacy-filter.active {
  background: #123f5a;
  border-color: #123f5a;
  color: white;
}

.pharmacy-filter.active span {
  background: rgba(255, 255, 255, 0.18);
  color: white;
}

.pharmacy-tender-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.pharmacy-tender-card {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.pharmacy-tender-card dl {
  display: grid;
  gap: 8px;
  margin: 0;
}

.pharmacy-tender-card dl div {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
}

.pharmacy-tender-card dt,
.pharmacy-tender-card small {
  color: var(--muted);
}

.pharmacy-tender-card dd {
  margin: 0;
  font-weight: 800;
}

.pharmacy-stage-grid,
.pharmacy-request-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.pharmacy-stage-card,
.pharmacy-request-card {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 13px;
}

.pharmacy-stage-card strong,
.pharmacy-stage-card span,
.pharmacy-stage-card small,
.pharmacy-request-card strong,
.pharmacy-request-card span,
.pharmacy-request-card small {
  display: block;
  overflow-wrap: anywhere;
}

.pharmacy-stage-card span,
.pharmacy-stage-card small,
.pharmacy-request-card small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

.pharmacy-request-card.critical {
  border-color: #e7a4a4;
  background: #fffafa;
}

.pharmacy-request-card dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 12px;
  margin: 0;
}

.pharmacy-request-card dl div {
  display: grid;
  gap: 2px;
}

.pharmacy-request-card dt {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.pharmacy-request-card dd {
  margin: 0;
  font-size: 13px;
  font-weight: 850;
}

.pharmacy-quote-form {
  display: grid;
  gap: 14px;
}

.pharmacy-quote-form h3,
.pharmacy-quote-form p {
  margin: 0;
}

.pharmacy-quote-form p {
  color: var(--muted);
  margin-top: 4px;
}

.pharmacy-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.pharmacy-form-grid label {
  display: grid;
  gap: 6px;
}

.pharmacy-form-grid span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}

.pharmacy-form-grid input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbfd;
  color: var(--ink);
  font: inherit;
  font-weight: 800;
  min-height: 38px;
  padding: 9px 10px;
}

.pharmacy-form-note {
  border: 1px solid #d6e4ec;
  border-radius: 8px;
  background: #f7fbfd;
  color: #31566c;
  padding: 11px 12px;
  font-size: 13px;
  font-weight: 850;
}

.pharmacy-quote-table {
  display: grid;
  gap: 10px;
  overflow-x: auto;
}

.pharmacy-quote-row {
  display: grid;
  grid-template-columns: minmax(90px, 0.7fr) minmax(190px, 1.35fr) minmax(100px, 0.75fr) minmax(105px, 0.8fr) minmax(80px, 0.65fr) minmax(110px, 0.85fr) minmax(80px, 0.6fr) minmax(82px, 0.65fr) minmax(92px, 0.7fr) minmax(75px, 0.55fr) minmax(130px, 0.9fr);
  gap: 10px;
  align-items: center;
  min-width: 1220px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 11px;
}

.pharmacy-quote-row.header {
  background: #eef5fb;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.pharmacy-quote-row.recommended {
  border-color: #b7ddcd;
  background: #f6fcf9;
}

.pharmacy-quote-row strong,
.pharmacy-quote-row span,
.pharmacy-quote-row small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.pharmacy-quote-row small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  margin-top: 2px;
}

.pharmacy-quote-row .numeric,
.pharmacy-quote-row.header span:nth-child(n + 4) {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.pharmacy-ops-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.pharmacy-ops-card {
  display: grid;
  gap: 8px;
  align-content: start;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.pharmacy-ops-card.critical {
  border-color: #e7a4a4;
  background: #fffafa;
}

.pharmacy-ops-card span,
.pharmacy-ops-card strong,
.pharmacy-ops-card small {
  display: block;
  overflow-wrap: anywhere;
}

.pharmacy-ops-card > span:first-child,
.pharmacy-ops-card small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.pharmacy-ops-card p {
  color: var(--muted);
  line-height: 1.4;
  margin: 0;
}

.pharmacy-procedure-card,
.pharmacy-rule-card {
  display: grid;
  gap: 10px;
}

.pharmacy-procedure-card.critical,
.pharmacy-rule-card.critical {
  border-color: #e7a4a4;
  background: #fffafa;
}

.pharmacy-procedure-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.pharmacy-procedure-head div {
  min-width: 0;
}

.pharmacy-procedure-card span,
.pharmacy-procedure-card strong,
.pharmacy-procedure-card small,
.pharmacy-rule-card span,
.pharmacy-rule-card strong,
.pharmacy-rule-card small,
.pharmacy-check-card span,
.pharmacy-check-card strong,
.pharmacy-check-card small {
  display: block;
  overflow-wrap: anywhere;
}

.pharmacy-procedure-card p,
.pharmacy-rule-card p {
  color: var(--muted);
  line-height: 1.4;
  margin: 0;
}

.pharmacy-procedure-head > div > span,
.pharmacy-procedure-head small,
.pharmacy-check-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.pharmacy-check-card {
  display: grid;
  gap: 8px;
  align-content: start;
}

.pharmacy-pricing-table,
.pharmacy-ledger-grid,
.pharmacy-treatment-table,
.pharmacy-search-table {
  display: grid;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 2px;
}

.pharmacy-pricing-row,
.pharmacy-ledger-row,
.pharmacy-treatment-row,
.pharmacy-search-row {
  display: grid;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 12px;
}

.pharmacy-pricing-row {
  grid-template-columns: minmax(60px, 0.45fr) minmax(220px, 1.8fr) minmax(70px, 0.55fr) minmax(92px, 0.75fr) minmax(96px, 0.75fr) minmax(112px, 0.9fr) minmax(112px, 0.9fr) minmax(66px, 0.55fr) minmax(130px, 0.9fr);
  min-width: 980px;
}

.pharmacy-ledger-row {
  grid-template-columns: minmax(82px, 0.65fr) minmax(150px, 1fr) minmax(220px, 1.6fr) minmax(70px, 0.55fr) minmax(96px, 0.75fr) minmax(96px, 0.75fr) minmax(96px, 0.75fr) minmax(130px, 0.9fr);
  min-width: 900px;
}

.pharmacy-treatment-row {
  grid-template-columns: minmax(90px, 0.7fr) minmax(150px, 1fr) minmax(120px, 0.8fr) minmax(120px, 0.85fr) minmax(120px, 0.85fr) minmax(50px, 0.4fr) minmax(90px, 0.65fr) minmax(170px, 1.25fr) minmax(110px, 0.8fr);
  min-width: 980px;
}

.pharmacy-search-row {
  grid-template-columns: minmax(60px, 0.45fr) minmax(230px, 1.9fr) minmax(110px, 0.8fr) minmax(70px, 0.55fr) minmax(95px, 0.75fr) minmax(100px, 0.75fr) minmax(100px, 0.75fr) minmax(105px, 0.8fr) minmax(130px, 0.85fr);
  min-width: 980px;
}

.pharmacy-pricing-row.header,
.pharmacy-ledger-row.header,
.pharmacy-treatment-row.header,
.pharmacy-search-row.header {
  background: #eef5fb;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.pharmacy-pricing-row strong,
.pharmacy-pricing-row span,
.pharmacy-pricing-row small,
.pharmacy-ledger-row strong,
.pharmacy-ledger-row span,
.pharmacy-ledger-row small,
.pharmacy-treatment-row strong,
.pharmacy-treatment-row span,
.pharmacy-treatment-row small,
.pharmacy-search-row strong,
.pharmacy-search-row span,
.pharmacy-search-row small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.pharmacy-pricing-row strong:first-child,
.pharmacy-ledger-row strong:first-child,
.pharmacy-treatment-row strong:first-child,
.pharmacy-search-row strong:first-child {
  text-align: center;
}

.pharmacy-pricing-row small,
.pharmacy-ledger-row small,
.pharmacy-treatment-row small,
.pharmacy-search-row small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  margin-top: 3px;
}

.pharmacy-pricing-row .numeric,
.pharmacy-ledger-row .numeric,
.pharmacy-treatment-row .numeric,
.pharmacy-search-row .numeric,
.pharmacy-pricing-row.header span:nth-child(n + 3),
.pharmacy-ledger-row.header span:nth-child(n + 4),
.pharmacy-treatment-row.header span:nth-child(6),
.pharmacy-search-row.header span:nth-child(n + 4) {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.source-note {
  grid-column: 1 / -1;
  color: var(--muted);
  margin: 4px 0 0;
}

.roadmap-subapp-group {
  margin-top: 18px;
}

.roadmap-subapp-group > h3 {
  margin: 0 0 10px;
}

.category-value-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.category-value-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.category-value-card span,
.category-value-card strong,
.category-value-card small,
.category-value-card em {
  display: block;
}

.category-value-card span,
.category-value-card small,
.category-value-card em {
  color: var(--muted);
}

.category-value-card strong {
  margin: 8px 0 4px;
  font-size: 24px;
}

.category-value-card em {
  border-top: 1px solid #e7eef3;
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.35;
  margin-top: 10px;
  padding-top: 9px;
}

.decision-highlight-grid,
.inventory-extremes-grid {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.decision-highlight-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 12px;
}

.inventory-extremes-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.decision-card,
.decision-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  min-width: 0;
}

.decision-card {
  padding: 16px;
  text-align: center;
}

.decision-card.warning {
  background: #fffaf0;
  border-color: #ecd08f;
}

.decision-card span,
.decision-card strong,
.decision-card small {
  display: block;
  overflow-wrap: anywhere;
}

.decision-card span,
.decision-card small {
  color: var(--muted);
}

.decision-card strong {
  margin: 8px 0 4px;
  font-size: clamp(20px, 2vw, 28px);
  line-height: 1.1;
}

.decision-panel {
  padding: 14px;
}

.decision-panel h4 {
  margin: 0 0 10px;
  text-align: center;
}

.decision-item {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  border-top: 1px solid #e7eef3;
  padding: 9px 0;
}

.decision-item:first-of-type {
  border-top: 0;
}

.decision-item strong {
  text-align: center;
}

.decision-item span,
.decision-item small {
  display: block;
  overflow-wrap: anywhere;
}

.decision-item small {
  grid-column: 2;
  color: var(--muted);
  font-size: 12px;
}

.doctor-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.doctor-circuit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.doctor-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
  min-width: 0;
}

.doctor-card strong,
.doctor-card span,
.doctor-card small {
  display: block;
}

.doctor-card span,
.doctor-card small {
  color: var(--muted);
}

.doctor-circuit-card {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) 1.8fr auto;
  gap: 14px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
  min-width: 0;
}

.doctor-circuit-card strong,
.doctor-circuit-card small {
  display: block;
  overflow-wrap: anywhere;
}

.doctor-circuit-card small {
  color: var(--muted);
}

.doctor-card strong,
.doctor-card small,
.doctor-circuit-card strong,
.doctor-circuit-card small,
.doctor-meta span {
  overflow-wrap: anywhere;
}

.doctor-meta {
  display: grid;
  gap: 6px;
  margin-top: 12px;
}

.doctor-meta span {
  border: 1px solid #dbe5ea;
  border-radius: 999px;
  background: white;
  color: #425466;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 9px;
}

.ops-grid,
.bed-grid,
.bed-sector-grid,
.bed-work-grid,
.bed-floor-grid,
.bed-payer-grid {
  display: grid;
  gap: 12px;
}

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

.lab-workspace {
  display: grid;
  gap: 16px;
}

.lab-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(260px, 0.75fr);
  gap: 16px;
  align-items: start;
}

.lab-main-column,
.lab-side-column,
.lab-create-form,
.lab-order-list,
.lab-rules,
.lab-workflow {
  display: grid;
  gap: 12px;
}

.lab-kpi-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.lab-kpi strong {
  font-size: clamp(20px, 2vw, 30px);
}

.lab-toolbar,
.lab-form-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(160px, 220px) auto auto;
  gap: 10px;
  align-items: end;
}

.lab-form-grid {
  grid-template-columns: minmax(220px, 1.2fr) minmax(160px, 220px);
}

.lab-wide {
  grid-column: 1 / -1;
}

.lab-form-head,
.lab-order-card header,
.lab-order-card footer {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.lab-create-form,
.lab-rules,
.lab-workflow,
.lab-error {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.lab-catalog-mini {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.lab-catalog-mini label {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 6px 8px;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  background: white;
  padding: 8px;
  min-width: 0;
}

.lab-catalog-mini small {
  grid-column: 2;
  color: var(--muted);
}

.lab-order-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lab-order-card {
  display: grid;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  padding: 14px;
  min-width: 0;
}

.lab-order-card h3,
.lab-order-card p,
.lab-order-card small,
.lab-order-card span,
.lab-order-card strong {
  overflow-wrap: anywhere;
}

.lab-order-tags,
.lab-chip-list,
.lab-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.lab-chip-list span,
.lab-priority,
.lab-status {
  border-radius: 999px;
  padding: 6px 9px;
  font-size: 12px;
  font-weight: 800;
}

.lab-chip-list span {
  border: 1px solid #dbe5ea;
  background: #f8fbfd;
  color: #324256;
}

.lab-priority {
  background: #fff7ed;
  color: #9a3412;
}

.lab-status-default { background: #e2e8f0; color: #334155; }
.lab-status-warning { background: #fef3c7; color: #92400e; }
.lab-status-info { background: #e0f2fe; color: #075985; }
.lab-status-review { background: #f3e8ff; color: #6b21a8; }
.lab-status-success { background: #d1fae5; color: #065f46; }

.lab-results-list,
.lab-result-grid {
  display: grid;
  gap: 8px;
}

.lab-results-list div,
.lab-result-row {
  display: grid;
  grid-template-columns: minmax(72px, 0.5fr) minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  border-top: 1px solid #edf2f7;
  padding-top: 8px;
}

.lab-result-row {
  grid-template-columns: minmax(160px, 1fr) minmax(90px, 120px) minmax(80px, 110px);
  border: 1px solid #edf2f7;
  border-radius: 8px;
  padding: 8px;
}

.lab-result-empty {
  color: var(--muted);
}

.lab-result-abnormal {
  color: #b45309;
  font-weight: 800;
}

.lab-result-critical {
  color: #b91c1c;
  font-weight: 900;
}

.lab-result-critical small,
.lab-result-abnormal small {
  display: block;
  color: inherit;
}

.lab-final-note {
  color: #047857;
  font-weight: 800;
}

.lab-workflow span {
  border-left: 4px solid #cbd5e1;
  padding: 8px 10px;
  background: white;
  border-radius: 6px;
  color: #425466;
  font-weight: 700;
}

.lab-workflow span.done {
  border-left-color: var(--hospital-green);
}

.lab-workflow span.current {
  border-left-color: #f59e0b;
}

.lab-rules ul {
  margin: 0;
  padding-left: 18px;
  color: #425466;
}

.lab-error {
  color: #991b1b;
}

.imaging-workspace {
  display: grid;
  gap: 16px;
}

.imaging-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(250px, 0.7fr);
  gap: 16px;
  align-items: start;
}

.imaging-main-column,
.imaging-create-form,
.imaging-order-list,
.imaging-workflow {
  display: grid;
  gap: 12px;
}

.imaging-kpi-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.imaging-toolbar,
.imaging-form-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(150px, 220px) auto auto;
  gap: 10px;
  align-items: end;
}

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

.imaging-form-head,
.imaging-order-card header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.imaging-create-form,
.imaging-order-card,
.imaging-workflow,
.imaging-error {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.imaging-order-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.imaging-order-card {
  background: white;
}

.imaging-order-card h3,
.imaging-order-card p,
.imaging-order-card span,
.imaging-order-card strong,
.imaging-order-card small {
  overflow-wrap: anywhere;
}

.imaging-order-tags,
.imaging-chip-list,
.imaging-final-note {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.imaging-chip-list span,
.imaging-status,
.imaging-modality {
  border-radius: 999px;
  padding: 6px 9px;
  font-size: 12px;
  font-weight: 800;
}

.imaging-chip-list span {
  border: 1px solid #dbe5ea;
  background: #f8fbfd;
  color: #324256;
}

.imaging-modality {
  background: #e0f2fe;
  color: #075985;
}

.imaging-status-default { background: #e2e8f0; color: #334155; }
.imaging-status-warning { background: #fef3c7; color: #92400e; }
.imaging-status-info { background: #dbeafe; color: #1d4ed8; }
.imaging-status-review { background: #f3e8ff; color: #6b21a8; }
.imaging-status-success { background: #d1fae5; color: #065f46; }

.imaging-report-form,
.imaging-report-preview {
  display: grid;
  gap: 9px;
  border-top: 1px solid #edf2f7;
  padding-top: 10px;
}

.imaging-report-preview {
  color: #324256;
}

.imaging-final-note {
  color: #047857;
  font-weight: 800;
}

.imaging-final-note a {
  color: #075985;
  font-weight: 700;
}

.imaging-workflow span {
  border-left: 4px solid #cbd5e1;
  border-radius: 6px;
  background: white;
  color: #425466;
  font-weight: 800;
  padding: 8px 10px;
}

.imaging-workflow span.done {
  border-left-color: var(--hospital-green);
}

.imaging-workflow span.current {
  border-left-color: #0284c7;
}

.imaging-error {
  color: #991b1b;
}

.amb-workspace {
  display: grid;
  gap: 16px;
}

.amb-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(250px, 0.7fr);
  gap: 16px;
  align-items: start;
}

.amb-main-column,
.amb-consulta-list,
.amb-side-panel,
.amb-form,
.amb-hc-panel {
  display: grid;
  gap: 12px;
}

.amb-kpi-strip {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.amb-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1.3fr) minmax(180px, 1fr) minmax(180px, 1fr) minmax(160px, 0.8fr) auto auto;
  gap: 10px;
  align-items: end;
}

.amb-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.amb-wide {
  grid-column: 1 / -1;
}

.amb-form-head,
.amb-consulta-card header,
.amb-consulta-card footer,
.amb-hc-panel header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.amb-form,
.amb-consulta-card,
.amb-side-panel,
.amb-hc-panel,
.amb-error {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.amb-consulta-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.amb-consulta-card {
  display: grid;
  gap: 12px;
  background: white;
  min-width: 0;
}

.amb-consulta-card h3,
.amb-consulta-card p,
.amb-consulta-card span,
.amb-consulta-card strong,
.amb-consulta-card small {
  overflow-wrap: anywhere;
}

.amb-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.amb-chip-list span,
.amb-side-panel span {
  border-radius: 999px;
  border: 1px solid #dbe5ea;
  background: #f8fbfd;
  color: #324256;
  font-size: 12px;
  font-weight: 800;
  padding: 6px 9px;
}

.amb-side-panel span {
  border-radius: 8px;
}

.amb-hc-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.amb-hc-grid article {
  display: grid;
  gap: 6px;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  background: white;
  padding: 12px;
  min-width: 0;
}

.amb-hc-grid span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.amb-hc-grid strong {
  color: #123f5a;
  font-size: 24px;
}

.amb-hc-grid small {
  overflow-wrap: anywhere;
}

.amb-error {
  color: #991b1b;
}

.surgery-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 10px;
}

.calendar-day-card {
  display: grid;
  gap: 6px;
  align-content: start;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 12px;
  min-width: 0;
}

.calendar-day-card strong,
.calendar-day-card span,
.calendar-day-card small {
  display: block;
  overflow-wrap: anywhere;
}

.calendar-day-card small {
  color: var(--muted);
}

.calendar-day-card.cerrado {
  background: #f6f6f6;
  color: var(--muted);
}

.calendar-day-card.medio-dia {
  background: #fffaf0;
  border-color: #d7b56d;
}

.checklist-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}

.checklist-strip span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fbfdff;
  color: #425466;
  font-size: 12px;
  font-weight: 800;
  padding: 7px 10px;
}

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

.bed-sector-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bed-work-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  align-items: stretch;
}

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

.bed-payer-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bed-sector-card {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
  min-width: 0;
  text-align: center;
}

.bed-sector-card strong,
.bed-sector-card small {
  display: block;
  overflow-wrap: anywhere;
}

.bed-sector-card small {
  color: var(--muted);
}

.bed-sector-meter {
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #e8eef5;
}

.bed-sector-meter span {
  display: block;
  width: var(--bed-level);
  height: 100%;
  border-radius: inherit;
  background: #2f6f8f;
}

.bed-sector-card dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  text-align: center;
}

.bed-floor-card,
.bed-payer-card {
  display: grid;
  gap: 10px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.bed-floor-head,
.bed-payer-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
}

.bed-floor-head strong,
.bed-payer-head strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.bed-floor-head span,
.bed-payer-head span {
  border-radius: 999px;
  background: #123f5a;
  color: white;
  font-size: 12px;
  font-weight: 900;
  padding: 5px 8px;
  white-space: nowrap;
}

.bed-floor-meter,
.bed-payer-meter {
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #e8eef5;
}

.bed-floor-meter span,
.bed-payer-meter span {
  display: block;
  height: 100%;
  border-radius: inherit;
}

.bed-floor-meter span {
  width: var(--occupied-level);
  background: linear-gradient(90deg, #2f6f8f, #4aa184);
}

.bed-payer-meter span {
  width: var(--payer-level);
  background: #9b7a35;
}

.bed-floor-card dl,
.bed-payer-card dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin: 0;
  text-align: center;
}

.bed-payer-card dl {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bed-floor-card dt,
.bed-payer-card dt {
  color: var(--muted);
  font-size: 11px;
}

.bed-floor-card dd,
.bed-payer-card dd {
  margin: 2px 0 0;
  font-weight: 900;
}

.bed-payer-card small {
  color: var(--muted);
}

.bed-mini-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.bed-mini-strip span {
  border: 1px solid var(--line);
  border-radius: 6px;
  background: white;
  color: #425466;
  font-size: 11px;
  font-weight: 900;
  min-width: 34px;
  padding: 5px 6px;
  text-align: center;
}

.bed-mini-strip .ocupada {
  border-color: #e7a4a4;
  background: #fff8f8;
  color: #8f2d2d;
}

.bed-mini-strip .libre {
  border-color: #b8d8c5;
  background: #f8fffb;
  color: var(--hospital-green);
}

.bed-mini-strip .aislamiento,
.bed-mini-strip .fuera-de-servicio {
  border-color: #d7b56d;
  background: #fffaf0;
  color: #8a5b16;
}

.bed-work-card {
  display: grid;
  grid-template-rows: auto auto auto 1fr auto auto auto;
  gap: 10px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
  text-align: center;
}

.bed-work-card.warning {
  border-color: #d7b56d;
  background: #fffaf0;
}

.bed-work-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  text-align: left;
}

.bed-work-head strong,
.bed-work-head span,
.bed-work-card p,
.bed-work-card small {
  display: block;
  overflow-wrap: anywhere;
}

.bed-work-head span,
.bed-work-card small,
.bed-work-card p {
  color: var(--muted);
}

.bed-work-score {
  display: grid;
  place-items: center;
  min-height: 70px;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  background: white;
}

.bed-work-score strong {
  font-size: 28px;
  line-height: 1;
}

.bed-work-score span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.bed-work-card dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  margin: 0;
  text-align: center;
}

.bed-work-card dt {
  color: var(--muted);
  font-size: 11px;
}

.bed-work-card dd {
  margin: 2px 0 0;
  font-weight: 900;
}

.bed-work-card p {
  margin: 0;
  text-align: left;
}

.bed-team-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.bed-team-grid span {
  display: grid;
  gap: 2px;
  min-width: 0;
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  background: white;
  color: #425466;
  font-size: 12px;
  font-weight: 700;
  padding: 7px;
  text-align: left;
  overflow-wrap: anywhere;
}

.bed-team-grid b {
  color: var(--ink);
  font-size: 11px;
  text-transform: uppercase;
}

.bed-work-card .badge {
  justify-self: center;
}

.bed-sector-card dt {
  color: var(--muted);
  font-size: 12px;
}

.bed-sector-card dd {
  margin: 2px 0 0;
  font-weight: 800;
}

.bed-sector-group {
  display: grid;
  gap: 10px;
}

.bed-sector-compact {
  display: grid;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.bed-sector-compact-head,
.bed-sector-compact-body {
  display: grid;
  grid-template-columns: minmax(190px, 0.75fr) minmax(0, 2fr);
  gap: 14px;
  align-items: center;
}

.bed-sector-compact-head strong,
.bed-sector-compact-head span {
  display: block;
}

.bed-sector-compact-head span {
  color: var(--muted);
  margin-top: 3px;
}

.bed-sector-compact-head dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.bed-sector-compact-head dl div {
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  background: white;
  padding: 9px;
  text-align: center;
}

.bed-sector-compact-head dt {
  color: var(--muted);
  font-size: 11px;
}

.bed-sector-compact-head dd {
  margin: 2px 0 0;
  font-weight: 900;
}

.bed-tile-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-content: flex-start;
}

.bed-tile {
  display: grid;
  place-items: center;
  gap: 2px;
  width: 48px;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  color: #425466;
}

.bed-tile strong,
.bed-tile span {
  line-height: 1;
}

.bed-tile strong {
  font-size: 12px;
}

.bed-tile span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
}

.bed-tile.ocupada {
  border-color: #e7a4a4;
  background: #fff8f8;
  color: #8f2d2d;
}

.bed-tile.libre {
  border-color: #b8d8c5;
  background: #f8fffb;
  color: var(--hospital-green);
}

.bed-tile.aislamiento,
.bed-tile.fuera-de-servicio {
  border-color: #d7b56d;
  background: #fffaf0;
  color: #8a5b16;
}

.bed-sector-side {
  display: grid;
  gap: 10px;
  align-self: stretch;
}

.bed-payer-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.bed-payer-tags span {
  border: 1px solid #dbe5ea;
  border-radius: 999px;
  background: white;
  color: #425466;
  font-size: 12px;
  font-weight: 800;
  padding: 6px 8px;
}

.bed-sector-alert {
  display: grid;
  gap: 3px;
  border: 1px solid #d7b56d;
  border-radius: 8px;
  background: #fffaf0;
  padding: 10px;
}

.bed-sector-alert.stable {
  border-color: #b8d8c5;
  background: #f8fffb;
}

.bed-sector-alert span,
.bed-sector-alert small {
  color: var(--muted);
}

.bed-sector-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding-bottom: 8px;
}

.bed-sector-head span {
  color: var(--muted);
  font-weight: 800;
}

.bed-card-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

.ops-card,
.bed-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
  min-width: 0;
}

.ops-card.compact {
  display: grid;
  gap: 6px;
}

.ops-card.critical-card {
  border-color: #d98c8c;
  background: #fff8f8;
}

.ops-card strong,
.ops-card span,
.ops-card small,
.ops-card p,
.bed-card strong,
.bed-card span,
.bed-card small {
  display: block;
  overflow-wrap: anywhere;
}

.ops-card h3 {
  margin: 10px 0 6px;
}

.ops-card p {
  color: var(--muted);
  margin: 0 0 8px;
}

.ops-card small,
.bed-card small {
  color: var(--muted);
}

.bed-card {
  display: grid;
  gap: 7px;
  align-content: start;
  text-align: left;
}

.bed-card.ocupada {
  border-color: #e7a4a4;
  background: #fff8f8;
}

.bed-card.libre {
  border-color: #b8d8c5;
  background: #f8fffb;
}

.bed-card.aislamiento,
.bed-card.fuera-de-servicio {
  border-color: #d7b56d;
  background: #fffaf0;
}

.bed-card.reservada,
.bed-card.limpieza {
  border-color: #b8c7d8;
  background: #f8fbff;
}

.bed-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.bed-card h4 {
  margin: 2px 0;
  font-size: 15px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.bed-days {
  justify-self: start;
  border-radius: 999px;
  background: white;
  border: 1px solid var(--line);
  color: #425466;
  font-size: 12px;
  font-weight: 800;
  padding: 5px 8px;
}

.clinical-record-layout {
  align-items: stretch;
}

.clinical-search-field {
  display: grid;
  gap: 8px;
}

.clinical-search-field span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.clinical-search-field input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  color: var(--ink);
  padding: 13px 14px;
}

.clinical-record-list {
  display: grid;
  gap: 10px;
}

.clinical-record-row {
  display: grid;
  gap: 5px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  color: var(--ink);
  padding: 12px;
  text-align: left;
  cursor: pointer;
}

.clinical-record-row.active,
.clinical-record-row:hover {
  border-color: #9fc8ba;
  background: #f4fbf8;
}

.clinical-record-row strong,
.clinical-record-row span,
.clinical-record-row small {
  display: block;
  overflow-wrap: anywhere;
}

.clinical-record-row span,
.clinical-record-row small {
  color: var(--muted);
}

.clinical-print-sheet {
  display: grid;
  gap: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 16px;
}

.clinical-record-head {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.clinical-record-head div {
  border: 1px solid #dbe5ea;
  border-radius: 8px;
  background: white;
  padding: 10px;
}

.clinical-record-head span,
.clinical-record-head strong {
  display: block;
  overflow-wrap: anywhere;
}

.clinical-record-head span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.clinical-record-body {
  display: grid;
  gap: 8px;
}

.clinical-record-body p {
  margin: 0;
  line-height: 1.45;
}

.clinical-doc-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.clinical-doc-list span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: white;
  color: #425466;
  font-size: 12px;
  font-weight: 800;
  padding: 7px 10px;
}

.print-actions {
  justify-content: flex-start;
}

#valuedInventorySummary {
  align-items: stretch;
  margin-bottom: 2px;
}

#valuedInventorySummary .admission-kpi {
  display: grid;
  align-content: center;
  min-height: 116px;
  text-align: center;
  overflow: hidden;
  padding-inline: 12px;
}

#valuedInventorySummary .admission-kpi span {
  min-height: 42px;
}

#valuedInventorySummary .admission-kpi strong {
  font-size: clamp(22px, 2.1vw, 30px);
  line-height: 1.05;
  white-space: nowrap;
}

#valuedInventorySummary .money-kpi strong {
  font-size: clamp(20px, 1.85vw, 27px);
  letter-spacing: 0;
}

.floor-stock-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.floor-stock-card.critical {
  border-color: #e7a4a4;
  background: #fffafa;
}

.floor-stock-card strong,
.floor-stock-card span,
.floor-stock-card small {
  display: block;
}

.floor-stock-card > div:first-child span,
.floor-stock-card small {
  color: var(--muted);
  margin-top: 4px;
}

.stock-meter {
  height: 8px;
  background: #e8eef5;
  border-radius: 999px;
  overflow: hidden;
  margin: 12px 0;
}

.stock-meter span {
  width: var(--stock-level);
  height: 100%;
  background: #2f6f8f;
}

.laundry-meter {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e8eef5;
  margin: 8px 0;
}

.laundry-meter span {
  display: block;
  width: var(--laundry-level);
  height: 100%;
  background: #386f9d;
}

.floor-stock-card.critical .stock-meter span {
  background: #b94b4b;
}

.floor-stock-card dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 10px;
}

.floor-stock-card dt {
  color: var(--muted);
  font-size: 12px;
}

.floor-stock-card dd {
  margin: 2px 0 0;
  font-weight: 800;
}

.sector-inventory-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
  display: grid;
  gap: 12px;
}

.sector-inventory-card.critical {
  border-color: #dfbd8d;
  background: #fffaf2;
}

.sector-inventory-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.sector-inventory-head span,
.sector-inventory-head small,
.sector-inventory-items small {
  color: var(--muted);
}

.sector-inventory-head strong {
  display: block;
  margin-top: 2px;
  font-size: 18px;
}

.sector-inventory-card dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.sector-inventory-card dt {
  color: var(--muted);
  font-size: 12px;
}

.sector-inventory-card dd {
  margin: 2px 0 0;
  font-weight: 800;
}

.sector-inventory-items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.sector-inventory-items > div {
  border: 1px solid #e7eef3;
  border-radius: 8px;
  background: white;
  padding: 10px;
}

.sector-inventory-items span,
.sector-inventory-items strong,
.sector-inventory-items small {
  display: block;
}

.sector-inventory-items span {
  min-height: 34px;
  color: #425466;
  font-size: 13px;
  font-weight: 750;
}

.sector-inventory-items strong {
  margin-top: 8px;
}

.queue-row {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1.2fr 0.8fr 1.2fr;
  gap: 14px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.billing-queue-row {
  grid-template-columns: 1.35fr 1fr 1.05fr 1.05fr 0.85fr 1.15fr;
}

.guardia-row {
  grid-template-columns: 1.35fr 1fr 1.1fr 1fr 0.95fr 1.1fr;
}

.doctor-guardia-row {
  grid-template-columns: minmax(220px, 1.35fr) minmax(150px, 0.8fr) minmax(180px, 1fr) auto;
}

.doctor-guardia-row.selected {
  border-color: #9fc8ba;
  background: #f4fbf8;
}

.doctor-schedule-card .slot {
  cursor: default;
}

.doctor-inpatient-grid,
.doctor-day-grid,
.doctor-surgery-grid {
  display: grid;
  gap: 12px;
}

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

.doctor-day-grid,
.doctor-surgery-grid {
  grid-template-columns: 1fr;
}

.doctor-inpatient-card {
  display: grid;
  gap: 12px;
}

.doctor-inpatient-card.selected,
.doctor-day-card.selected,
.doctor-surgery-card.selected {
  border-color: #9fc8ba;
  background: #f4fbf8;
}

.doctor-day-card,
.doctor-surgery-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(170px, 0.7fr) auto;
  gap: 12px;
  align-items: center;
}

.doctor-inpatient-meta {
  display: grid;
  gap: 6px;
}

.doctor-inpatient-meta strong {
  font-size: 22px;
}

.queue-row h3 {
  margin: 5px 0;
}

.queue-row p,
.queue-row span,
.queue-row small {
  color: var(--muted);
  line-height: 1.35;
}

.queue-row strong,
.queue-row span,
.queue-row small {
  display: block;
  overflow-wrap: anywhere;
}

.appointment-row {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr;
  gap: 14px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 14px;
}

.appointment-row h3 {
  margin: 5px 0;
}

.appointment-row p,
.appointment-row span,
.appointment-row small {
  color: var(--muted);
  line-height: 1.35;
}

.appointment-row strong,
.appointment-row span,
.appointment-row small {
  display: block;
}

.episode-card {
  display: grid;
  grid-template-columns: 1fr 1.8fr auto;
  gap: 14px;
  align-items: center;
}

.episode-card h3 {
  margin: 6px 0;
}

.episode-card p {
  color: var(--muted);
  margin: 0;
}

.episode-chain {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.episode-chain span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: white;
  color: #425466;
  font-size: 12px;
  font-weight: 800;
  padding: 6px 9px;
}

.flow-list {
  display: grid;
  gap: 10px;
}

.flow-link {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 12px;
}

.flow-link strong,
.flow-link span {
  display: block;
}

.flow-link span {
  color: var(--muted);
  margin-top: 5px;
  line-height: 1.35;
}

.clinical-api-workbench {
  display: grid;
  gap: 14px;
  margin: 0 0 18px;
}

.clinical-api-toolbar,
.clinical-api-subhead,
.clinical-api-episode-head,
.clinical-api-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.clinical-api-toolbar h3 {
  margin: 4px 0 0;
}

.clinical-api-kpis,
.clinical-api-lanes {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.clinical-api-kpi,
.clinical-api-lanes article,
.clinical-api-episode,
.clinical-api-layout aside,
.clinical-api-empty {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 13px;
  min-width: 0;
}

.clinical-api-kpi span,
.clinical-api-lanes span,
.clinical-api-lanes small,
.clinical-api-episode span,
.clinical-api-episode small,
.clinical-api-layout aside small {
  color: var(--muted);
}

.clinical-api-kpi strong,
.clinical-api-lanes strong {
  display: block;
  margin-top: 6px;
  color: #102033;
  font-size: 26px;
  line-height: 1;
}

.clinical-api-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) minmax(160px, 0.8fr) minmax(160px, 0.8fr) auto;
  gap: 10px;
  align-items: end;
}

.clinical-api-filters label,
.clinical-api-mini-list,
.clinical-api-layout aside,
.clinical-api-cut-list {
  display: grid;
  gap: 7px;
}

.clinical-api-filters input,
.clinical-api-filters select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  color: var(--text);
  font: inherit;
  padding: 10px 11px;
}

.clinical-api-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(260px, 0.75fr);
  gap: 12px;
  align-items: start;
}

.clinical-api-episodes {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

.clinical-api-episode {
  display: grid;
  gap: 10px;
}

.clinical-api-episode-head strong,
.clinical-api-episode-head span,
.clinical-api-episode-head small {
  display: block;
}

.clinical-api-episode p {
  margin: 0;
  color: #26394d;
  line-height: 1.35;
}

.clinical-api-line,
.clinical-api-chain,
.clinical-api-blockers {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.clinical-api-line span,
.clinical-api-chain span,
.clinical-api-blockers span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: white;
  font-size: 12px;
  font-weight: 800;
  padding: 5px 8px;
}

.clinical-api-blockers span {
  border-color: #f0cf85;
  background: #fffaf0;
  color: #6d4d00;
}

.clinical-api-mini-list small,
.clinical-api-cut-list small {
  display: block;
  border-left: 3px solid #6fb6d8;
  background: white;
  padding: 7px 9px;
  line-height: 1.3;
}

.clinical-api-actions {
  justify-content: flex-start;
  flex-wrap: wrap;
}

.inline-error,
.inline-success {
  border-radius: 8px;
  padding: 10px 12px;
  font-weight: 800;
}

.inline-error {
  border: 1px solid #e3a1a1;
  background: #fff7f7;
  color: #8d2f2f;
}

.inline-success {
  border: 1px solid #a9d6be;
  background: #f6fbf8;
  color: #1f6f4a;
}

.clinical-workspace {
  display: grid;
  grid-template-columns: minmax(320px, 0.9fr) minmax(420px, 1.4fr);
  gap: 16px;
  align-items: start;
}

.compact-head {
  margin-bottom: 12px;
}

.clinical-orders {
  display: grid;
  gap: 10px;
}

.order-destination {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 13px;
}

.art-srt-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.art-srt-card {
  display: grid;
  align-content: start;
  gap: 8px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 13px;
}

.art-srt-card h4 {
  margin: 5px 0 0;
  font-size: 15px;
  line-height: 1.2;
}

.art-srt-card p,
.art-srt-card small {
  color: var(--muted);
  line-height: 1.35;
  margin: 0;
}

.art-srt-card a {
  color: var(--blue);
  font-size: 13px;
  font-weight: 800;
}

.order-destination h3 {
  margin: 5px 0;
}

.order-destination p,
.order-destination small {
  color: var(--muted);
  line-height: 1.35;
}

.order-list {
  display: grid;
  gap: 8px;
  margin: 12px 0;
}

.order-row {
  display: grid;
  gap: 3px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  padding: 10px;
}

.order-row span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.muted-order {
  opacity: 0.75;
}

.signature-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  box-shadow: var(--shadow);
  padding: 16px;
}

.signature-bar strong,
.signature-bar span {
  display: block;
}

.signature-bar span {
  color: var(--muted);
  margin-top: 4px;
}

.signature-readiness {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
}

.signature-readiness strong,
.signature-readiness span {
  display: block;
}

.signature-readiness span {
  color: var(--muted);
  margin-top: 4px;
}

.signature-readiness.ready {
  background: #f8fffb;
  border-color: #b8d8c5;
}

.signature-readiness.blocked {
  background: #fff8f8;
  border-color: #e7a4a4;
}

.agreement-card dl {
  display: grid;
  gap: 8px;
  margin: 0;
}

.agreement-card dl div {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
}

.agreement-card dt {
  color: var(--muted);
}

.agreement-card dd {
  margin: 0;
  font-weight: 700;
}

.rule-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.rule-cloud span,
.report-meta span {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: white;
  color: #425466;
  font-size: 13px;
  font-weight: 700;
  padding: 7px 10px;
}

.report-meta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 14px;
}

.form-library-band {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.form-library-band h3 {
  margin: 0;
  color: #123f5a;
}

.form-api-workbench {
  display: grid;
  gap: 12px;
  margin: 14px 0 18px;
}

.form-api-kpis {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.form-api-kpi,
.form-api-panel,
.form-api-actions form {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.form-api-kpi {
  padding: 12px;
}

.form-api-kpi span,
.form-api-columns small {
  display: block;
  color: var(--muted);
  font-size: 12px;
}

.form-api-kpi strong {
  display: block;
  margin-top: 4px;
  color: var(--ink);
  font-size: 22px;
}

.form-api-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.95fr);
  gap: 14px;
  align-items: start;
}

.form-api-panel,
.form-api-actions form {
  padding: 14px;
}

.form-api-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.form-api-toolbar h3,
.form-api-actions h3 {
  margin: 0;
}

.form-api-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.form-api-columns > div,
.form-api-actions {
  display: grid;
  gap: 10px;
}

.form-api-columns article {
  border: 1px solid #e5edf2;
  border-radius: 8px;
  background: #f8fbfd;
  padding: 10px;
}

.form-api-columns span {
  display: block;
  font-weight: 800;
  color: var(--ink);
}

.form-api-actions input,
.form-api-actions select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px 10px;
  font: inherit;
  color: var(--ink);
  background: #ffffff;
}

.form-api-actions form {
  display: grid;
  gap: 9px;
}

.form-index-grid,
.form-template-grid {
  display: grid;
  gap: 12px;
}

.form-index-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
}

.form-index-card {
  display: grid;
  gap: 6px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
  padding: 13px;
}

.form-index-card strong,
.form-index-card span,
.form-index-card small {
  overflow-wrap: anywhere;
}

.form-index-card span,
.form-index-card small {
  color: var(--muted);
}

.form-template-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 520px), 1fr));
}

.form-template-card {
  display: grid;
  gap: 14px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  box-shadow: var(--shadow);
  padding: 16px;
}

.form-template-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(150px, auto);
  gap: 12px;
  align-items: start;
}

.form-template-head h3,
.form-template-head p {
  margin: 0;
}

.form-template-head h3 {
  margin-top: 7px;
  color: #123f5a;
}

.form-template-head p,
.form-template-status small {
  color: var(--muted);
  line-height: 1.4;
}

.form-template-status {
  display: grid;
  gap: 6px;
  justify-items: end;
  text-align: right;
}

.rendered-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
  gap: 11px;
  min-width: 0;
  border: 1px solid #e5edf2;
  border-radius: 8px;
  background: #f7fafb;
  padding: 12px;
}

.rendered-field {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.rendered-field.wide,
.rendered-form-actions {
  grid-column: 1 / -1;
}

.rendered-field > span {
  display: flex;
  min-width: 0;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
}

.rendered-field small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.rendered-field input,
.rendered-field select,
.rendered-field textarea,
.file-preview {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  color: var(--ink);
  padding: 10px 11px;
}

.rendered-field textarea {
  resize: vertical;
}

.checkbox-field {
  grid-template-columns: auto 1fr;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  padding: 10px 11px;
}

.checkbox-field input {
  width: 18px;
  height: 18px;
}

.file-preview {
  color: var(--muted);
  font-weight: 700;
}

.rendered-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  padding-top: 2px;
}

.form-template-meta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
  gap: 10px;
}

.form-template-meta-grid > div {
  display: grid;
  gap: 8px;
  align-content: start;
  min-width: 0;
}

.form-template-meta-grid strong {
  color: #123f5a;
}

.document-template-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 310px), 1fr));
  gap: 12px;
}

.document-sheet {
  display: grid;
  gap: 12px;
  min-width: 0;
  border: 1px solid #d8e4e8;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow);
  padding: 16px;
}

.document-brand-head {
  display: grid;
  grid-template-columns: 66px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  border-bottom: 2px solid #17496b;
  padding-bottom: 12px;
}

.document-brand-logo {
  width: 64px;
  height: 64px;
  border: 1px solid #e5edf2;
  border-radius: 50%;
  object-fit: contain;
  background: white;
}

.document-brand-head strong,
.document-brand-head span,
.document-brand-head small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.document-brand-head strong {
  color: #102033;
  font-size: 17px;
}

.document-brand-head span,
.document-brand-head small,
.document-meta span,
.document-body-preview small,
.document-footer span {
  color: var(--muted);
}

.document-title-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: start;
}

.document-title-row h4 {
  margin: 6px 0 0;
  color: #123f5a;
  font-size: 18px;
}

.document-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 10px;
  border: 1px solid #e5edf2;
  border-radius: 8px;
  background: #f7fafb;
  padding: 10px;
  font-size: 12px;
  font-weight: 700;
}

.document-body-preview {
  display: grid;
  gap: 6px;
  min-height: 132px;
  border: 1px solid #e5edf2;
  border-radius: 8px;
  padding: 12px;
}

.document-body-preview strong {
  color: #102033;
}

.document-body-preview ul {
  margin: 4px 0 0;
  padding-left: 18px;
  color: #334155;
}

.document-body-preview li {
  margin: 4px 0;
}

.document-footer {
  display: grid;
  gap: 8px;
  border-top: 1px solid #d8e4e8;
  padding-top: 10px;
  font-size: 12px;
}

.document-footer strong {
  justify-self: end;
  color: #123f5a;
}

.document-output-table {
  display: grid;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow-x: auto;
}

.document-output-row {
  display: grid;
  grid-template-columns: minmax(120px, 0.8fr) minmax(180px, 1.35fr) minmax(90px, 0.65fr) minmax(110px, 0.8fr) minmax(150px, 1fr) minmax(95px, 0.7fr) minmax(150px, 1fr);
  gap: 10px;
  align-items: center;
  min-width: 980px;
  border-top: 1px solid var(--line);
  background: white;
  padding: 11px 12px;
  font-size: 13px;
}

.document-output-row:first-child {
  border-top: 0;
}

.document-output-row.header {
  background: #edf5f4;
  color: #475467;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.document-output-row strong,
.document-output-row span {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* ====== DOCUMENTOS API WORKBENCH ====== */
.doc-api-workbench {
  display: grid;
  gap: 14px;
  margin-bottom: 16px;
}

.doc-api-kpis {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.doc-api-kpis article,
.doc-api-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.doc-api-kpis article {
  padding: 12px;
  background: #f8fafc;
}

.doc-api-kpis span,
.doc-api-filters label span {
  display: block;
  color: #64748b;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.doc-api-kpis strong {
  display: block;
  margin-top: 4px;
  color: #14324f;
  font-size: 22px;
}

.doc-api-filters {
  display: grid;
  grid-template-columns: repeat(3, minmax(150px, 1fr)) minmax(260px, auto);
  gap: 10px;
  align-items: end;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
}

.doc-api-filters label {
  display: grid;
  gap: 5px;
}

.doc-api-filters select {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  padding: 9px 10px;
  color: #14324f;
  font-size: 13px;
}

.doc-api-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.doc-api-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(320px, 0.9fr);
  gap: 14px;
}

.doc-api-list,
.doc-api-panel {
  display: grid;
  gap: 10px;
}

.doc-api-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(120px, auto);
  gap: 12px;
  align-items: start;
  padding: 12px;
}

.doc-api-card h3 {
  margin: 4px 0;
  color: #14324f;
  font-size: 16px;
}

.doc-api-card p,
.doc-api-card small {
  color: #64748b;
  line-height: 1.35;
}

@media (max-width: 1160px) {
  .doc-api-kpis {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .doc-api-filters,
  .doc-api-layout {
    grid-template-columns: 1fr;
  }

  .doc-api-toolbar {
    justify-content: flex-start;
  }
}

@media (max-width: 760px) {
  .doc-api-kpis,
  .doc-api-card {
    grid-template-columns: 1fr;
  }
}

.spaced {
  margin-top: 16px;
}

@media (max-width: 980px) {
  .kpi-grid,
  .command-header,
  .command-status-grid,
  .flow,
  .pharmacy-workflow-grid,
  .automation-grid,
  .action-grid,
  .report-grid,
  .form-index-grid,
  .form-template-grid,
  .form-template-meta-grid,
  .document-template-grid,
  .operation-grid,
  .billing-circuit-grid,
  .cashbox-grid,
  .fund-flow-grid,
  .floor-stock-grid,
  .iva-book-layout,
  .party-master-layout,
  .sector-inventory-grid,
  .pharmacy-branch-nav,
  .pharmacy-system-grid,
  .category-value-grid,
  .pharmacy-alert-grid,
  .pharmacy-procedure-grid,
  .pharmacy-checklist-grid,
  .pharmacy-rule-grid,
  .pharmacy-tender-grid,
  .pharmacy-stage-grid,
  .pharmacy-request-grid,
  .pharmacy-ops-grid,
  .finance-close-grid,
  .treasury-grid,
  .treasury-forms,
  .hr-grid,
  .hr-forms,
  .decision-highlight-grid,
  .inventory-extremes-grid,
  .doctor-grid,
  .doctor-circuit-grid,
  .ops-grid,
  .art-srt-grid,
  .surgery-calendar-grid,
  .bed-sector-grid,
  .bed-work-grid,
  .bed-floor-grid,
  .bed-payer-grid,
  .bed-grid,
  .lab-kpi-strip,
  .lab-order-list,
  .lab-catalog-mini,
  .imaging-kpi-strip,
  .imaging-order-list,
  .amb-kpi-strip,
  .amb-consulta-list,
  .amb-hc-grid,
  .doctor-inpatient-grid,
  .doctor-day-grid,
  .doctor-surgery-grid,
  .admission-priority-grid,
  .admission-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .workflow,
  .topbar,
  .module-head,
  .signature-bar,
  .schedule-card,
  .insight-grid,
  .bed-sector-compact-head,
  .bed-sector-compact-body {
    flex-direction: column;
    display: flex;
  }

  .valued-row {
    grid-template-columns: minmax(60px, 0.55fr) minmax(200px, 1.7fr) minmax(100px, 0.9fr) minmax(68px, 0.65fr) minmax(88px, 0.8fr) minmax(100px, 0.9fr) minmax(40px, 0.4fr);
  }

  .three-col {
    grid-template-columns: 1fr;
  }

  .command-strip {
    grid-template-columns: 1fr;
  }

  .agreement-card {
    grid-template-columns: 1fr;
  }

  .form-template-grid,
  .form-template-head,
  .rendered-form,
  .form-template-meta-grid {
    grid-template-columns: 1fr;
  }

  .admission-workspace {
    grid-template-columns: 1fr;
  }

  .daily-board-grid {
    grid-template-columns: 1fr;
  }

  .admission-summary-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .priority-board-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .appointment-filter-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .appointment-admin-buckets {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .appointment-note-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

  .finance-close-filters,
  .finance-close-batch-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .finance-close-batch-form button {
    grid-column: 1 / -1;
  }

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

  .daily-bulk-actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .lab-layout,
  .lab-toolbar,
  .lab-form-grid,
  .imaging-layout,
  .imaging-toolbar,
  .imaging-form-grid,
  .amb-layout,
  .amb-toolbar,
  .amb-form-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  body {
    grid-template-columns: 1fr;
  }

  .sidebar {
    min-height: auto;
    position: static;
    max-height: none;
    overflow: visible;
  }

  .nav-tools {
    margin-bottom: 12px;
  }

  .nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: none;
    overflow: visible;
  }
}

@media (max-width: 620px) {
  .shell {
    padding: 18px;
  }

  .nav,
  .kpi-grid,
  .flow,
  .pharmacy-workflow-grid,
  .automation-grid,
  .action-grid,
  .report-grid,
  .form-index-grid,
  .form-template-grid,
  .form-template-meta-grid,
  .document-template-grid,
  .operation-grid,
  .floor-stock-grid,
  .iva-book-layout,
  .party-master-layout,
  .sector-inventory-grid,
  .sector-inventory-items,
  .pharmacy-branch-nav,
  .pharmacy-system-grid,
  .category-value-grid,
  .pharmacy-alert-grid,
  .pharmacy-procedure-grid,
  .pharmacy-checklist-grid,
  .pharmacy-rule-grid,
  .pharmacy-tender-grid,
  .pharmacy-stage-grid,
  .pharmacy-request-grid,
  .pharmacy-form-grid,
  .pharmacy-ops-grid,
  .finance-close-grid,
  .treasury-grid,
  .treasury-forms,
  .hr-grid,
  .hr-forms,
  .decision-highlight-grid,
  .inventory-extremes-grid,
  .doctor-grid,
  .doctor-circuit-grid,
  .ops-grid,
  .art-srt-grid,
  .surgery-calendar-grid,
  .bed-sector-grid,
  .bed-work-grid,
  .bed-floor-grid,
  .bed-payer-grid,
  .bed-card-list,
  .lab-layout,
  .lab-kpi-strip,
  .lab-toolbar,
  .lab-form-grid,
  .lab-order-list,
  .lab-catalog-mini,
  .lab-result-row,
  .imaging-layout,
  .imaging-kpi-strip,
  .imaging-toolbar,
  .imaging-form-grid,
  .imaging-order-list,
  .amb-layout,
  .amb-kpi-strip,
  .amb-toolbar,
  .amb-form-grid,
  .amb-consulta-list,
  .amb-hc-grid,
  .doctor-inpatient-grid,
  .doctor-day-grid,
  .doctor-surgery-grid,
  .bed-grid,
  .clinical-record-head,
  .rendered-form,
  .form-grid,
  .step-grid,
  .patient-quick-grid,
  .appointment-admin-buckets,
  .admission-priority-grid,
  .appointment-note-form,
  .finance-close-filters,
  .finance-close-actions,
  .finance-close-batch-form,
  .treasury-form,
  .procurement-quick-form,
  .appointment-filter-bar {
    grid-template-columns: 1fr;
  }

  .table-row {
    grid-template-columns: 1fr;
  }

  .mini-row,
  .valued-row,
  .pharmacy-pricing-row,
  .pharmacy-ledger-row,
  .pharmacy-treatment-row,
  .pharmacy-quote-row,
  .pharmacy-search-row,
  .procurement-row,
  .permission-row,
  .procedure-row,
  .complexity-row,
  .matrix-row,
  .billing-liquidation-head,
  .billing-liquidation-item,
  .fee-professional-row,
  .appointment-row,
  .queue-row,
  .billing-queue-row,
  .doctor-circuit-card,
  .doctor-day-card,
  .doctor-surgery-card,
  .document-brand-head,
  .document-meta,
  .clinical-api-layout,
  .clinical-api-filters,
  .billing-api-layout,
  .billing-api-filters,
  .fee-api-toolbar,
  .fee-api-grid,
  .fee-api-row,
  .fee-api-settlement-row,
  .fee-api-rule,
  .pami-api-layout,
  .pami-api-filters,
  .clinical-workspace,
  .episode-card,
  .schedule-card,
  .risk-card {
    grid-template-columns: 1fr;
  }

  .valued-row {
    min-width: 0;
  }

  .valued-row.header {
    display: none;
  }

  .pharmacy-pricing-row,
  .pharmacy-ledger-row,
  .pharmacy-treatment-row,
  .pharmacy-quote-row,
  .pharmacy-search-row {
    min-width: 0;
  }

  .procurement-row {
    min-width: 0;
  }

  .pharmacy-pricing-row.header,
  .pharmacy-ledger-row.header,
  .pharmacy-treatment-row.header,
  .pharmacy-quote-row.header,
  .pharmacy-search-row.header {
    display: none;
  }

  .procurement-row.header {
    display: none;
  }

  .valued-row strong:first-child,
  .valued-row span,
  .valued-row .numeric,
  .pharmacy-pricing-row strong:first-child,
  .pharmacy-pricing-row span,
  .pharmacy-pricing-row .numeric,
  .pharmacy-ledger-row strong:first-child,
  .pharmacy-ledger-row span,
  .pharmacy-ledger-row .numeric,
  .pharmacy-treatment-row strong:first-child,
  .pharmacy-treatment-row span,
  .pharmacy-treatment-row .numeric,
  .pharmacy-quote-row .numeric,
  .pharmacy-search-row strong:first-child,
  .pharmacy-quote-row span,
  .pharmacy-search-row span,
  .pharmacy-search-row .numeric,
  .procurement-row strong:first-child,
  .procurement-row span,
  .procurement-row .numeric {
    text-align: left;
  }

  .pharmacy-search-summary,
  .pharmacy-tender-card dl div,
  .procurement-filters,
  .procurement-control-card dl {
    grid-template-columns: 1fr;
  }

  .procurement-panel-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .procurement-count {
    justify-items: start;
  }

  .admission-summary {
    grid-template-columns: 1fr;
  }

  .appointment-constancy-record {
    grid-template-columns: 1fr;
  }

  .table-row.header {
    display: none;
  }

  .record div,
  .agreement-card dl div,
  .ledger-entry,
  .bank-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .section,
  .section > *,
  .hsi-section,
  .hsi-tab-content,
  .hsi-pantalla,
  .hsi-panel,
  .command-dashboard,
  .command-header,
  .management-api-panel,
  .fund-flow-api-panel,
  .finance-close,
  .treasury-workspace {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }

  .section-header,
  .section-header.compact,
  .management-api-head,
  .finance-panel-title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
    max-width: 100%;
  }

  .section-header > *,
  .section-header.compact > *,
  .management-api-head > *,
  .finance-panel-title > * {
    min-width: 0;
    max-width: 100%;
  }

  .hsi-section {
    padding: 16px;
    overflow-x: hidden;
  }

  .hsi-pantalla {
    padding: 14px;
  }

  .hsi-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
  }

  .hsi-tab {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .finance-close-status {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .finance-close-kpis,
  .management-api-kpis,
  .fund-flow-api-kpis,
  .dashboard-finance-band,
  .operational-decision-grid,
  .finance-executive-summary,
  .finance-support-strip {
    grid-template-columns: 1fr;
  }

  .operational-decision-card {
    grid-template-columns: 1fr;
  }

  .operational-decision-head > span,
  .decision-pill {
    width: auto;
    max-width: 100%;
    white-space: normal;
  }

  .finance-dashboard .admission-kpi strong,
  .finance-mini-kpi strong,
  .finance-priority-card strong,
  .finance-support-strip strong {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .ui-table-wrapper,
  .cash-flow-scroll {
    max-width: 100%;
    overflow-x: auto;
  }
}

/* ====== PLAN PUESTA EN MARCHA ====== */
.launch-plan-section { padding: 24px; }
.launch-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin: 24px 0;
}
.launch-kpis article {
  background: #f8f9fb;
  border: 1px solid #e2e6ed;
  border-radius: 10px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.launch-kpis article small {
  color: #64748b;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.launch-kpis article strong {
  font-size: 28px;
  color: #0f172a;
}
.launch-kpis article span {
  font-size: 13px;
  color: #475569;
}
.launch-summary {
  background: #fafbfd;
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 24px;
}
.launch-summary-list {
  list-style: none;
  padding: 0;
  margin: 12px 0 0 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 8px;
}
.launch-summary-list li {
  background: #fff;
  border: 1px solid #e2e6ed;
  border-radius: 8px;
  padding: 10px 14px;
  display: flex;
  justify-content: space-between;
}
.launch-summary-list strong { color: #0f172a; }
.launch-summary-list span { color: #475569; font-size: 13px; }
.launch-areas {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.launch-area {
  background: #fff;
  border: 1px solid #d8deea;
  border-radius: 12px;
  padding: 20px;
}
.launch-area-header {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px dashed #e2e6ed;
  padding-bottom: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.launch-area-header h3 {
  margin: 0 0 4px 0;
  color: #0f172a;
  font-size: 18px;
}
.launch-area-header p {
  color: #475569;
  font-size: 14px;
  margin: 0;
}
.launch-area-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  color: #475569;
  text-align: right;
  min-width: 220px;
}
.launch-area-tasks {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.launch-task {
  background: #f8fafc;
  border-left: 4px solid #1e88e5;
  border-radius: 8px;
  padding: 12px 16px;
}
.launch-task header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
  flex-wrap: wrap;
}
.launch-task strong { color: #0f172a; font-size: 14px; }
.launch-task-badges {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.launch-task p { margin: 4px 0 8px 0; color: #475569; font-size: 13px; }
.launch-task details { font-size: 13px; }
.launch-task details summary { cursor: pointer; color: #1e88e5; font-weight: 500; }
.launch-task-docs { margin-top: 8px; padding-left: 8px; }
.launch-task-docs .docs-list {
  margin: 4px 0;
  padding-left: 18px;
  color: #334155;
}
.launch-task-docs small.muted {
  display: block;
  color: #64748b;
  margin-top: 4px;
  font-size: 12px;
}

/* ====== UI BASE COMPONENTS ====== */
.ui-card {
  background: #fff;
  border: 1px solid #d8deea;
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 12px;
}
.ui-card.accent-primary { border-left: 4px solid var(--green); }
.ui-card.accent-warning { border-left: 4px solid #f59e0b; }
.ui-card.accent-success { border-left: 4px solid #10b981; }
.ui-card.accent-danger { border-left: 4px solid #ef4444; }
.ui-card-header h3 { margin: 0 0 4px 0; font-size: 16px; color: #0f172a; }
.ui-card-header p { margin: 0 0 12px 0; color: #475569; font-size: 13px; }
.ui-card-body { color: #334155; }
.ui-card-footer { margin-top: 12px; padding-top: 12px; border-top: 1px dashed #e2e6ed; }

.ui-table-wrapper { overflow-x: auto; }
.ui-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.ui-table th, .ui-table td { text-align: left; padding: 8px 12px; border-bottom: 1px solid #e2e6ed; }
.ui-table th { background: #f8fafc; color: #475569; font-weight: 600; font-size: 12px; text-transform: uppercase; }
.ui-table tbody tr:hover { background: #fafbfd; }
.ui-table-empty { padding: 24px; text-align: center; color: #94a3b8; background: #fafbfd; border-radius: 8px; }

/* ====== PLANILLA (listado tabular acotado, sticky, sort+filtro) ====== */
.ui-planilla {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #e2e6ed;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 16px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.ui-planilla-toolbar {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 8px 12px;
  background: #f8fafc;
  border-bottom: 1px solid #e2e6ed;
  flex-wrap: wrap;
}
.ui-planilla-filter {
  flex: 1 1 240px;
  max-width: 360px;
  padding: 6px 10px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 13px;
  background: #fff;
}
.ui-planilla-filter:focus {
  outline: none;
  border-color: var(--green, #16a34a);
  box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.15);
}
.ui-planilla-toolbar-extra {
  margin-left: auto;
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.ui-planilla-scroll {
  overflow: auto;
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
}
.ui-planilla-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 13px;
}
.ui-planilla-table caption {
  caption-side: top;
  padding: 6px 12px;
  text-align: left;
  color: #475569;
  font-weight: 600;
  background: #f1f5f9;
}
.ui-planilla-table thead th {
  position: sticky;
  top: 0;
  background: #f8fafc;
  color: #475569;
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
  padding: 8px 12px;
  text-align: left;
  border-bottom: 1px solid #e2e6ed;
  z-index: 2;
  white-space: nowrap;
}
.ui-planilla-table thead th .ops-sort-button {
  text-transform: inherit;
  font-size: inherit;
  color: inherit;
  font-weight: inherit;
}
.ui-planilla-table tbody td {
  padding: 8px 12px;
  border-bottom: 1px solid #eef1f6;
  vertical-align: top;
}
.ui-planilla-table tbody tr:hover { background: #fafbfd; }
.ui-planilla-table tbody tr:last-child td { border-bottom: 0; }
.ui-planilla-empty {
  text-align: center;
  color: #94a3b8;
  padding: 24px;
  font-style: italic;
}
.ui-planilla-footer {
  padding: 6px 12px;
  background: #f8fafc;
  border-top: 1px solid #e2e6ed;
  font-size: 12px;
  color: #64748b;
  display: flex;
  justify-content: flex-end;
}
.ui-planilla-count { font-variant-numeric: tabular-nums; }
@media (max-width: 720px) {
  .ui-planilla-toolbar { flex-direction: column; align-items: stretch; }
  .ui-planilla-filter {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    min-height: 36px;
  }
  .ui-planilla-toolbar-extra { margin-left: 0; }
  .ui-planilla-table { font-size: 12px; }
  .ui-planilla-table thead th,
  .ui-planilla-table tbody td { padding: 6px 8px; }
}

/* ====== UI SECTION (vista detalle / single-entity, reemplaza a Card cuando no es lista) ====== */
.ui-section {
  background: #fff;
  border: 1px solid #d8deea;
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 12px;
}
.ui-section-header {
  margin: 0 0 12px 0;
  padding-bottom: 8px;
  border-bottom: 1px solid #e2e6ed;
}
.ui-section-header h3 { margin: 0 0 4px 0; font-size: 16px; color: #0f172a; }
.ui-section-header p,
.ui-section-header small { margin: 0; color: #475569; font-size: 13px; }
.ui-section-footer {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed #e2e6ed;
}

.ui-badge {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 8px; border-radius: 12px; font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.03em;
}
.ui-badge-default { background: #e2e6ed; color: #475569; }
.ui-badge-primary { background: #e5f2ee; color: #1f6b5b; }
.ui-badge-success { background: #d1fae5; color: #065f46; }
.ui-badge-warning { background: #fef3c7; color: #92400e; }
.ui-badge-danger  { background: #fee2e2; color: #991b1b; }
.ui-badge-info    { background: #e0f2fe; color: #075985; }

.ui-btn {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: 40px;
  padding: 9px 16px; border-radius: 8px; font-size: 14px; font-weight: 800;
  cursor: pointer; transition: all 0.15s ease;
  border: 1px solid transparent;
}
.ui-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.ui-btn-primary { background: var(--hospital-navy); color: #fff; }
.ui-btn-primary:hover:not(:disabled) { background: var(--hospital-navy-dark); box-shadow: 0 8px 18px rgba(0, 56, 120, 0.18); }
.ui-btn-secondary { background: #fff; color: var(--blue); border-color: #bdd0db; }
.ui-btn-secondary:hover:not(:disabled) { background: #f2f7f8; border-color: var(--blue); }
.ui-btn-ghost { background: transparent; color: #475569; border-color: #cbd5e1; }
.ui-btn-ghost:hover:not(:disabled) { background: #f8fafc; }
.ui-btn-danger { background: #ef4444; color: #fff; }
.ui-btn-danger:hover:not(:disabled) { background: #dc2626; }
.ui-btn-success { background: #10b981; color: #fff; }
.ui-btn-success:hover:not(:disabled) { background: #059669; }
.ui-btn-icon { font-size: 16px; line-height: 1; }

.ui-modal-backdrop {
  position: fixed; inset: 0;
  background: rgba(15, 23, 42, 0.6);
  display: flex; align-items: center; justify-content: center;
  z-index: 9999;
}
.ui-modal {
  background: #fff; border-radius: 12px;
  width: min(960px, calc(100vw - 24px));
  max-width: min(960px, calc(100vw - 24px));
  max-height: 90vh;
  min-height: 0;
  display: flex; flex-direction: column;
  box-shadow: 0 20px 50px rgba(0,0,0,0.3);
}
.ui-modal-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 16px 20px; border-bottom: 1px solid #e2e6ed;
  flex: 0 0 auto;
}
.ui-modal-header h3 { margin: 0; color: #0f172a; }
.ui-modal-close {
  background: none; border: none; font-size: 24px; cursor: pointer; color: #64748b;
  padding: 0 8px;
}
.ui-modal-body { padding: 20px; overflow-y: auto; flex: 1 1 auto; min-height: 0; }
.ui-modal-footer {
  padding: 12px 20px; border-top: 1px solid #e2e6ed;
  display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 8px;
  flex: 0 0 auto;
}
.ui-modal-footer .ui-btn,
.ui-modal-footer a.ui-btn {
  justify-content: center;
  text-align: center;
  white-space: normal;
}

.solicitud-detalle {
  display: grid;
  gap: 14px;
}

.solicitud-detalle article {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 12px;
}

.solicitud-detalle h4 {
  color: #0f172a;
  margin: 0 0 8px;
}

.solicitud-detalle p {
  margin: 4px 0;
}

.solicitud-detalle-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.solicitud-checklist {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.solicitud-checklist span {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  display: grid;
  gap: 2px;
  padding: 8px;
}

.solicitud-checklist em {
  color: #475569;
  font-style: normal;
}

.solicitud-salud {
  background: #0f172a;
  border-radius: 8px;
  color: #e2e8f0;
  font-size: 12px;
  line-height: 1.55;
  margin: 0;
  overflow: auto;
  padding: 10px;
  white-space: pre-wrap;
}

.solicitud-detalle textarea,
.solicitud-detalle input {
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  display: block;
  margin-top: 4px;
  padding: 8px;
  width: 100%;
}

@media (max-width: 720px) {
  .solicitud-detalle-grid,
  .solicitud-checklist {
    grid-template-columns: 1fr;
  }
}

.ui-toast-container {
  position: fixed; top: 20px; right: 20px; z-index: 10000;
  display: flex; flex-direction: column; gap: 8px;
  max-width: 360px;
}
.ui-toast {
  background: #fff; border-radius: 8px; padding: 12px 16px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  border-left: 4px solid #1e88e5; font-size: 14px;
  animation: slideIn 0.2s ease;
}
.ui-toast-success { border-left-color: #10b981; }
.ui-toast-warning { border-left-color: #f59e0b; }
.ui-toast-error   { border-left-color: #ef4444; }
.ui-toast-info    { border-left-color: var(--green); }
.ui-toast-close {
  background: none; border: none; cursor: pointer; color: #94a3b8;
  font-size: 18px; padding: 0;
}
@keyframes slideIn {
  from { transform: translateX(100%); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}

.ui-empty-state {
  padding: 40px 20px; text-align: center; color: #64748b;
  background: #fafbfd; border-radius: 12px;
}
.ui-empty-state h3 { color: #0f172a; margin: 0 0 8px; }

.ui-loader {
  display: flex; align-items: center; gap: 12px; padding: 16px;
  color: #475569;
}
.ui-loader-spinner {
  width: 20px; height: 20px;
  border: 3px solid #e2e6ed; border-top-color: var(--green);
  border-radius: 50%; animation: spin 1s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.ui-field {
  display: flex; flex-direction: column; gap: 4px;
  margin-bottom: 12px;
}
.ui-field span { font-size: 12px; color: #475569; font-weight: 600; }
.ui-field input, .ui-field textarea, .ui-field select {
  padding: 8px 12px; border: 1px solid #cbd5e1; border-radius: 6px;
  font-size: 14px; color: #0f172a; background: #fff;
}
.ui-field input:focus, .ui-field textarea:focus, .ui-field select:focus {
  outline: none; border-color: var(--hospital-navy);
  box-shadow: 0 0 0 3px rgba(0, 56, 120, 0.14);
}
.ui-field-checkbox {
  flex-direction: row; align-items: center; gap: 8px;
}
.ui-field-required { color: #ef4444; }

/* ====== TOP BAR ====== */
.hre-top-bar {
  background: linear-gradient(135deg, var(--blue), var(--green));
  color: #fff;
  padding: 8px 0;
  position: sticky; top: 0; z-index: 100;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.hre-top-bar-inner {
  max-width: 1600px; margin: 0 auto; padding: 0 20px;
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px;
}
.hre-top-bar-title { font-size: 14px; }
.hre-top-bar-meta {
  display: flex; gap: 12px; align-items: center;
}
.hre-user-info { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.2; }
.hre-user-info strong { font-size: 13px; }
.hre-user-info small { font-size: 11px; opacity: 0.85; }
.hre-sector-select {
  background: rgba(255,255,255,0.12); color: #fff; border: 1px solid rgba(255,255,255,0.3);
  padding: 4px 10px; border-radius: 4px; font-size: 12px;
}
.hre-sector-select option { color: #0f172a; }
.hre-login-form { display: flex; flex-direction: column; gap: 12px; }
.hre-login-form-actions { display: flex; justify-content: flex-end; }

/* ====== HSI INTERNACION ====== */
.hsi-section { padding: 24px; }
.hsi-tabs {
  display: flex; flex-wrap: wrap; gap: 6px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fbff;
  padding: 6px;
  margin: 16px 0;
}
.hsi-tab {
  min-height: 38px;
  padding: 9px 14px; background: transparent; border: 1px solid transparent;
  border-radius: 8px; cursor: pointer; font-size: 13px;
  color: #475569; font-weight: 800;
}
.hsi-tab:hover { background: #fff; border-color: var(--line); }
.hsi-tab.active {
  color: #fff; background: var(--blue); border-color: var(--blue);
}
.hsi-pantalla {
  background: #fff; border: 1px solid #d8deea; border-radius: 8px;
  padding: 20px;
  box-shadow: var(--shadow);
}
.hsi-pantalla h3 { margin: 0 0 16px 0; color: #0f172a; }
.hsi-screen-title {
  display: flex; flex-direction: column; gap: 4px; margin-bottom: 16px;
  border-left: 3px solid var(--green);
  padding-left: 12px;
}
.hsi-screen-title h3 { margin: 0; }
.hsi-screen-title p { margin: 0; color: #64748b; font-size: 13px; }
.hsi-form {
  display: flex; flex-direction: column; gap: 8px;
}
.hsi-form-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}
.hsi-form-actions {
  display: flex; justify-content: flex-end; margin-top: 12px;
}
.hsi-censo-panel {
  background: #fff; border: 1px solid #d8deea; border-radius: 10px;
  padding: 16px; display: flex; flex-direction: column; gap: 14px;
}
.hsi-kpi-strip {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}
.hsi-kpi {
  border: 1px solid #e2e6ed; border-left: 3px solid var(--green);
  border-radius: 8px; padding: 12px 14px;
  background: #fff; display: flex; flex-direction: column; gap: 5px;
  box-shadow: 0 8px 18px rgba(31, 41, 51, 0.05);
}
.hsi-kpi span { color: #64748b; font-size: 11px; text-transform: uppercase; letter-spacing: 0; font-weight: 700; }
.hsi-kpi strong { color: #0f172a; font-size: 24px; line-height: 1; }
.hsi-censo-filter {
  display: grid; grid-template-columns: minmax(220px, 2fr) minmax(180px, 1fr) minmax(140px, 1fr) auto;
  gap: 10px; align-items: end;
  background: #f8fbff; border: 1px solid var(--line); border-radius: 8px; padding: 12px;
}
.hsi-filter-actions {
  display: flex; gap: 8px; align-items: center; justify-content: flex-end;
}
.hsi-guardia-toolbar {
  display: grid; grid-template-columns: minmax(220px, 2fr) minmax(160px, 1fr) auto;
  gap: 10px; align-items: end; margin: 14px 0;
  background: #f8fbff; border: 1px solid var(--line); border-radius: 8px; padding: 12px;
}
.hsi-guardia-layout {
  display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
  gap: 14px; align-items: start;
}
.hsi-row-actions {
  display: flex; gap: 6px; flex-wrap: wrap;
}
.hsi-case-detail {
  border: 1px solid #d8deea; border-left: 3px solid var(--green); border-radius: 8px; background: #fff;
  padding: 14px; display: flex; flex-direction: column; gap: 12px;
}
.hsi-case-detail header {
  display: flex; justify-content: space-between; gap: 10px; align-items: flex-start;
}
.hsi-case-detail header div {
  display: flex; flex-direction: column; gap: 4px; min-width: 0;
}
.hsi-case-detail small { color: #64748b; font-size: 11px; text-transform: uppercase; font-weight: 700; }
.hsi-case-detail strong { color: #0f172a; }
.hsi-case-detail span { color: #475569; font-size: 13px; }
.hsi-guardia-action-form {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 8px; align-items: end;
}
.hsi-guardia-action-form .hsi-form-actions {
  margin-top: 0; justify-content: flex-start;
}
.hsi-case-studies,
.hsi-case-timeline {
  border-top: 1px solid #d8deea; padding-top: 10px; display: grid; gap: 8px;
}
.hsi-case-studies div {
  border: 1px solid #e2e6ed; border-radius: 8px; background: #fff; padding: 8px;
  display: grid; gap: 2px;
}
.hsi-case-timeline span {
  font-size: 12px; color: #475569;
}
.hsi-patient-toolbar {
  display: grid; grid-template-columns: minmax(220px, 2fr) minmax(160px, 1fr) auto;
  gap: 10px; align-items: end; margin: 14px 0;
  background: #f8fbff; border: 1px solid var(--line); border-radius: 8px; padding: 12px;
}
.hsi-patient-layout {
  display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(310px, 0.75fr);
  gap: 14px; align-items: start;
}
.hsi-patient-panel {
  border: 1px solid #d8deea; border-radius: 10px; background: #fff;
  padding: 14px; display: grid; gap: 12px;
}
.hsi-patient-panel.wide { min-width: 0; }
.hsi-patient-side {
  display: grid; gap: 14px;
}
.hsi-alert-list {
  display: grid; gap: 8px;
}
.hsi-alert-item {
  border: 1px solid #e2e6ed; border-radius: 8px; background: #f8fbff;
  padding: 9px 10px; display: flex; justify-content: space-between; gap: 10px; align-items: flex-start;
}
.hsi-alert-item div {
  display: grid; gap: 3px; min-width: 0;
}
.hsi-alert-item span,
.hsi-alert-item small {
  color: #475569; font-size: 12px;
}
.hsi-patient-result {
  border-radius: 8px; border: 1px solid #d8deea; padding: 10px; display: grid; gap: 5px;
}
.hsi-patient-result.success { background: #f0fdf4; border-color: #bbf7d0; }
.hsi-patient-result.neutral { background: #f8fafc; }
.hsi-patient-result.warning { background: #fffbeb; border-color: #fde68a; }
.hsi-patient-result small { color: #475569; }
.hsi-selected-box {
  border: 1px solid #cbd5e1; border-left: 4px solid var(--green); border-radius: 8px;
  padding: 12px; display: flex; justify-content: space-between; gap: 14px; align-items: center;
  background: #f8fbff;
}
.hsi-selected-box div:first-child { display: flex; flex-direction: column; gap: 3px; min-width: 220px; }
.hsi-selected-box small { color: #64748b; text-transform: uppercase; font-size: 10px; font-weight: 700; }
.hsi-selected-box strong { color: #0f172a; font-size: 15px; }
.hsi-selected-box span { color: #475569; font-size: 12px; }
.hsi-selected-alerts {
  display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end;
}
.hsi-selected-alerts span {
  background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412;
  border-radius: 999px; padding: 4px 8px; font-size: 11px; font-weight: 600;
}
.hsi-link-button {
  border: none; background: transparent; color: var(--blue); font-weight: 800;
  padding: 0; cursor: pointer; text-align: left;
}
.hsi-link-button:hover { text-decoration: underline; }
.hsi-status {
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 999px; padding: 4px 8px; font-size: 11px; font-weight: 700;
  background: #e2e8f0; color: #334155; text-transform: uppercase;
}
.hsi-status-activa { background: #dcfce7; color: #166534; }
.hsi-status-cerrada { background: #e2e8f0; color: #475569; }
.hsi-fieldset {
  border: 1px solid #e2e6ed; border-radius: 8px; padding: 12px;
  margin: 8px 0;
}
.hsi-fieldset legend {
  font-weight: 800; color: var(--green); padding: 0 8px; font-size: 13px;
}
.hsi-field-help {
  margin: 0 0 10px;
  color: #64748b;
  font-size: 13px;
}
.hsi-food-intake {
  border-left: 4px solid #0d9488;
  background: #f0fdfa;
}
.hsi-food-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 8px;
  margin: 10px 0;
}
.hsi-food-options label {
  display: flex;
  gap: 8px;
  align-items: center;
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  color: #334155;
  font-weight: 700;
}

.hsi-grid-4 {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 8px;
}
.hsi-info {
  background: #eef7f4; padding: 12px; border-radius: 6px;
  font-size: 13px; color: #1f6b5b; margin-bottom: 12px;
  border-left: 4px solid var(--green);
}
.hsi-warning {
  background: #fef3c7; padding: 12px; border-radius: 6px;
  font-size: 13px; color: #92400e; margin-bottom: 12px;
  border-left: 4px solid #f59e0b; font-weight: 600;
}
.hsi-mapa-legend {
  display: flex; gap: 16px; margin-bottom: 16px; font-size: 13px; color: #475569;
  align-items: center;
}
.hsi-cama-mini {
  display: inline-block; width: 14px; height: 14px; border-radius: 3px;
  vertical-align: middle; margin-right: 4px;
}
.hsi-sector-block {
  margin-bottom: 24px;
}
.hsi-sector-block h4 {
  color: #0f172a; margin: 0 0 8px 0; font-size: 15px;
  border-bottom: 1px dashed #e2e6ed; padding-bottom: 6px;
}
.hsi-cama-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
  gap: 8px;
}
.hsi-cama {
  border-radius: 6px; padding: 10px 8px; text-align: center;
  cursor: pointer; transition: transform 0.1s;
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  min-height: 82px;
}
.hsi-cama:hover { transform: translateY(-2px); }
.hsi-cama-libre { background: #ecfdf5; border: 1px solid rgba(7, 156, 60, 0.38); color: #065f46; box-shadow: 0 8px 18px rgba(7, 156, 60, 0.08); }
.hsi-cama-ocupada { background: #fff1f2; border: 1px solid rgba(232, 60, 62, 0.38); color: #991b1b; box-shadow: 0 8px 18px rgba(232, 60, 62, 0.08); }
.hsi-cama-selected { box-shadow: 0 0 0 2px var(--hospital-green) inset; border-color: var(--hospital-green); }
.hsi-cama strong { font-size: 14px; }
.hsi-cama small { font-size: 10px; text-transform: uppercase; }
.hsi-cama-patient {
  max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: 11px; font-weight: 700;
}
.hsi-cama-days {
  font-size: 10px; color: inherit; opacity: 0.75;
}
.hsi-alta-steps {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}
.hsi-alta-step {
  background: #f8fafc; padding: 16px; border-radius: 8px;
  border: 1px solid #e2e6ed;
}
.hsi-alta-step h4 { margin: 0 0 12px 0; color: var(--green); font-size: 14px; }
@media (max-width: 900px) {
  .hsi-censo-filter { grid-template-columns: 1fr; }
  .hsi-guardia-toolbar,
  .hsi-guardia-layout,
  .hsi-patient-toolbar,
  .hsi-patient-layout { grid-template-columns: 1fr; }
  .hsi-filter-actions { justify-content: flex-start; }
  .hsi-selected-box { align-items: flex-start; flex-direction: column; }
}

.ui-btn-small { padding: 4px 8px; font-size: 11px; }
.amb-solapas-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
}
.amb-solapa-card {
  background: #f8fafc; border: 1px solid #e2e6ed; border-radius: 8px;
  padding: 12px;
}
.amb-solapa-card h4 { margin: 0 0 8px 0; color: #1e88e5; font-size: 13px; }
.amb-solapa-card ul { margin: 0; padding-left: 18px; font-size: 13px; }
.amb-solapa-card pre { background: #fff; padding: 8px; border-radius: 4px; font-size: 11px; overflow-x: auto; }
.rep-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}
.rep-card {
  background: #fff; border: 1px solid #d8deea; border-radius: 8px;
  padding: 20px; cursor: pointer; text-align: left;
  display: flex; flex-direction: column; gap: 4px;
  transition: all 0.15s;
}
.rep-card:hover { border-color: #1e88e5; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(30,136,229,0.15); }
.rep-card strong { color: #0f172a; font-size: 14px; }
.rep-card small { color: #475569; font-size: 12px; }
.rep-kpis {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 12px; margin-top: 16px;
}
.rep-kpis div {
  background: #f8fafc; padding: 16px; border-radius: 8px; text-align: center;
  border: 1px solid #e2e6ed;
}
.rep-kpis strong { display: block; font-size: 28px; color: #1e88e5; }
.rep-kpis small { font-size: 12px; color: #475569; }

/* ====== GERENCIA / DIRECCION ====== */
.gerencia-kpis-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px; margin: 16px 0;
}
.kpi-block {
  background: #fff; border: 1px solid #d8deea; border-radius: 8px;
  padding: 16px; display: flex; flex-direction: column; gap: 4px;
}
.kpi-block h4 { margin: 0; font-size: 12px; color: #475569; text-transform: uppercase; letter-spacing: 0.04em; }
.kpi-block strong { font-size: 26px; color: #0f172a; }
.kpi-block small { font-size: 12px; color: #475569; }
.kpi-block.kpi-warning { border-left: 4px solid #f59e0b; }
.kpi-block.kpi-alert { border-left: 4px solid #ef4444; }
.kpi-block.kpi-warning strong { color: #b45309; }
.kpi-block.kpi-alert strong { color: #b91c1c; }

.alertas-list { display: flex; flex-direction: column; gap: 6px; max-height: 400px; overflow-y: auto; }
.alerta-row {
  display: grid; grid-template-columns: 100px 180px 1fr auto;
  gap: 12px; padding: 10px 12px;
  background: #f8fafc; border-radius: 6px; align-items: center;
  font-size: 13px;
}
.alerta-row.alerta-urgente { background: #fee2e2; border-left: 4px solid #ef4444; }
.alerta-row.alerta-alta { background: #fef3c7; border-left: 4px solid #f59e0b; }
.alerta-row.alerta-normal { border-left: 4px solid #94a3b8; }
.alerta-badge {
  background: #1e88e5; color: #fff; padding: 2px 8px; border-radius: 4px;
  font-size: 11px; text-align: center; text-transform: uppercase;
}
.alerta-row.alerta-urgente .alerta-badge { background: #ef4444; }
.alerta-row.alerta-alta .alerta-badge { background: #f59e0b; }
.alerta-type { font-weight: 600; color: #1e40af; font-size: 12px; }
.alerta-message { color: #334155; }
.alerta-row small { color: #94a3b8; font-size: 11px; }

/* ====== PORTAL MEDICO SOAP ====== */
.doctor-portal-workspace {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.doctor-kpi-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: 10px;
}
.doctor-kpi small { color: #64748b; font-size: 11px; }
.doctor-toolbar {
  display: grid;
  grid-template-columns: minmax(180px, 1.2fr) minmax(220px, 1.4fr) minmax(135px, 0.8fr) minmax(180px, 1fr) auto auto;
  gap: 10px;
  align-items: end;
  background: #fff;
  border: 1px solid #d8deea;
  border-radius: 8px;
  padding: 12px;
}
.doctor-toolbar label,
.doctor-soap-form label {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}
.doctor-toolbar span,
.doctor-soap-form label span {
  color: #475569;
  font-size: 12px;
  font-weight: 700;
}
.doctor-toolbar input,
.doctor-toolbar select,
.doctor-soap-form input,
.doctor-soap-form select,
.doctor-soap-form textarea {
  min-height: 38px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 8px 10px;
  font: inherit;
  color: #0f172a;
  background: #fff;
}
.doctor-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
  gap: 14px;
  align-items: start;
}
.doctor-main-column,
.doctor-card-list,
.doctor-evolution-list,
.doctor-side-panel,
.doctor-mini-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.doctor-panel,
.doctor-side-panel section,
.doctor-work-card,
.doctor-evolution-card {
  background: #fff;
  border: 1px solid #d8deea;
  border-radius: 8px;
}
.doctor-panel { padding: 14px; }
.doctor-section-head,
.doctor-form-head,
.doctor-work-card header,
.doctor-work-card footer,
.doctor-evolution-card header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
}
.doctor-section-head h3,
.doctor-form-head h3,
.doctor-work-card h3,
.doctor-evolution-card h3,
.doctor-side-panel h3 {
  margin: 0;
  color: #0f172a;
  font-size: 16px;
}
.doctor-section-head span,
.doctor-work-meta,
.doctor-work-card p,
.doctor-work-card small,
.doctor-evolution-card p,
.doctor-evolution-card small,
.doctor-side-panel p,
.doctor-side-panel li {
  color: #475569;
  font-size: 13px;
}
.doctor-work-card,
.doctor-evolution-card,
.doctor-side-panel section {
  padding: 12px;
}
.doctor-work-card p,
.doctor-evolution-card p,
.doctor-side-panel p {
  margin: 4px 0 0;
}
.doctor-work-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 10px 0;
}
.doctor-work-meta span,
.doctor-mini-list span {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 7px 8px;
}
/* Contexto clinico (alergias + problemas) en el panel lateral del medico */
.doctor-context-panel [data-clinical-context] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 6px;
}
.doctor-context-empty { color: #64748b; font-size: 13px; }
.doctor-context-allergies { display: flex; flex-wrap: wrap; gap: 6px; }
.doctor-allergy-chip {
  border-radius: 6px;
  padding: 6px 8px;
  font-size: 12px;
  font-weight: 600;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  color: #334155;
}
.doctor-allergy-chip.sev-anafilaxia,
.doctor-allergy-chip.sev-severa {
  background: #fef2f2;
  border-color: #fecaca;
  color: #b91c1c;
}
.doctor-allergy-chip.sev-moderada {
  background: #fffbeb;
  border-color: #fde68a;
  color: #92400e;
}
.doctor-context-problem {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.doctor-context-problem small { color: #94a3b8; }
.doctor-soap-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.doctor-form-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.doctor-wide { grid-column: 1 / -1; position: relative; }

/* Dictado por voz (Web Speech API) en los campos SOAP del portal medico.
   El boton se ancla arriba a la derecha de cada campo dictable. */
.dictar-btn {
  position: absolute;
  top: 0;
  right: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  color: #2f695c;
  background: #eef6f3;
  border: 1px solid #cfe3dc;
  border-radius: 999px;
  padding: 4px 10px;
  cursor: pointer;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
}
.dictar-btn:hover { background: #dfeee8; border-color: #b6d4ca; }
.dictar-btn.dictando {
  color: #fff;
  background: #d6455f;
  border-color: #d6455f;
  animation: dictar-pulse 1.1s ease-in-out infinite;
}
@keyframes dictar-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(214, 69, 95, 0.5); }
  50% { box-shadow: 0 0 0 6px rgba(214, 69, 95, 0); }
}

/* Aviso del dictado (microfono bloqueado, sin red, se cortaba solo).
   Sin esto, cuando el navegador niega el microfono el boton no hace NADA y el medico no tiene
   forma de saber por que: parece que la funcion no existe. */
.dictar-aviso {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.3;
  color: #8a3b48;
}
.dictar-aviso:empty { display: none; }

/* Portal medico en el celular: una sola columna, campos comodos para dictar. */
@media (max-width: 640px) {
  .doctor-form-grid { grid-template-columns: 1fr; }
  .doctor-layout { grid-template-columns: 1fr; }
  .doctor-soap-form textarea { min-height: 88px; }
  /* El boton de dictar medía ~20px de alto: en un celular es una loteria acertarle, y el
     medico que falla dos veces vuelve a escribir a mano. 44px es el minimo tactil. */
  .dictar-btn {
    position: static;
    width: 100%;
    justify-content: center;
    min-height: 44px;
    font-size: 15px;
    padding: 10px 14px;
    margin-top: 6px;
  }
  .doctor-soap-form label { position: static; }
  /* Que el teclado del celular no tape el campo que se esta dictando. */
  .doctor-soap-form textarea { scroll-margin-bottom: 40vh; }
}

.doctor-soap-read {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 10px 0;
}
.doctor-soap-read p {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 8px;
  min-height: 54px;
}
.doctor-signature-box {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  border: 1px solid #cbded8;
  border-radius: 8px;
  background: #f4fbf8;
  padding: 12px;
}
.doctor-signature-copy {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.doctor-signature-copy strong {
  color: #0f172a;
  font-size: 16px;
}
.doctor-signature-copy small,
.doctor-signature-copy p {
  color: #526273;
  font-size: 12px;
  margin: 0;
}
.doctor-signature-copy a,
.doctor-evolution-signature a {
  color: #11635f;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}
.doctor-signature-box img {
  width: 132px;
  height: 132px;
  border: 8px solid #fff;
  border-radius: 8px;
  box-shadow: 0 4px 14px rgba(15, 34, 51, 0.08);
}
.doctor-evolution-signature {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  border: 1px solid #dbe6e1;
  border-radius: 8px;
  background: #fbfdfc;
  padding: 10px;
  margin: 10px 0;
}
.doctor-evolution-signature img {
  width: 104px;
  height: 104px;
  border: 6px solid #fff;
  border-radius: 8px;
}
.doctor-evolution-signature span {
  display: block;
  color: #11635f;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.doctor-evolution-signature strong {
  display: block;
  color: #0f172a;
  margin: 2px 0 4px;
}
.doctor-alert {
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  color: #9a3412;
  padding: 10px 12px;
  font-size: 13px;
}
.doctor-side-panel ul {
  margin: 8px 0 0;
  padding-left: 18px;
}

@media (max-width: 1120px) {
  .doctor-toolbar,
  .doctor-layout,
  .doctor-form-grid,
  .doctor-soap-read {
    grid-template-columns: 1fr;
  }
  .doctor-work-meta {
    grid-template-columns: 1fr;
  }
  .doctor-signature-box,
  .doctor-evolution-signature {
    grid-template-columns: 1fr;
  }
  .doctor-signature-box img,
  .doctor-evolution-signature img {
    justify-self: start;
  }
}

/* UI P0.1: capa moderna contra reglas heredadas de doble columna y campos duros. */
.ui-section :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
.ts-widget :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
.section :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  width: 100%;
  min-height: 40px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #ffffff;
  color: #1f2a37;
  box-shadow: none !important;
}

.ui-section [style*="grid-template-columns"][style*="1fr 1fr"],
.ts-widget [style*="grid-template-columns"][style*="1fr 1fr"],
.section [style*="grid-template-columns"][style*="1fr 1fr"] {
  grid-template-columns: minmax(0, 1fr) !important;
}

.ui-section [style*="border:2px"][style*="solid"],
.ts-widget [style*="border:2px"][style*="solid"],
.section [style*="border:2px"][style*="solid"] {
  border-width: 1px !important;
  border-color: #dbe5ed !important;
}

.ts-modern-form-stack {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  margin-bottom: 12px;
}

.ts-modern-note {
  margin: 14px 0;
  padding: 14px;
  overflow: auto;
  border: 1px solid #dbe5ed;
  border-radius: 8px;
  background: #f8fafc;
}

.ts-profile-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
  margin: 0;
  font-size: 13.5px;
}

.ts-profile-list dt {
  color: #6a7785;
  font-weight: 700;
}

.ts-profile-list dd {
  margin: 0 0 8px;
  min-width: 0;
  overflow-wrap: anywhere;
}

.ts-summary-strip {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(180px, 1fr);
  gap: 12px;
  padding: 18px 22px;
  overflow-x: auto;
  scrollbar-gutter: stable;
}

.ts-summary-card {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 14px;
  border: 1px solid #dbe5ed;
  border-radius: 8px;
  background: #ffffff;
}

.ts-summary-card strong {
  display: block;
  font-family: var(--font-institucional);
  font-size: 22px;
  font-weight: 700;
}

.ts-summary-card span {
  color: #6a7785;
}

.ts-padron-filters-modern {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  padding: 14px 18px;
  border-bottom: 1px solid #e4e8ec;
  background: #f8fafc;
}

.ts-filter-label {
  display: grid;
  gap: 5px;
  min-width: 0;
  font-size: 11.5px;
}

.ts-filter-label > span {
  color: #6a7785;
  font-weight: 700;
}

.ts-filter-label select,
.ts-filter-label input {
  width: 100%;
}

.ts-role-card-strip {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(220px, 280px);
  gap: 12px;
  margin-bottom: 18px;
  padding-bottom: 6px;
  overflow-x: auto;
  scrollbar-gutter: stable;
}

.ts-card-rol {
  display: grid;
  gap: 8px;
  width: 100%;
  min-width: 0;
  padding: 16px;
  text-align: left;
  cursor: pointer;
  border: 1px solid #dbe5ed;
  border-radius: 8px;
  background: #ffffff;
  color: #1f2a37;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.05);
}

.ts-card-rol.selected {
  border-color: #3d806f;
  background: #eef8f5;
  box-shadow: 0 0 0 2px rgba(61, 128, 111, 0.14);
}

.clinical-flow-map {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(240px, 1fr);
  align-items: stretch;
  gap: 10px;
  padding: 12px 2px;
  overflow-x: auto;
  scrollbar-gutter: stable;
}

.clinical-flow-map-tail {
  padding-top: 0;
}

.clinical-flow-card {
  display: grid;
  align-content: start;
  gap: 8px;
  min-width: 240px;
  padding: 14px;
  border: 1px solid #dbe5ed;
  border-left: 4px solid var(--flow-accent, var(--hospital-navy));
  border-radius: 8px;
  background: #ffffff;
  color: #1f2a37;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
}

.clinical-flow-card h3,
.clinical-flow-card p {
  margin: 0;
}

.clinical-flow-card h3 {
  font-family: var(--font-institucional);
  font-size: 15px;
  font-weight: 700;
}

.clinical-flow-card p {
  color: #435166;
  font-size: 13px;
  line-height: 1.45;
}

.clinical-flow-card small {
  color: #64748b;
  font-size: 12px;
}

.clinical-flow-card.is-entry {
  --flow-accent: var(--hospital-celeste);
}

.clinical-flow-card.is-care {
  --flow-accent: var(--hospital-green);
}

.clinical-flow-card.is-coded {
  --flow-accent: var(--hospital-yellow);
}

.clinical-flow-card.is-billing {
  --flow-accent: #be185d;
}

.clinical-flow-arrow,
.clinical-flow-spacer {
  align-self: center;
  justify-self: center;
  color: #64748b;
  font-size: 22px;
  font-weight: 800;
}

@media (max-width: 760px) {
  .clinical-flow-map {
    grid-auto-flow: row;
    grid-auto-columns: unset;
    grid-template-columns: minmax(0, 1fr);
    overflow-x: visible;
  }

  .clinical-flow-spacer {
    display: none;
  }

  .clinical-flow-arrow {
    transform: rotate(90deg);
  }

  .clinical-flow-arrow-down {
    transform: none;
  }
}

/* ====== VALIDACION PUBLICA DE FIRMA QR ====== */
.signature-public-card {
  width: min(92vw, 620px);
  background: #fff;
  border: 1px solid #d8deea;
  border-radius: 8px;
  padding: 28px;
  box-shadow: 0 24px 70px rgba(15, 34, 51, 0.2);
}
.signature-public-copy {
  border-top: 1px solid #e6edf2;
  margin-top: 18px;
  padding-top: 22px;
}
.signature-public-copy h1 {
  color: #0f172a;
  font-size: 34px;
  margin: 4px 0 8px;
  letter-spacing: 0;
}
.signature-public-copy p {
  color: #536579;
  font-size: 15px;
  line-height: 1.5;
  margin: 0;
}
.signature-public-detail {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: 8px 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  margin: 22px 0;
  padding: 16px;
}
.signature-public-detail span {
  color: #64748b;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}
.signature-public-detail strong {
  color: #0f172a;
  font-size: 14px;
}
@media (max-width: 640px) {
  .signature-public-card { padding: 22px; }
  .signature-public-copy h1 { font-size: 28px; }
  .signature-public-detail { grid-template-columns: 1fr; }
}

/* ====== ENFERMERIA WORKBENCH ====== */
.nursing-workbench { display: flex; flex-direction: column; gap: 14px; }
.nursing-kpi-strip {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 10px;
}
.nursing-kpi small { color: #64748b; font-size: 11px; }
.nursing-toolbar {
  display: grid; grid-template-columns: minmax(240px, 1.4fr) minmax(220px, 1fr) auto auto;
  gap: 10px; align-items: end;
  background: #fff; border: 1px solid #d8deea; border-radius: 8px; padding: 12px;
}
.nursing-toolbar label,
.nursing-form label {
  display: flex; flex-direction: column; gap: 5px; min-width: 0;
}
.nursing-toolbar span,
.nursing-form label span {
  color: #475569; font-size: 12px; font-weight: 700;
}
.nursing-toolbar input,
.nursing-toolbar select,
.nursing-form input,
.nursing-form select,
.nursing-form textarea {
  min-height: 38px; border: 1px solid #cbd5e1; border-radius: 6px;
  padding: 8px 10px; font: inherit; color: #0f172a; background: #fff;
}
.nursing-layout {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
  gap: 14px; align-items: start;
}
.nursing-layout main,
.nursing-card-list,
.nursing-recent-grid {
  display: flex; flex-direction: column; gap: 10px;
}
.nursing-patient-card,
.nursing-form,
.nursing-panel {
  background: #fff; border: 1px solid #d8deea; border-radius: 8px; padding: 12px;
}
.nursing-patient-card.selected { border-color: var(--hospital-green); box-shadow: 0 0 0 2px rgba(7, 156, 60, 0.14); }
/* Equivalente de .nursing-patient-card.selected para la mesa como planilla: la fila
   ya no es una card con borde propio, así que el resaltado va como acento + fondo. */
.nursing-area-block .ui-planilla-table tbody tr.nursing-row-selected {
  background: rgba(7, 156, 60, 0.08);
  box-shadow: inset 3px 0 0 var(--hospital-green);
}
.nursing-patient-card header,
.nursing-patient-card footer,
.nursing-form-head {
  display: flex; justify-content: space-between; gap: 10px; align-items: flex-start;
}
.nursing-patient-card h3,
.nursing-form-head h3,
.nursing-panel h3 {
  margin: 0; color: #0f172a; font-size: 16px;
}
.nursing-patient-card p,
.nursing-patient-card small,
.nursing-row span,
.nursing-row small,
.nursing-panel p {
  color: #475569; font-size: 13px;
}
.nursing-patient-card p { margin: 4px 0 0; }
.nursing-forms-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px;
}
.nursing-form { display: flex; flex-direction: column; gap: 10px; }
.nursing-mini-grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px;
}
.nursing-mini-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nursing-row {
  display: grid; gap: 3px; padding: 8px;
  background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px;
}
.nursing-row strong { color: #0f172a; font-size: 13px; }

@media (max-width: 1120px) {
  .nursing-toolbar,
  .nursing-layout,
  .nursing-forms-grid,
  .nursing-mini-grid,
  .nursing-mini-grid.two {
    grid-template-columns: 1fr;
  }
}

/* ====== FARMACIA API WORKBENCH ====== */
.pharmacy-api-workbench {
  display: grid;
  gap: 16px;
  margin: 14px 0 22px;
}

.pharmacy-decision-tabs {
  display: flex;
  gap: 8px;
  position: sticky;
  top: 0;
  z-index: 8;
  overflow-x: auto;
  padding: 8px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: rgba(248, 250, 252, 0.97);
  box-shadow: 0 8px 18px rgba(15, 47, 70, 0.08);
  scrollbar-gutter: stable;
}

.pharmacy-decision-tabs button {
  display: grid;
  flex: 0 0 172px;
  gap: 2px;
  min-width: 0;
  border: 1px solid #d8deea;
  border-left: 4px solid transparent;
  border-radius: 8px;
  background: #fff;
  padding: 10px 12px;
  color: #475569;
  text-align: left;
  cursor: pointer;
}

.pharmacy-decision-tabs button:hover,
.pharmacy-decision-tabs button:focus-visible {
  background: #f8fafc;
  color: #0f2f46;
}

.pharmacy-decision-tabs button.active {
  border-color: #9fb8ca;
  border-left-color: var(--hospital-navy);
  background: #eef6ff;
  color: var(--hospital-navy);
}

.pharmacy-decision-tabs button > span {
  font-size: 14px;
  font-weight: 900;
}

.pharmacy-decision-tabs button > small {
  color: #64748b;
  font-size: 11px;
}

.pharmacy-decision-tabs button > small strong {
  color: #a11f1f;
  font-family: var(--font-datos);
}

.pharmacy-decision-view {
  display: grid;
  gap: 16px;
  align-content: start;
  min-height: min(560px, 66vh);
}

.pharmacy-decision-view[hidden] {
  display: none;
}

.pharmacy-alert-center,
.pharmacy-news-feed {
  overflow: hidden;
  border: 1px solid #d8deea;
  border-radius: 10px;
  background: #fff;
}

.pharmacy-alert-center-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: end;
  padding: 18px 20px;
  border-bottom: 1px solid #e2e8f0;
  background: linear-gradient(120deg, #fff7f2, #fff 72%);
}

.pharmacy-alert-center-head h2,
.pharmacy-alert-center-head p,
.pharmacy-news-feed h3,
.pharmacy-news-feed p {
  margin: 0;
}

.pharmacy-alert-center-head h2 {
  margin-top: 3px;
  color: #0f2f46;
  font-size: clamp(22px, 2.5vw, 30px);
}

.pharmacy-alert-center-head > div:first-child > p:last-child {
  max-width: 760px;
  margin-top: 7px;
  color: #475569;
  font-size: 13px;
  line-height: 1.5;
}

.pharmacy-alert-center-counts {
  display: flex;
  gap: 8px;
}

.pharmacy-alert-center-counts span {
  display: grid;
  min-width: 82px;
  border: 1px solid #e2c9bd;
  border-radius: 8px;
  background: #fff;
  padding: 9px 11px;
  color: #64748b;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.pharmacy-alert-center-counts strong {
  color: #0f172a;
  font-family: var(--font-datos);
  font-size: 22px;
  line-height: 1;
}

.pharmacy-alert-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 18px;
  border-bottom: 1px solid #e2e8f0;
  background: #f8fafc;
}

.pharmacy-alert-filters .ghost.active {
  border-color: var(--hospital-navy);
  background: #eef6ff;
  color: var(--hospital-navy);
}

.pharmacy-alert-filters strong {
  margin-left: 4px;
  font-family: var(--font-datos);
}

.pharmacy-alert-center-list,
.pharmacy-news-list {
  display: grid;
}

.pharmacy-alert-center-list,
.pharmacy-news-list,
.pharmacy-decision-queue:not(.compact) .pharmacy-decision-list {
  max-height: min(58vh, 620px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.pharmacy-alert-center-row {
  border-top: 1px solid #e2e8f0;
}

.pharmacy-alert-center-row:first-child {
  border-top: 0;
}

.pharmacy-news-feed > header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: end;
  padding: 14px 18px;
  border-bottom: 1px solid #e2e8f0;
  background: #f8fafc;
}

.pharmacy-news-feed h3 {
  margin-top: 2px;
  color: #0f172a;
  font-size: 17px;
}

.pharmacy-news-feed > header small,
.pharmacy-news-row small {
  color: #64748b;
  font-size: 11px;
}

.pharmacy-news-row {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  min-width: 0;
  padding: 13px 18px;
  border-top: 1px solid #e2e8f0;
}

.pharmacy-news-row:first-child {
  border-top: 0;
}

.pharmacy-news-kind {
  color: var(--hospital-navy);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.pharmacy-news-row > div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.pharmacy-news-row strong {
  color: #0f172a;
  font-size: 14px;
}

.pharmacy-news-row p {
  color: #475569;
  font-size: 12px;
  line-height: 1.45;
}

.pharmacy-decision-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: end;
  border: 1px solid #cbd8e6;
  border-left: 6px solid var(--hospital-navy);
  border-radius: 10px;
  background: linear-gradient(120deg, #f3f8fd, #fff 72%);
  padding: 20px 22px;
}

.pharmacy-decision-hero h2,
.pharmacy-decision-hero p {
  margin: 0;
}

.pharmacy-decision-hero h2 {
  margin-top: 3px;
  color: #0f2f46;
  font-size: clamp(22px, 2.5vw, 32px);
  line-height: 1.12;
}

.pharmacy-decision-hero > div > p:last-child {
  max-width: 760px;
  margin-top: 8px;
  color: #475569;
  font-size: 14px;
  line-height: 1.55;
}

.pharmacy-decision-totals {
  display: flex;
  gap: 8px;
}

.pharmacy-decision-totals span {
  display: grid;
  min-width: 106px;
  border: 1px solid #cbd8e6;
  border-radius: 8px;
  background: #fff;
  padding: 10px 12px;
  color: #64748b;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.pharmacy-decision-totals strong {
  color: #0f172a;
  font-family: var(--font-datos);
  font-size: 24px;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.pharmacy-decision-areas {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.pharmacy-decision-area {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-width: 0;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #fff;
  padding: 14px;
  color: #334155;
  text-align: left;
  cursor: pointer;
}

.pharmacy-decision-area:hover,
.pharmacy-decision-area:focus-visible,
.pharmacy-decision-area.active {
  border-color: var(--hospital-navy);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--hospital-navy) 14%, transparent);
}

.pharmacy-decision-step {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #e7f1f8;
  color: var(--hospital-navy);
  font-family: var(--font-datos);
  font-weight: 900;
}

.pharmacy-decision-area-copy,
.pharmacy-decision-area-status {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.pharmacy-decision-area-copy strong {
  color: #0f172a;
  font-size: 15px;
}

.pharmacy-decision-area-copy small,
.pharmacy-decision-area-status small {
  color: #64748b;
  font-size: 11px;
  line-height: 1.35;
}

.pharmacy-decision-area-status {
  justify-items: end;
  min-width: 92px;
}

.pharmacy-decision-area-status > strong {
  color: #0f172a;
  font-family: var(--font-datos);
  font-size: 24px;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.pharmacy-decision-area-status em {
  border-radius: 999px;
  background: #eef2f7;
  padding: 4px 8px;
  color: #475569;
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
  text-transform: uppercase;
}

.pharmacy-decision-area-status.attention em,
.pharmacy-decision-area-status.blocked em {
  background: #fff1e6;
  color: #a64013;
}

.pharmacy-decision-area-status.ok em,
.pharmacy-decision-area-status.active em {
  background: #e8f7ed;
  color: #17643a;
}

.pharmacy-decision-queue,
.pharmacy-evidence-strip,
.pharmacy-operational-tools {
  border: 1px solid #d8deea;
  border-radius: 10px;
  background: #fff;
}

.pharmacy-decision-queue {
  overflow: hidden;
}

.pharmacy-decision-queue > header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  padding: 16px 18px;
  border-bottom: 1px solid #e2e8f0;
  background: #f8fafc;
}

.pharmacy-decision-queue h3,
.pharmacy-decision-queue p,
.pharmacy-decision-queue header .eyebrow {
  margin: 0;
}

.pharmacy-decision-queue h3 {
  margin-top: 2px;
  color: #0f172a;
  font-size: 17px;
}

.pharmacy-decision-queue header .ghost.active {
  border-color: var(--hospital-navy);
  color: var(--hospital-navy);
}

.pharmacy-decision-list {
  display: grid;
}

.pharmacy-decision-queue.compact .pharmacy-decision-list {
  max-height: none;
  overflow: visible;
}

.pharmacy-workspace-head,
.pharmacy-purchase-control,
.pharmacy-tools-workspace > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
  border: 1px solid #cbd8e6;
  border-left: 6px solid var(--hospital-navy);
  border-radius: 10px;
  background: linear-gradient(120deg, #f3f8fd, #fff 72%);
  padding: 18px 20px;
}

.pharmacy-workspace-head h2,
.pharmacy-workspace-head p,
.pharmacy-purchase-control h3,
.pharmacy-purchase-control p,
.pharmacy-tools-workspace h2,
.pharmacy-tools-workspace p {
  margin: 0;
}

.pharmacy-workspace-head h2,
.pharmacy-tools-workspace h2 {
  margin-top: 3px;
  color: #0f2f46;
  font-size: clamp(22px, 2.4vw, 30px);
}

.pharmacy-workspace-head > div > p:last-child,
.pharmacy-purchase-control > div > p:last-child,
.pharmacy-tools-workspace header p:last-child {
  max-width: 760px;
  margin-top: 7px;
  color: #475569;
  font-size: 13px;
  line-height: 1.5;
}

.pharmacy-workspace-state {
  display: grid;
  justify-items: end;
  gap: 3px;
  min-width: 126px;
}

.pharmacy-workspace-state strong {
  color: #0f172a;
  font-family: var(--font-datos);
  font-size: 28px;
  line-height: 1;
}

.pharmacy-workspace-state small {
  color: #64748b;
  font-size: 11px;
}

.pharmacy-workspace-state em {
  border-radius: 999px;
  background: #eef2f7;
  padding: 4px 8px;
  color: #475569;
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
  text-transform: uppercase;
}

.pharmacy-workspace-state.attention em,
.pharmacy-workspace-state.blocked em {
  background: #fff1e6;
  color: #a64013;
}

.pharmacy-workspace-state.ok em,
.pharmacy-workspace-state.active em {
  background: #e8f7ed;
  color: #17643a;
}

.pharmacy-purchase-control {
  border-left-color: #d29a25;
  background: linear-gradient(120deg, #fff8e8, #fff 72%);
}

.pharmacy-purchase-control h3 {
  margin-top: 3px;
  color: #3e3321;
  font-size: 19px;
}

.pharmacy-procurement-command {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
  border: 1px solid #cbd8e6;
  border-left: 6px solid var(--hospital-green);
  border-radius: 10px;
  background: linear-gradient(120deg, #effaf3, #fff 72%);
  padding: 18px 20px;
}

.pharmacy-procurement-command.attention,
.pharmacy-procurement-command.blocked {
  border-left-color: #c46919;
  background: linear-gradient(120deg, #fff6e9, #fff 72%);
}

.pharmacy-procurement-command h3,
.pharmacy-procurement-command p {
  margin: 0;
}

.pharmacy-procurement-command h3 {
  margin-top: 3px;
  color: #0f2f46;
  font-size: 20px;
}

.pharmacy-procurement-command > div:first-child > p:last-child {
  margin-top: 6px;
  color: #475569;
  font-size: 13px;
}

.pharmacy-procurement-sync {
  display: grid;
  justify-items: end;
  gap: 4px;
  color: #64748b;
  font-size: 10px;
  text-transform: uppercase;
}

.pharmacy-procurement-sync strong {
  color: #334155;
  font-size: 11px;
  text-transform: none;
}

.pharmacy-procurement-sync .primary {
  margin-top: 4px;
}

.pharmacy-procurement-flow {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.pharmacy-procurement-stage {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2px 8px;
  align-items: center;
  min-width: 0;
  border: 1px solid #d8deea;
  border-radius: 9px;
  background: #fff;
  padding: 12px;
}

.pharmacy-procurement-stage > span {
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #e7f1f8;
  color: var(--hospital-navy);
  font-weight: 900;
}

.pharmacy-procurement-stage strong {
  color: #0f172a;
  font-family: var(--font-datos);
  font-size: 22px;
  line-height: 1;
}

.pharmacy-procurement-stage small {
  color: #64748b;
  font-size: 11px;
}

.pharmacy-procurement-controls,
.pharmacy-procurement-tenders {
  overflow: hidden;
  border: 1px solid #d8deea;
  border-radius: 10px;
  background: #fff;
}

.pharmacy-procurement-controls > header,
.pharmacy-procurement-tenders > header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: end;
  padding: 14px 18px;
  border-bottom: 1px solid #e2e8f0;
  background: #f8fafc;
}

.pharmacy-procurement-controls h3,
.pharmacy-procurement-tenders h3,
.pharmacy-procurement-controls p,
.pharmacy-procurement-tenders p {
  margin: 0;
}

.pharmacy-procurement-controls h3,
.pharmacy-procurement-tenders h3 {
  margin-top: 2px;
  color: #0f172a;
  font-size: 17px;
}

.pharmacy-procurement-controls header > small,
.pharmacy-procurement-tenders header > small {
  color: #64748b;
  font-size: 11px;
}

.pharmacy-procurement-controls > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 12px;
}

.pharmacy-procurement-controls article {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3px 8px;
  border: 1px solid #cde3d5;
  border-left: 5px solid var(--hospital-green);
  border-radius: 8px;
  padding: 11px 12px;
}

.pharmacy-procurement-controls article.attention {
  border-color: #efc6aa;
  border-left-color: #c46919;
  background: #fff9f4;
}

.pharmacy-procurement-controls article span,
.pharmacy-procurement-controls article small {
  color: #64748b;
  font-size: 11px;
}

.pharmacy-procurement-controls article strong {
  color: #0f172a;
  font-family: var(--font-datos);
  font-size: 22px;
  line-height: 1;
}

.pharmacy-procurement-controls article small {
  grid-column: 1 / -1;
}

.pharmacy-procurement-tender-list {
  display: grid;
  max-height: 360px;
  overflow-y: auto;
}

.pharmacy-procurement-tender-list > article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 110px 100px auto;
  gap: 12px;
  align-items: center;
  padding: 12px 18px;
  border-top: 1px solid #e2e8f0;
}

.pharmacy-procurement-tender-list > article:first-child {
  border-top: 0;
}

.pharmacy-procurement-tender-list article > div {
  display: grid;
  gap: 2px;
}

.pharmacy-procurement-tender-list article strong,
.pharmacy-procurement-tender-list article span {
  color: #0f172a;
  font-size: 13px;
}

.pharmacy-procurement-tender-list article small {
  color: #64748b;
  font-size: 11px;
}

.pharmacy-tools-workspace {
  display: grid;
  gap: 12px;
}

.pharmacy-tools-workspace > header {
  border-left-color: var(--hospital-green);
  background: linear-gradient(120deg, #effaf3, #fff 72%);
}

.pharmacy-open-tools-shortcut {
  justify-self: start;
}

.pharmacy-decision-row {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  min-width: 0;
  padding: 14px 18px;
  border-top: 1px solid #e2e8f0;
  border-left: 5px solid #94a3b8;
}

.pharmacy-decision-row:first-child {
  border-top: 0;
}

.pharmacy-decision-row.critical { border-left-color: #c53b3b; }
.pharmacy-decision-row.warning { border-left-color: #d97706; }
.pharmacy-decision-row.blocked { border-left-color: #64748b; background: #fbfcfd; }

.pharmacy-decision-priority {
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.pharmacy-decision-row.critical .pharmacy-decision-priority { color: #a11f1f; }
.pharmacy-decision-row.warning .pharmacy-decision-priority { color: #a04a06; }

.pharmacy-decision-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.pharmacy-decision-copy > strong {
  color: #0f172a;
  font-size: 14px;
}

.pharmacy-decision-copy p,
.pharmacy-decision-copy small {
  color: #475569;
  font-size: 12px;
  line-height: 1.45;
}

.pharmacy-decision-copy small {
  color: #64748b;
}

.pharmacy-decision-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 12px;
  margin-top: 2px;
  color: #64748b;
  font-size: 11px;
}

.pharmacy-decision-meta span {
  min-width: 0;
}

.pharmacy-decision-action {
  white-space: nowrap;
}

.pharmacy-evidence-strip {
  padding: 14px;
}

.pharmacy-evidence-strip > header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: baseline;
  margin-bottom: 10px;
}

.pharmacy-evidence-strip > header strong {
  color: #0f172a;
}

.pharmacy-evidence-strip > header small {
  color: #64748b;
}

.pharmacy-api-metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.pharmacy-api-metric {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 8px;
  align-items: baseline;
  border: 1px solid #d8deea;
  border-left: 4px solid var(--hospital-green);
  border-radius: 6px;
  background: #fff;
  padding: 9px 10px;
}

.pharmacy-api-metric span,
.pharmacy-api-metric small {
  color: #64748b;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
}

.pharmacy-api-metric strong {
  color: #0f172a;
  font-size: 18px;
  line-height: 1.1;
}

.pharmacy-api-metric small {
  grid-column: 1 / -1;
  text-transform: none;
}

.pharmacy-api-toolbar,
.pharmacy-api-form,
.pharmacy-api-panel {
  background: #fff;
  border: 1px solid #d8deea;
  border-radius: 8px;
  padding: 14px;
}

.pharmacy-api-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1.3fr) minmax(180px, 1fr) minmax(150px, 0.7fr) auto auto;
  gap: 10px;
  align-items: end;
}

.pharmacy-api-toolbar label,
.pharmacy-api-form label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: #475569;
  font-size: 12px;
  font-weight: 700;
}

.pharmacy-api-toolbar input,
.pharmacy-api-toolbar select,
.pharmacy-api-form input,
.pharmacy-api-form select,
.pharmacy-api-validation-form input,
.pharmacy-api-validation-form select {
  min-height: 38px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 8px 10px;
  font: inherit;
  color: #0f172a;
  background: #fff;
}

.pharmacy-api-forms {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.pharmacy-api-form {
  min-width: 0;
  display: grid;
  gap: 10px;
}

.pharmacy-operational-tools > summary {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  padding: 14px 16px;
  cursor: pointer;
  list-style: none;
}

.pharmacy-operational-tools > summary::-webkit-details-marker {
  display: none;
}

.pharmacy-operational-tools > summary > span:first-child {
  display: grid;
  gap: 3px;
}

.pharmacy-operational-tools > summary strong {
  color: #0f172a;
}

.pharmacy-operational-tools > summary small {
  color: #64748b;
}

.pharmacy-operational-tools[open] > summary {
  border-bottom: 1px solid #e2e8f0;
}

.pharmacy-operational-tools .pharmacy-api-forms {
  padding: 14px;
}

.pharmacy-api-form-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
}

.pharmacy-api-form-head h3,
.pharmacy-api-panel h3 {
  margin: 0;
  color: #0f172a;
  font-size: 16px;
}

.pharmacy-api-mini-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.pharmacy-api-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
}

.pharmacy-api-panel {
  display: grid;
  align-content: start;
  gap: 10px;
  min-width: 0;
}

.pharmacy-api-panel.wide {
  grid-column: 1 / -1;
}

.pharmacy-api-list {
  display: grid;
  gap: 8px;
}

.pharmacy-api-list.compact {
  border-top: 1px solid #e2e8f0;
  padding-top: 8px;
}

.pharmacy-api-row,
.pharmacy-api-order {
  display: grid;
  grid-template-columns: minmax(190px, 1.1fr) minmax(0, 2fr) auto;
  gap: 10px;
  align-items: center;
  min-width: 0;
  border: 0;
  border-top: 1px solid #e2e8f0;
  border-radius: 0;
  padding: 9px 0;
}

.pharmacy-api-row strong,
.pharmacy-api-order strong {
  color: #0f172a;
}

.pharmacy-api-row span,
.pharmacy-api-row small,
.pharmacy-api-order p,
.pharmacy-api-order small,
.pharmacy-api-panel p {
  color: #475569;
  font-size: 13px;
}

.pharmacy-api-order header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
}

.pharmacy-api-validation-form {
  display: grid;
  grid-template-columns: minmax(120px, 0.8fr) minmax(0, 1fr);
  gap: 8px;
  align-items: center;
}

.pharmacy-api-validation-form > * {
  min-width: 0;
}

.pharmacy-api-validation-form button {
  grid-column: 1 / -1;
  justify-self: start;
  min-height: 38px;
  white-space: nowrap;
}

.pharmacy-api-table {
  display: grid;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  overflow: hidden;
}

.pharmacy-api-table-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.6fr) minmax(100px, 0.7fr) minmax(110px, 0.7fr) minmax(100px, 0.7fr) minmax(130px, 0.8fr);
  gap: 10px;
  align-items: start;
  padding: 10px 12px;
  border-top: 1px solid #e2e8f0;
}

.pharmacy-api-table-row:first-child {
  border-top: 0;
}

.pharmacy-api-table-row.header {
  background: #f8fafc;
  color: #475569;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.pharmacy-api-table-row strong,
.pharmacy-api-table-row span {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.pharmacy-api-table-row small {
  color: #64748b;
}

.pharmacy-api-planilla .ui-planilla-scroll {
  border: 1px solid #e2e8f0;
  border-radius: 8px 8px 0 0;
}

.pharmacy-api-planilla .ui-planilla-table {
  min-width: 760px;
}

.pharmacy-api-planilla .ui-planilla-table td {
  color: #334155;
}

.pharmacy-api-planilla .ui-planilla-table td strong,
.pharmacy-api-planilla .ui-planilla-table td small {
  display: block;
}

.pharmacy-api-planilla .ui-planilla-table td small {
  margin-top: 3px;
  color: #64748b;
}

.pharmacy-planilla-data {
  font-family: var(--font-datos);
  font-variant-numeric: tabular-nums;
}

.pharmacy-lot-capture {
  grid-column: 1 / -1;
  display: grid;
  gap: 8px;
}

.pharmacy-lot-capture input {
  font-family: var(--font-datos);
  font-variant-numeric: tabular-nums;
}

.pharmacy-camera-actions,
.pharmacy-camera-panel-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.pharmacy-camera-actions small,
.pharmacy-camera-panel-footer span {
  color: #64748b;
  font-size: 12px;
}

.pharmacy-camera-panel {
  overflow: hidden;
  border: 1px solid #94a3b8;
  border-radius: 8px;
  background: #0f172a;
}

.pharmacy-camera-panel[hidden] {
  display: none;
}

.pharmacy-camera-panel video {
  display: block;
  width: 100%;
  max-height: 320px;
  min-height: 220px;
  object-fit: cover;
  background: #020617;
}

.pharmacy-camera-panel-footer {
  padding: 10px;
  background: #fff;
}

@media (max-width: 1120px) {
  .pharmacy-api-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .pharmacy-decision-areas {
    grid-template-columns: 1fr;
  }
  .pharmacy-api-grid {
    grid-template-columns: 1fr;
  }
  .pharmacy-api-toolbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .pharmacy-decision-hero,
  .pharmacy-decision-row {
    grid-template-columns: 1fr;
  }
  .pharmacy-camera-actions,
  .pharmacy-camera-panel-footer {
    align-items: stretch;
    flex-direction: column;
  }
  .pharmacy-camera-actions button,
  .pharmacy-camera-panel-footer button {
    width: 100%;
    min-height: 44px;
  }
  .pharmacy-decision-hero {
    gap: 14px;
    padding: 16px;
  }
  .pharmacy-decision-totals,
  .pharmacy-alert-center-counts,
  .pharmacy-decision-queue > header,
  .pharmacy-news-feed > header,
  .pharmacy-evidence-strip > header,
  .pharmacy-operational-tools > summary {
    align-items: stretch;
    flex-direction: column;
  }
  .pharmacy-decision-totals span {
    flex: 1;
    min-width: 0;
  }
  .pharmacy-decision-area {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .pharmacy-decision-area-status {
    grid-column: 2;
    justify-items: start;
  }
  .pharmacy-decision-row {
    gap: 8px;
    padding: 14px;
  }
  .pharmacy-decision-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    margin-inline: -4px;
    padding: 7px;
    overflow-x: visible;
  }
  .pharmacy-decision-tabs button {
    width: 100%;
    min-height: 64px;
    border: 1px solid #cbd5e1;
    border-left: 4px solid transparent;
    border-radius: 8px;
  }
  .pharmacy-decision-tabs button.active {
    border-left-color: var(--hospital-navy);
    border-bottom-color: #9fb8ca;
  }
  .pharmacy-workspace-head,
  .pharmacy-purchase-control,
  .pharmacy-procurement-command,
  .pharmacy-tools-workspace > header {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 16px;
  }
  .pharmacy-workspace-state {
    justify-items: start;
  }
  .pharmacy-procurement-sync {
    justify-items: start;
  }
  .pharmacy-procurement-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pharmacy-procurement-stage:last-child {
    grid-column: 1 / -1;
  }
  .pharmacy-procurement-controls > header,
  .pharmacy-procurement-tenders > header {
    align-items: stretch;
    flex-direction: column;
  }
  .pharmacy-procurement-controls > div {
    grid-template-columns: 1fr;
  }
  .pharmacy-procurement-tender-list > article {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 12px 14px;
  }
  .pharmacy-procurement-tender-list article > div {
    grid-column: 1 / -1;
  }
  .pharmacy-decision-meta {
    display: grid;
    gap: 3px;
  }
  .pharmacy-alert-center-head,
  .pharmacy-news-row {
    grid-template-columns: 1fr;
  }
  .pharmacy-alert-center-head {
    gap: 14px;
    padding: 16px;
  }
  .pharmacy-alert-center-counts span {
    flex: 1;
    min-width: 0;
  }
  .pharmacy-alert-filters {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pharmacy-news-row {
    gap: 7px;
    padding: 13px 14px;
  }
  .pharmacy-decision-action {
    justify-self: stretch;
    text-align: center;
  }
  .pharmacy-api-metrics,
  .pharmacy-api-forms {
    grid-template-columns: 1fr;
  }
  .pharmacy-api-planilla .ui-planilla-table {
    width: 760px !important;
    min-width: 760px !important;
  }
  .pharmacy-api-grid,
  .pharmacy-api-toolbar,
  .pharmacy-api-mini-grid,
  .pharmacy-api-validation-form,
  .pharmacy-api-row,
  .pharmacy-api-order,
  .pharmacy-api-table-row {
    grid-template-columns: 1fr;
  }
}

#stock .layout-stack {
  flex-direction: column;
}

#stock .layout-stack > * {
  width: 100%;
}

#stock .pharmacy-alert-grid,
#stock .pharmacy-workflow-grid,
#stock .pharmacy-procedure-grid,
#stock .pharmacy-checklist-grid,
#stock .pharmacy-rule-grid,
#stock .pharmacy-tender-grid,
#stock .pharmacy-stage-grid,
#stock .pharmacy-request-grid,
#stock .pharmacy-ops-grid,
#stock .category-value-grid,
#stock .decision-highlight-grid,
#stock .inventory-extremes-grid,
#stock .floor-stock-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

#stock .pharmacy-alert-grid,
#stock .pharmacy-workflow-grid,
#stock .pharmacy-procedure-grid,
#stock .pharmacy-checklist-grid,
#stock .pharmacy-rule-grid {
  margin-top: 10px;
}

#stock .pharmacy-alert-grid .decision-card,
#stock .pharmacy-workflow-card,
#stock .pharmacy-procedure-card,
#stock .pharmacy-check-card,
#stock .pharmacy-rule-card,
#stock .pharmacy-tender-card,
#stock .pharmacy-stage-card,
#stock .pharmacy-request-card,
#stock .pharmacy-ops-card,
#stock .category-value-card,
#stock .decision-panel,
#stock .floor-stock-card {
  border: 0;
  border-top: 1px solid var(--line);
  border-left: 4px solid var(--pharmacy-accent, var(--hospital-green));
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  padding: 10px 12px;
}

#stock .pharmacy-alert-grid .decision-card:first-child,
#stock .pharmacy-workflow-card:first-child,
#stock .pharmacy-procedure-card:first-child,
#stock .pharmacy-check-card:first-child,
#stock .pharmacy-rule-card:first-child,
#stock .pharmacy-tender-card:first-child,
#stock .pharmacy-stage-card:first-child,
#stock .pharmacy-request-card:first-child,
#stock .pharmacy-ops-card:first-child,
#stock .category-value-card:first-child,
#stock .decision-panel:first-child,
#stock .floor-stock-card:first-child {
  border-top: 0;
}

#stock .decision-card,
#stock .category-value-card {
  display: grid;
  grid-template-columns: minmax(160px, .8fr) minmax(120px, .5fr) minmax(0, 1.7fr);
  gap: 10px;
  align-items: center;
  text-align: left;
}

#stock .decision-card strong,
#stock .category-value-card strong {
  margin: 0;
  font-size: 18px;
}

#stock .decision-card small,
#stock .category-value-card small,
#stock .category-value-card em {
  margin: 0;
  padding: 0;
  border: 0;
}

#stock .pharmacy-stage-card,
#stock .pharmacy-ops-card {
  grid-template-columns: minmax(160px, .7fr) minmax(0, 1fr) minmax(0, 1.4fr) auto;
  align-items: center;
}

#stock .pharmacy-request-card dl,
#stock .floor-stock-card dl {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px 10px;
}

#stock .floor-stock-card {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(160px, .7fr) minmax(220px, 1fr) auto;
  gap: 10px;
  align-items: center;
}

#stock .floor-stock-card .stock-meter {
  margin: 0;
}

#stock .floor-stock-card small {
  margin: 0;
}

@media (max-width: 760px) {
  #stock .decision-card,
  #stock .category-value-card,
  #stock .pharmacy-stage-card,
  #stock .pharmacy-ops-card,
  #stock .floor-stock-card,
  .pharmacy-system-grid article {
    grid-template-columns: 1fr;
  }
}

/* ====== MAPA DE CAMAS API ====== */
.bed-api-map {
  display: grid;
  gap: 14px;
  margin-bottom: 18px;
}

.bed-api-kpis {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 10px;
}

.bed-api-kpi {
  min-height: 86px;
}

.bed-api-toolbar,
.bed-api-panel {
  background: #fff;
  border: 1px solid #d8deea;
  border-radius: 8px;
  padding: 14px;
}

.bed-api-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) minmax(180px, 1fr) minmax(130px, 0.7fr) auto auto auto;
  gap: 10px;
  align-items: end;
}

.bed-api-toolbar label {
  display: grid;
  gap: 6px;
  color: #475569;
  font-size: 12px;
  font-weight: 700;
}

.bed-api-toolbar input,
.bed-api-toolbar select {
  min-height: 38px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 8px 10px;
  font: inherit;
  color: #0f172a;
  background: #fff;
}

.bed-api-layout {
  display: grid;
  grid-template-columns: minmax(300px, 0.9fr) minmax(260px, 0.75fr) minmax(320px, 1.05fr);
  gap: 12px;
}

.bed-api-panel {
  display: grid;
  gap: 10px;
  align-content: start;
}

.bed-api-panel.wide {
  grid-column: 1 / -1;
}

.bed-api-panel h3 {
  margin: 0;
  color: #0f172a;
  font-size: 16px;
}

.bed-api-panel p,
.bed-api-row span,
.bed-api-row small,
.bed-api-pill span,
.bed-api-pill small {
  color: #475569;
  font-size: 13px;
}

.bed-api-list {
  display: grid;
  gap: 8px;
}

.bed-api-row {
  display: grid;
  gap: 5px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 10px;
}

.bed-api-clickable {
  width: 100%;
  text-align: left;
  font: inherit;
  background: #fff;
  cursor: pointer;
}

.bed-api-clickable:hover,
.bed-api-pill:hover {
  border-color: #60a5fa;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.08);
}

.bed-api-sector-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.bed-api-sector {
  display: grid;
  gap: 10px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 12px;
}

.bed-api-sector header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

.bed-api-sector strong,
.bed-api-row strong,
.bed-api-pill strong {
  color: #0f172a;
}

.bed-api-meter {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e2e8f0;
}

.bed-api-meter span {
  display: block;
  height: 100%;
  background: var(--hospital-green);
}

.bed-api-bed-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
}

.bed-api-pill {
  display: grid;
  gap: 3px;
  min-height: 82px;
  border-radius: 8px;
  padding: 9px;
  border: 1px solid #d8deea;
  background: #f8fafc;
  text-align: left;
  font: inherit;
  cursor: pointer;
}

.bed-api-pill.free {
  border-color: #99f6e4;
  background: #ecfdf5;
}

.bed-api-pill.occupied {
  border-color: #bfdbfe;
  background: #eff6ff;
}

.bed-api-pill.alert {
  border-color: #fed7aa;
  background: #fff7ed;
}

.bed-api-pill.selected {
  outline: 2px solid var(--hospital-green);
  outline-offset: 2px;
}

.bed-api-detail {
  grid-row: span 2;
}

.bed-api-detail-head {
  display: grid;
  gap: 4px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.bed-api-detail-head strong {
  color: #0f172a;
  font-size: 18px;
}

.bed-api-detail-head span,
.bed-api-detail-head small {
  color: #475569;
}

.bed-api-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.bed-api-detail-grid div {
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 8px;
  display: grid;
  gap: 3px;
}

.bed-api-detail-grid small {
  color: #64748b;
  text-transform: uppercase;
  font-size: 10px;
  font-weight: 700;
}

.bed-api-alert-chips,
.bed-api-actions {
  display: grid;
  gap: 6px;
}

.bed-api-alert-chips span {
  border-radius: 999px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #9a3412;
  padding: 5px 8px;
  font-size: 12px;
  font-weight: 700;
}

.bed-api-actions span {
  border-left: 3px solid var(--hospital-green);
  background: #f0fdfa;
  border-radius: 6px;
  color: #0f172a;
  padding: 7px 9px;
  font-size: 13px;
}

@media (max-width: 1120px) {
  .bed-api-kpis {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .bed-api-toolbar,
  .bed-api-layout,
  .bed-api-sector-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .bed-api-kpis {
    grid-template-columns: 1fr;
  }
}

/* ====== QUIROFANO API WORKBENCH ====== */
.surgery-api-workbench {
  display: grid;
  gap: 14px;
  margin-bottom: 18px;
}

.surgery-api-kpis {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 10px;
}

.surgery-api-kpi {
  min-height: 86px;
}

.surgery-api-toolbar,
.surgery-api-form,
.surgery-api-panel {
  background: #fff;
  border: 1px solid #d8deea;
  border-radius: 8px;
  padding: 14px;
}

.surgery-api-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) minmax(140px, 0.7fr) minmax(150px, 0.8fr) minmax(130px, 0.7fr) auto auto;
  gap: 10px;
  align-items: end;
}

.surgery-api-toolbar label,
.surgery-api-form label,
.surgery-api-close-form label {
  display: grid;
  gap: 6px;
  color: #475569;
  font-size: 12px;
  font-weight: 700;
}

.surgery-api-toolbar input,
.surgery-api-toolbar select,
.surgery-api-form input,
.surgery-api-form select,
.surgery-api-close-form input,
.surgery-api-close-form textarea {
  min-height: 38px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 8px 10px;
  font: inherit;
  color: #0f172a;
  background: #fff;
}

.surgery-api-layout {
  display: grid;
  grid-template-columns: minmax(300px, 0.85fr) minmax(0, 1.4fr);
  gap: 12px;
  align-items: start;
}

.surgery-api-form {
  display: grid;
  gap: 10px;
}

.surgery-api-form-head,
.surgery-api-card header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
}

.surgery-api-form-head h3,
.surgery-api-panel h3,
.surgery-api-card h3 {
  margin: 0;
  color: #0f172a;
  font-size: 16px;
}

.surgery-api-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.surgery-api-form-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.surgery-api-panel {
  display: grid;
  gap: 10px;
  align-content: start;
}

.surgery-api-panel.wide {
  grid-column: auto;
}

.surgery-office-panel {
  margin: 1rem 0;
}

.surgery-office-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.surgery-office-task {
  display: grid;
  align-content: start;
  gap: 12px;
  min-width: 0;
  margin: 0;
  border: 1px solid var(--line);
  border-left: 4px solid var(--hospital-green);
  border-radius: 10px;
  padding: 14px;
  background: var(--panel);
}

.surgery-office-task h4,
.surgery-office-task p {
  margin: 0;
}

.surgery-office-task label {
  display: grid;
  gap: 6px;
  font-family: var(--font-ui);
  font-weight: 700;
}

.surgery-office-task input[type="date"] {
  width: 100%;
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  font-family: var(--font-ui);
}

.surgery-office-quick-days {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.surgery-office-task > .primary {
  justify-self: start;
}

.surgery-print-header {
  display: none;
}

.surgery-import-table-wrap {
  margin-top: 0.9rem;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.surgery-import-table {
  width: 100%;
  min-width: 860px;
  border-collapse: collapse;
  font-family: var(--font-datos);
  font-size: 0.78rem;
}

.surgery-import-table th,
.surgery-import-table td {
  padding: 0.55rem 0.65rem;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.surgery-import-table th {
  position: sticky;
  top: 0;
  background: #f8e9ad;
  color: #3b3320;
  font-family: var(--font-ui);
}

.surgery-import-warnings {
  margin-top: 0.8rem;
  color: var(--muted);
  font-family: var(--font-ui);
}

.surgery-import-warnings li + li {
  margin-top: 0.3rem;
}

.surgery-import-actions {
  align-items: center;
  margin-top: 0.9rem;
}

.surgery-import-actions small,
.surgery-import-applied {
  color: var(--muted);
  font-family: var(--font-ui);
}

.surgery-api-card-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

.surgery-api-card {
  display: grid;
  gap: 10px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 12px;
}

.surgery-api-card p,
.surgery-api-card small,
.surgery-api-record dt,
.surgery-api-record dd {
  color: #475569;
  font-size: 13px;
}

.surgery-api-record {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.surgery-api-record div {
  display: grid;
  gap: 2px;
  min-width: 0;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 8px;
  background: #f8fafc;
}

.surgery-api-record dt {
  font-weight: 800;
}

.surgery-api-record dd {
  margin: 0;
}

.surgery-api-actions {
  display: flex;
  justify-content: flex-end;
}

.surgery-api-close-form {
  display: grid;
  gap: 10px;
  border-top: 1px solid #e2e8f0;
  padding-top: 10px;
}

@media (max-width: 1120px) {
  .surgery-api-kpis {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .surgery-api-toolbar,
  .surgery-api-layout,
  .surgery-office-grid,
  .surgery-api-record {
    grid-template-columns: 1fr;
  }
}

@media print {
  body.printing-surgery-agenda {
    display: block !important;
    grid-template-columns: 1fr !important;
    background: #fff;
    color: #111827;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  body.printing-surgery-agenda .section,
  body.printing-surgery-agenda #surgery > .module-head,
  body.printing-surgery-agenda #surgery > .admission-subnav,
  body.printing-surgery-agenda #surgery > [data-surgery-pane]:not([data-surgery-pane="tablero"]),
  body.printing-surgery-agenda #surgery > [data-surgery-pane="tablero"] > :not(#surgeryApiWorkbench),
  body.printing-surgery-agenda .surgery-api-kpis,
  body.printing-surgery-agenda .surgery-api-toolbar,
  body.printing-surgery-agenda .surgery-office-panel,
  body.printing-surgery-agenda .surgery-api-form,
  body.printing-surgery-agenda .surgery-api-card-list,
  body.printing-surgery-agenda .surgery-agenda-panel > h3,
  body.printing-surgery-agenda .ui-planilla-toolbar,
  body.printing-surgery-agenda .surgery-api-planilla th:last-child,
  body.printing-surgery-agenda .surgery-api-planilla td:last-child {
    display: none !important;
  }

  body.printing-surgery-agenda #surgery,
  body.printing-surgery-agenda #surgery > [data-surgery-pane="tablero"],
  body.printing-surgery-agenda #surgeryApiWorkbench,
  body.printing-surgery-agenda .surgery-api-layout,
  body.printing-surgery-agenda .surgery-agenda-panel,
  body.printing-surgery-agenda .surgery-print-header {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body.printing-surgery-agenda .shell,
  body.printing-surgery-agenda main {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.printing-surgery-agenda .surgery-print-header {
    display: flex !important;
    justify-content: space-between;
    gap: 24px;
    align-items: flex-end;
    margin-bottom: 12px !important;
    padding-bottom: 10px !important;
    border-bottom: 2px solid var(--hospital-green) !important;
  }

  body.printing-surgery-agenda .surgery-print-header h1,
  body.printing-surgery-agenda .surgery-print-header span,
  body.printing-surgery-agenda .surgery-print-header strong {
    display: block;
    margin: 0;
    font-family: var(--font-ui);
  }

  body.printing-surgery-agenda .surgery-print-header h1 {
    font-size: 22px;
  }

  body.printing-surgery-agenda .surgery-print-header > div:last-child {
    text-align: right;
  }

  body.printing-surgery-agenda .ui-planilla-scroll {
    max-height: none !important;
    overflow: visible !important;
    border: 0 !important;
  }

  body.printing-surgery-agenda .surgery-api-planilla .ui-planilla-table {
    width: 100% !important;
    min-width: 0 !important;
    table-layout: auto !important;
    font-size: 9px;
  }

  body.printing-surgery-agenda .surgery-api-planilla thead {
    display: table-header-group;
  }

  body.printing-surgery-agenda .surgery-api-planilla thead tr:nth-child(2) {
    display: none;
  }

  body.printing-surgery-agenda .surgery-api-planilla tr {
    break-inside: avoid;
  }

  body.printing-surgery-agenda .surgery-api-planilla th,
  body.printing-surgery-agenda .surgery-api-planilla td {
    padding: 4px 5px;
    white-space: normal;
  }

  body.printing-surgery-agenda .surgery-api-planilla .celda-larga {
    max-width: none;
    white-space: normal;
  }
}

@media (max-width: 760px) {
  .surgery-api-kpis,
  .surgery-api-form-grid,
  .surgery-api-form-grid.two {
    grid-template-columns: 1fr;
  }
}

/* ====== WORK ORDERS API WORKBENCH ====== */
.work-order-workbench {
  display: grid;
  gap: 14px;
  margin-bottom: 16px;
}

.wo-loading,
.wo-error {
  border: 1px solid #fed7aa;
  background: #fff7ed;
  color: #9a3412;
  border-radius: 8px;
  padding: 10px 12px;
  font-weight: 800;
}

.wo-kpi-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.wo-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 14px;
  align-items: start;
}

.wo-main-panel,
.wo-side-panel {
  display: grid;
  gap: 12px;
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  background: #ffffff;
  padding: 14px;
}

.wo-panel-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.wo-panel-head h3,
.wo-side-panel h3 {
  margin: 0;
  color: #14324f;
}

.wo-panel-head p {
  margin: 3px 0 0;
  color: #64748b;
  font-size: 13px;
}

.wo-toolbar,
.wo-create-form,
.wo-mini-form {
  display: grid;
  gap: 10px;
}

.wo-toolbar {
  grid-template-columns: minmax(180px, 1.4fr) repeat(4, minmax(130px, 1fr)) auto;
  align-items: end;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.wo-toolbar label,
.wo-create-form label,
.wo-mini-form label {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: #475569;
  font-size: 12px;
  font-weight: 800;
}

.wo-toolbar input,
.wo-toolbar select,
.wo-create-form input,
.wo-create-form select,
.wo-create-form textarea,
.wo-mini-form input,
.wo-mini-form select {
  width: 100%;
  min-width: 0;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 8px 9px;
  font: inherit;
  color: #0f172a;
  background: #ffffff;
}

.wo-toolbar-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.wo-list {
  display: grid;
  gap: 12px;
}

.wo-card {
  display: grid;
  gap: 12px;
  border: 1px solid #dbe4ee;
  border-left: 4px solid var(--hospital-green);
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
}

.wo-card-signed {
  border-left-color: #64748b;
  background: #f8fafc;
}

.wo-card-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.wo-card-head span,
.wo-note span,
.wo-facts small {
  color: #64748b;
  font-size: 12px;
}

.wo-card-head h3 {
  margin: 4px 0;
  color: #102a43;
}

.wo-card-head p {
  margin: 0;
  color: #475569;
}

.wo-card-status {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.wo-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.wo-badge-success {
  background: #dcfce7;
  color: #166534;
}

.wo-badge-warning {
  background: #ffedd5;
  color: #9a3412;
}

.wo-badge-danger {
  background: #fee2e2;
  color: #991b1b;
}

.wo-badge-info {
  background: #dbeafe;
  color: #1e3a8a;
}

.wo-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.wo-facts div,
.wo-note {
  display: grid;
  gap: 3px;
  min-width: 0;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #f8fafc;
  padding: 8px;
}

.wo-facts span,
.wo-note strong {
  color: #475569;
  font-size: 12px;
  font-weight: 900;
}

.wo-facts strong {
  color: #0f172a;
}

.wo-actions-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.wo-mini-form {
  border-top: 1px solid #e2e8f0;
  padding-top: 10px;
}

.wo-mini-form .wide,
.wo-create-form .wide {
  grid-column: 1 / -1;
}

.wo-create-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.wo-create-form button {
  grid-column: 1 / -1;
}

@media (max-width: 1160px) {
  .wo-kpi-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .wo-layout,
  .wo-toolbar,
  .wo-actions-grid,
  .wo-facts {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .wo-kpi-strip,
  .wo-create-form {
    grid-template-columns: 1fr;
  }

  .wo-card-head,
  .wo-panel-head {
    flex-direction: column;
  }
}

/* ====== COCINA API WORKBENCH ====== */
.kitchen-workspace-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0 0;
}

.kitchen-workspace-tabs .admission-subnav-button {
  width: 100%;
  justify-content: space-between;
  min-height: 66px;
  padding: 12px 14px;
  text-align: left;
}

.kitchen-tab-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.kitchen-tab-copy b {
  font-size: 15px;
}

.kitchen-tab-copy small {
  color: inherit;
  font-size: 12px;
  font-weight: 650;
  opacity: 0.78;
}

.kitchen-workspace-pane {
  display: grid;
  gap: 16px;
  margin-top: 14px;
}

.kitchen-workspace-pane[hidden] {
  display: none;
}

.kitchen-pane-intro {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  border: 1px solid color-mix(in srgb, var(--fn-border, #bfdbfe) 72%, white);
  border-radius: 10px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--fn-soft, #eff6ff) 72%, white), #ffffff 68%);
  padding: 16px 18px;
}

.kitchen-pane-intro-stock {
  background: linear-gradient(135deg, #f0fdf4, #ffffff 68%);
}

.kitchen-pane-intro h3,
.kitchen-panel-heading h3 {
  margin: 2px 0 0;
  color: #14324f;
}

.kitchen-pane-intro p,
.kitchen-panel-heading p {
  margin: 4px 0 0;
  color: #64748b;
  font-size: 13px;
  line-height: 1.5;
}

.kitchen-pane-kicker {
  color: var(--fn-ink, #166534);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.kitchen-panel-heading {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-end;
  margin-bottom: 14px;
}

.kitchen-panel-heading.compact {
  align-items: flex-start;
}

.kitchen-panel-heading.compact h3 {
  font-size: 17px;
}

.kitchen-service-panel,
.kitchen-inventory-panel,
.kitchen-action-panel {
  overflow: hidden;
}

.kitchen-inventory-summary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.kitchen-inventory-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  align-items: start;
}

.kitchen-control-note {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  align-items: center;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #eff6ff;
  color: #334155;
  padding: 11px 14px;
  font-size: 13px;
}

.kitchen-control-note strong {
  color: #1e3a8a;
}

.kitchen-control-note span::before {
  content: "✓";
  margin-right: 6px;
  color: var(--hospital-green);
  font-weight: 900;
}

.kitchen-control-note-stock {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.kitchen-control-note-stock strong {
  color: #166534;
}

.kitchen-inventory-panel .ui-table-wrapper,
.kitchen-service-panel .ui-table-wrapper {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}

.kitchen-inventory-panel .ui-table,
.kitchen-service-panel .ui-table {
  margin: 0;
}

.kitchen-inventory-panel .ui-table {
  min-width: 720px !important;
}

.kitchen-service-panel .ui-table {
  min-width: 560px !important;
}

.kitchen-stock-code {
  color: #475569;
  font-family: var(--font-datos);
  font-size: 12px;
  font-weight: 800;
}

.kitchen-stock-meta {
  display: block;
  margin-top: 2px;
  color: #64748b;
}

.kitchen-stock-number,
.kitchen-pending-number {
  font-variant-numeric: tabular-nums;
}

.kitchen-stock-number.is-low,
.kitchen-pending-number {
  color: #b45309;
}

.kitchen-api-workbench {
  display: grid;
  gap: 14px;
  margin-bottom: 0;
}

.kitchen-api-loading,
.kitchen-api-error {
  border: 1px solid #fed7aa;
  background: #fff7ed;
  color: #9a3412;
  border-radius: 8px;
  padding: 10px 12px;
  font-weight: 800;
}

.kitchen-api-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(135px, 1fr));
  gap: 10px;
}

.kitchen-api-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 14px;
  align-items: start;
}

.kitchen-api-main,
.kitchen-api-side {
  display: grid;
  gap: 12px;
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  background: #ffffff;
  padding: 14px;
}

.kitchen-api-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.kitchen-api-head h3,
.kitchen-api-side h3 {
  margin: 0;
  color: #14324f;
}

.kitchen-api-head p {
  margin: 3px 0 0;
  color: #64748b;
  font-size: 13px;
}

.kitchen-api-toolbar,
.kitchen-api-prescription {
  display: grid;
  gap: 10px;
}

.kitchen-api-toolbar {
  grid-template-columns: 145px minmax(180px, 1fr) 140px 160px auto;
  align-items: end;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.kitchen-api-toolbar label,
.kitchen-api-prescription label {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: #475569;
  font-size: 12px;
  font-weight: 800;
}

.kitchen-api-toolbar input,
.kitchen-api-toolbar select,
.kitchen-api-prescription input,
.kitchen-api-prescription select,
.kitchen-api-prescription textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 8px 9px;
  font: inherit;
  color: #0f172a;
  background: #ffffff;
}

.kitchen-api-prescription textarea {
  min-height: 76px;
  resize: vertical;
}

.kitchen-api-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.kitchen-results-status {
  border-left: 4px solid var(--hospital-green);
  border-radius: 6px;
  background: #ecfdf5;
  color: #334155;
  padding: 9px 12px;
  font-size: 13px;
}

.kitchen-api-list {
  display: grid;
  gap: 12px;
}

.kitchen-api-card {
  display: grid;
  gap: 10px;
  border: 1px solid #dbe4ee;
  border-left: 4px solid var(--hospital-green);
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
}

.kitchen-api-card.fasting {
  border-left-color: #f97316;
  background: #fff7ed;
}

.kitchen-api-card.diet-pending {
  border-left-color: #d97706;
  background: #fffbeb;
}

.kitchen-api-card header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.kitchen-api-card h3 {
  margin: 4px 0;
  color: #102a43;
}

.kitchen-api-card p,
.kitchen-api-card span {
  color: #475569;
  font-size: 13px;
}

.kitchen-diet-code {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  border-radius: 999px;
  padding: 4px 10px;
  background: #dbeafe;
  color: #1e3a8a;
  font-weight: 900;
}

.kitchen-diet-code.pending {
  background: #fef3c7;
  color: #92400e;
}

.kitchen-food-intake {
  display: grid;
  gap: 7px;
  padding: 10px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #f8fafc;
}

.kitchen-food-intake > strong {
  color: #334155;
  font-size: 12px;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.kitchen-food-intake > div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.kitchen-food-intake p {
  margin: 0;
  color: #334155;
}

.kitchen-food-alert {
  display: inline-flex;
  padding: 4px 8px;
  border-radius: 999px;
  background: #fee2e2;
  color: #991b1b !important;
  font-weight: 800;
}

.kitchen-food-alert.pending {
  background: #fef3c7;
  color: #92400e !important;
}

.kitchen-food-alert.clear {
  background: #dcfce7;
  color: #166534 !important;
}

.kitchen-api-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.kitchen-api-tags span {
  border-radius: 999px;
  background: #f1f5f9;
  color: #334155;
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 800;
}

.kitchen-api-note {
  margin: 0;
  border-left: 3px solid var(--hospital-green);
  padding-left: 8px;
}

.kitchen-meal-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.kitchen-meal {
  display: grid;
  gap: 3px;
  min-height: 58px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #ffffff;
  color: #0f172a;
  padding: 8px;
  text-align: left;
}

.kitchen-meal:not(:disabled):hover,
.kitchen-meal:not(:disabled):focus-visible {
  border-color: var(--hospital-green);
  background: #ecfdf5;
  box-shadow: 0 0 0 3px rgba(20, 83, 45, 0.12);
}

.kitchen-meal.done {
  border-color: #86efac;
  background: #dcfce7;
}

.kitchen-meal:disabled {
  cursor: default;
  opacity: 0.8;
}

.kitchen-meal strong {
  font-size: 13px;
}

.kitchen-meal span {
  font-size: 12px;
}

.kitchen-delivery-dialog {
  width: min(520px, calc(100vw - 24px));
  max-width: 520px;
  border: 0;
  border-radius: 12px;
  padding: 0;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.32);
}

.kitchen-delivery-dialog::backdrop {
  background: rgba(15, 23, 42, 0.55);
}

.kitchen-delivery-dialog section {
  display: grid;
  gap: 12px;
  padding: 20px;
}

.kitchen-delivery-dialog h3,
.kitchen-delivery-dialog p,
.kitchen-delivery-dialog dl,
.kitchen-delivery-dialog dd {
  margin: 0;
}

.kitchen-delivery-dialog dl {
  display: grid;
  gap: 1px;
  overflow: hidden;
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  background: #dbe4ee;
}

.kitchen-delivery-dialog dl div {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 12px;
  background: #ffffff;
  padding: 9px 11px;
}

.kitchen-delivery-dialog dt {
  color: #64748b;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.kitchen-delivery-dialog dd {
  color: #0f172a;
  font-weight: 800;
}

.kitchen-delivery-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.kitchen-api-prescription {
  grid-template-columns: 1fr;
}

.kitchen-api-prescription .wide {
  grid-column: 1 / -1;
}

.nutrition-diagnosis-wizard {
  gap: 12px;
}

.nutrition-diagnosis-workspace,
.kitchen-api-secondary-panels {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.kitchen-api-workbench.nutrition-form-open .kitchen-api-layout {
  grid-template-columns: minmax(0, 1fr);
}

.kitchen-api-workbench.nutrition-form-open .kitchen-api-main,
.kitchen-api-workbench.nutrition-form-open [data-nutrition-diagnosis-launcher],
.kitchen-api-workbench.nutrition-form-open [data-nutrition-secondary-panels] {
  display: none;
}

.kitchen-api-workbench.nutrition-form-open .kitchen-api-side {
  width: 100%;
}

.nutrition-diagnosis-form-header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  border: 1px solid #99f6e4;
  border-radius: 10px;
  padding: 12px;
  background: #f0fdfa;
}

.nutrition-diagnosis-form-header > div {
  display: grid;
  gap: 3px;
}

.nutrition-diagnosis-form-header span,
.nutrition-diagnosis-form-header small {
  color: #475569;
  font-size: 12px;
}

.nutrition-diagnosis-form-header strong {
  color: #134e4a;
  font-size: 18px;
}

.nutrition-diagnosis-status {
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  padding: 10px 12px;
  background: #eff6ff;
  color: #1e3a8a;
  font-size: 13px;
  line-height: 1.45;
}

.nutrition-diagnosis-status[data-variant="working"] {
  border-color: #fde68a;
  background: #fffbeb;
  color: #78350f;
}

.nutrition-diagnosis-status[data-variant="success"] {
  border-color: #a7f3d0;
  background: #ecfdf5;
  color: #065f46;
}

.nutrition-diagnosis-status[data-variant="error"] {
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

.nutrition-diagnosis-wizard[aria-busy="true"] {
  cursor: progress;
}

.nutrition-diagnosis-wizard :disabled {
  cursor: wait;
  opacity: 0.65;
}

.nutrition-diagnosis-progress {
  display: grid;
  gap: 8px;
  color: #334155;
  font-size: 12px;
}

.nutrition-diagnosis-progress ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nutrition-diagnosis-progress li {
  overflow: hidden;
  border-radius: 999px;
  background: #e2e8f0;
  color: #475569;
  padding: 5px 7px;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nutrition-diagnosis-progress li.is-current {
  background: var(--hospital-green);
  color: #ffffff;
}

.nutrition-diagnosis-progress li.is-complete {
  background: #ccfbf1;
  color: #115e59;
}

.nutrition-diagnosis-step {
  display: grid;
  min-width: 0;
  gap: 12px;
  margin: 0;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 14px;
  background: #f8fafc;
}

.nutrition-diagnosis-step[hidden] {
  display: none;
}

.nutrition-diagnosis-step legend {
  padding: 0 6px;
  color: #14324f;
  font-size: 15px;
  font-weight: 900;
}

.nutrition-diagnosis-step > p {
  margin: 0;
  color: #475569;
  font-size: 13px;
}

.nutrition-diagnosis-fields {
  display: grid;
  gap: 10px;
}

.nutrition-diagnosis-fields.paired-fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nutrition-diagnosis-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.nutrition-diagnosis-actions button {
  min-height: 44px;
}

.nutrition-diagnosis-conclusion {
  display: grid;
  gap: 12px;
}

.nutrition-diagnosis-conclusion dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.nutrition-diagnosis-conclusion dl div {
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  padding: 9px;
  background: #ffffff;
}

.nutrition-diagnosis-conclusion dt {
  color: #64748b;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.nutrition-diagnosis-conclusion dd {
  margin: 4px 0 0;
  color: #0f172a;
  font-weight: 900;
}

.nutrition-diagnosis-pes-preview {
  border-left: 4px solid var(--hospital-green);
  border-radius: 8px;
  padding: 12px;
  background: #ecfdf5;
}

.nutrition-diagnosis-pes-preview p {
  margin: 6px 0 0;
  color: #134e4a;
  line-height: 1.45;
}

.nutrition-diagnosis-confirmation {
  display: flex !important;
  gap: 9px !important;
  align-items: flex-start;
}

.nutrition-diagnosis-confirmation input {
  width: auto;
  margin-top: 3px;
}

.nutrition-diagnosis-criteria {
  display: grid;
  gap: 8px;
  margin: 0;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 10px;
  background: #ffffff;
}

.nutrition-diagnosis-criteria legend {
  padding: 0 4px;
  color: #334155;
  font-size: 12px;
  font-weight: 800;
}

.nutrition-diagnosis-criteria label {
  display: flex !important;
  gap: 8px !important;
  align-items: flex-start;
}

.nutrition-diagnosis-criteria input {
  width: auto;
  margin-top: 3px;
}

.nutrition-diagnosis-criteria label:has(select),
.nutrition-diagnosis-criteria label:has(textarea),
.nutrition-diagnosis-criteria label:has(input[type="number"]),
.nutrition-diagnosis-criteria label:has(input[type="text"]) {
  display: grid !important;
}

.nutrition-diagnosis-severity-suggestion,
.nutrition-refeeding-risk {
  display: grid;
  gap: 4px;
  border: 1px solid #f59e0b;
  border-radius: 8px;
  padding: 10px;
  background: #fffbeb;
  color: #78350f;
}

.nutrition-diagnosis-severity-suggestion span,
.nutrition-refeeding-risk span {
  font-size: 12px;
  line-height: 1.4;
}

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

.nutrition-diagnosis-note {
  color: #475569;
  font-size: 12px;
}

.kitchen-api-rules {
  display: grid;
  gap: 6px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.kitchen-api-rules strong {
  color: #14324f;
}

.kitchen-api-rules span {
  color: #475569;
  font-size: 13px;
}

@media (max-width: 1160px) {
  .kitchen-api-kpis {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .kitchen-api-layout,
  .kitchen-api-toolbar,
  .kitchen-meal-grid,
  .kitchen-inventory-actions {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .kitchen-api-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .kitchen-api-kpi:last-child {
    grid-column: 1 / -1;
  }

  .kitchen-workspace-tabs {
    grid-template-columns: 1fr;
  }

  .kitchen-workspace-tabs .admission-subnav-button {
    min-height: 58px;
  }

  .kitchen-inventory-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .kitchen-pane-intro,
  .kitchen-panel-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .kitchen-api-card header,
  .kitchen-api-head {
    flex-direction: column;
  }

  .nutrition-diagnosis-progress ol,
  .nutrition-diagnosis-fields.paired-fields,
  .nutrition-electrolytes,
  .nutrition-diagnosis-conclusion dl {
    grid-template-columns: 1fr;
  }

  .nutrition-diagnosis-progress ol {
    grid-template-columns: repeat(auto-fit, minmax(56px, 1fr));
  }

  .nutrition-diagnosis-progress li {
    padding-inline: 4px;
    font-size: 10px;
  }

  .nutrition-diagnosis-step {
    padding: 12px;
    scroll-margin-top: 96px;
  }

  .nutrition-diagnosis-form-header {
    display: grid;
  }

  .nutrition-diagnosis-form-header button {
    width: 100%;
  }

  .kitchen-api-workbench.nutrition-form-open .kitchen-api-side {
    padding: 10px;
  }

  .kitchen-api-workbench.nutrition-form-open .nutrition-diagnosis-progress {
    position: sticky;
    z-index: 2;
    top: 0;
    border-bottom: 1px solid #dbe4ee;
    padding: 8px 0;
    background: #ffffff;
  }

  .nutrition-diagnosis-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .nutrition-diagnosis-actions button {
    width: 100%;
  }

  .kitchen-delivery-dialog dl div {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .kitchen-delivery-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .kitchen-delivery-actions button {
    width: 100%;
  }
}

@media (max-width: 340px) {
  .kitchen-api-kpis,
  .kitchen-inventory-summary {
    grid-template-columns: 1fr;
  }

  .kitchen-api-kpi:last-child {
    grid-column: auto;
  }
}

/* ====== MUCAMAS API WORKBENCH ====== */
.housekeeping-api-workbench {
  display: grid;
  gap: 14px;
  margin-bottom: 16px;
}

.housekeeping-api-loading,
.housekeeping-api-error {
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  color: #14324f;
  border-radius: 8px;
  padding: 10px 12px;
  font-weight: 800;
}

.housekeeping-api-kpis {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.housekeeping-api-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 14px;
  align-items: start;
}

.housekeeping-api-main,
.housekeeping-api-side {
  display: grid;
  gap: 12px;
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  background: #ffffff;
  padding: 14px;
}

.housekeeping-api-head,
.housekeeping-api-task header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.housekeeping-api-head h3,
.housekeeping-api-side h3,
.housekeeping-api-task h3 {
  margin: 0;
  color: #14324f;
}

.housekeeping-api-head p,
.housekeeping-api-task p {
  margin: 4px 0 0;
  color: #64748b;
  font-size: 13px;
}

.housekeeping-api-toolbar,
.housekeeping-api-form {
  display: grid;
  gap: 10px;
}

.housekeeping-api-toolbar {
  grid-template-columns: minmax(180px, 1.3fr) repeat(3, minmax(120px, 1fr)) auto;
  align-items: end;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.housekeeping-api-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.housekeeping-api-form .wide,
.housekeeping-checklist {
  grid-column: 1 / -1;
}

.housekeeping-api-form .inline {
  display: flex;
  align-items: center;
}

.housekeeping-api-toolbar label,
.housekeeping-api-form label {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: #475569;
  font-size: 12px;
  font-weight: 800;
}

.housekeeping-api-toolbar input,
.housekeeping-api-toolbar select,
.housekeeping-api-form input,
.housekeeping-api-form select,
.housekeeping-api-form textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 8px 9px;
  font: inherit;
  color: #0f172a;
  background: #ffffff;
}

.housekeeping-api-actions,
.housekeeping-api-badges,
.housekeeping-api-task-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}

.housekeeping-api-actions,
.housekeeping-api-badges {
  justify-content: flex-end;
}

.housekeeping-api-list,
.housekeeping-api-routines {
  display: grid;
  gap: 10px;
}

.housekeeping-api-task,
.housekeeping-api-routines article {
  display: grid;
  gap: 9px;
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  background: #ffffff;
  padding: 11px;
}

.housekeeping-api-task {
  border-left: 4px solid var(--hospital-green);
}

.housekeeping-api-task.blocks {
  border-left-color: #ef4444;
  background: #fff7ed;
}

.housekeeping-api-task header span,
.housekeeping-api-task-actions span,
.housekeeping-api-routines span,
.housekeeping-api-routines small {
  color: #475569;
  font-size: 13px;
}

.housekeeping-api-note {
  margin: 0;
  border-left: 3px solid var(--hospital-green);
  padding-left: 8px;
  color: #475569;
  font-size: 13px;
}

.housekeeping-api-badge {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  border-radius: 999px;
  padding: 3px 9px;
  font-size: 12px;
  font-weight: 900;
}

.housekeeping-api-badge-danger {
  background: #fee2e2;
  color: #991b1b;
}

.housekeeping-api-badge-warning {
  background: #fef3c7;
  color: #92400e;
}

.housekeeping-api-badge-success {
  background: #dcfce7;
  color: #166534;
}

.housekeeping-api-badge-info {
  background: #dbeafe;
  color: #1e3a8a;
}

.housekeeping-checklist {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.housekeeping-checklist label {
  display: flex;
  align-items: center;
  gap: 6px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #ffffff;
  padding: 7px;
}

.housekeeping-api-routines article {
  background: #f8fafc;
}

.housekeeping-api-routines strong {
  color: #14324f;
}

@media (max-width: 1160px) {
  .housekeeping-api-kpis {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .housekeeping-api-layout,
  .housekeeping-api-toolbar {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .housekeeping-api-kpis,
  .housekeeping-api-form,
  .housekeeping-checklist {
    grid-template-columns: 1fr;
  }

  .housekeeping-api-head,
  .housekeeping-api-task header,
  .housekeeping-api-task-actions {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ====== LAVADERO API WORKBENCH ====== */
.laundry-api-workbench {
  display: grid;
  gap: 14px;
  margin-bottom: 16px;
}

.laundry-api-loading,
.laundry-api-error {
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  color: #1e3a8a;
  border-radius: 8px;
  padding: 10px 12px;
  font-weight: 800;
}

.laundry-api-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.laundry-api-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 14px;
  align-items: start;
}

.laundry-api-main,
.laundry-api-side {
  display: grid;
  gap: 12px;
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  background: #ffffff;
  padding: 14px;
}

.laundry-api-head,
.laundry-api-stock header,
.laundry-api-request header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.laundry-api-head h3,
.laundry-api-side h3,
.laundry-api-columns h3,
.laundry-api-stock h3,
.laundry-api-request h3 {
  margin: 0;
  color: #14324f;
}

.laundry-api-head p,
.laundry-api-request p {
  margin: 4px 0 0;
  color: #64748b;
  font-size: 13px;
}

.laundry-api-toolbar,
.laundry-api-form {
  display: grid;
  gap: 10px;
}

.laundry-api-toolbar {
  grid-template-columns: minmax(180px, 1.3fr) repeat(3, minmax(120px, 1fr)) auto;
  align-items: end;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.laundry-api-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.laundry-api-form .wide {
  grid-column: 1 / -1;
}

.laundry-api-toolbar label,
.laundry-api-form label {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: #475569;
  font-size: 12px;
  font-weight: 800;
}

.laundry-api-toolbar input,
.laundry-api-toolbar select,
.laundry-api-form input,
.laundry-api-form select,
.laundry-api-form textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 8px 9px;
  font: inherit;
  color: #0f172a;
  background: #ffffff;
}

.laundry-api-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.laundry-api-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.laundry-api-list,
.laundry-api-movements {
  display: grid;
  gap: 10px;
}

.laundry-api-stock,
.laundry-api-request,
.laundry-api-movements article {
  display: grid;
  gap: 9px;
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  background: #ffffff;
  padding: 11px;
}

.laundry-api-stock {
  border-left: 4px solid var(--hospital-celeste);
}

.laundry-api-stock.is-low {
  border-left-color: #ef4444;
  background: #fff7ed;
}

.laundry-api-stock header span,
.laundry-api-request header span,
.laundry-api-movements span,
.laundry-api-movements small {
  color: #475569;
  font-size: 13px;
}

.laundry-api-meter {
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #e2e8f0;
}

.laundry-api-meter span {
  display: block;
  width: var(--laundry-api-level);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--hospital-celeste), var(--hospital-green));
}

.laundry-api-stock-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}

.laundry-api-stock-grid span {
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  padding: 7px;
  color: #475569;
  font-size: 12px;
}

.laundry-api-stock-grid strong {
  display: block;
  color: #14324f;
  font-size: 16px;
}

.laundry-api-request {
  border-left: 4px solid var(--hospital-green);
}

.laundry-api-request-badges,
.laundry-api-request-foot {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
}

.laundry-api-request-foot {
  justify-content: space-between;
}

.laundry-api-badge {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  border-radius: 999px;
  padding: 3px 9px;
  font-size: 12px;
  font-weight: 900;
}

.laundry-api-badge-danger {
  background: #fee2e2;
  color: #991b1b;
}

.laundry-api-badge-warning {
  background: #fef3c7;
  color: #92400e;
}

.laundry-api-badge-success {
  background: #dcfce7;
  color: #166534;
}

.laundry-api-badge-info {
  background: #dbeafe;
  color: #1e3a8a;
}

.laundry-api-movements article {
  background: #f8fafc;
}

.laundry-api-movements strong {
  color: #14324f;
}

@media (max-width: 1160px) {
  .laundry-api-kpis {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .laundry-api-layout,
  .laundry-api-toolbar,
  .laundry-api-columns {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .laundry-api-kpis,
  .laundry-api-form,
  .laundry-api-stock-grid {
    grid-template-columns: 1fr;
  }

  .laundry-api-head,
  .laundry-api-stock header,
  .laundry-api-request header,
  .laundry-api-request-foot {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ====== MANTENIMIENTO API WORKBENCH ====== */
.maintenance-api-workbench {
  display: grid;
  gap: 14px;
  margin-bottom: 16px;
}

.maintenance-api-loading,
.maintenance-api-error {
  border: 1px solid #fecaca;
  background: #fff1f2;
  color: #991b1b;
  border-radius: 8px;
  padding: 10px 12px;
  font-weight: 800;
}

.maintenance-api-kpis {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.maintenance-api-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 14px;
  align-items: start;
}

.maintenance-api-main,
.maintenance-api-side {
  display: grid;
  gap: 12px;
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  background: #ffffff;
  padding: 14px;
}

.maintenance-api-head,
.maintenance-api-card header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.maintenance-api-head h3,
.maintenance-api-side h3,
.maintenance-api-card h3 {
  margin: 0;
  color: #14324f;
}

.maintenance-api-head p,
.maintenance-api-card p {
  margin: 4px 0 0;
  color: #64748b;
  font-size: 13px;
}

.maintenance-api-toolbar,
.maintenance-api-form,
.maintenance-api-close {
  display: grid;
  gap: 10px;
}

.maintenance-api-toolbar {
  grid-template-columns: minmax(180px, 1.4fr) repeat(3, minmax(130px, 1fr)) auto;
  align-items: end;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.maintenance-api-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  padding: 10px;
}

.maintenance-api-form .wide {
  grid-column: 1 / -1;
}

.maintenance-api-toolbar label,
.maintenance-api-form label {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: #475569;
  font-size: 12px;
  font-weight: 800;
}

.maintenance-api-toolbar input,
.maintenance-api-toolbar select,
.maintenance-api-form input,
.maintenance-api-form select,
.maintenance-api-form textarea,
.maintenance-api-close input {
  width: 100%;
  min-width: 0;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 8px 9px;
  font: inherit;
  color: #0f172a;
  background: #ffffff;
}

.maintenance-api-form button {
  align-self: end;
}

.maintenance-api-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.maintenance-api-list {
  display: grid;
  gap: 12px;
}

.maintenance-api-card {
  display: grid;
  gap: 10px;
  border: 1px solid #dbe4ee;
  border-left: 4px solid var(--hospital-green);
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
}

.maintenance-api-card.is-done {
  border-left-color: #64748b;
  background: #f8fafc;
}

.maintenance-api-card-badges {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.maintenance-api-badge {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  border-radius: 999px;
  padding: 3px 9px;
  font-size: 12px;
  font-weight: 900;
}

.maintenance-api-badge-danger {
  background: #fee2e2;
  color: #991b1b;
}

.maintenance-api-badge-warning {
  background: #fef3c7;
  color: #92400e;
}

.maintenance-api-badge-success {
  background: #dcfce7;
  color: #166534;
}

.maintenance-api-badge-info {
  background: #dbeafe;
  color: #1e3a8a;
}

.maintenance-api-badge-neutral {
  background: #f1f5f9;
  color: #334155;
}

.maintenance-api-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.maintenance-api-meta span,
.maintenance-api-note {
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
  padding: 8px;
  color: #475569;
  font-size: 13px;
}

.maintenance-api-meta strong {
  display: block;
  color: #14324f;
  font-size: 12px;
  text-transform: uppercase;
}

.maintenance-api-close {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.maintenance-api-assets {
  display: grid;
  gap: 8px;
}

.maintenance-api-assets article {
  display: grid;
  gap: 3px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 9px;
  background: #ffffff;
}

.maintenance-api-assets strong {
  color: #14324f;
}

.maintenance-api-assets span,
.maintenance-api-assets small {
  color: #475569;
}

@media (max-width: 1160px) {
  .maintenance-api-kpis {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .maintenance-api-layout,
  .maintenance-api-toolbar,
  .maintenance-api-meta,
  .maintenance-api-close {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .maintenance-api-kpis,
  .maintenance-api-form {
    grid-template-columns: 1fr;
  }

  .maintenance-api-head,
  .maintenance-api-card header {
    flex-direction: column;
  }
}

/* ====== AUDITORIA OPERATIVA ====== */
.audit-workbench {
  display: grid;
  gap: 12px;
  margin-bottom: 16px;
}

.audit-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.audit-kpis article {
  border: 1px solid #dbe5ed;
  border-radius: 8px;
  padding: 12px;
  background: #f8fafc;
}

.audit-kpis span {
  display: block;
  color: #64748b;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.audit-kpis strong {
  display: block;
  margin-top: 4px;
  color: #14324f;
  font-size: 22px;
}

.audit-filters {
  display: grid;
  grid-template-columns: repeat(5, minmax(130px, 1fr)) minmax(260px, auto);
  gap: 10px;
  align-items: end;
  border: 1px solid #dbe5ed;
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
}

.audit-filters label {
  display: grid;
  gap: 5px;
  color: #64748b;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.audit-filters input,
.audit-filters select {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  padding: 9px 10px;
  color: #14324f;
  font-size: 13px;
  text-transform: none;
}

.audit-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.audit-banner {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 13px;
}

.audit-banner strong {
  color: #14324f;
}

.audit-banner.warn {
  border: 1px solid #f3c36a;
  background: #fff8e7;
}

.audit-banner.neutral {
  border: 1px solid #bfdbfe;
  background: #eff6ff;
}

.audit-banner.danger {
  border: 1px solid #fca5a5;
  background: #fff1f2;
}

.audit-ledger-entry {
  align-items: flex-start;
}

.audit-ledger-entry em {
  display: block;
  margin-top: 4px;
  color: #64748b;
  font-size: 11px;
  font-style: normal;
}

@media (max-width: 1160px) {
  .audit-kpis,
  .audit-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .audit-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 760px) {
  .audit-kpis,
  .audit-filters {
    grid-template-columns: 1fr;
  }
}

/* ====== SEGURIDAD API WORKBENCH ====== */
.security-api-workbench {
  display: grid;
  gap: 14px;
  margin-bottom: 16px;
}

.security-api-kpis {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.security-api-kpis article,
.security-api-policies article,
.security-api-user-card {
  border: 1px solid #dbe5ed;
  border-radius: 8px;
  background: #ffffff;
}

.security-api-kpis article {
  padding: 12px;
  background: #f8fafc;
}

.security-api-kpis span,
.security-api-filters label span,
.security-api-note label span {
  display: block;
  color: #64748b;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.security-api-kpis strong {
  display: block;
  margin-top: 4px;
  color: #14324f;
  font-size: 22px;
}

.security-api-filters {
  display: grid;
  grid-template-columns: minmax(180px, 1.3fr) repeat(4, minmax(130px, 1fr)) minmax(250px, auto);
  gap: 10px;
  align-items: end;
  border: 1px solid #dbe5ed;
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
}

.security-api-filters label,
.security-api-note label {
  display: grid;
  gap: 5px;
}

.security-api-filters input,
.security-api-filters select,
.security-api-note select,
.security-api-note textarea {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  padding: 9px 10px;
  color: #14324f;
  font-size: 13px;
}

.security-api-note textarea {
  min-height: 92px;
  resize: vertical;
}

.security-api-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.security-api-meta {
  color: #64748b;
  font-size: 12px;
}

.security-api-policies {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.security-api-policies article {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
  padding: 12px;
}

.security-api-policies strong,
.security-api-user-card strong {
  display: block;
  color: #14324f;
}

.security-api-policies small,
.security-api-user-card small {
  display: block;
  margin-top: 3px;
  color: #64748b;
  line-height: 1.35;
}

.security-api-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(300px, 0.8fr);
  gap: 14px;
}

.security-api-users {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.security-api-user-card {
  display: grid;
  gap: 12px;
  padding: 12px;
}

.security-api-user-card header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.security-api-user-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.security-api-user-grid span {
  border-radius: 7px;
  background: #f8fafc;
  padding: 8px;
  color: #14324f;
  font-size: 12px;
}

.security-api-user-grid b {
  display: block;
  margin-bottom: 3px;
  color: #64748b;
  font-size: 10px;
  text-transform: uppercase;
}

.security-api-panel {
  display: grid;
  gap: 10px;
}

.security-api-note {
  display: grid;
  gap: 10px;
}

@media (max-width: 1160px) {
  .security-api-kpis,
  .security-api-policies {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .security-api-filters,
  .security-api-layout,
  .security-api-users {
    grid-template-columns: 1fr;
  }

  .security-api-toolbar {
    justify-content: flex-start;
  }
}

@media (max-width: 760px) {
  .security-api-kpis,
  .security-api-policies,
  .security-api-user-grid {
    grid-template-columns: 1fr;
  }
}

/* ====== REPORTES API WORKBENCH ====== */
.report-api-workbench {
  display: grid;
  gap: 14px;
}

.report-api-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.report-api-kpis article {
  border: 1px solid #dbe5ed;
  border-radius: 8px;
  padding: 12px;
  background: #f8fafc;
}

.report-api-kpis span {
  display: block;
  color: #64748b;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.report-api-kpis strong {
  display: block;
  margin-top: 4px;
  color: #14324f;
  font-size: 22px;
}

.report-api-filters {
  display: grid;
  grid-template-columns: minmax(180px, 1.4fr) repeat(3, minmax(140px, 1fr)) minmax(250px, auto);
  gap: 10px;
  align-items: end;
  border: 1px solid #dbe5ed;
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
}

.report-api-filters label {
  display: grid;
  gap: 5px;
  color: #64748b;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.report-api-filters input,
.report-api-filters select {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  padding: 9px 10px;
  color: #14324f;
  font-size: 13px;
  text-transform: none;
}

.report-api-toolbar,
.report-api-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.report-api-execution {
  display: grid;
  gap: 4px;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  padding: 12px;
  background: #eff6ff;
  color: #14324f;
}

.report-api-execution small {
  color: #64748b;
}

.report-api-list {
  display: grid;
  border: 1px solid #dbe5ed;
  border-radius: 8px;
  overflow: auto;
  background: #ffffff;
}

.report-api-row {
  display: grid;
  grid-template-columns: minmax(110px, 0.75fr) minmax(260px, 1.65fr) minmax(160px, 1fr) minmax(130px, 0.75fr) minmax(120px, 0.7fr) minmax(180px, auto);
  gap: 12px;
  align-items: center;
  min-width: 980px;
  padding: 12px;
  border-top: 1px solid #e5edf4;
}

.report-api-row:first-child {
  border-top: 0;
}

.report-api-row-head {
  background: #edf5f4;
  color: #475467;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.report-api-row strong,
.report-api-row span,
.report-api-row small {
  display: block;
}

.report-api-row strong {
  color: #14324f;
}

.report-api-row small {
  margin-top: 3px;
  color: #64748b;
  line-height: 1.35;
}

.hr-legajos-list {
  display: grid;
  border: 1px solid #dbe5ed;
  border-radius: 8px;
  overflow: auto;
  background: #ffffff;
}

.hr-legajo-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.45fr) minmax(130px, 0.8fr) minmax(180px, 1fr) minmax(140px, 0.85fr) minmax(80px, 0.45fr) minmax(115px, 0.65fr) minmax(110px, 0.65fr) minmax(120px, 0.65fr) minmax(110px, auto);
  gap: 12px;
  align-items: center;
  min-width: 1220px;
  padding: 12px;
  border-top: 1px solid #e5edf4;
}

.hr-legajo-row:first-child {
  border-top: 0;
}

.hr-legajo-row.is-pending {
  border-left: 4px solid var(--hospital-yellow);
  background: #fffaf0;
}

.hr-legajo-row.is-incomplete {
  border-left: 4px solid #c2410c;
  background: #fff7ed;
}

.hr-legajo-row.is-active {
  border-left: 4px solid var(--hospital-green);
  background: #f6fffb;
}

.hr-legajo-row.is-inactive {
  border-left: 4px solid #64748b;
  background: #f8fafc;
}

.hr-legajos-list .ops-list-row-head {
  background: #edf5f4;
  color: #475467;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.hr-legajo-row strong,
.hr-legajo-row span,
.hr-legajo-row small {
  display: block;
}

.hr-legajo-row strong {
  color: #14324f;
}

.hr-legajo-row small {
  margin-top: 3px;
  color: #64748b;
  line-height: 1.35;
}

.padron-bahia-workbench {
  display: grid;
  gap: 14px;
}

.padron-bahia-list {
  display: grid;
  border: 1px solid #dbe5ed;
  border-radius: 8px;
  overflow: auto;
  background: #ffffff;
}

.padron-bahia-row {
  display: grid;
  grid-template-columns: minmax(230px, 1.3fr) minmax(110px, 0.65fr) minmax(150px, 0.8fr) minmax(140px, 0.8fr) minmax(80px, 0.45fr) minmax(70px, 0.35fr) minmax(170px, 0.9fr) minmax(120px, auto);
  gap: 12px;
  align-items: center;
  min-width: 1080px;
  padding: 12px;
  border-top: 1px solid #e5edf4;
}

.padron-bahia-row:first-child {
  border-top: 0;
}

.padron-bahia-row.is-selected {
  background: #eef8f5;
}

.padron-bahia-list .ops-list-row-head {
  background: #edf5f4;
  color: #475467;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.padron-bahia-row strong,
.padron-bahia-row span,
.padron-bahia-row small {
  display: block;
}

.padron-bahia-row strong {
  color: #14324f;
}

.padron-bahia-row small {
  margin-top: 3px;
  color: #64748b;
  line-height: 1.35;
}

.padron-bahia-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.padron-bahia-pagination {
  justify-content: flex-end;
  margin-top: 12px;
}

.padron-bahia-detail .item {
  overflow-wrap: anywhere;
}

.finance-close-status.has-warning {
  border-color: #fed7aa;
  background: #fff7ed;
}

@media (max-width: 1160px) {
  .report-api-kpis,
  .report-api-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .report-api-toolbar {
    justify-content: flex-start;
  }

  .report-api-row {
    min-width: 920px;
  }
}

@media (max-width: 760px) {
  .report-api-kpis,
  .report-api-filters {
    grid-template-columns: 1fr;
  }

  .hr-legajos-layout {
    grid-template-columns: 1fr;
  }

  .hr-profile-card {
    position: static;
  }

  .hr-legajos-list {
    overflow: visible;
    border: 0;
    background: transparent;
    gap: 10px;
  }

  .hr-legajos-list .ops-list-row-head {
    display: none;
  }

  .hr-legajo-row {
    min-width: 0;
    grid-template-columns: 1fr;
    align-items: start;
    gap: 10px;
    border: 1px solid #dbe5ed;
    border-radius: 8px;
    background: #ffffff;
    padding: 12px;
  }

  .hr-legajo-row > span {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .hr-legajo-row > span:first-child,
  .hr-legajo-row > span:nth-child(9) {
    grid-column: 1 / -1;
  }

  .hr-legajo-row > span::before {
    content: "";
    display: block;
    margin-bottom: 3px;
    color: #64748b;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
  }

  .hr-legajo-row > span:nth-child(1)::before { content: "Persona"; }
  .hr-legajo-row > span:nth-child(2)::before { content: "Legajo"; }
  .hr-legajo-row > span:nth-child(3)::before { content: "Sector"; }
  .hr-legajo-row > span:nth-child(4)::before { content: "Categoria"; }
  .hr-legajo-row > span:nth-child(5)::before { content: "Horas"; }
  .hr-legajo-row > span:nth-child(6)::before { content: "Sueldo"; }
  .hr-legajo-row > span:nth-child(7)::before { content: "Ingreso"; }
  .hr-legajo-row > span:nth-child(8)::before { content: "Estado"; }
  .hr-legajo-row > span:nth-child(9)::before { content: "Acciones"; }

  .hr-legajo-row .ui-btn {
    width: 100%;
    justify-content: center;
  }

  .padron-bahia-list {
    overflow: visible;
    border: 0;
    background: transparent;
    gap: 10px;
  }

  .padron-bahia-list .ops-list-row-head {
    display: none;
  }

  .padron-bahia-row {
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
    gap: 10px;
    border: 1px solid #dbe5ed;
    border-radius: 8px;
    background: #ffffff;
    padding: 12px;
  }

  .padron-bahia-row > span {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .padron-bahia-row > span:first-child,
  .padron-bahia-row > span:nth-child(7),
  .padron-bahia-row > span:nth-child(8) {
    grid-column: 1 / -1;
  }

  .padron-bahia-row > span::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 3px;
    color: #64748b;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
  }

  .padron-bahia-row .primary,
  .padron-bahia-row .ghost {
    width: 100%;
    justify-content: center;
  }

  .padron-bahia-pagination {
    justify-content: stretch;
  }

  .padron-bahia-pagination button,
  .padron-bahia-pagination .appointment-filter-summary {
    flex: 1 1 100%;
    text-align: center;
  }
}

@media (max-width: 1160px) {
  .automation-api-kpis,
  .automation-api-filters,
  .automation-api-layout,
  .integration-api-grid,
  .form-api-kpis,
  .form-api-layout,
  .form-api-columns,
  .clinical-api-kpis,
  .clinical-api-lanes,
  .clinical-api-layout,
  .clinical-api-filters,
  .billing-api-kpis,
  .billing-api-layout,
  .billing-api-filters,
  .pami-api-kpis,
  .pami-api-layout,
  .pami-api-filters,
  .prevention-api-kpis,
  .prevention-api-layout,
  .prevention-api-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .automation-api-kpis,
  .automation-api-filters,
  .automation-api-layout,
  .integration-api-grid,
  .form-api-kpis,
  .form-api-layout,
  .form-api-columns,
  .clinical-api-kpis,
  .clinical-api-lanes,
  .clinical-api-layout,
  .clinical-api-filters,
  .clinical-api-episode-head,
  .billing-api-kpis,
  .billing-api-layout,
  .billing-api-filters,
  .pami-api-kpis,
  .pami-api-layout,
  .pami-api-filters,
  .prevention-api-kpis,
  .prevention-api-layout,
  .prevention-api-filters,
  .prevention-api-list article {
    grid-template-columns: 1fr;
  }
}

.day-hospital-workbench {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.day-hospital-head,
.day-hospital-source {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #ffffff;
}

.day-hospital-head h3 {
  margin: 4px 0;
}

.day-hospital-head p,
.day-hospital-source span,
.day-hospital-source small {
  margin: 0;
  color: var(--muted);
}

.day-hospital-summary {
  grid-template-columns: repeat(6, minmax(130px, 1fr));
}

.day-hospital-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.day-hospital-tabs button {
  border: 1px solid var(--border);
  background: #ffffff;
  border-radius: 8px;
  padding: 9px 12px;
  color: var(--ink);
  font-weight: 700;
  cursor: pointer;
}

.day-hospital-tabs button.active {
  background: var(--brand-dark);
  color: #ffffff;
  border-color: var(--brand-dark);
}

.day-hospital-toolbar {
  display: grid;
  grid-template-columns: 160px minmax(220px, 1fr) 200px 180px auto auto;
  gap: 10px;
  align-items: end;
}

.day-hospital-toolbar label,
.day-hospital-detail-grid {
  display: grid;
  gap: 4px;
}

.day-hospital-toolbar span,
.day-hospital-detail-grid span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0;
}

.day-hospital-toolbar input,
.day-hospital-toolbar select {
  width: 100%;
  min-height: 40px;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 8px 10px;
  background: #ffffff;
  color: var(--ink);
}

.day-hospital-stack {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.day-hospital-table {
  display: grid;
  gap: 8px;
}

.day-hospital-row {
  display: grid;
  grid-template-columns: minmax(260px, 1.4fr) minmax(160px, 1fr) minmax(130px, 0.8fr) 120px minmax(210px, auto);
  gap: 10px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #ffffff;
}

.day-hospital-row.header {
  background: #f7fafc;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.day-hospital-row.selected {
  border-color: var(--brand);
  box-shadow: 0 0 0 2px rgba(14, 116, 144, 0.14);
}

.day-hospital-main {
  display: grid;
  gap: 3px;
  text-align: left;
  border: 0;
  background: transparent;
  color: var(--ink);
  padding: 0;
  cursor: pointer;
  font: inherit;
}

.day-hospital-main small {
  color: var(--muted);
}

.day-hospital-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-start;
}

.day-hospital-actions.wide {
  margin-top: 12px;
}

.day-hospital-detail {
  position: static;
  top: auto;
  display: grid;
  gap: 10px;
}

.day-hospital-detail-grid {
  grid-template-columns: minmax(90px, auto) 1fr;
  gap: 7px 10px;
}

.day-hospital-card-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
}

.day-hospital-card {
  display: grid;
  gap: 10px;
  align-content: start;
}

.day-hospital-card h3 {
  margin: 0;
}

.day-hospital-card p {
  margin: 0;
  color: var(--muted);
}

.day-hospital-token {
  color: var(--muted);
  text-align: right;
}

.clinical-record-api-toolbar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto auto;
  gap: 10px;
  align-items: end;
}

.clinical-record-api-toolbar .clinical-search-field {
  margin: 0;
}

.clinical-record-api-events {
  margin-top: 14px;
  border-top: 1px solid var(--border);
  padding-top: 12px;
}

.clinical-record-api-events h4 {
  margin: 0 0 10px;
}

.clinical-record-timeline {
  display: grid;
  gap: 8px;
}

.clinical-record-timeline div {
  display: grid;
  gap: 3px;
  padding: 9px 10px;
  border-left: 3px solid var(--brand);
  border-radius: 6px;
  background: #f8fafc;
}

.clinical-record-timeline span,
.clinical-record-timeline small {
  color: var(--muted);
}

.doctor-api-toolbar {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: end;
}

.doctor-api-filters,
.doctor-api-create {
  display: grid;
  gap: 10px;
}

.doctor-api-filters {
  grid-template-columns: minmax(220px, 1fr) 160px 220px auto auto;
  align-items: end;
}

.doctor-api-create {
  margin-top: 14px;
  grid-template-columns: repeat(6, minmax(120px, 1fr));
}

.doctor-api-create .wide {
  grid-column: span 2;
}

.doctor-api-filters label,
.doctor-api-create label {
  display: grid;
  gap: 5px;
  font-size: 12px;
  color: var(--muted);
}

.doctor-api-filters input,
.doctor-api-filters select,
.doctor-api-create input,
.doctor-api-create select {
  min-height: 38px;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 8px 10px;
  background: #fff;
  color: var(--text);
}

.doctor-api-card {
  display: grid;
  gap: 10px;
}

.doctor-api-table {
  width: 100%;
}

.doctor-api-table .ui-table-header,
.doctor-api-row {
  grid-template-columns: minmax(210px, 1.35fr) minmax(160px, 1fr) minmax(130px, 0.8fr) minmax(180px, 1.1fr) minmax(150px, 0.85fr) minmax(180px, auto);
}

.doctor-api-row {
  display: grid;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 12px;
}

.doctor-api-row strong,
.doctor-api-row span,
.doctor-api-row small {
  display: block;
  overflow-wrap: anywhere;
}

.doctor-api-row span,
.doctor-api-row small {
  color: var(--muted);
}

.doctor-api-schedules {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.doctor-api-schedules span {
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 4px 8px;
  color: var(--muted);
  font-size: 12px;
  background: #f8fafc;
}

.doctor-api-actions {
  justify-content: space-between;
}

.doctor-api-warning {
  border-color: #f59e0b;
  background: #fffbeb;
}

.doctor-shift-toolbar {
  display: grid;
  grid-template-columns: minmax(300px, 1fr) minmax(260px, 420px);
  gap: 14px;
  align-items: start;
}

.doctor-shift-filters,
.doctor-shift-create {
  display: grid;
  gap: 10px;
  align-items: end;
}

.doctor-shift-filters {
  grid-template-columns: 160px minmax(160px, 1fr) auto auto;
}

.doctor-shift-create {
  margin-top: 14px;
  grid-template-columns: minmax(220px, 1.4fr) repeat(4, minmax(120px, 1fr)) auto;
}

.doctor-shift-filters label,
.doctor-shift-create label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 12px;
}

.doctor-shift-filters input,
.doctor-shift-create input,
.doctor-shift-create select {
  min-height: 38px;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 8px 10px;
  background: #fff;
  color: var(--text);
}

.doctor-shift-kpis,
.doctor-shift-grid {
  display: grid;
  gap: 10px;
}

.doctor-shift-kpis {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.doctor-shift-kpis article {
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 10px;
  background: #f8fafc;
}

.doctor-shift-kpis span,
.doctor-shift-load span {
  color: var(--muted);
  font-size: 12px;
}

.doctor-shift-kpis strong {
  display: block;
  margin-top: 4px;
  font-size: 18px;
}

.doctor-shift-grid {
  margin-top: 14px;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
}

.doctor-shift-list,
.doctor-shift-load {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.doctor-shift-list article {
  display: grid;
  gap: 4px;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 9px 10px;
  background: #fff;
}

.doctor-shift-list span,
.doctor-shift-list small {
  color: var(--muted);
}

.doctor-shift-load span {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 6px;
}

@media (max-width: 1180px) {
  .day-hospital-summary,
  .day-hospital-toolbar,
  .day-hospital-stack,
  .day-hospital-row {
    grid-template-columns: 1fr;
  }

  .day-hospital-detail {
    position: static;
  }

  .clinical-record-api-toolbar {
    grid-template-columns: 1fr;
  }

  .doctor-api-toolbar,
  .doctor-api-filters,
  .doctor-api-create,
  .doctor-shift-toolbar,
  .doctor-shift-filters,
  .doctor-shift-create,
  .doctor-shift-grid {
    grid-template-columns: 1fr;
  }

  .doctor-api-create .wide {
    grid-column: auto;
  }
}
/* Administracion socios */
.socios-admin {
  display: grid;
  gap: 14px;
}

.socios-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 18px;
  border: 1px solid #d7e0ea;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.04);
}

.socios-hero h2 {
  margin: 2px 0 0;
  color: #17324d;
  font-size: 1.45rem;
  line-height: 1.15;
}

.socios-hero p {
  margin: 6px 0 0;
  max-width: 640px;
  color: #5f6f82;
}

.socios-hero .eyebrow {
  color: #60758d;
}

.socios-source-note {
  margin: 10px 0 0;
  color: #5f6f82;
  font-size: 0.9rem;
  font-weight: 700;
}

.socios-actions,
.socios-feature-grid,
.socios-workspace,
.socios-filter-grid,
.socios-columns {
  display: grid;
  gap: 14px;
}

.socios-actions {
  grid-template-columns: repeat(3, max-content);
  justify-content: end;
}

.socios-actions button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 8px 12px;
}

.socios-actions img,
.socios-card > img {
  width: 22px;
  height: 22px;
}

.socios-workspace {
  grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
  align-items: start;
}

.socios-search-panel,
.socios-card {
  border: 1px solid #d7e0ea;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.035);
}

.socios-search-panel {
  display: grid;
  gap: 14px;
  padding: 16px;
}

.socios-search {
  display: grid;
  gap: 8px;
  color: var(--ink);
  font-weight: 700;
}

.socios-search input {
  width: 100%;
  border: 1px solid #cfd9e5;
  border-radius: 8px;
  padding: 11px 12px;
  font: inherit;
  background: #fbfcfe;
}

.socios-search select {
  width: 100%;
  min-height: 43px;
  border: 1px solid #cfd9e5;
  border-radius: 8px;
  padding: 9px 34px 9px 12px;
  background: #fbfcfe;
  color: #32485f;
  font: inherit;
}

.socios-control-bar {
  display: flex;
  align-items: end;
  gap: 12px;
}

.socios-control-bar .socios-search:first-child {
  flex: 1 1 420px;
}

.socios-control-bar .socios-search:last-child {
  flex: 0 1 240px;
}

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

.socios-filter-grid button {
  border: 1px solid #cfd9e5;
  border-radius: 8px;
  padding: 10px;
  background: #fff;
  color: #32485f;
  font-weight: 800;
}

.socios-filter-grid button.is-active {
  background: #17324d;
  border-color: #17324d;
  color: #fff;
}

.socios-list,
.socios-detail {
  display: grid;
  gap: 10px;
}

.socios-feedback {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid #bed3e5;
  border-radius: 8px;
  background: #f3f8fc;
  color: #27445f;
}

.socios-feedback span {
  flex: 1;
  color: #5f6f82;
}

.socios-feedback.is-error {
  border-color: #e6b8b8;
  background: #fff6f6;
  color: #8f2525;
}

.socios-feedback.is-error span {
  color: #7e3b3b;
}

.socios-empty {
  display: grid;
  gap: 6px;
  padding: 18px;
  border: 1px dashed #bac9d8;
  border-radius: 8px;
  background: #f8fafc;
  color: #32485f;
}

.socios-empty p,
.socios-result-count,
.socios-detail-empty p {
  margin: 0;
  color: #64748b;
}

.socios-result-count {
  font-size: 0.88rem;
  font-weight: 700;
}

.socios-row {
  display: grid;
  gap: 8px;
  width: 100%;
  padding: 11px 12px;
  border: 1px solid #e1e8ef;
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  text-align: left;
}

.socios-row.is-selected {
  border-color: #8aa9c7;
  background: #f4f8fb;
  box-shadow: inset 3px 0 0 #2f6f9f;
}

.socios-row small,
.socios-card p,
.socios-legal {
  color: #64748b;
}

.socios-profile-card {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: start;
}

.socios-profile-card h3 {
  margin: 0;
  color: #17324d;
  font-size: 1.35rem;
}

.socios-profile-card .status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  border-radius: 999px;
  padding: 6px 12px;
  font-weight: 800;
  white-space: nowrap;
}

.socios-profile-card .status-pill.success {
  background: #eaf8ef;
  color: #087536;
}

.socios-profile-card .status-pill.warning {
  background: #fff7df;
  color: #8a5a00;
}

.socios-profile-card .status-pill.info {
  background: #edf6ff;
  color: #0b5d9a;
}

.socios-feature-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.socios-card {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 14px;
}

.socios-card > img {
  opacity: 0.72;
}

.socios-card span {
  color: #60758d;
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.socios-card strong {
  color: #17324d;
  font-size: 1.22rem;
}

.socios-columns {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.socios-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
}

.socios-facts > div {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 12px;
  border: 1px solid #e1e8ef;
  border-radius: 8px;
  background: #fbfcfe;
}

.socios-facts dt {
  color: #60758d;
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.socios-facts dd {
  margin: 0;
  color: #17324d;
  font-family: var(--font-datos);
  overflow-wrap: anywhere;
}

.socios-table-wrap {
  width: 100%;
  overflow-x: auto;
  border: 1px solid #e1e8ef;
  border-radius: 8px;
}

.socios-table-wrap.compact {
  overflow-x: visible;
}

.socios-table {
  width: 100%;
  min-width: 0;
  border-collapse: collapse;
  background: #fff;
  table-layout: fixed;
}

.socios-table th,
.socios-table td {
  padding: 10px 12px;
  border-bottom: 1px solid #e8edf3;
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
}

.socios-table th {
  background: #f7f9fb;
  color: #445a70;
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.socios-table td {
  color: var(--ink);
}

.socios-table td small {
  display: block;
  margin-top: 4px;
  color: #64748b;
}

.socios-summary-table td strong {
  color: #17324d;
  font-family: var(--font-datos);
  font-size: 1.25rem;
}

.socios-table tr:last-child td {
  border-bottom: 0;
}

.socios-legal {
  margin: 4px 0 0;
  padding-top: 12px;
  border-top: 1px solid #e6eef5;
  font-size: 0.9rem;
}

@media (max-width: 980px) {
  .socios-hero,
  .socios-workspace,
  .socios-feature-grid,
  .socios-columns,
  .socios-facts {
    grid-template-columns: 1fr;
  }

  .socios-feedback {
    align-items: stretch;
    flex-direction: column;
  }

  .socios-control-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .socios-control-bar .socios-search:first-child,
  .socios-control-bar .socios-search:last-child {
    flex: 1 1 auto;
  }

  .socios-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
  }

  .socios-actions button {
    justify-content: center;
    width: 100%;
  }

  .socios-table-wrap,
  .socios-table-wrap.compact {
    overflow-x: visible;
    border: 0;
  }

  .socios-table {
    min-width: 0;
  }

  .socios-table thead {
    display: none;
  }

  .socios-table,
  .socios-table tbody,
  .socios-table tr,
  .socios-table td {
    display: block;
    width: 100%;
  }

  .socios-table tr {
    margin-bottom: 10px;
    border: 1px solid #e6eef5;
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
  }

  .socios-table td {
    display: grid;
    grid-template-columns: minmax(96px, 34%) minmax(0, 1fr);
    gap: 10px;
    border-bottom: 1px solid #edf2f7;
  }

  .socios-table td::before {
    content: attr(data-label);
    color: #64748b;
    font-size: 0.76rem;
    font-weight: 800;
    text-transform: uppercase;
  }
}

@media (max-width: 640px) {
  #privateBudget > .module-head h2 {
    font-size: 34px !important;
    line-height: 1.12 !important;
  }

  #privateBudget .topbar-actions .primary {
    width: auto !important;
    min-height: 44px !important;
    padding: 10px 14px !important;
    font-size: 14px !important;
  }
}

/* ============================================================
 * CORE MODULES (personas, catalogo, eventos) - estilos comunes
 * ============================================================ */

/* Layout del wrapper */
.personas-core,
.catalogo-core,
.eventos-core {
  padding: 16px;
  max-width: 1400px;
  margin: 0 auto;
}

.personas-core-header,
.catalogo-core-header,
.eventos-core-header {
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--blue, #003B70);
}
.personas-core-header h2,
.catalogo-core-header h2,
.eventos-core-header h2 {
  margin: 0 0 4px 0;
  color: var(--blue, #003B70);
  font-size: 22px;
}
.personas-core-header p,
.catalogo-core-header p,
.eventos-core-header p {
  margin: 0;
  color: #64748b;
  font-size: 13px;
}

/* Tabs */
.personas-core-tabs,
.catalogo-core-tabs,
.eventos-core-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 16px;
  border-bottom: 1px solid #e2e8f0;
}
.tab-btn {
  background: transparent;
  border: none;
  padding: 10px 18px;
  font-size: 14px;
  font-weight: 500;
  color: #64748b;
  cursor: pointer;
  border-bottom: 3px solid transparent;
  transition: all 0.2s;
}
.tab-btn:hover:not(:disabled) {
  color: var(--blue, #003B70);
  background: #f1f5f9;
}
.tab-btn.active {
  color: var(--blue, #003B70);
  border-bottom-color: var(--blue, #003B70);
}
.tab-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* Chips (badges por tipo o estado) */
.chip {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.chip-fisica   { background: #dbeafe; color: #1e40af; }
.chip-juridica { background: #fef3c7; color: #92400e; }
.chip-paciente,
.chip-confirmado { background: #dcfce7; color: #166534; }
.chip-sugerido { background: #fef9c3; color: #854d0e; }
.chip-descartado { background: #fee2e2; color: #991b1b; }
.chip-financiador { background: #ede9fe; color: #5b21b6; }
.chip-profesional { background: #cffafe; color: #155e75; }
.chip-empleado { background: #fde68a; color: #92400e; }
.chip-socio { background: #fce7f3; color: #9d174d; }
.chip-nomenclada { background: #dcfce7; color: #166534; }
.chip-libre { background: #fef3c7; color: #92400e; }

/* KPI lists (en resumen) */
.kpi-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}
.kpi-list li {
  background: #f8fafc;
  padding: 12px;
  border-radius: 6px;
  border-left: 3px solid var(--blue, #003B70);
  font-size: 13px;
  color: #475569;
}
.kpi-list strong {
  color: var(--blue, #003B70);
  font-size: 18px;
  font-weight: 700;
}

/* Primer paso compartido por las tres puertas de Ingresos. */
.ingreso-presupuesto-inicial {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  border: 1px solid #bfd6e9;
  border-left: 5px solid var(--blue, #003B70);
  background: linear-gradient(110deg, #f1f7fb 0%, #fff 72%);
}
.ingreso-presupuesto-paso {
  display: grid;
  justify-items: center;
  gap: 2px;
  color: var(--blue, #003B70);
  font-family: var(--font-ui);
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 10px;
  font-weight: 700;
}
.ingreso-presupuesto-paso strong {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 50%;
  background: var(--blue, #003B70);
  color: #fff;
  font-family: var(--font-datos);
  font-size: 18px;
}
.ingreso-presupuesto-copy h3 {
  margin: 0 0 3px;
  color: #0f172a;
  font-size: 17px;
}
.ingreso-presupuesto-criterio {
  margin: 0 0 3px;
  color: var(--blue, #003B70);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.ingreso-presupuesto-copy p {
  margin: 0;
  color: #475569;
  font-size: 13px;
}
.ingreso-presupuesto-criterios {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}
.ingreso-presupuesto-criterios li {
  padding: 4px 8px;
  border: 1px solid #cbdde9;
  border-radius: 999px;
  background: #fff;
  color: #334155;
  font-size: 11px;
  font-weight: 600;
}
.ingreso-presupuesto-copy .ingreso-presupuesto-excepcion {
  margin-top: 8px;
  color: #8f1d1d;
}
.ingreso-presupuesto-inicial[data-ingreso-presupuesto-puerta="guardia"] {
  border-color: #f4c7c7;
  border-left-color: #a52a2a;
  background: linear-gradient(110deg, #fff5f5 0%, #fff 72%);
}
.ingreso-presupuesto-inicial[data-ingreso-presupuesto-puerta="guardia"] .ingreso-presupuesto-paso,
.ingreso-presupuesto-inicial[data-ingreso-presupuesto-puerta="guardia"] .ingreso-presupuesto-paso strong {
  color: #a52a2a;
}
.ingreso-presupuesto-inicial[data-ingreso-presupuesto-puerta="guardia"] .ingreso-presupuesto-paso strong {
  background: #fff;
  border: 2px solid #a52a2a;
}

/* Filtros grid */
.filtros-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px;
  align-items: end;
}
.filtros-grid label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  color: #475569;
  font-weight: 500;
}
.filtros-grid input,
.filtros-grid select {
  padding: 8px 10px;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  font-size: 13px;
  background: white;
}
.filtros-grid input:focus,
.filtros-grid select:focus {
  outline: none;
  border-color: var(--blue, #003B70);
  box-shadow: 0 0 0 3px rgba(0, 59, 112, 0.1);
}

/* DL grid (detalle de persona/prestacion) */
.dl-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
  margin: 0;
}
.dl-grid dt {
  color: #64748b;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  align-self: center;
}
.dl-grid dd {
  margin: 0;
  color: #0f172a;
  font-size: 14px;
}

/* Botones del CORE */
.btn-primary,
.btn-secondary,
.btn-small {
  display: inline-block;
  padding: 8px 16px;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all 0.15s;
  text-decoration: none;
}
.btn-primary {
  background: var(--blue, #003B70);
  color: white;
}
.btn-primary:hover { background: #002a52; }
.btn-secondary {
  background: white;
  color: var(--blue, #003B70);
  border-color: #cbd5e1;
}
.btn-secondary:hover {
  background: #f8fafc;
  border-color: var(--blue, #003B70);
}
.btn-small {
  padding: 4px 10px;
  font-size: 12px;
  background: #f1f5f9;
  color: #475569;
  border-color: #cbd5e1;
}
.btn-small:hover {
  background: var(--blue, #003B70);
  color: white;
  border-color: var(--blue, #003B70);
}

/* Formulario alta */
.form-alta fieldset {
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 12px 16px;
  margin: 0 0 16px 0;
}
.form-alta fieldset legend {
  font-weight: 600;
  font-size: 13px;
  color: var(--blue, #003B70);
  padding: 0 8px;
}
.form-alta fieldset label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-right: 16px;
  font-size: 13px;
  color: #334155;
  cursor: pointer;
}
.form-actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

/* Datos del rol (JSON formateado en celda de tabla) */
.datos-rol {
  background: #f8fafc;
  padding: 6px 8px;
  border-radius: 3px;
  font-family: var(--font-datos);
  font-size: 11px;
  color: #475569;
  max-width: 280px;
  overflow-x: auto;
  white-space: pre-wrap;
  margin: 0;
}

/* Codigo inline */
.personas-core code,
.catalogo-core code,
.eventos-core code {
  background: #f1f5f9;
  padding: 1px 6px;
  border-radius: 3px;
  font-family: var(--font-datos);
  font-size: 12px;
  color: #475569;
}

/* Responsive */
@media (max-width: 768px) {
  .ingreso-presupuesto-inicial {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .ingreso-presupuesto-inicial > .btn-primary {
    grid-column: 1 / -1;
    width: 100%;
    min-height: 44px;
  }
  .personas-core,
  .catalogo-core,
  .eventos-core {
    padding: 12px;
  }
  .dl-grid {
    grid-template-columns: 1fr;
    gap: 4px 0;
  }
  .dl-grid dt {
    margin-top: 8px;
  }
  .personas-core-tabs,
  .catalogo-core-tabs,
  .eventos-core-tabs {
    overflow-x: auto;
    white-space: nowrap;
  }
  .tab-btn {
    padding: 8px 12px;
    font-size: 13px;
  }
}

/* ============================================================
 * CORE MODULES - mobile refinements (smartphones < 480px)
 * ============================================================ */
@media (max-width: 480px) {
  .personas-core,
  .catalogo-core,
  .eventos-core,
  .modulos-core {
    padding: 8px;
  }
  .personas-core-header h2,
  .catalogo-core-header h2,
  .eventos-core-header h2 {
    font-size: 18px;
  }
  /* Tabs: pequeños y compactos */
  .tab-btn {
    padding: 8px 10px;
    font-size: 12px;
  }
  /* Tabla con scroll horizontal */
  .ui-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .ui-table {
    font-size: 12px;
    min-width: 600px;
  }
  .ui-table th, .ui-table td {
    padding: 4px 6px;
  }
  /* Paginacion: stack en mobile */
  .paginacion {
    flex-direction: column;
    align-items: stretch !important;
    gap: 4px !important;
  }
  .paginacion button {
    width: 100%;
  }
  /* KPI list: 1 columna en mobile */
  .kpi-list {
    grid-template-columns: 1fr;
  }
  .kpi-list li strong {
    font-size: 16px;
  }
  /* Chips pequeños */
  .chip {
    font-size: 10px;
    padding: 1px 6px;
  }
  /* Boton small para mobile */
  .btn-small {
    padding: 6px 8px;
    font-size: 11px;
  }
  /* Detalle: DL grid en 1 columna ya por @768 */
  .dl-grid dt {
    font-size: 11px;
  }
  .dl-grid dd {
    font-size: 13px;
  }
  /* Filtros: 1 col en mobile */
  .filtros-grid {
    grid-template-columns: 1fr;
  }
  /* Forms: full width */
  .form-alta input,
  .form-alta select,
  .form-alta textarea {
    width: 100%;
    box-sizing: border-box;
  }
}

/* Tablet portrait orientation */
@media (max-width: 768px) and (min-width: 481px) {
  .ui-table {
    font-size: 13px;
  }
  .ui-table-wrapper {
    overflow-x: auto;
  }
  /* Filtros: lectura vertical en tablet portrait */
  .filtros-grid {
    grid-template-columns: 1fr;
  }
}

/* Badge BETA en items del menu (modulos en estado BETA, data-driven
   desde /api/modulos via marcarModulosBeta() en app.js) */
.nav-badge-beta {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 8px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.05em;
  background: #fef3c7;
  color: #92400e;
  vertical-align: middle;
}

/* ====== Mi Dia (portal medico) ====== */
.mi-dia-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 12px;
}
.mi-dia-pane {
  margin-bottom: 0;
  min-width: 0;
}
.mi-dia-grid > *,
.mi-dia-acciones,
.mi-dia-controls {
  min-width: 0;
}
.mi-dia-controls-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 12px;
  align-items: end;
}
.mi-dia-acciones-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.mi-dia-form .ui-section { margin-bottom: 10px; }
.mi-dia-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}
/* El horario sugerido, en la cola de pedidos de la oficina (T-QX-REM-12). */
.qx-sugerencia { display: grid; }
.qx-sugerencia small { color: #4a5568; font-size: .82rem; }

/* Huecos libres de quirofano (T-QX-REM-12): el dia y el horario que se le sugiere al
   medico al pedir la cirugia. Es una lista de opciones para elegir con el pulgar en el
   celular, no una planilla: cada hueco es una fila alta y clickeable entera. */
.mi-dia-huecos {
  display: grid;
  gap: 6px;
}
.mi-dia-hueco {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 8px 10px;
  border: 1px solid #dbe3ee;
  border-radius: 8px;
  background: #f7f9fc;
  cursor: pointer;
}
.mi-dia-hueco:hover { border-color: #2f5d9e; }
.mi-dia-hueco:has(input:checked) {
  border-color: #2f5d9e;
  border-left-width: 3px;
  background: #eef4fc;
}
.mi-dia-hueco input { margin: 0; }
.mi-dia-hueco > span { display: grid; }
.mi-dia-hueco small { color: #4a5568; font-size: .82rem; }

/* Buscador de paciente por DNI (acciones rapidas). El estado no es decoracion:
   es lo que distingue "seguí, este paciente existe" de "pará, hay que cargarlo". */
.hre-paciente-dni {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
  padding: 10px;
  border: 1px solid #dbe3ee;
  border-left: 3px solid #2f5d9e;
  border-radius: 8px;
  background: #f7f9fc;
}
.hre-paciente-dni > .ui-field:first-child { margin: 0; }
.hre-paciente-dni-estado {
  grid-column: 1 / -1;
  margin: 0;
  font-size: .82rem;
  line-height: 1.35;
  color: #4a5568;
}
.hre-paciente-dni-estado .ui-btn { margin-left: 6px; }
.hre-paciente-dni-estado.is-ok { color: #1d6b3f; font-weight: 600; }
.hre-paciente-dni-estado.is-warn { color: #8a5a00; font-weight: 600; }
.hre-paciente-dni-estado.is-danger { color: #a32020; font-weight: 600; }
.hre-paciente-dni [data-paciente-dni-cobertura-field] { grid-column: 1 / -1; margin: 0; }

.mi-dia-item-row {
  display: grid;
  grid-template-columns: minmax(130px, .8fr) minmax(180px, 1.2fr) minmax(110px, .7fr) minmax(80px, .45fr) minmax(160px, 1fr) auto;
  gap: 6px;
  align-items: center;
  margin-bottom: 6px;
  padding: 6px;
  border: 1px dashed #e2e6ed;
  border-radius: 6px;
  background: #fafbfd;
  overflow-x: auto;
}
.mi-dia-item-row input[type="text"],
.mi-dia-item-row input[type="number"] {
  padding: 6px 8px;
  border: 1px solid #d8deea;
  border-radius: 6px;
  font-size: 13px;
}
.mi-dia-planilla {
  min-width: 0;
}
.mi-dia-planilla .ui-planilla-scroll {
  overflow-x: hidden;
}
.mi-dia-planilla .ui-planilla-table {
  min-width: 0;
  table-layout: fixed;
}
.mi-dia-planilla .ui-planilla-table thead th,
.mi-dia-planilla .ui-planilla-table tbody td {
  white-space: normal;
  overflow-wrap: anywhere;
}
.mi-dia-planilla .ui-badge {
  white-space: nowrap;
}
.mi-dia-planilla-stack {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.mi-dia-planilla-stack strong {
  min-width: 0;
  color: #0f172a;
  font-weight: 800;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.mi-dia-planilla-stack small {
  min-width: 0;
  color: #64748b;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.mi-dia-row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
}
.mi-dia-row-actions .ui-btn-sm {
  margin: 0;
  /* "Atender" se partia letra por letra ("Ate / nde / r") en la columna angosta. */
  white-space: nowrap;
  flex: 0 0 auto;
}
.mi-dia-planilla-guardia .ui-planilla-table th:nth-child(1),
.mi-dia-planilla-guardia .ui-planilla-table td:nth-child(1) {
  width: 96px;
}
.mi-dia-planilla-guardia .ui-planilla-table th:nth-child(3),
.mi-dia-planilla-guardia .ui-planilla-table td:nth-child(3) {
  width: 94px;
}
.mi-dia-planilla-guardia .ui-planilla-table th:nth-child(4),
.mi-dia-planilla-guardia .ui-planilla-table td:nth-child(4) {
  width: 70px;
}
.mi-dia-planilla-hd .ui-planilla-table th:nth-child(1),
.mi-dia-planilla-hd .ui-planilla-table td:nth-child(1) {
  width: 72px;
}
.mi-dia-planilla-hd .ui-planilla-table th:nth-child(3),
.mi-dia-planilla-hd .ui-planilla-table td:nth-child(3) {
  /* Acciones: "Atender" + "Ver". Con 70px el boton se cortaba ("Atende"). */
  width: 104px;
}
.mi-dia-planilla-internados .ui-planilla-table th:nth-child(1),
.mi-dia-planilla-internados .ui-planilla-table td:nth-child(1) {
  width: 70px;
}
.mi-dia-planilla-internados .ui-planilla-table th:nth-child(3),
.mi-dia-planilla-internados .ui-planilla-table td:nth-child(3) {
  width: 116px;
}
.mi-dia-planilla-pedidos .ui-planilla-table th:nth-child(1),
.mi-dia-planilla-pedidos .ui-planilla-table td:nth-child(1) {
  width: 92px;
}
.mi-dia-planilla-pedidos .ui-planilla-table th:nth-child(2),
.mi-dia-planilla-pedidos .ui-planilla-table td:nth-child(2) {
  width: 122px;
}
.mi-dia-planilla-pedidos .ui-planilla-table th:nth-child(3),
.mi-dia-planilla-pedidos .ui-planilla-table td:nth-child(3) {
  width: 76px;
}
.mi-dia-planilla-pedidos .ui-planilla-table th:nth-child(5),
.mi-dia-planilla-pedidos .ui-planilla-table td:nth-child(5) {
  width: 70px;
}
.mi-dia-recetas-planilla .ui-planilla-table {
  min-width: 760px;
}
.mi-dia-recetas-planilla .ui-btn-sm {
  margin: 0 4px 4px 0;
}
.mi-dia-recetas-acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
}
.mi-dia-recetas-planilla .mi-dia-recetas-acciones .ui-btn-sm {
  margin: 0;
}
.mi-dia-receta-cell-stack {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.mi-dia-receta-cell-stack span,
.mi-dia-receta-cell-stack small {
  min-width: 0;
  overflow-wrap: anywhere;
}
.mi-dia-receta-table-context {
  color: #1e3a8a;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.3;
}
.mi-dia-recetas-mobile-list {
  display: none;
}
.mi-dia-receta-card {
  display: grid;
  gap: 8px;
  min-width: 0;
  border: 1px solid #dbe5ee;
  border-radius: 8px;
  background: #ffffff;
  padding: 10px;
}
.mi-dia-receta-card-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: start;
}
.mi-dia-receta-card-head strong,
.mi-dia-receta-card-head span,
.mi-dia-receta-card p,
.mi-dia-receta-card small {
  min-width: 0;
  overflow-wrap: anywhere;
}
.mi-dia-receta-card-head strong {
  display: block;
  color: #0f172a;
  line-height: 1.2;
}
.mi-dia-receta-card-head span,
.mi-dia-receta-card small {
  color: #64748b;
  font-size: 12px;
  font-weight: 700;
}
.mi-dia-receta-card p {
  margin: 0;
  color: #334155;
  line-height: 1.35;
}
.mi-dia-receta-card-context {
  border-left: 3px solid #1d4ed8;
  padding-left: 8px;
  color: #1e3a8a !important;
}
.mi-dia-receta-context-summary {
  margin: 0 0 12px;
  border: 1px solid #bfdbfe;
  border-left: 4px solid #1d4ed8;
  border-radius: 8px;
  background: #eff6ff;
  color: #1e3a8a;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
  padding: 10px 12px;
}
.mi-dia-receta-context-summary-compact {
  margin: 8px 0;
  padding: 8px 10px;
  font-size: 12px;
}
.mi-dia-receta-prevalidacion {
  display: grid;
  gap: 8px;
  margin: 8px 0 12px;
  border: 1px solid #cbd5e1;
  border-left: 4px solid #64748b;
  border-radius: 8px;
  background: #f8fafc;
  color: #334155;
  padding: 10px 12px;
}
.mi-dia-receta-prevalidacion[hidden] {
  display: none;
}
.mi-dia-receta-prevalidacion[data-status="valid"] {
  border-color: #bbf7d0;
  border-left-color: #059669;
  background: #f0fdf4;
  color: #064e3b;
}
.mi-dia-receta-prevalidacion[data-status="stale"],
.mi-dia-receta-prevalidacion[data-status="expired"] {
  border-color: #fde68a;
  border-left-color: #d97706;
  background: #fffbeb;
  color: #78350f;
}
.mi-dia-receta-prevalidacion[data-status="blocked"] {
  border-color: #fecaca;
  border-left-color: #dc2626;
  background: #fef2f2;
  color: #7f1d1d;
}
.mi-dia-receta-prevalidacion strong {
  color: inherit;
  font-size: 13px;
}
.mi-dia-receta-prevalidacion p {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
}
.mi-dia-receta-prevalidacion dl {
  display: grid;
  grid-template-columns: minmax(110px, 160px) minmax(0, 1fr);
  gap: 5px 10px;
  margin: 0;
  font-size: 12px;
  line-height: 1.35;
}
.mi-dia-receta-prevalidacion dt {
  font-weight: 800;
  text-transform: uppercase;
}
.mi-dia-receta-prevalidacion dd {
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
  font-weight: 700;
}
.mi-dia-anulacion-warning {
  margin: 12px 0;
  border: 1px solid #f4c7c7;
  border-left: 4px solid #b91c1c;
  border-radius: 8px;
  background: #fff7f7;
  color: #7f1d1d;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
  padding: 10px 12px;
}
.mi-dia-anulacion-status {
  margin: 4px 0 0;
  border: 1px solid #cbd5e1;
  border-left: 4px solid #64748b;
  border-radius: 8px;
  background: #f8fafc;
  color: #334155;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
  padding: 8px 10px;
}
.mi-dia-anulacion-status[data-status="ready"] {
  border-color: #bbf7d0;
  border-left-color: #059669;
  background: #f0fdf4;
  color: #064e3b;
}
.mi-dia-anulacion-status[data-status="blocked"] {
  border-color: #fecaca;
  border-left-color: #dc2626;
  background: #fef2f2;
  color: #7f1d1d;
}
.mi-dia-anulacion-status[data-status="busy"] {
  border-color: #bfdbfe;
  border-left-color: #1d4ed8;
  background: #eff6ff;
  color: #1e3a8a;
}
.mi-dia-inline-error {
  display: grid;
  gap: 8px;
  margin: 0;
  border: 1px solid #fecaca;
  border-left: 4px solid #dc2626;
  border-radius: 8px;
  background: #fef2f2;
  color: #7f1d1d;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
  padding: 10px 12px;
}
.mi-dia-inline-error p {
  margin: 0;
}
.mi-dia-inline-error .ui-btn {
  justify-self: start;
}
.mi-dia-def-list {
  display: grid;
  grid-template-columns: minmax(120px, 170px) minmax(0, 1fr);
  gap: 8px 14px;
  margin: 0;
}
.mi-dia-def-list dt {
  color: #475569;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.mi-dia-def-list dd {
  margin: 0;
  min-width: 0;
  color: #0f172a;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.ui-btn-sm {
  min-height: 28px;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 700;
}
@media (max-width: 980px) {
  .mi-dia-grid { grid-template-columns: 1fr; }
  .mi-dia-controls-grid { grid-template-columns: 1fr; }
  .mi-dia-form-grid { grid-template-columns: 1fr; }
  .hre-paciente-dni { grid-template-columns: 1fr; }
  .mi-dia-item-row { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .mi-dia-planilla .ui-planilla-table {
    min-width: 0;
    table-layout: fixed;
  }
  .mi-dia-planilla .ui-planilla-table thead th,
  .mi-dia-planilla .ui-planilla-table tbody td {
    white-space: normal;
    overflow-wrap: anywhere;
    padding-left: 6px;
    padding-right: 6px;
  }
  .mi-dia-planilla-stack small {
    font-size: 11px;
  }
  .mi-dia-planilla-guardia .ui-planilla-table th:nth-child(1),
  .mi-dia-planilla-guardia .ui-planilla-table td:nth-child(1) {
    width: 82px;
  }
  .mi-dia-planilla-guardia .ui-planilla-table th:nth-child(3),
  .mi-dia-planilla-guardia .ui-planilla-table td:nth-child(3) {
    width: 86px;
  }
  .mi-dia-planilla-guardia .ui-planilla-table th:nth-child(4),
  .mi-dia-planilla-guardia .ui-planilla-table td:nth-child(4),
  .mi-dia-planilla-pedidos .ui-planilla-table th:nth-child(5),
  .mi-dia-planilla-pedidos .ui-planilla-table td:nth-child(5) {
    width: 62px;
  }
  .mi-dia-planilla-internados .ui-planilla-table th:nth-child(1),
  .mi-dia-planilla-internados .ui-planilla-table td:nth-child(1) {
    width: 58px;
  }
  .mi-dia-planilla-internados .ui-planilla-table th:nth-child(3),
  .mi-dia-planilla-internados .ui-planilla-table td:nth-child(3) {
    width: 96px;
  }
  .mi-dia-planilla-pedidos .ui-planilla-table th:nth-child(1),
  .mi-dia-planilla-pedidos .ui-planilla-table td:nth-child(1) {
    width: 80px;
  }
  .mi-dia-planilla-pedidos .ui-planilla-table th:nth-child(2),
  .mi-dia-planilla-pedidos .ui-planilla-table td:nth-child(2) {
    width: 96px;
  }
  .mi-dia-planilla-pedidos .ui-planilla-table th:nth-child(3),
  .mi-dia-planilla-pedidos .ui-planilla-table td:nth-child(3) {
    display: none;
  }
  .mi-dia-planilla .ui-btn-sm {
    width: 100%;
    min-height: 30px;
    padding-left: 6px;
    padding-right: 6px;
    justify-content: center;
  }
  .mi-dia-recetas-planilla .ui-planilla-scroll,
  .mi-dia-recetas-planilla .ui-planilla-footer {
    display: none;
  }
  .mi-dia-recetas-mobile-list {
    display: grid;
    gap: 8px;
    margin-top: 10px;
  }
  .mi-dia-recetas-planilla .ui-planilla-table {
    min-width: 580px;
  }
  .mi-dia-recetas-planilla .ui-planilla-table th:nth-child(3),
  .mi-dia-recetas-planilla .ui-planilla-table td:nth-child(3),
  .mi-dia-recetas-planilla .ui-planilla-table th:nth-child(5),
  .mi-dia-recetas-planilla .ui-planilla-table td:nth-child(5) {
    display: none;
  }
  .mi-dia-recetas-planilla .ui-planilla-table th:last-child,
  .mi-dia-recetas-planilla .ui-planilla-table td:last-child {
    position: sticky;
    right: 0;
    z-index: 3;
    min-width: 164px;
    max-width: 164px;
    background: #fff;
    box-shadow: -8px 0 12px rgba(15, 23, 42, 0.08);
    white-space: normal;
  }
  .mi-dia-recetas-planilla .ui-planilla-table thead th:last-child {
    z-index: 4;
    background: #f8fafc;
  }
  .mi-dia-recetas-planilla .ui-btn-sm {
    width: 100%;
    margin: 0 0 4px 0;
  }
  .mi-dia-recetas-acciones {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    align-items: stretch;
  }
  .mi-dia-recetas-planilla .mi-dia-recetas-acciones .ui-btn-sm {
    min-height: 30px;
    margin: 0;
    padding-left: 6px;
    padding-right: 6px;
    justify-content: center;
    text-align: center;
  }
  .mi-dia-def-list {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .mi-dia-def-list dd {
    margin-bottom: 8px;
  }
}

@media (max-width: 520px) {
  .ui-modal {
    width: calc(100vw - 16px);
    max-width: calc(100vw - 16px);
    max-height: calc(100vh - 16px);
    border-radius: 10px;
  }
  .ui-modal-header,
  .ui-modal-body,
  .ui-modal-footer {
    padding-left: 12px;
    padding-right: 12px;
  }
  .ui-modal-footer {
    justify-content: stretch;
  }
  .ui-modal-footer .ui-btn,
  .ui-modal-footer a.ui-btn {
    flex: 1 1 calc(50% - 4px);
    min-width: 0;
  }
  .mi-dia-anulacion-form .ui-section {
    padding: 10px;
  }
  .mi-dia-anulacion-form .mi-dia-def-list {
    grid-template-columns: minmax(82px, 102px) minmax(0, 1fr);
    gap: 4px 8px;
  }
  .mi-dia-anulacion-form .mi-dia-def-list dt {
    font-size: 10px;
  }
  .mi-dia-anulacion-form .mi-dia-def-list dd {
    font-size: 12px;
    line-height: 1.25;
    margin-bottom: 0;
  }
  .mi-dia-anulacion-form .ui-field {
    margin-bottom: 8px;
  }
  .mi-dia-anulacion-form .ui-field textarea {
    min-height: 56px;
  }
  .mi-dia-anulacion-form .mi-dia-anulacion-warning {
    margin: 8px 0;
    padding: 8px 10px;
    font-size: 12px;
  }
}

/* UI P0: flujo operativo de ancho completo, sin doble columna obligatoria. */
.layout-stack,
.admission-workspace,
.patient-quick-body,
.hr-legajos-layout,
.billing-api-layout,
.pami-api-layout,
.pami-api-layout.compact,
.fee-api-grid,
.fee-api-forms,
.iva-book-layout,
.party-master-layout,
.clinical-workspace,
.doctor-shift-grid,
.day-hospital-stack {
  grid-template-columns: minmax(0, 1fr) !important;
}

.layout-stack > *,
.admission-workspace > *,
.hr-legajos-layout > *,
.billing-api-layout > *,
.pami-api-layout > *,
.fee-api-grid > *,
.fee-api-forms > * {
  min-width: 0;
  width: 100%;
}

@media (max-width: 900px) {
  .billing-api-list-table,
  .pami-api-list-table,
  .pami-api-item-table,
  .fee-api-list-table,
  .fee-api-settlement-table,
  .fee-professional-table,
  .doctor-api-table,
  .nom-api-table,
  .agreement-api-list,
  .report-api-list,
  .hr-legajos-list,
  .padron-bahia-list {
    display: grid;
    gap: 10px;
    overflow: visible !important;
    border: 0 !important;
    background: transparent !important;
  }

  .billing-api-row-head,
  .pami-api-row-head,
  .fee-api-list-table .ui-table-header,
  .fee-api-settlement-table .ui-table-header,
  .fee-professional-table .ui-table-header,
  .doctor-api-table .ui-table-header,
  .nom-api-table .header,
  .agreement-api-row-head,
  .report-api-row-head,
  .hr-legajos-list .ops-list-row-head,
  .padron-bahia-list .ops-list-row-head {
    display: none !important;
  }

  .billing-api-row,
  .pami-api-row,
  .pami-api-item-row,
  .fee-api-row,
  .fee-api-settlement-row,
  .fee-professional-row,
  .doctor-api-row,
  .nom-api-row,
  .agreement-api-row,
  .report-api-row,
  .hr-legajo-row,
  .padron-bahia-row {
    width: 100%;
    max-width: 100%;
    min-width: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: stretch;
    gap: 10px;
    border: 1px solid #dbe5ed;
    border-radius: 8px;
    background: #ffffff;
    padding: 12px;
    overflow: auto;
    max-height: min(72vh, 520px);
    scrollbar-gutter: stable;
  }

  .billing-api-row > *,
  .pami-api-row > *,
  .pami-api-item-row > *,
  .fee-api-row > *,
  .fee-api-settlement-row > *,
  .fee-professional-row > *,
  .doctor-api-row > *,
  .nom-api-row > *,
  .agreement-api-row > *,
  .report-api-row > *,
  .hr-legajo-row > *,
  .padron-bahia-row > * {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .billing-api-row > [data-label]::before,
  .pami-api-row > [data-label]::before,
  .pami-api-item-row > [data-label]::before,
  .fee-api-row > [data-label]::before,
  .fee-api-settlement-row > [data-label]::before,
  .fee-professional-row > [data-label]::before,
  .doctor-api-row > [data-label]::before,
  .nom-api-row > [data-label]::before,
  .agreement-api-row > [data-label]::before,
  .report-api-row > [data-label]::before,
  .hr-legajo-row > [data-label]::before,
  .padron-bahia-row > [data-label]::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 3px;
    color: #64748b;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
  }

  .billing-api-actions,
  .fee-api-actions,
  .fee-decision-actions,
  .doctor-api-actions,
  .report-api-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: stretch;
    gap: 8px;
  }

  .billing-api-actions > *,
  .fee-api-actions > *,
  .fee-decision-actions > *,
  .doctor-api-actions > *,
  .report-api-actions > *,
  .nom-api-row button,
  .hr-legajo-row .ui-btn,
  .padron-bahia-row .primary,
  .padron-bahia-row .ghost {
    flex: 1 1 100%;
    width: 100%;
    justify-content: center;
  }
}

/* Vicky parity layer: shell sobrio, controles consistentes y datos escaneables. */
:root {
  --hre-navy: #003878;
  --hre-navy-2: #002868;
  --hre-blue: #003878;
  --hre-sky: #5689bf;
  --hre-forest: #003878;
  --hre-green: #079c3c;
  --hre-burgundy: #e83c3e;
  --hre-gold: #f9ae34;
  --hre-paper: #f8fbff;
  --hre-bone: #eef6fd;
  --hre-mist: #d9e9f7;
  --hre-surface: #ffffff;
  --hre-surface-soft: #f7fbff;
  --hre-ink: #111827;
  --hre-ink-2: #12345c;
  --hre-muted: #657285;
  --hre-line: #d8e7f3;
  --hre-line-strong: #bcd4e9;
  --hre-radius: 12px;
  --hre-radius-sm: 8px;
  --hre-focus-ring: 0 0 0 3px rgba(0, 56, 120, 0.22);
  --hre-shadow-sm: 0 1px 2px rgba(0, 56, 120, 0.045), 0 1px 4px rgba(0, 56, 120, 0.045);
  --hre-shadow-md: 0 2px 10px rgba(0, 56, 120, 0.08), 0 1px 4px rgba(0, 56, 120, 0.04);
}

body {
  background:
    linear-gradient(180deg, #f4f9ff 0, #ffffff 360px),
    var(--bg);
  color: var(--hre-ink);
  grid-template-columns: 286px minmax(0, 1fr);
  letter-spacing: 0;
}

:focus-visible {
  outline: 2px solid var(--hre-forest);
  outline-offset: 2px;
}

.sidebar {
  background: linear-gradient(180deg, #003878 0%, #002868 100%);
  border-right: 0;
  box-shadow: 8px 0 24px rgba(0, 56, 120, 0.18);
  color: #f5faff;
  padding: 18px 14px 14px;
}

.brand {
  border-bottom-color: rgba(255, 255, 255, 0.1);
  margin-bottom: 12px;
  padding: 4px 6px 18px;
}

.sidebar .brand strong {
  color: #ffffff;
  font-size: 18px;
  line-height: 1.05;
}

.sidebar .brand span {
  color: #d7e8f8;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.sidebar .brand-mark-logo {
  border-color: rgba(255, 255, 255, 0.48);
  border-radius: 12px;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.14);
}

.nav-tools {
  gap: 7px;
  margin: 0 0 10px;
}

.nav-search,
.nav-search-clear {
  border-color: rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.08);
  color: #f5faff;
}

.nav-search::placeholder {
  color: rgba(245, 250, 255, 0.62);
}

.nav-search:focus {
  border-color: rgba(255, 255, 255, 0.48);
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.12);
}

.nav-search-clear:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.26);
  color: #ffffff;
}

.nav {
  gap: 3px;
  max-height: calc(100vh - 142px);
  padding: 4px 2px 16px 0;
  scrollbar-color: rgba(255, 255, 255, 0.28) transparent;
}

.nav::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.28);
}

.nav-group {
  background: transparent;
  border: 0;
  border-radius: 10px;
  gap: 2px;
  padding: 3px 0 5px;
}

.nav-group.has-visible-match,
.nav-group:has(.nav-item.active),
.nav-group:has(.nav-subitem.active) {
  background: rgba(255, 255, 255, 0.045);
}

.nav-group-toggle {
  min-height: 34px;
  padding: 6px 10px;
  color: #e8f4f6;
}

.nav-group-label {
  color: inherit;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.11em;
}

.nav-group-meta,
.nav-group-chevron {
  background: rgba(255, 255, 255, 0.12);
  color: #dbeff2;
}

.nav-group-toggle:hover,
.nav-group-toggle:focus-visible {
  color: #ffffff;
}

.nav-group-toggle:hover .nav-group-chevron,
.nav-group-toggle:focus-visible .nav-group-chevron {
  background: var(--nav-accent);
  color: var(--nav-active-text);
}

.nav-item,
.nav-subitem {
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  color: #e1eef1;
  font-weight: 650;
}

.nav-item {
  border-left: 3px solid transparent;
  border-radius: 9px;
  min-height: 34px;
  padding: 8px 11px;
}

.nav-item:hover,
.nav-subitem:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: transparent;
  color: #ffffff;
}

.nav-item.active,
.nav-subitem.active {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.nav-item.active {
  border-left-color: var(--nav-accent, var(--hre-gold));
  padding-left: 10px;
}

.nav-item.active::before {
  display: none;
}

.nav-item-caret,
.nav-group-chevron {
  font-size: 0;
}

.nav-item-caret::before,
.nav-group-chevron::before {
  content: "";
  width: 7px;
  height: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
}

.nav-item-parent.is-expanded .nav-item-caret,
.nav-item-parent.active .nav-item-caret,
.nav-group-toggle[aria-expanded="true"] .nav-group-chevron {
  transform: rotate(180deg);
}

.nav-submenu {
  border-left-color: rgba(255, 255, 255, 0.14);
  margin: 0 0 5px 12px;
  padding: 5px 0 5px 10px;
}

.nav-submenu-label {
  color: rgba(232, 244, 246, 0.58);
  padding-left: 2px;
}

.nav-subitem {
  border-radius: 8px;
  color: #cfe5e9;
  min-height: 30px;
  padding: 7px 9px;
}

.shell {
  min-width: 0;
  padding: 20px 28px 42px;
}

.topbar {
  position: sticky;
  top: 16px;
  z-index: 6;
  align-items: center;
  border: 1px solid var(--hre-line);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--hre-shadow-sm);
  margin-bottom: 22px;
  min-height: 60px;
  padding: 9px 16px;
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  backdrop-filter: saturate(180%) blur(12px);
}

.topbar > div:first-child {
  border-right: 1px solid var(--hre-line);
  flex: 1 1 420px;
  min-width: 0;
  padding-right: 18px;
}

.topbar h1 {
  color: var(--hre-ink);
  font-size: 18px;
  font-weight: 720;
  letter-spacing: 0;
}

.topbar .lead,
.topbar p,
.session-chip span {
  color: var(--hre-muted);
}

.session-chip {
  border-color: var(--hre-line);
  border-radius: 999px;
  background: #f4f7f6;
  box-shadow: none;
  min-width: 0;
  padding: 7px 12px;
}

.section[data-function-color] > .module-head,
.module-head {
  border: 1px solid color-mix(in srgb, var(--fn-border, var(--hre-line)) 74%, var(--hre-line));
  border-left: 5px solid var(--fn-accent, var(--hre-forest));
  border-radius: var(--hre-radius);
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--fn-soft, #eef8f4) 58%, #ffffff), #ffffff 76%),
    #ffffff;
  box-shadow: var(--hre-shadow-sm);
  margin-bottom: 16px;
  padding: 15px 17px;
}

.section[data-function-color] > .module-head h2,
.module-head h2 {
  color: var(--hre-ink);
  font-size: clamp(22px, 1.7vw, 30px);
  letter-spacing: 0;
}

.module-head p,
.section[data-function-color] > .module-head .body-copy,
.section[data-function-color] > .module-head p:not(.eyebrow) {
  color: var(--hre-muted);
}

.eyebrow,
.section[data-function-color] > .module-head .eyebrow {
  color: var(--fn-ink, var(--hre-forest));
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.06em;
}

.panel,
.ui-section,
.hsi-pantalla,
.data-table,
.table-wrap,
.ui-table,
.ops-list,
.admission-panel,
.management-api-panel,
.pharmacy-api-panel {
  background: var(--hre-surface);
  border: 1px solid var(--hre-line);
  border-radius: var(--hre-radius);
  box-shadow: var(--hre-shadow-sm);
}

.section[data-function-color] .panel,
.section[data-function-color] .hsi-pantalla,
.section[data-function-color] .ui-section,
.section[data-function-color] .admission-kpi,
.section[data-function-color] .ops-card,
.section[data-function-color] .doctor-circuit-card {
  border-color: color-mix(in srgb, var(--fn-border, var(--hre-line)) 64%, var(--hre-line));
  box-shadow: var(--hre-shadow-sm);
}

.panel {
  padding: 16px;
}

.panel:hover,
.ui-section:hover,
.hsi-pantalla:hover {
  border-color: var(--hre-line-strong);
  box-shadow: var(--hre-shadow-md);
}

.panel > h3:first-child,
.panel > h2:first-child,
.section[data-function-color] .panel > h3:first-child,
.section[data-function-color] .panel > h2:first-child,
.section[data-function-color] .hsi-pantalla > h3:first-child {
  border-left: 4px solid var(--fn-accent, var(--hre-forest));
  color: var(--hre-ink-2);
  font-size: 15px;
  font-weight: 760;
  letter-spacing: 0;
  margin-top: 0;
  padding-left: 10px;
}

.primary,
.secondary,
.ghost,
.ui-btn,
a.ui-btn,
.ui-btn-sm,
.tab-btn,
.hsi-tab,
.admission-subnav-button,
.day-hospital-tabs button,
.ts-tab {
  border-radius: var(--hre-radius-sm);
  font-weight: 760;
  letter-spacing: 0;
  min-height: 36px;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.primary,
.ui-btn.primary,
.ui-btn.is-primary {
  background: var(--fn-ink, var(--hre-forest));
  border-color: var(--fn-ink, var(--hre-forest));
  color: #ffffff;
}

.primary:hover,
.ui-btn.primary:hover,
.ui-btn.is-primary:hover {
  background: color-mix(in srgb, var(--fn-ink, var(--hre-forest)) 88%, #07182d);
  border-color: color-mix(in srgb, var(--fn-ink, var(--hre-forest)) 88%, #07182d);
}

.ghost,
.secondary,
.ui-btn,
a.ui-btn,
.ui-btn-sm {
  background: #ffffff;
  border-color: var(--hre-line);
  color: var(--hre-ink-2);
}

.ghost:hover,
.secondary:hover,
.ui-btn:hover,
a.ui-btn:hover,
.ui-btn-sm:hover {
  background: color-mix(in srgb, var(--fn-soft, #eef8f4) 72%, #ffffff);
  border-color: color-mix(in srgb, var(--fn-border, var(--hre-line)) 78%, var(--hre-line));
  color: var(--fn-ink, var(--hre-forest));
}

.primary:focus-visible,
.ghost:focus-visible,
.secondary:focus-visible,
.ui-btn:focus-visible,
a.ui-btn:focus-visible,
.ui-btn-sm:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  box-shadow: var(--hre-focus-ring);
  outline: 0;
}

.section[data-function-color] input:not([type="checkbox"]):not([type="radio"]),
.section[data-function-color] select,
.section[data-function-color] textarea,
input:not([type="checkbox"]):not([type="radio"]):not(.nav-search),
select,
textarea {
  border: 1px solid #ccd7e1;
  border-radius: var(--hre-radius-sm);
  background: #fbfdff;
  color: var(--hre-ink);
  min-height: 38px;
}

.section[data-function-color] input:not([type="checkbox"]):not([type="radio"]):focus,
.section[data-function-color] select:focus,
.section[data-function-color] textarea:focus,
input:not([type="checkbox"]):not([type="radio"]):not(.nav-search):focus,
select:focus,
textarea:focus {
  border-color: var(--fn-accent, var(--hre-forest));
  background: #ffffff;
  box-shadow: var(--hre-focus-ring);
  outline: 0;
}

.badge,
.pill,
.status-pill,
.ts-pill,
.mi-dia-chip {
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 11px;
  font-weight: 760;
  letter-spacing: 0;
  line-height: 1.35;
  padding: 3px 9px;
  white-space: nowrap;
}

table {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
}

th {
  background: #f3f7f8;
  border-bottom: 1px solid var(--hre-line);
  color: #334155;
  font-size: 11px;
  font-weight: 820;
  letter-spacing: 0;
  text-transform: uppercase;
}

td {
  border-bottom: 1px solid #edf2f5;
  color: var(--hre-ink);
}

tbody tr:hover td {
  background: color-mix(in srgb, var(--fn-soft, #eef8f4) 52%, #ffffff);
}

.panel > table,
.ui-section > table,
.hsi-pantalla > table,
.data-table,
.table-wrap {
  max-width: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

.table-row.header,
.ui-table-header,
.ops-list-row-head,
.billing-api-row-head,
.pami-api-row-head,
.agreement-api-row-head,
.report-api-row-head,
.nom-api-row.header {
  background: #f3f7f8;
  border-bottom: 1px solid var(--hre-line);
  color: #334155;
  font-size: 11px;
  font-weight: 820;
  letter-spacing: 0;
  text-transform: uppercase;
}

.table-row,
.ui-table-row,
.ops-list-row,
.billing-api-row,
.pami-api-row,
.agreement-api-row,
.report-api-row,
.nom-api-row {
  border-top-color: #edf2f5;
}

[style*="grid-template-columns:1fr 1fr"],
[style*="grid-template-columns: 1fr 1fr"],
[style*="grid-template-columns: repeat(2"],
[style*="grid-template-columns:repeat(2"] {
  grid-template-columns: minmax(0, 1fr) !important;
}

[style*="border-radius:16px"],
[style*="border-radius: 16px"],
[style*="border-radius:20px"],
[style*="border-radius: 20px"],
[style*="border-radius:24px"],
[style*="border-radius: 24px"] {
  border-radius: var(--hre-radius) !important;
}

@media (max-width: 980px) {
  body {
    grid-template-columns: 1fr;
  }

  .sidebar {
    position: relative;
    min-height: auto;
    max-height: none;
    border-radius: 0;
  }

  .shell {
    padding: 16px;
  }

  .topbar {
    position: static;
  }

  .topbar > div:first-child {
    border-right: 0;
    padding-right: 0;
  }
}

@media (max-width: 620px) {
  body {
    max-width: 100vw;
    overflow-x: hidden;
  }

  .shell {
    margin: 0 !important;
    max-width: 100vw;
    overflow-x: hidden;
    padding: 14px !important;
    transform: none !important;
    width: 100%;
  }

  .section,
  .section.active,
  .module-head,
  .panel,
  .ui-section,
  .hsi-pantalla {
    max-width: 100%;
    min-width: 0;
  }

  #stock .pharmacy-branch-nav {
    display: flex;
    flex-wrap: nowrap;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
  }

  #stock .pharmacy-branch-nav > * {
    flex: 0 0 152px;
  }

  #stock .pharmacy-principle {
    grid-template-columns: minmax(0, 1fr) !important;
    text-align: left;
  }

  #stock .pharmacy-principle *,
  #stock .pharmacy-rule-card *,
  #stock .pharmacy-procedure-card *,
  #stock .pharmacy-check-card * {
    min-width: 0;
    overflow-wrap: anywhere;
  }
}

/* Audit sweep: pantallas y subapps revisadas contra grillas viejas. */
.section {
  overflow-wrap: anywhere;
}

.layout-stack,
.three-col,
.lab-layout,
.imaging-layout,
.clinical-api-layout,
.doc-api-layout,
.nom-api-layout,
.prevention-api-layout,
.kitchen-api-layout,
.laundry-api-layout,
.maintenance-api-layout,
.housekeeping-api-layout,
.socios-workspace,
.socios-columns,
.private-billing-layout,
.management-api-panel .layout-stack,
.fund-flow-api-panel .layout-stack,
.hsi-guardia-layout,
.wo-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 12px;
}

.layout-stack > *,
.three-col > *,
.lab-layout > *,
.imaging-layout > *,
.clinical-api-layout > *,
.doc-api-layout > *,
.nom-api-layout > *,
.prevention-api-layout > *,
.kitchen-api-layout > *,
.laundry-api-layout > *,
.maintenance-api-layout > *,
.housekeeping-api-layout > *,
.socios-workspace > *,
.socios-columns > *,
.private-billing-layout > *,
.hsi-guardia-layout > *,
.wo-layout > * {
  min-width: 0;
  width: 100%;
}

.command-status-grid,
.dashboard-finance-band,
.operational-decision-grid,
.insight-grid,
.rep-grid,
.finance-close-grid,
.admission-priority-grid,
.daily-capacity-grid,
.daily-board-grid,
.automation-grid,
.operation-grid,
.procurement-workflow,
.cashbox-grid,
.socios-feature-grid,
.socios-actions,
.socios-filter-grid,
.sector-inventory-grid,
.sector-inventory-items,
.laundry-api-columns,
.housekeeping-checklist,
.floor-stock-grid,
.decision-highlight-grid,
.inventory-extremes-grid,
.doctor-circuit-grid,
.ops-grid,
.art-srt-grid,
.surgery-calendar-grid,
.bed-sector-grid,
.bed-work-grid,
.bed-floor-grid,
.bed-payer-grid,
.bed-card-list,
.clinical-flow-map,
.clinical-flow-map-tail {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 8px;
}

.command-status-grid > *,
.dashboard-finance-band > *,
.operational-decision-grid > *,
.insight-grid > *,
.rep-grid > *,
.finance-close-grid > *,
.admission-priority-grid > *,
.daily-capacity-grid > *,
.daily-board-grid > *,
.automation-grid > *,
.operation-grid > *,
.cashbox-grid > *,
.socios-feature-grid > *,
.socios-actions > *,
.sector-inventory-grid > *,
.sector-inventory-items > *,
.laundry-api-columns > *,
.housekeeping-checklist > *,
.floor-stock-grid > *,
.decision-highlight-grid > *,
.inventory-extremes-grid > *,
.doctor-circuit-grid > *,
.ops-grid > *,
.art-srt-grid > *,
.surgery-calendar-grid > *,
.bed-sector-grid > *,
.bed-work-grid > *,
.bed-floor-grid > *,
.bed-payer-grid > *,
.bed-card-list > *,
.clinical-flow-map > *,
.clinical-flow-map-tail > * {
  min-width: 0;
  width: 100%;
}

.doctor-api-create,
.budget-report-controls,
.budget-import-controls,
.finance-close-actions,
.procurement-quick-form,
.treasury-form,
.appointment-filter-bar,
.filtros-grid,
.hsi-censo-filter,
.socios-filter-grid,
.private-budget-form,
.budget-list-controls,
.fee-api-toolbar,
.nom-api-filters,
.prevention-api-filters,
.prevention-api-form,
.automation-api-filters,
.automation-api-evaluator,
.lab-toolbar,
.lab-form-grid,
.imaging-toolbar,
.imaging-form-grid,
.amb-toolbar,
.amb-form-grid,
.housekeeping-api-filters,
.laundry-api-filters,
.kitchen-api-filters {
  grid-template-columns: minmax(0, 1fr) !important;
}

.doctor-api-create,
.budget-import-panel,
.prevention-api-form,
.automation-api-evaluator,
.procurement-quick-form,
.treasury-form,
.private-budget-form {
  max-height: min(72vh, 640px);
  overflow: auto;
  scrollbar-gutter: stable;
}

.doctor-api-create > *,
.budget-report-controls > *,
.budget-import-controls > *,
.finance-close-actions > *,
.procurement-quick-form > *,
.treasury-form > *,
.appointment-filter-bar > *,
.filtros-grid > *,
.hsi-censo-filter > *,
.socios-filter-grid > *,
.private-budget-form > *,
.budget-list-controls > *,
.fee-api-toolbar > *,
.nom-api-filters > *,
.prevention-api-filters > *,
.prevention-api-form > *,
.automation-api-filters > *,
.automation-api-evaluator > *,
.lab-toolbar > *,
.lab-form-grid > *,
.imaging-toolbar > *,
.imaging-form-grid > *,
.amb-toolbar > *,
.amb-form-grid > *,
.housekeeping-api-filters > *,
.laundry-api-filters > *,
.kitchen-api-filters > * {
  min-width: 0;
  width: 100%;
}

.section article,
.section [class*="card"],
.section [class*="panel"],
.section [class*="row"],
.section [class*="item"] {
  min-width: 0;
}

.section article *,
.section [class*="card"] *,
.section [class*="panel"] *,
.section [class*="row"] *,
.section [class*="item"] * {
  min-width: 0;
  overflow-wrap: anywhere;
}

.section .command-status-grid,
.section .admission-priority-grid,
.section .automation-grid,
.section .operation-grid,
.section .cashbox-grid,
.section .ops-grid {
  border: 1px solid var(--hre-line);
  border-radius: var(--hre-radius);
  overflow: hidden;
}

.section .command-status-grid > *,
.section .admission-priority-grid > *,
.section .automation-grid > *,
.section .operation-grid > *,
.section .cashbox-grid > *,
.section .ops-grid > * {
  border: 0;
  border-top: 1px solid var(--hre-line);
  border-left: 4px solid var(--fn-accent, var(--hre-forest));
  border-radius: 0;
  box-shadow: none;
}

.section .command-status-grid > *:first-child,
.section .admission-priority-grid > *:first-child,
.section .automation-grid > *:first-child,
.section .operation-grid > *:first-child,
.section .cashbox-grid > *:first-child,
.section .ops-grid > *:first-child {
  border-top: 0;
}

/* Audit sweep specifics: reglas con mas especificidad que seguian creando columnas implicitas. */
.doctor-api-create .wide,
.budget-report-controls .wide,
.budget-import-controls .wide,
.prevention-api-form .wide,
.automation-api-evaluator .wide,
.private-budget-form .wide {
  grid-column: auto !important;
}

.risk-card,
.operational-decision-card,
.private-detail-line,
.private-detail-total,
.private-item-row,
.agreement-card,
.procurement-row,
.ledger-entry,
.audit-ledger-entry,
.episode-card,
.doctor-circuit-card,
.bank-row,
.mini-row,
.security-api-layout,
.automation-api-layout,
.lab-catalog-mini,
.lab-order-list,
.flow,
.mi-dia-controls-grid,
.mi-dia-grid,
.ts-bulk-bar {
  grid-template-columns: minmax(0, 1fr) !important;
}

.risk-card > *,
.operational-decision-card > *,
.private-detail-line > *,
.private-detail-total > *,
.private-item-row > *,
.agreement-card > *,
.procurement-row > *,
.ledger-entry > *,
.audit-ledger-entry > *,
.episode-card > *,
.doctor-circuit-card > *,
.bank-row > *,
.mini-row > *,
.security-api-layout > *,
.automation-api-layout > *,
.lab-catalog-mini > *,
.lab-order-list > *,
.flow > *,
.mi-dia-controls-grid > *,
.mi-dia-grid > *,
.ts-bulk-bar > * {
  min-width: 0;
  max-width: 100%;
}

.section input[type="checkbox"],
.section input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  display: inline-grid;
  place-items: center;
  width: 16px;
  height: 16px;
  margin: 0;
  border: 1px solid #b8c6d1;
  border-radius: 4px;
  background: #ffffff;
  color: #ffffff;
  vertical-align: middle;
}

.section input[type="radio"] {
  border-radius: 999px;
}

.section input[type="checkbox"]:checked,
.section input[type="radio"]:checked {
  border-color: var(--fn-ink, var(--hre-forest));
  background: var(--fn-ink, var(--hre-forest));
}

.section input[type="checkbox"]:checked::after {
  content: "";
  width: 8px;
  height: 5px;
  border-left: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg) translateY(-1px);
}

.section input[type="radio"]:checked::after {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: currentColor;
}

/* Continuacion audit: sort buttons, tablas anchas y sublayouts persistentes. */
.ops-sort-button,
.ui-planilla-table thead th .ops-sort-button {
  border: 1px solid var(--hre-line) !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  color: var(--hre-ink-2) !important;
  min-height: 28px;
  padding: 4px 9px !important;
  box-shadow: none !important;
}

.ops-sort-button:hover,
.ops-sort-button.is-active,
.ui-planilla-table thead th .ops-sort-button:hover,
.ui-planilla-table thead th .ops-sort-button.is-active {
  background: color-mix(in srgb, var(--fn-soft, #eef8f4) 82%, #ffffff) !important;
  border-color: color-mix(in srgb, var(--fn-border, var(--hre-line)) 80%, var(--hre-line)) !important;
  color: var(--fn-ink, var(--hre-forest)) !important;
}

.primary-action,
.admission-priority-card {
  border: 1px solid var(--hre-line) !important;
  border-left: 4px solid var(--fn-accent, var(--hre-forest)) !important;
  border-radius: var(--hre-radius-sm) !important;
  background: #ffffff !important;
  box-shadow: var(--hre-shadow-sm);
}

#stock .pharmacy-system-grid article {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 8px;
}

#stock .pharmacy-system-grid ul {
  display: flex;
  flex-wrap: wrap;
}

.pharmacy-pricing-table,
.pharmacy-ledger-table,
.pharmacy-treatment-table,
.pharmacy-search-table,
.pharmacy-quote-table,
.cash-flow-table,
.doctor-api-table,
.ops-list.hr-legajos-list {
  max-width: 100%;
  overflow: auto;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
}

.pharmacy-pricing-row,
.pharmacy-ledger-row,
.pharmacy-treatment-row,
.pharmacy-search-row,
.pharmacy-quote-row {
  min-width: 0 !important;
}

.pharmacy-treatment-row {
  grid-template-columns: minmax(160px, 1fr) minmax(150px, 1fr) minmax(130px, 0.75fr) minmax(120px, 0.7fr) minmax(70px, 0.4fr) minmax(120px, 0.7fr) minmax(120px, 0.7fr) !important;
}

.pharmacy-pricing-row,
.pharmacy-search-row,
.pharmacy-quote-row {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) !important;
}

.doctor-shift-toolbar,
.doctor-shift-filters,
.doctor-shift-create,
.doctor-shift-grid,
.doctor-shift-kpis,
.hr-profile-grid,
.hsi-patient-layout,
.integration-api-grid,
.action-grid,
.clinical-record-head {
  grid-template-columns: minmax(0, 1fr) !important;
}

.doctor-shift-toolbar > *,
.doctor-shift-filters > *,
.doctor-shift-create > *,
.doctor-shift-grid > *,
.doctor-shift-kpis > *,
.hr-profile-grid > *,
.hsi-patient-layout > *,
.integration-api-grid > *,
.action-grid > *,
.clinical-record-head > * {
  min-width: 0;
  width: 100%;
}

.doctor-api-table .ui-table-header,
.doctor-api-row,
.ops-list.hr-legajos-list .ops-list-row-head,
.ops-list.hr-legajos-list .hr-legajo-row {
  min-width: 0 !important;
}

.doctor-api-table .ui-table-header,
.doctor-api-row {
  grid-template-columns: minmax(180px, 1.2fr) minmax(140px, 0.9fr) minmax(120px, 0.75fr) minmax(150px, 1fr) minmax(130px, 0.8fr) minmax(110px, 0.7fr) !important;
}

.ops-list.hr-legajos-list .ops-list-row-head,
.ops-list.hr-legajos-list .hr-legajo-row {
  grid-template-columns: minmax(170px, 1.15fr) minmax(110px, 0.8fr) minmax(150px, 1fr) minmax(120px, 0.8fr) minmax(70px, 0.45fr) minmax(100px, 0.7fr) minmax(90px, 0.6fr) minmax(90px, 0.6fr) minmax(90px, 0.6fr) !important;
}

.lab-catalog-mini label {
  grid-template-columns: 24px minmax(0, 1fr) !important;
}

.lab-catalog-mini label > * {
  min-width: 0;
}

.kitchen-api-layout dl,
.sector-inventory-grid dl,
.floor-stock-card dl {
  grid-template-columns: minmax(0, 1fr) !important;
}

/* Gestion UX hardening 20260628: marca institucional, despliegues estables y pantallas full-width. */
.brand.brand-horizontal {
  align-items: stretch;
  flex-direction: column;
  gap: 10px;
}

.brand-logo-card {
  display: grid;
  min-height: 78px;
  place-items: center;
  border: 1px solid rgba(201, 223, 244, 0.9);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 10px 22px rgba(0, 56, 120, 0.11);
  overflow: hidden;
  padding: 8px;
}

.brand-logo-casona {
  display: block;
  width: min(100%, 148px);
  max-height: 112px;
  height: auto;
  object-fit: contain;
}
.login-card {
  width: min(100%, 470px);
}

.login-brand.brand-horizontal {
  gap: 12px;
}

.login-brand .brand-logo-card {
  min-height: 96px;
}

.login-brand .brand-logo-casona {
  width: min(100%, 168px);
  max-height: 126px;
}
.sidebar .brand.brand-horizontal {
  padding: 0 2px 14px;
}

.sidebar .brand-logo-card {
  min-height: 82px;
  border-color: rgba(255, 255, 255, 0.66);
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.18);
}

.sidebar .brand.brand-horizontal > div:last-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}

.topbar-logo {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border: 1px solid var(--hre-line);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: var(--hre-shadow-sm);
  object-fit: contain;
  padding: 4px;
}

.topbar > .topbar-main {
  border-right: 1px solid var(--hre-line);
  flex: 1 1 420px;
  min-width: 0;
  padding-right: 18px;
}

.global-search-shell {
  flex: 0 1 360px;
  min-width: 220px;
}

.global-search-trigger {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--hre-line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--hospital-navy);
  box-shadow: 0 10px 22px rgba(0, 56, 120, 0.08);
  cursor: pointer;
  font-weight: 800;
  justify-content: flex-start;
  padding: 8px 10px;
  text-align: left;
}

.global-search-trigger:hover,
.global-search-trigger:focus-visible {
  border-color: color-mix(in srgb, var(--hospital-celeste) 70%, var(--hospital-navy));
  box-shadow: 0 0 0 3px rgba(77, 156, 218, 0.2), 0 12px 24px rgba(0, 56, 120, 0.12);
  outline: none;
}

.global-search-glyph {
  position: relative;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-radius: 999px;
}

.global-search-glyph::after {
  position: absolute;
  right: -5px;
  bottom: -4px;
  width: 7px;
  height: 2px;
  background: currentColor;
  border-radius: 999px;
  content: "";
  transform: rotate(45deg);
  transform-origin: left center;
}

.global-search-trigger-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.global-search-trigger kbd {
  margin-left: auto;
  border: 1px solid rgba(0, 56, 120, 0.18);
  border-radius: 6px;
  background: #f5f9fc;
  color: var(--hospital-navy);
  font: 800 11px/1.1 inherit;
  padding: 4px 6px;
  white-space: nowrap;
}

.global-search-overlay[hidden] {
  display: none !important;
}

.global-search-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  align-items: start;
  justify-items: center;
  padding: min(9vh, 72px) 18px 24px;
  background: rgba(0, 24, 52, 0.42);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

.global-search-backdrop {
  position: absolute;
  inset: 0;
}

.global-search-panel {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 10px;
  width: min(760px, 100%);
  max-height: min(760px, calc(100vh - 72px));
  overflow: hidden;
  border: 1px solid rgba(0, 56, 120, 0.16);
  border-top: 4px solid var(--hospital-navy);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 28px 70px rgba(0, 24, 52, 0.28);
  padding: 12px;
}

.global-search-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
}

.global-search-panel-head h2 {
  margin: 0;
  color: var(--hospital-navy);
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0;
}

.global-search-close {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1px solid var(--hre-line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--hre-muted);
  cursor: pointer;
  font-weight: 900;
}

.global-search-close:hover,
.global-search-close:focus-visible {
  border-color: rgba(232, 60, 62, 0.32);
  background: #fff2f2;
  color: var(--hospital-red);
  outline: none;
}

.global-search-query {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--hre-line);
  border-radius: 8px;
  background: #f8fbfd;
  color: var(--hre-ink);
  font-size: 16px;
  font-weight: 800;
  padding: 10px 12px;
}

.global-search-query:focus {
  border-color: var(--hospital-celeste);
  box-shadow: 0 0 0 3px rgba(77, 156, 218, 0.22);
  outline: none;
}

.global-search-results {
  display: grid;
  gap: 7px;
  max-height: min(58vh, 540px);
  overflow-y: auto;
  padding: 2px;
  scrollbar-gutter: stable;
}

.global-search-result {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  width: 100%;
  border: 1px solid var(--hre-line);
  border-left: 4px solid var(--hospital-celeste);
  border-radius: 8px;
  background: #ffffff;
  color: var(--hre-ink);
  cursor: pointer;
  padding: 10px 12px;
  text-align: left;
}

.global-search-result:hover,
.global-search-result.is-active {
  border-color: rgba(0, 56, 120, 0.28);
  border-left-color: var(--hospital-red);
  background: #f0f7fc;
  box-shadow: 0 10px 22px rgba(0, 56, 120, 0.1);
  outline: none;
}

.global-search-type {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  border-radius: 999px;
  background: rgba(7, 156, 60, 0.1);
  color: var(--hospital-green);
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  padding: 4px 7px;
  text-transform: uppercase;
}

.global-search-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.global-search-copy strong,
.global-search-copy small {
  min-width: 0;
  overflow-wrap: anywhere;
}

.global-search-copy strong {
  color: var(--hre-ink);
  font-size: 13px;
  font-weight: 900;
}

.global-search-copy small {
  color: var(--hre-muted);
  font-size: 12px;
  font-weight: 700;
}

.global-search-empty {
  margin: 0;
  border: 1px dashed rgba(0, 56, 120, 0.22);
  border-radius: 8px;
  background: #f8fbfd;
  color: var(--hre-muted);
  font-weight: 800;
  padding: 16px;
  text-align: center;
}

.global-search-focus-ring {
  outline: 3px solid rgba(77, 156, 218, 0.45) !important;
  outline-offset: 3px;
}

.nav-group-toggle > * {
  pointer-events: none;
}

.nav-group-chevron,
.nav-item-caret {
  transform: none !important;
}

.nav-group-chevron::before,
.nav-item-caret::before {
  transition: transform 0.16s ease;
}

.nav-group-chevron::before {
  transform: rotate(-45deg);
}

.nav-group-toggle[aria-expanded="true"] .nav-group-chevron::before,
.nav-item-parent[aria-expanded="true"] .nav-item-caret::before,
.nav-item-parent.is-expanded .nav-item-caret::before,
.nav-item-parent.active .nav-item-caret::before {
  transform: rotate(45deg);
}

.nav-group.is-collapsed > :where(.nav-item, .nav-submenu) {
  display: none !important;
}

.nav.is-searching .nav-group.is-collapsed > .nav-item:not([hidden]) {
  display: block !important;
}

.nav.is-searching .nav-group.is-collapsed > .nav-submenu:not([hidden]) {
  display: grid !important;
}

.section :where(.module-head, .panel, .ui-section, .hsi-pantalla, .admission-panel, .management-api-panel, .pharmacy-api-panel, .doctor-panel, .doctor-side-panel section, .doctor-work-card, .doctor-evolution-card, [class*="-card"], article) {
  max-width: 100%;
}

.section :where(.layout-stack, .three-col, .clinical-record-layout, .finance-explain-grid, .fee-api-forms, .doctor-layout, .doctor-form-grid, .doctor-soap-read, .nursing-layout, .pharmacy-api-grid, .pharmacy-api-forms, .pharmacy-form-grid, .pharmacy-tender-grid, .pharmacy-stage-grid, .pharmacy-request-grid, .pharmacy-ops-grid, .pharmacy-system-grid, .form-api-layout, .form-api-columns, .doc-api-layout, .bed-api-layout, .surgery-api-layout, .wo-layout, .padron-bahia-layout, .security-api-layout, .automation-api-layout, .clinical-api-layout, .nom-api-layout, .prevention-api-layout) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  width: 100%;
}

.section :where(.layout-stack, .three-col, .clinical-record-layout, .finance-explain-grid, .fee-api-forms, .doctor-layout, .doctor-form-grid, .doctor-soap-read, .nursing-layout, .pharmacy-api-grid, .pharmacy-api-forms, .pharmacy-form-grid, .pharmacy-tender-grid, .pharmacy-stage-grid, .pharmacy-request-grid, .pharmacy-ops-grid, .pharmacy-system-grid, .form-api-layout, .form-api-columns, .doc-api-layout, .bed-api-layout, .surgery-api-layout, .wo-layout, .padron-bahia-layout, .security-api-layout, .automation-api-layout, .clinical-api-layout, .nom-api-layout, .prevention-api-layout) > * {
  min-width: 0;
  width: 100%;
}

.section :where(.kpi-grid, .doctor-kpi-strip, .hsi-kpi-strip, .gerencia-kpis-grid, .rep-kpis, .pharmacy-alert-grid, .pharmacy-workflow-grid, .pharmacy-procedure-grid, .pharmacy-checklist-grid, .pharmacy-rule-grid, .bed-sector-grid, .bed-work-grid, .bed-floor-grid, .bed-payer-grid, .bed-card-list, .surgery-calendar-grid, .day-hospital-grid, .doctor-shift-grid, .doctor-shift-kpis, .hr-profile-grid) {
  grid-template-columns: minmax(0, 1fr) !important;
}
/* Gestion layout lock 20260628: las listas operativas no vuelven a grillas de cards. */
.section :where(.layout-stack, .procurement-card-list, .bed-card-list, [class$="-card-grid"], [class*="-card-grid "], [class$="-card-list"], [class*="-card-list "]) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  width: 100%;
}

.section :where(.layout-stack, .procurement-card-list, .bed-card-list, [class$="-card-grid"], [class*="-card-grid "], [class$="-card-list"], [class*="-card-list "]) > * {
  min-width: 0;
  width: 100%;
}


.section :where(.ui-planilla-scroll, .ui-table-wrapper, .table-wrap, .data-table, .cash-flow-scroll, .pharmacy-pricing-table, .pharmacy-ledger-table, .pharmacy-treatment-table, .pharmacy-search-table, .pharmacy-quote-table, .doctor-api-table, .fee-api-list-table, .fee-api-settlement-table, .fee-professional-table, .ops-list, .mini-table) {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
}

.section :where(.ui-planilla-table, .ui-table, table, .cash-flow-table) {
  min-width: max-content;
}

.section :where(.topbar-actions, .inline-actions, .hsi-row-actions, .doctor-work-card footer, .pharmacy-filter-bar, .pharmacy-branch-nav, .admission-actions, .form-actions, .finance-hero-actions) {
  flex-wrap: wrap;
  max-width: 100%;
}

.section :where(button, .primary, .secondary, .ghost, .ui-btn, .ui-btn-sm, .admission-subnav-button, .tab-btn, .hsi-tab, .ts-tab) {
  max-width: 100%;
  white-space: normal;
}

.section :where(label, .ui-field, fieldset, form) {
  min-width: 0;
}

.section :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  box-sizing: border-box;
  width: 100%;
}

#stock .pharmacy-system-grid,
#stock .pharmacy-alert-grid,
#stock .pharmacy-workflow-grid,
#stock .pharmacy-procedure-grid,
#stock .pharmacy-checklist-grid,
#stock .pharmacy-rule-grid,
#stock .pharmacy-tender-grid,
#stock .pharmacy-stage-grid,
#stock .pharmacy-request-grid,
#stock .pharmacy-ops-grid {
  gap: 8px;
}

#stock :where(.pharmacy-workflow-card, .pharmacy-procedure-card, .pharmacy-check-card, .pharmacy-rule-card, .pharmacy-tender-card, .pharmacy-stage-card, .pharmacy-request-card, .pharmacy-ops-card, .pharmacy-system-grid article) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) !important;
  min-height: 0;
  border-radius: 8px !important;
  box-shadow: none !important;
}

#stock .pharmacy-system-grid article:first-child {
  grid-column: auto !important;
}

#dashboard .command-header {
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: start;
  min-height: 0;
}

#dashboard .command-status-grid {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(158px, 1fr);
  grid-template-columns: none !important;
  gap: 8px;
  overflow-x: auto;
  border: 0;
  border-radius: 0;
  scrollbar-gutter: stable;
}

#dashboard .command-status-grid > * {
  min-width: 158px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-left: 4px solid var(--hospital-celeste);
  border-radius: 8px;
}

@media (max-width: 980px) {
  .topbar > .topbar-main {
    border-right: 0;
    padding-right: 0;
  }

  .global-search-shell {
    flex: 1 1 100%;
    order: 3;
    min-width: 0;
  }
}

@media (max-width: 620px) {
  .topbar-logo {
    width: 38px;
    height: 38px;
  }

  .login-brand .brand-logo-card,
  .sidebar .brand-logo-card {
    min-height: 68px;
  }

  .global-search-overlay {
    padding: 10px;
  }

  .global-search-panel {
    max-height: calc(100vh - 20px);
  }

  .global-search-result {
    grid-template-columns: minmax(0, 1fr);
  }

  .global-search-trigger kbd {
    display: none;
  }
}

/* ===== Atender: el acto clinico desde Mi Dia ===== */

.mi-dia-atencion-form {
  display: grid;
  gap: 12px;
}

.mi-dia-atencion-paciente {
  margin: 0;
  padding: 8px 11px;
  border-radius: 7px;
  background: #f4f7fa;
  color: #142232;
  font-size: 14px;
}

/* CON QUE MATRICULA SE VA A FIRMAR. Se muestra antes de escribir el SOAP: si
   falta, el medico se entera ahora y no despues de redactar la evolucion. */
.mi-dia-atencion-firma {
  margin: 0;
  padding: 8px 11px;
  border-radius: 7px;
  border: 1px solid #b9c8d6;
  background: #f4f9f4;
  color: #1d3524;
  font-size: 13px;
  line-height: 1.4;
}

.mi-dia-atencion-firma-falta {
  border-color: #c45445;
  background: #fff8f7;
  color: #8f2f22;
  font-weight: 700;
}

/* La advertencia de inmutabilidad va ANTES de guardar, no despues: el medico
   tiene que saber que lo que firma no se edita. */
.mi-dia-atencion-nota {
  margin: 0;
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.4;
}

.ui-form-error {
  margin: 0;
  padding: 8px 11px;
  border: 1px solid #c45445;
  border-radius: 7px;
  background: #fff8f7;
  color: #8f2f22;
  font-size: 13px;
  font-weight: 700;
}

/* ===== Comunicacion: novedades del sitio y replica a redes =====
   Estas clases faltaban: el modulo se escribio con un vocabulario `ui-*`
   generico que NO existe en esta hoja, asi que la pantalla salia casi sin
   estilo y —lo importante— el aviso de "esta imagen la va a rechazar
   Instagram" se veia como texto comun, igual que cualquier ayuda. Un aviso
   que no se distingue del resto no avisa. */

.comunicacion-tabs {
  display: flex;
  gap: 6px;
  margin: 0 0 14px;
  flex-wrap: wrap;
}

.comunicacion-acciones {
  display: flex;
  gap: 10px;
  margin-top: 18px;
  flex-wrap: wrap;
}

.comunicacion-check {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 10px 0;
  font-weight: 700;
  font-size: 13px;
}

.comunicacion-check input {
  width: auto;
  margin: 0;
}

/* Accion dentro de una fila de planilla. Es un <button> para que llegue por
   teclado y lo lea un lector de pantalla, pero se ve como un link. */
.comunicacion-link {
  padding: 2px 6px;
  border: 0;
  border-radius: 5px;
  background: none;
  color: var(--green, #1f6b5b);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: underline;
}

.comunicacion-link:hover,
.comunicacion-link:focus-visible {
  background: #eef7f4;
}

.comunicacion-preview {
  margin: 12px 0;
}

/* El resultado de subir la imagen. Vacio no ocupa lugar: sin esto el
   formulario queda con un hueco entre el selector y la URL. */
.comunicacion-subida:empty {
  display: none;
}

.comunicacion-subida > p {
  margin: 8px 0 0;
}

.comunicacion-core input[type="file"] {
  padding: 8px;
  border: 1px dashed #9bb0c4;
  border-radius: 8px;
  background: #f8fafc;
  font-size: 13px;
  cursor: pointer;
}
/* Farmacia productiva: las superficies historicas con fixtures no deben
   aparecer mientras se resuelve el perfil ni en el corte logistico real. */
#stock[data-pharmacy-presentation="pending"] .module-head .topbar-actions,
#stock[data-pharmacy-presentation="pending"] .pharmacy-branch-nav,
#stock[data-pharmacy-presentation="pending"] .pharmacy-system-map,
#stock[data-pharmacy-presentation="pending"] [data-pharmacy-pane],
#stock[data-pharmacy-presentation="logistica-real"] .module-head .topbar-actions,
#stock[data-pharmacy-presentation="logistica-real"] .pharmacy-branch-nav,
#stock[data-pharmacy-presentation="logistica-real"] .pharmacy-system-map,
#stock[data-pharmacy-presentation="logistica-real"] [data-pharmacy-pane] {
  display: none !important;
}

/* Practica facturable de enfermeria: curacion/nebulizacion/sonda que va a
   facturacion. Colapsada por defecto; se abre al marcar el check. */
.nursing-facturable { border: 1px solid #dbe3ee; border-left: 3px solid #2f5d9e; border-radius: 8px; padding: 10px 12px; margin-top: 8px; background: #f7f9fc; }
.nursing-facturable .nursing-check { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; color: #33415c; cursor: pointer; }
.nursing-facturable-campos { margin-top: 10px; }
.nursing-facturable-nota { margin: 6px 0 0; font-size: 12px; color: #64748b; }

/* ==========================================================================
   OFICINAS DE FINANCIADORES - donde estas parada
   --------------------------------------------------------------------------
   Estando DENTRO de una oficina no se muestran las demas. Antes habia una tira
   con las 7, arriba de las solapas de contenido, con la misma pinta que ellas y
   repitiendo la lista que ya vive en SUBOFICINAS del menu izquierdo: parada en
   PAMI, la pantalla le seguia ofreciendo IOMA, FECLIBA y el resto. Queda UN
   solo lugar para cambiar de oficina -el menu- y aca solo se dice en cual esta.
   ========================================================================== */

.oficina-actual {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 9px;
  margin: 0 0 12px;
  padding: 8px 12px;
  border: 1px solid #e4d2ac;
  border-left: 4px solid #e8a33d;
  border-radius: 12px;
  background: #fdf6e9;
}

.oficina-actual-rotulo {
  color: #7a4d00;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.oficina-actual strong {
  color: #3d2a00;
  font-size: 1.02rem;
  font-weight: 800;
}

.oficina-actual-otras {
  color: #6b5a3a;
  font-size: 0.76rem;
}

/* La HC se abre desde su propia columna, en TODA fila y en cualquier estado.
   Antes el acceso vivia en "Proximo paso", que es excluyente: apenas la
   prestacion pasaba a comunicar/respaldo/facturar, Administracion se quedaba sin
   forma de mirar la historia que justamente tiene que revisar para cobrar. */
.oficina-hc-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 2px 8px 2px 3px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  font: inherit;
  cursor: pointer;
}

.oficina-hc-link > span {
  color: #0f4c81;
  font-size: 0.74rem;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.oficina-hc-link:hover {
  border-color: #bcd6e6;
  background: #eff7fc;
}

.oficina-hc-link:focus-visible {
  outline: 3px solid #e8a33d;
  outline-offset: 2px;
}

.oficina-hc-sin-episodio {
  color: #6b7a86;
  font-size: 0.7rem;
  font-style: italic;
}

/* Flecha de ordenamiento: reemplaza a las palabras "asc"/"desc" pegadas al
   rotulo, que en una columna angosta se leian como parte del nombre ("FECHA
   DESC", partido en dos renglones). El glifo va aparte del texto para que no se
   rompa el rotulo, y en oro cuando la columna es la que manda el orden. */
.ops-sort-flecha {
  margin-left: 6px;
  color: #9aa9b5;
  font-size: 0.78em;
  line-height: 1;
  vertical-align: baseline;
}

.ops-sort-flecha.is-active {
  color: #8a5600;
  font-size: 0.86em;
}

.ops-sort-button.is-active {
  border-color: #e0cfa8 !important;
  background: #fdf6e9 !important;
  color: #3d2a00 !important;
}

/* ==========================================================================
   DOCUMENTACION EXTERNA en la HC que abre Administracion
   --------------------------------------------------------------------------
   El caso real: al mostrador le entregan un estudio, una orden o un informe
   hecho AFUERA del hospital, y hasta ahora no habia donde dejarlo: quedaba en
   un cajon o en una carpeta suelta, fuera de la historia y fuera de auditoria.
   La seccion va en ORO -no en el azul del resto del panel- porque es lo unico
   que Administracion ESCRIBE en la historia clinica; todo lo demas de esa vista
   es lectura.
   ========================================================================== */

.oficina-hc-externa {
  margin-top: 16px;
  padding: 14px 16px;
  border: 1px solid #e4d2ac;
  border-left: 4px solid #e8a33d;
  border-radius: 12px;
  background: #fdf6e9;
}

.oficina-hc-externa > .ui-section-header h3 {
  color: #6b4a12;
}

.oficina-hc-externa-lista {
  display: grid;
  gap: 7px;
  margin: 0 0 14px;
  padding: 0;
  list-style: none;
}

.oficina-hc-externa-lista li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 9px;
  padding: 8px 11px;
  border: 1px solid #ecdfc4;
  border-radius: 9px;
  background: #fff;
}

.oficina-hc-externa-tipo {
  padding: 1px 8px;
  border-radius: 999px;
  color: #3d2a00;
  background: #fbeacd;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.oficina-hc-externa-lista small {
  color: #6b7a86;
}

/* "Pendiente de validacion" es un ESTADO esperado, no un error: va en oro y no
   en rojo, para que nadie lo lea como que algo fallo. */
.oficina-hc-externa-pendiente {
  padding: 1px 9px;
  border: 1px solid #e8a33d;
  border-radius: 999px;
  color: #8a5600;
  background: #fbeacd;
  font-size: 0.7rem;
  font-weight: 800;
}

.oficina-hc-externa-vacio {
  color: #6b7a86;
  font-style: italic;
}

.oficina-hc-externa-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
  padding-top: 13px;
  border-top: 1px solid #ecdfc4;
}

.oficina-hc-externa-form label {
  display: grid;
  gap: 3px;
  min-width: 0;
  font-size: 0.78rem;
  font-weight: 700;
  color: #5a4a2c;
}

.oficina-hc-externa-form input,
.oficina-hc-externa-form select,
.oficina-hc-externa-form textarea {
  width: 100%;
  font: inherit;
  font-weight: 400;
}

.oficina-hc-externa-ancho {
  grid-column: 1 / -1;
}

.oficina-hc-externa-acciones {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
}

/* ==========================================================================
   DEBITOS DE LA OFICINA
   --------------------------------------------------------------------------
   El circuito ya existia entero (auditoria_debitos, migracion 048) pero solo lo
   tenia la pantalla "Oficina IOMA", con el codigo IOMA hardcodeado: las otras
   seis oficinas recibian el debito por mail y no tenian donde cargarlo.
   Un debito es plata que el financiador NO paga, asi que la respuesta se
   escribe en un formulario y se relee antes de mandarla -la pantalla de IOMA
   usa window.prompt, que no deja releer ni corregir-.
   ========================================================================== */

.oficina-debito-respuesta {
  display: grid;
  gap: 9px;
  margin-top: 14px;
  padding: 13px 15px;
  border: 1px solid #e4d2ac;
  border-left: 4px solid #a8201a;
  border-radius: 12px;
  background: #fdf6e9;
}

.oficina-debito-respuesta label {
  display: grid;
  gap: 4px;
  font-size: 0.78rem;
  font-weight: 700;
  color: #5a4a2c;
}

.oficina-debito-respuesta textarea {
  width: 100%;
  font: inherit;
  font-weight: 400;
}

.oficina-debito-respuesta-acciones,
.oficina-debito-acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.oficina-debito-alta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #e8eef3;
}

.oficina-debito-alta label {
  display: grid;
  gap: 3px;
  min-width: 0;
  font-size: 0.78rem;
  font-weight: 700;
  color: #41586a;
}

.oficina-debito-alta input,
.oficina-debito-alta select {
  width: 100%;
  font: inherit;
  font-weight: 400;
}

.oficina-debito-ancho,
.oficina-debito-acciones {
  grid-column: 1 / -1;
}

/* Rendicion ART / obras sociales: auditoria operativa previa al cierre. */
.facturacion-core .rendicion-corte {
  padding: 0;
  overflow: hidden;
  border-radius: 8px;
  border-color: #b9c9d8;
  box-shadow: none;
}

.rendicion-corte::before {
  content: "";
  display: block;
  height: 5px;
  background: linear-gradient(90deg, #75aadb 0 32%, #fff 32% 52%, #f1bf00 52% 66%, #aa151b 66% 100%);
}

.rendicion-corte-header,
.rendicion-auditoria-header,
.rendicion-documento-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.rendicion-corte-header {
  padding: 20px 22px 14px;
  background: #f7fafc;
  border-bottom: 1px solid #dce5ed;
}

.rendicion-corte-header h3,
.rendicion-auditoria-header h3,
.rendicion-documento-header h3 {
  margin: 2px 0 4px;
  color: #102a43;
  font-size: 20px;
  line-height: 1.25;
  letter-spacing: 0;
}

.rendicion-corte-header p,
.rendicion-auditoria-header p,
.rendicion-documento-header p {
  margin: 0;
  color: #52667a;
  font-size: 13px;
}

.rendicion-eyebrow {
  color: #2f6b55;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.rendicion-total {
  flex: 0 0 auto;
  min-width: 180px;
  text-align: right;
}

.rendicion-total small,
.rendicion-total strong {
  display: block;
}

.rendicion-total small {
  color: #65798c;
  font-size: 11px;
  text-transform: uppercase;
}

.rendicion-total strong {
  color: #003b70;
  font-size: 24px;
  font-variant-numeric: tabular-nums;
}

.facturacion-core .rendicion-filtros {
  grid-template-columns: minmax(190px, 0.5fr) minmax(280px, 1.5fr);
  gap: 16px;
  padding: 16px 22px;
  margin: 0;
}

.rendicion-pasos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0 22px 18px;
  list-style: none;
}

.rendicion-pasos li {
  position: relative;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding-right: 16px;
  color: #718195;
  font-size: 12px;
}

.rendicion-pasos li:not(:last-child)::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: 16px;
  right: 4px;
  left: 38px;
  height: 2px;
  background: #d8e0e8;
}

.rendicion-pasos li > * {
  position: relative;
  z-index: 1;
}

.rendicion-pasos li > span {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 1px solid #b9c6d2;
  border-radius: 50%;
  background: #fff;
  font-weight: 800;
}

.rendicion-pasos li > strong {
  width: max-content;
  max-width: calc(100% - 8px);
  padding: 2px 6px;
  background: #fff;
  line-height: 1.2;
}

.rendicion-pasos li.is-complete,
.rendicion-pasos li.is-active {
  color: #174f3a;
}

.rendicion-pasos li.is-complete > span {
  border-color: #2f7d5b;
  background: #2f7d5b;
  color: #fff;
}

.rendicion-pasos li.is-complete::after {
  background: #73a88f;
}

.rendicion-pasos li.is-active > span {
  border: 2px solid #003b70;
  color: #003b70;
  box-shadow: 0 0 0 3px #dceaf5;
}

.rendicion-corte-metricas {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  padding: 11px 22px;
  border-top: 1px solid #dce5ed;
  background: #eef3f7;
  color: #42576a;
  font-size: 12px;
}

.rendicion-corte-metricas span {
  padding: 0 14px;
  border-right: 1px solid #c7d3de;
}

.rendicion-corte-metricas span:first-child { padding-left: 0; }
.rendicion-corte-metricas span:last-child { border-right: 0; }
.rendicion-corte-metricas strong { color: #102a43; }
.rendicion-corte-metricas .is-ok { color: #176b4d; font-weight: 800; }
.rendicion-corte-metricas .is-alert { color: #a12825; font-weight: 800; }

.rendicion-auditoria-workbench {
  margin: 18px 0 22px;
  border-top: 2px solid #003b70;
  border-bottom: 1px solid #cbd6e0;
  background: #fff;
}

.rendicion-auditoria-header {
  padding: 18px 2px 14px;
}

.rendicion-progreso-valor {
  display: grid;
  min-width: 96px;
  text-align: right;
}

.rendicion-progreso-valor strong {
  color: #003b70;
  font-size: 26px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.rendicion-progreso-valor span {
  margin-top: 4px;
  color: #65798c;
  font-size: 11px;
  text-transform: uppercase;
}

.rendicion-progreso {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid #cedae4;
  border-radius: 6px;
  background: #f6f9fb;
}

.rendicion-progreso progress {
  width: 100%;
  height: 12px;
  overflow: hidden;
  border: 0;
  border-radius: 6px;
  background: #dce5ec;
  accent-color: #2f7d5b;
}

.rendicion-progreso progress::-webkit-progress-bar { background: #dce5ec; }
.rendicion-progreso progress::-webkit-progress-value { background: #2f7d5b; }
.rendicion-progreso progress::-moz-progress-bar { background: #2f7d5b; }

.rendicion-progreso > div {
  display: grid;
  text-align: right;
}

.rendicion-progreso strong { color: #253e55; font-size: 12px; }
.rendicion-progreso span { color: #6b7f91; font-size: 11px; }

.rendicion-alert {
  margin: 10px 0;
  padding: 9px 12px;
  border-left: 4px solid #537a9b;
  background: #eef4f8;
  color: #2d4b64;
  font-size: 12px;
}

.rendicion-alert.is-error { border-color: #b52d2a; background: #fff0ef; color: #85221f; }
.rendicion-alert.is-ok { border-color: #2f7d5b; background: #edf8f2; color: #175b40; }

.rendicion-checklist-toolbar {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto auto;
  gap: 12px;
  align-items: end;
  padding: 16px 0 12px;
}

.rendicion-busqueda {
  display: grid;
  gap: 4px;
  min-width: 0;
  color: #41586c;
  font-size: 12px;
  font-weight: 700;
}

.rendicion-busqueda input {
  width: 100%;
  min-height: 38px;
}

.rendicion-segmentos {
  display: inline-flex;
  min-height: 38px;
  border: 1px solid #aebdca;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}

.rendicion-segmentos button {
  min-height: 36px;
  padding: 7px 11px;
  border: 0;
  border-right: 1px solid #c8d2dc;
  border-radius: 0;
  background: #fff;
  color: #42576a;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
}

.rendicion-segmentos button:last-child { border-right: 0; }
.rendicion-segmentos button:hover { background: #eef4f8; }
.rendicion-segmentos button.is-active { background: #003b70; color: #fff; }
.rendicion-segmentos button span { margin-left: 4px; font-variant-numeric: tabular-nums; }

.rendicion-pacientes-checklist {
  display: grid;
  gap: 9px;
  padding-bottom: 16px;
}

.rendicion-paciente {
  overflow: hidden;
  border: 1px solid #cbd6e0;
  border-left: 4px solid #c8912f;
  border-radius: 6px;
  background: #fff;
}

.rendicion-paciente.is-complete { border-left-color: #2f7d5b; }

.rendicion-paciente > summary {
  display: grid;
  grid-template-columns: 40px minmax(180px, 1fr) 80px minmax(120px, auto);
  gap: 12px;
  align-items: center;
  min-height: 60px;
  padding: 9px 13px;
  background: #f8fafc;
  color: #1f3548;
  cursor: pointer;
  list-style: none;
}

.rendicion-paciente > summary::-webkit-details-marker { display: none; }
.rendicion-paciente > summary:hover { background: #eef4f8; }
.rendicion-paciente[open] > summary { border-bottom: 1px solid #dce4eb; }

.rendicion-paciente-check {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: #fff1d8;
  color: #865909;
  font-size: 11px;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.rendicion-paciente.is-complete .rendicion-paciente-check { background: #dff3e8; color: #176b4d; }

.rendicion-paciente-identidad,
.rendicion-paciente-avance {
  display: grid;
  min-width: 0;
}

.rendicion-paciente-identidad strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
}

.rendicion-paciente-identidad small,
.rendicion-paciente-avance small {
  color: #6c7e8f;
  font-size: 11px;
}

.rendicion-paciente-avance { text-align: center; }
.rendicion-paciente-avance strong { font-variant-numeric: tabular-nums; }
.rendicion-paciente-total { color: #003b70; font-weight: 800; text-align: right; font-variant-numeric: tabular-nums; }

.rendicion-items { display: grid; }

.rendicion-check-item {
  display: grid;
  grid-template-columns: 28px minmax(260px, 1fr) repeat(3, 62px) minmax(110px, auto) 72px;
  gap: 10px;
  align-items: center;
  min-height: 66px;
  padding: 9px 13px;
  border-bottom: 1px solid #e3e9ef;
  background: #fff;
  cursor: pointer;
}

.rendicion-check-item:last-child { border-bottom: 0; }
.rendicion-check-item:hover { background: #f7fafc; }
.rendicion-check-item.is-checked { background: #f3faf6; }

.rendicion-check-item > input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: #2f7d5b;
}

.rendicion-check-main,
.rendicion-check-title,
.rendicion-check-unidades,
.rendicion-check-importe {
  display: grid;
  min-width: 0;
}

.rendicion-check-title {
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 8px;
  align-items: baseline;
}

.rendicion-check-title code { color: #003b70; font-weight: 800; }
.rendicion-check-title strong { overflow-wrap: anywhere; color: #233b50; font-size: 13px; }
.rendicion-check-meta { margin-top: 3px; color: #718195; font-size: 11px; }
.rendicion-check-unidades { text-align: right; }
.rendicion-check-unidades small,
.rendicion-check-importe small { color: #718195; font-size: 10px; text-transform: uppercase; }
.rendicion-check-unidades strong,
.rendicion-check-importe strong { color: #233b50; font-size: 12px; font-variant-numeric: tabular-nums; }
.rendicion-check-importe { text-align: right; }

.rendicion-check-estado {
  padding: 3px 6px;
  border-radius: 4px;
  background: #fff1d8;
  color: #795005;
  font-size: 10px;
  font-weight: 800;
  text-align: center;
  text-transform: uppercase;
}

.rendicion-check-item.is-checked .rendicion-check-estado { background: #dff3e8; color: #176b4d; }

.rendicion-checklist-vacia,
.rendicion-seleccion-vacia {
  display: grid;
  justify-items: center;
  gap: 4px;
  padding: 30px 18px;
  border: 1px dashed #afbfcc;
  color: #40586c;
  text-align: center;
}

.rendicion-checklist-vacia span,
.rendicion-seleccion-vacia span { color: #718195; font-size: 12px; }

.rendicion-seleccion-vacia {
  margin: 18px 0;
  border-radius: 6px;
  background: #f8fafc;
}

.rendicion-cierre {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 2px 16px;
  border-top: 1px solid #cbd6e0;
}

.rendicion-cierre > div { display: grid; gap: 2px; }
.rendicion-cierre strong { color: #253e55; font-size: 13px; }
.rendicion-cierre span { color: #687d8f; font-size: 12px; }

.facturacion-core .rendicion-incorporar {
  border-radius: 6px;
  border-left: 4px solid #537a9b;
  box-shadow: none;
}

.rendicion-documento {
  margin: 24px 0 12px;
  padding-top: 16px;
  border-top: 2px solid #2f7d5b;
}

.rendicion-documento-acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
}

.rendicion-pdf-estado {
  margin: 8px 0 12px;
  color: #8c312d;
  font-size: 12px;
  text-align: right;
}

.rendicion-pdf-estado.is-ok { color: #176b4d; }
.rendicion-detalle-filtro label { display: grid; gap: 4px; max-width: 440px; }

.corte-prestacional {
  border-top: 4px solid #003b70;
}

.corte-prestacional-flujo {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: 18px 0 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #cad6df;
  border-radius: 6px;
  background: #cad6df;
  list-style: none;
}

.corte-prestacional-flujo li {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  padding: 10px 12px;
  background: #f5f8fa;
  color: #66798a;
  font-size: 12px;
}

.corte-prestacional-flujo li > span {
  display: grid;
  flex: 0 0 25px;
  width: 25px;
  height: 25px;
  place-items: center;
  border: 1px solid #aebdca;
  border-radius: 50%;
  background: #fff;
  font-weight: 800;
}

.corte-prestacional-flujo li.is-active { background: #eaf3fa; color: #003b70; }
.corte-prestacional-flujo li.is-active > span { border-color: #003b70; background: #003b70; color: #fff; }
.corte-prestacional-flujo li.is-complete { background: #edf7f1; color: #176b4d; }
.corte-prestacional-flujo li.is-complete > span { border-color: #2f7d5b; background: #2f7d5b; color: #fff; }

.corte-prestacional-metricas {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 14px 0;
  border-block: 1px solid #dce4eb;
}

.corte-prestacional-metricas span {
  padding: 11px 14px;
  border-right: 1px solid #dce4eb;
  color: #607486;
  font-size: 12px;
}

.corte-prestacional-metricas span:last-child { border-right: 0; }
.corte-prestacional-metricas strong { margin-right: 4px; color: #19364f; font-size: 17px; }

.corte-prestacional-bandeja,
.corte-prestacional-lista {
  display: grid;
  gap: 8px;
  margin-top: 16px;
}

.corte-prestacional-subtitulo {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 6px;
  border-bottom: 2px solid #c8d5df;
}

.corte-prestacional-subtitulo strong { color: #19364f; font-size: 14px; }
.corte-prestacional-subtitulo span { color: #6a7d8d; font-size: 11px; }

.corte-prestacional-candidato {
  display: grid;
  grid-template-columns: minmax(200px, 1fr) 90px 170px auto;
  align-items: end;
  gap: 12px;
  padding: 11px 12px;
  border: 1px solid #d7e0e7;
  border-left: 4px solid #d08a00;
  border-radius: 5px;
  background: #fff;
}

.corte-prestacional-candidato > div:first-child,
.corte-prestacional-candidato-total,
.corte-prestacional-candidato label {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.corte-prestacional-candidato strong { color: #243f56; overflow-wrap: anywhere; }
.corte-prestacional-candidato span,
.corte-prestacional-candidato label { color: #6b7e8f; font-size: 11px; }
.corte-prestacional-candidato-total { text-align: right; }
.corte-prestacional-candidato-total strong { font-size: 18px; }
.corte-prestacional-enlace { align-self: center; color: #176b4d !important; font-weight: 800; }

.corte-prestacional-paciente {
  overflow: hidden;
  border: 1px solid #cfdae3;
  border-left: 4px solid #d08a00;
  border-radius: 6px;
  background: #fff;
}

.corte-prestacional-paciente.is-cerrado { border-left-color: #2f7d5b; }
.corte-prestacional-paciente.is-facturado { border-left-color: #003b70; }
.corte-prestacional-paciente > summary {
  display: grid;
  grid-template-columns: 48px minmax(190px, 1fr) 90px 150px;
  align-items: center;
  gap: 12px;
  padding: 12px;
  cursor: pointer;
  list-style: none;
  background: #f7fafc;
}

.corte-prestacional-paciente > summary::-webkit-details-marker { display: none; }
.corte-prestacional-paciente > summary > span:not(.corte-prestacional-estado) { display: grid; gap: 2px; min-width: 0; }
.corte-prestacional-paciente > summary strong { overflow-wrap: anywhere; color: #233e55; font-size: 13px; }
.corte-prestacional-paciente > summary small { color: #718294; font-size: 10px; }
.corte-prestacional-estado {
  display: grid;
  width: 38px;
  height: 30px;
  place-items: center;
  border-radius: 4px;
  background: #fff0d4;
  color: #8a5900;
  font-size: 11px;
  font-weight: 900;
}
.is-cerrado .corte-prestacional-estado { background: #dff3e8; color: #176b4d; }
.is-facturado .corte-prestacional-estado { background: #dcecf8; color: #003b70; }

.corte-prestacional-items { display: grid; }
.corte-prestacional-item {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) 120px minmax(280px, auto);
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-top: 1px solid #e0e7ec;
}
.corte-prestacional-item.is-aprobada { background: #f3faf6; }
.corte-prestacional-item.is-observada { background: #fff7e8; }
.corte-prestacional-item.is-no_facturable { background: #f4f5f6; }
.corte-prestacional-item > p { grid-column: 1 / -1; margin: -5px 0 0; color: #8a4d13; font-size: 11px; }
.corte-prestacional-practica { display: grid; min-width: 0; gap: 2px; }
.corte-prestacional-practica code { color: #003b70; font-weight: 800; }
.corte-prestacional-practica strong { color: #263f54; font-size: 12px; overflow-wrap: anywhere; }
.corte-prestacional-practica small { color: #708293; font-size: 10px; }
.corte-prestacional-importe { color: #203d54; text-align: right; font-variant-numeric: tabular-nums; }
.corte-prestacional-decision { display: inline-flex; justify-content: flex-end; }
.corte-prestacional-decision button {
  min-height: 31px;
  padding: 5px 9px;
  border: 1px solid #bdcad4;
  border-right: 0;
  background: #fff;
  color: #425d73;
  font-size: 11px;
  font-weight: 700;
}
.corte-prestacional-decision button:first-child { border-radius: 5px 0 0 5px; }
.corte-prestacional-decision button:last-child { border-right: 1px solid #bdcad4; border-radius: 0 5px 5px 0; }
.corte-prestacional-decision button.is-active { background: #003b70; color: #fff; }
.corte-prestacional-decision button[data-corte-decision="observada"].is-active { background: #a96800; }
.corte-prestacional-decision button[data-corte-decision="no_facturable"].is-active { background: #596b79; }

.corte-prestacional-acciones,
.corte-prestacional-resumen {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 12px;
  border-top: 1px solid #dce4eb;
  background: #f7fafc;
}
.corte-prestacional-acciones span { color: #64788a; font-size: 11px; }
.corte-prestacional-resumen { margin-top: 18px; border: 1px solid #bdccd7; border-left: 4px solid #003b70; border-radius: 6px; background: #edf5fa; }
.corte-prestacional-resumen > div { display: grid; gap: 3px; }
.corte-prestacional-resumen span { color: #5d7487; font-size: 11px; text-transform: uppercase; }
.corte-prestacional-resumen strong { color: #153952; font-size: 15px; }

@media (max-width: 1080px) {
  .rendicion-checklist-toolbar { grid-template-columns: 1fr auto; }
  .rendicion-checklist-toolbar .rendicion-busqueda { grid-column: 1 / -1; }
  .rendicion-check-item { grid-template-columns: 28px minmax(220px, 1fr) repeat(2, 62px) minmax(100px, auto) 72px; }
  .rendicion-check-item .rendicion-check-unidades:nth-of-type(4) { display: none; }
}

@media (max-width: 760px) {
  .rendicion-corte-header,
  .rendicion-auditoria-header,
  .rendicion-documento-header,
  .rendicion-cierre {
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
  }

  .rendicion-total,
  .rendicion-progreso-valor,
  .rendicion-pdf-estado { text-align: left; }

  .facturacion-core .rendicion-filtros { grid-template-columns: 1fr; }
  .rendicion-pasos { grid-template-columns: 1fr 1fr; gap: 8px; }
  .rendicion-pasos li::after { display: none; }
  .rendicion-pasos li > strong { width: auto; }
  .rendicion-corte-metricas { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
  .rendicion-corte-metricas span { padding: 0; border-right: 0; }
  .rendicion-progreso { grid-template-columns: 1fr; }
  .rendicion-progreso > div { text-align: left; }
  .rendicion-checklist-toolbar { grid-template-columns: 1fr; }
  .rendicion-checklist-toolbar .rendicion-busqueda { grid-column: auto; }
  .rendicion-segmentos { width: 100%; }
  .rendicion-segmentos button { flex: 1 1 0; padding-inline: 6px; }
  .rendicion-paciente > summary { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .rendicion-paciente-avance { display: none; }
  .rendicion-check-item {
    grid-template-columns: 28px minmax(0, 1fr) minmax(92px, auto);
    gap: 8px;
  }
  .rendicion-check-item .rendicion-check-unidades { display: none; }
  .rendicion-check-importe { grid-column: 3; grid-row: 1; }
  .rendicion-check-estado { grid-column: 3; grid-row: 2; }
  .rendicion-documento-acciones { justify-content: flex-start; }
  .corte-prestacional-flujo,
  .corte-prestacional-metricas { grid-template-columns: 1fr 1fr; }
  .corte-prestacional-candidato { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
  .corte-prestacional-candidato > div:first-child { grid-column: 1 / -1; }
  .corte-prestacional-candidato-total { text-align: left; }
  .corte-prestacional-paciente > summary { grid-template-columns: 42px minmax(0, 1fr) auto; }
  .corte-prestacional-paciente > summary > span:last-child { display: none; }
  .corte-prestacional-item { grid-template-columns: minmax(0, 1fr) auto; }
  .corte-prestacional-decision { grid-column: 1 / -1; justify-content: stretch; }
  .corte-prestacional-decision button { flex: 1 1 0; }
  .corte-prestacional-subtitulo,
  .corte-prestacional-acciones,
  .corte-prestacional-resumen { align-items: stretch; flex-direction: column; }
}

/* Dictado automatico fuera del portal medico (tablero de Quirofano): el envoltorio que
   arma dictadoMedico.js reemplaza al campo dentro del label y ancla el microfono adentro. */
.pm-dictation-control { position: relative; display: block; min-width: 0; width: 100%; }
.pm-dictation-control > input,
.pm-dictation-control > textarea { box-sizing: border-box; width: 100%; padding-right: 6.6rem; }
.pm-dictation-control > .pm-dictar-btn-auto { top: 6px; right: 6px; z-index: 1; }
@media (max-width: 640px) {
  .pm-dictation-control > input,
  .pm-dictation-control > textarea { padding-right: 10px; }
}

/* Quirofano dividido por trabajo: Agenda / Protocolo / Auditoria y cierre. */
.surgery-work-tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0 0.35rem; }
.surgery-work-tab {
  display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.55rem 0.95rem;
  font: inherit; font-weight: 650; color: #334e68; background: #fff;
  border: 1px solid #d9e2ec; border-radius: 10px; cursor: pointer;
}
.surgery-work-tab:hover { border-color: #9fb3c8; }
.surgery-work-tab.is-active { color: #fff; background: #0f4c81; border-color: #0f4c81; }
.surgery-work-tab-step {
  display: inline-grid; place-items: center; width: 1.4rem; height: 1.4rem; font-size: 0.75rem;
  border-radius: 50%; background: rgba(15, 76, 129, 0.1);
}
.surgery-work-tab.is-active .surgery-work-tab-step { background: rgba(255, 255, 255, 0.22); }
.surgery-work-tab-count { font-size: 0.78rem; font-weight: 600; opacity: 0.8; }
.surgery-work-tab-help { margin: 0 0 0.75rem; }
.surgery-api-layout-single { grid-template-columns: 1fr; }
.surgery-audit-summary { margin-top: 1rem; }
@media (max-width: 640px) {
  .surgery-work-tab { flex: 1 1 100%; justify-content: flex-start; }
}
@media print {
  body.printing-surgery-agenda .surgery-work-tabs,
  body.printing-surgery-agenda .surgery-work-tab-help { display: none !important; }
}
/* Lo que se describe con texto largo (hallazgos, descripcion operatoria, indicaciones)
   ocupa la fila entera: a media columna el dictado no se lee mientras se habla. */
.surgery-api-form-grid > label.wide { grid-column: 1 / -1; }
.surgery-audit-blockers {
  margin: 0.5rem 0 0.75rem; padding: 0.65rem 0.9rem; border: 1px solid #f0c2c9;
  border-radius: 10px; background: #fdf3f5; color: #8a3b48; font-size: 0.9rem;
}
.surgery-audit-blockers ul { margin: 0.35rem 0 0; padding-left: 1.2rem; }

/* Bandeja de pedidos del portal medico: lo primero que atiende la oficina. */
.surgery-pedidos-panel { margin-bottom: 1rem; }
.surgery-pedidos-lista { list-style: none; margin: 0.5rem 0 0; padding: 0; display: grid; gap: 0.5rem; }
.surgery-pedido {
  display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 0.75rem;
  padding: 0.65rem 0.85rem; border: 1px solid #d9e2ec; border-radius: 10px; background: #fff;
}
.surgery-pedido.is-urgente { border-color: #f0c2c9; background: #fdf6f7; }
.surgery-pedido > div { display: grid; gap: 0.15rem; min-width: 0; }
.surgery-pedido small { color: #52606d; }
@media (max-width: 640px) {
  .surgery-pedido { grid-template-columns: 1fr; }
}

/* HC unica: aviso de busqueda por DNI sin resultado. */
.hcu-search-error {
  margin: 0.5rem 0; padding: 0.5rem 0.75rem; border: 1px solid #f0c2c9;
  border-radius: 8px; background: #fdf3f5; color: #8a3b48;
}

/* T-QX-REM-10: adaptación operativa MASTER-Q. Identidad compartida, densidad local. */
body:has(#surgery.active) .topbar { position: static; min-height: 0; padding: 10px 16px; margin-bottom: 12px; gap: 12px; }
body:has(#surgery.active) .topbar .lead,
body:has(#surgery.active) .topbar-main > div > p { display: none; }
body:has(#surgery.active) .topbar h1 { font-size: 1.15rem; margin: 0; }
body:has(#surgery.active) .topbar-logo { width: 36px; height: 36px; }
#surgery > .module-head { padding: 10px 16px; margin-bottom: 12px; }
#surgery > .module-head .module-number, #surgery > .module-head .eyebrow { display: none; }
#surgery > .module-head h2 { margin: 0; font-size: 1.5rem; }
#surgery .qx-filter-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; }
#surgery .qx-menu, #surgery .qx-ficha-tabs { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 0; border-bottom: 1px solid var(--hre-border); margin-bottom: 12px; }
#surgery .qx-menu button, #surgery .qx-ficha-tabs button { font-family: var(--font-ui); font-size: 1rem; min-height: 40px; padding: 8px 12px; }
#surgery .qx-summary { margin: 8px 0; color: var(--hre-muted); font-family: var(--font-ui); }
#surgery .qx-summary span { margin-left: 12px; }
#surgery .qx-agenda-actions { display: flex; flex-wrap: wrap; align-items: start; gap: 8px; margin: 12px 0; }
#surgery .qx-agenda-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; }
#surgery .qx-agenda-layout.with-form { grid-template-columns: minmax(300px, 0.85fr) minmax(0, 1.65fr); }
#surgery .qx-agenda-layout > *, #surgery .qx-workspace { min-width: 0; }
#surgery .qx-agenda-layout .surgery-api-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#surgery .surgery-api-toolbar { grid-template-columns: minmax(180px, 2fr) repeat(3, minmax(125px, 1fr)); gap: 8px; padding: 12px; }
#surgery .surgery-api-toolbar button { min-height: 36px; }
#surgery .qx-ficha { padding: 16px; background: var(--hre-surface); border: 1px solid var(--hre-border); border-radius: 8px; }
#surgery .qx-ficha > header { display: flex; justify-content: space-between; gap: 12px; align-items: start; margin-top: 12px; }
#surgery .qx-ficha > header h3 { margin: 4px 0; }
#surgery .qx-ficha [role="tabpanel"][hidden] { display: none !important; }
#surgery .qx-ficha .surgery-api-card { border: 0; box-shadow: none; padding: 0; }
#surgery .qx-ficha .surgery-api-card > header { display: none; }
#surgery .qx-workspace > details { padding: 16px; border: 1px solid var(--hre-border); background: var(--hre-surface); }
#surgery .qx-workspace > details > summary { font-family: var(--font-ui); font-size: 1.15rem; }
#surgery .qx-print-options { padding: 8px 12px; border: 1px solid var(--hre-border); border-radius: 8px; }
#surgery .qx-print-options summary { cursor: pointer; font-family: var(--font-ui); }
#surgery .qx-empty { padding: 24px; background: var(--hre-surface); border: 1px solid var(--hre-border); }
#surgery .qx-empty p { max-width: 70ch; }
#surgery .surgery-pedidos-panel { margin-top: 16px; }
#surgery :where(input, select, textarea) { min-width: 0; max-width: 100%; }
#surgery .qx-ficha-tabs button:focus-visible, #surgery .qx-menu button:focus-visible { outline: 3px solid var(--hre-focus); outline-offset: 2px; }
@media (max-width: 1000px) {
  #surgery .qx-agenda-layout.with-form { grid-template-columns: minmax(0, 1fr); }
  #surgery .surgery-api-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  #surgery .qx-menu button, #surgery .qx-ficha-tabs button { flex: 1 1 45%; }
  #surgery .qx-ficha { padding: 10px; }
  #surgery .qx-summary span { display: block; margin-left: 0; }
  #surgery .qx-ficha > header { flex-direction: column; }
}
@media print {
  body.printing-surgery-agenda #surgery .qx-menu,
  body.printing-surgery-agenda #surgery .qx-summary,
  body.printing-surgery-agenda #surgery .qx-agenda-actions,
  body.printing-surgery-agenda #surgery .qx-agenda-layout > aside { display: none !important; }
  body.printing-surgery-agenda #surgery .qx-agenda-layout { display: block; }
}

/* Dictado compartido v3: controles estrechos conservan todo el ancho de escritura. */
.pm-dictation-control { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
.pm-dictation-control > input,
.pm-dictation-control > textarea { padding-right: 10px; }
.pm-dictation-control > .pm-dictar-btn-auto {
  position: static; align-self: flex-end; min-height: 44px;
  font-family: var(--font-ui); white-space: nowrap;
}
.pm-dictation-control > .dictar-aviso { position: static; white-space: normal; }
