/* Ficha clínica (panel de PC ≥ 1024 px): alertas médicas, plan de tratamiento y notas. El odontograma tiene su propio odontogram.css.
   Solo tokens del canon. Rojo = alerta médica (--danger-*); las cápsulas de estado son .ui-tag (no son botones). */
.clin { display: grid; gap: var(--sp-5); margin-top: var(--sp-4); }
.clin .section-heading { margin-bottom: 0; }
.clin-block { display: grid; gap: var(--sp-3); min-width: 0; padding-top: var(--sp-5); border-top: var(--border-w) solid var(--border-soft); }
.clin-block-head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); }
.clin-title { display: inline-flex; align-items: center; gap: var(--sp-2); margin: 0; font-size: var(--fs-title); font-weight: var(--fw-bold); color: var(--text-strong); }
.clin-sub { margin: 0; font-size: var(--fs-meta); color: var(--text-muted); }
.clin-actions { display: flex; justify-content: flex-end; gap: var(--sp-2); }
.clin-lead { margin: 0; font-size: var(--fs-body); font-weight: var(--fw-medium); color: var(--text-strong); }
.clin-effect { margin: 0; font-size: var(--fs-body); color: var(--text-primary); }
.clin-void { display: block; font-size: var(--fs-meta); color: var(--danger-ink); }

/* Alertas médicas: franja roja arriba de todo cuando hay texto */
.clin-alert { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-4); padding: var(--sp-4); border: var(--border-w) solid var(--danger-solid); border-radius: var(--r-lg); background: var(--danger-soft); }
.clin-alert.is-empty { align-items: center; border-color: var(--border-default); background: var(--surface-2); }
.clin-alert.is-editing { display: grid; gap: var(--sp-2); border-color: var(--danger-solid); }
.clin-alert-main { display: grid; gap: var(--sp-1); min-width: 0; }
.clin-alert-label { display: inline-flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-meta); font-weight: var(--fw-bold); letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--danger-ink); }
.clin-alert-text { margin: 0; font-size: var(--fs-title); font-weight: var(--fw-medium); line-height: var(--lh-snug); color: var(--text-strong); white-space: pre-wrap; overflow-wrap: anywhere; }
.clin-alert-meta { font-size: var(--fs-meta); color: var(--text-muted); }
.clin-alert-empty { margin: 0; font-size: var(--fs-body); color: var(--text-muted); }
.clin-alert .ui-btn { flex: none; }
.clin-alert .ui-textarea { width: 100%; box-sizing: border-box; }
.clin-alert label.clin-alert-label { cursor: default; }

/* Plan de tratamiento */
.clin-table-wrap { overflow-x: auto; }
.clin-table td { padding: var(--sp-3); border-bottom: var(--border-w) solid var(--border-soft); vertical-align: top; }
.clin-table tbody tr:last-child td { border-bottom: 0; }
.clin-col-pick { width: var(--icon-lg); }
.clin-cell-service > span { display: block; }
.clin-service-name { font-weight: var(--fw-medium); color: var(--text-strong); }
.clin-service-meta { font-size: var(--fs-meta); color: var(--text-muted); }
.clin-cell-status > .clin-service-meta { display: block; margin-top: var(--sp-1); }
.clin-cell-actions { text-align: right; white-space: nowrap; }
.clin-row-actions { display: inline-flex; align-items: center; gap: var(--sp-1); }
.clin-table tr.is-voided .clin-service-name, .clin-table tr.is-voided .money { text-decoration: line-through; color: var(--text-subtle); font-weight: var(--fw-regular); }
.clin-plan-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3); }
.clin-total { display: flex; align-items: baseline; gap: var(--sp-2); margin: 0; font-size: var(--fs-body); color: var(--text-primary); }
.clin-quote { display: flex; align-items: center; gap: var(--sp-3); }

/* Notas clínicas */
.clin-note-form { display: grid; gap: var(--sp-2); }
.clin-note-form .ui-textarea { width: 100%; box-sizing: border-box; }
.clin-note-list { display: grid; margin: 0; padding: 0; list-style: none; border: var(--border-w) solid var(--border-default); border-radius: var(--r-lg); background: var(--surface-1); }
.clin-note { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-3) var(--sp-4); }
.clin-note + .clin-note { border-top: var(--border-w) solid var(--border-soft); }
.clin-note-main { display: grid; gap: var(--sp-1); min-width: 0; }
.clin-note-body { margin: 0; font-size: var(--fs-body); color: var(--text-strong); white-space: pre-wrap; overflow-wrap: anywhere; }
.clin-note-meta { font-size: var(--fs-meta); color: var(--text-muted); }
.clin-note.is-voided .clin-note-body { text-decoration: line-through; color: var(--text-subtle); }
.clin-note .ui-btn { flex: none; }

/* Diálogos (agregar al plan, marcar hecho, anular) */
.clin-dialog { position: relative; }
.clin-dialog .ui-dialog-title { padding-right: var(--sp-8); }
.clin-close { position: absolute; top: var(--sp-3); right: var(--sp-3); }
.clin-dialog .ui-field > .ui-input, .clin-dialog .ui-field > .ui-select, .clin-dialog .ui-field > .ui-textarea,
.clin-dialog .sa-field > .ui-input, .clin-dialog .sa-field > .ui-select, .clin-dialog .sa-field > .ui-textarea { width: 100%; box-sizing: border-box; }
.clin-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
.clin-picked { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-2) var(--sp-3); border: var(--border-w) solid var(--border-default); border-radius: var(--r-md); background: var(--surface-2); }
.clin-picked-name { flex: 1 1 auto; font-weight: var(--fw-medium); color: var(--text-strong); }
.clin-picked-price { font-size: var(--fs-meta); color: var(--text-muted); }
.clin-results button { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-3); }
.clin-opt-meta { font-size: var(--fs-meta); color: var(--text-muted); }

/* Ficha lateral del chat: la alerta médica arriba, solo lectura */
.clin-strip { display: grid; gap: var(--sp-1); margin-bottom: var(--sp-3); padding: var(--sp-3); border: var(--border-w) solid var(--danger-solid); border-radius: var(--r-md); background: var(--danger-soft); }
.clin-strip-label { display: inline-flex; align-items: center; gap: var(--sp-1); font-size: var(--fs-micro); font-weight: var(--fw-bold); letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--danger-ink); }
.clin-strip-text { margin: 0; font-size: var(--fs-body); font-weight: var(--fw-medium); color: var(--text-strong); white-space: pre-wrap; overflow-wrap: anywhere; }

/* Recetas (función `prescriptions`): lista, formulario, plantillas y hoja impresa */
.rx-dialog { max-width: 44rem; width: 100%; }
.rx-dialog .ui-dialog-body { max-height: 70vh; overflow-y: auto; }
.rx-history { display: grid; gap: var(--sp-1); padding: var(--sp-3); border: var(--border-w) solid var(--border-default); border-radius: var(--r-md); background: var(--surface-2); }
.rx-history.has-alert { border-color: var(--danger-solid); background: var(--danger-soft); }
.rx-history-text { margin: 0; font-size: var(--fs-body); color: var(--text-strong); white-space: pre-wrap; overflow-wrap: anywhere; }
.rx-lines { display: grid; gap: var(--sp-3); }
.rx-line { display: grid; gap: var(--sp-2); margin: 0; padding: var(--sp-3); border: var(--border-w) solid var(--border-default); border-radius: var(--r-lg); background: var(--surface-1); min-width: 0; }
.rx-line-legend { padding: 0 var(--sp-1); font-size: var(--fs-meta); font-weight: var(--fw-bold); color: var(--text-muted); }
.rx-trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3); }
.rx-line .ui-input, .rx-line .ui-textarea, .rx-dialog .rx-field-notes .ui-textarea { width: 100%; box-sizing: border-box; }
.rx-inline { display: flex; align-items: center; gap: var(--sp-2); }
.rx-inline .ui-input { flex: 1 1 auto; min-width: 0; }
.rx-template-form, .rx-template-list, .rx-confirm { display: grid; gap: var(--sp-3); }
.rx-item-lines { display: grid; gap: var(--sp-2); margin: 0; padding-left: var(--sp-5); }
.rx-item-lines > li > span { display: block; }
.rx-item.is-voided .clin-service-name, .rx-item.is-voided .clin-note-body { text-decoration: line-through; color: var(--text-subtle); font-weight: var(--fw-regular); }
.rx-dialog-print .ui-dialog-body { background: var(--surface-2); }

/* La hoja (en pantalla es una vista previa; al imprimir sale sola, en blanco y negro) */
.rx-sheet { display: grid; gap: var(--sp-4); padding: var(--sp-6); border: var(--border-w) solid var(--border-default); border-radius: var(--r-md); background: var(--surface-1); color: var(--text-strong); }
.rx-sheet-void { margin: 0; padding: var(--sp-2) var(--sp-3); border: var(--border-w) solid var(--danger-solid); border-radius: var(--r-md); background: var(--danger-soft); font-size: var(--fs-title); font-weight: var(--fw-bold); letter-spacing: var(--tracking-caps); text-align: center; color: var(--danger-ink); }
.rx-sheet-head { display: grid; gap: var(--sp-1); padding-bottom: var(--sp-3); border-bottom: var(--border-w) solid var(--border-default); text-align: center; }
.rx-sheet-clinic { margin: 0; font-size: var(--fs-title); font-weight: var(--fw-bold); }
.rx-sheet-title { margin: 0; font-size: var(--fs-body); letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--text-muted); }
.rx-sheet-meta { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-6); margin: 0; }
.rx-sheet-meta dt { font-size: var(--fs-meta); color: var(--text-muted); }
.rx-sheet-meta dd { margin: 0; font-size: var(--fs-body); font-weight: var(--fw-medium); }
.rx-sheet-lines { display: grid; gap: var(--sp-3); margin: 0; padding-left: var(--sp-5); }
.rx-sheet-lines p { margin: 0; }
.rx-sheet-med { font-size: var(--fs-body); font-weight: var(--fw-bold); }
.rx-sheet-detail { font-size: var(--fs-body); white-space: pre-wrap; overflow-wrap: anywhere; }
.rx-sheet-label { font-size: var(--fs-meta); font-weight: var(--fw-bold); color: var(--text-muted); }
.rx-sheet-notes { display: grid; gap: var(--sp-1); }
.rx-sheet-notes p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.rx-sheet-sign { display: grid; justify-items: end; gap: var(--sp-1); margin-top: var(--sp-6); }
.rx-sheet-box { display: flex; align-items: flex-end; justify-content: center; width: 16rem; max-width: 100%; padding-top: var(--sp-8); padding-bottom: var(--sp-1); border-bottom: var(--border-w) solid var(--text-strong); }
.rx-sheet-box-label { font-size: var(--fs-meta); color: var(--text-muted); }
.rx-sheet-prof { margin: 0; font-size: var(--fs-body); font-weight: var(--fw-medium); }
.rx-sheet-sign .rx-sheet-detail { margin: 0; }

/* Impresión: solo la hoja (copiada a #rx-print-root por recetas-modelo.js), sobre papel blanco y tinta negra sin importar el tema del panel.
   Aquí los colores son palabras crudas (white, black) A PROPÓSITO y no tokens: los tokens cambian con el tema (oscuro, rosado, etc.) y el papel no tiene tema. No son un olvido: no reemplazar por var(--…). */
#rx-print-root { display: none; }
@media print {
  body.rx-printing > *:not(#rx-print-root) { display: none !important; }
  body.rx-printing { background: white; }
  body.rx-printing #rx-print-root { display: block; }
  body.rx-printing #rx-print-root .rx-sheet { border: 0; padding: 0; background: white; color: black; }
  body.rx-printing #rx-print-root .rx-sheet * { color: black; border-color: black; }
  body.rx-printing #rx-print-root .rx-sheet-void { background: white; border: 2px solid black; }
  body.rx-printing #rx-print-root .rx-sheet-lines li, body.rx-printing #rx-print-root .rx-sheet-sign { break-inside: avoid; }
}
