/* Notas de evolución y cita actual (NOM-004) */
.nt-lista { display: flex; flex-direction: column; gap: 14px; margin-top: 12px; }
.nt-card { border: 1.5px solid #e2e8f0; border-radius: 14px; background: #fff; overflow: hidden; }
.nt-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 12px 16px; background: #f8fafc; border-bottom: 1px solid #e2e8f0; }
.nt-fecha { font-weight: 700; font-size: 14px; color: #1e293b; }
.nt-autor { font-size: 12px; color: #64748b; margin-top: 2px; }
.nt-chip { font-size: 11.5px; font-weight: 600; color: #0f766e; background: #ccfbf1; padding: 3px 10px; border-radius: 999px; white-space: nowrap; }
.nt-body { padding: 14px 16px; display: flex; flex-direction: column; gap: 12px; }
.nt-campo label { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #2563eb; margin-bottom: 3px; }
.nt-campo p { margin: 0; font-size: 14px; line-height: 1.5; color: #334155; white-space: pre-wrap; word-break: break-word; }
.nt-signos { display: flex; flex-wrap: wrap; gap: 6px; }
.nt-signo { font-size: 12px; background: #f1f5f9; border-radius: 8px; padding: 3px 9px; color: #334155; }
.nt-aclaraciones { border-top: 1px dashed #cbd5e1; padding: 12px 16px; background: #fffbeb; display: flex; flex-direction: column; gap: 8px; }
.nt-aclar { font-size: 13px; color: #78350f; line-height: 1.45; white-space: pre-wrap; }
.nt-aclar small { display: block; color: #a16207; font-size: 11.5px; margin-bottom: 1px; }
.nt-pie { padding: 10px 16px; border-top: 1px solid #f1f5f9; display: flex; justify-content: flex-end; }
.nt-signos-form { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.nt-signos-form label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 600; color: #475569; }
@media (max-width: 640px) { .nt-signos-form { grid-template-columns: repeat(2, 1fr); } }

dialog.ventana.cita-actual { max-width: 620px; }
.ca-nav { display: flex; align-items: center; gap: 8px; margin: 6px 0 14px; }
.ca-fecha { flex: 1; text-align: center; font-weight: 700; color: #334155; text-transform: capitalize; }
.ca-lista { display: flex; flex-direction: column; gap: 10px; max-height: 50vh; overflow-y: auto; }
.ca-item { display: flex; align-items: center; gap: 14px; width: 100%; padding: 12px 14px; text-align: left; font: inherit; background: #fff; border: 1.5px solid #e2e8f0; border-radius: 12px; cursor: pointer; transition: border-color .15s, background .15s; }
.ca-item:hover, .ca-item:focus-visible { border-color: #0d9488; background: #f0fdfa; outline: none; }
.ca-hora { min-width: 80px; font-weight: 700; font-size: 13.5px; color: #0f766e; }
.ca-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ca-info .gris { font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ca-notas { font-size: 11.5px; font-weight: 600; color: #0f766e; white-space: nowrap; }

/* Aviso: la CURP ya existe */
.curp-aviso { margin: 4px 0 14px; padding: 12px 14px; border-radius: 10px; font-size: 13.5px; line-height: 1.45; background: #eff6ff; border: 1.5px solid #bfdbfe; color: #1e3a8a; }
.curp-aviso.ok { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.curp-aviso.alerta { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.curp-aviso.error { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.curp-aviso[hidden] { display: none; }
.curp-aviso .curp-acc { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }

/* Expediente archivado */
.exp-archivado { margin: 0 0 12px; padding: 10px 14px; border-radius: 10px; background: #fef3c7; color: #92400e; font-size: 13.5px; border: 1px solid #fde68a; }
.pill.archivado { background: #fef3c7; color: #92400e; }

/* Agregar paciente existente */
.mayus { text-transform: uppercase; }
.mono { font-family: ui-monospace, Consolas, monospace; letter-spacing: .03em; }

/* Pacientes repetidos (misma CURP) */
.btn.pc-rep { background: #fef3c7; border-color: #fde68a; color: #92400e; }
.btn.pc-rep[hidden] { display: none; }
.rep-grupo { border: 1.5px solid #e2e8f0; border-radius: 12px; padding: 12px 14px; margin: 12px 0; display: flex; flex-direction: column; gap: 8px; }
.rep-curp { font-weight: 700; font-size: 13.5px; color: #334155; }
.rep-pac { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1.5px solid #e2e8f0; border-radius: 10px; cursor: pointer; }
.rep-pac:has(input:checked) { border-color: #0d9488; background: #f0fdfa; }
.rep-datos { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rep-conservar { font-size: 11.5px; font-weight: 700; color: #0f766e; opacity: 0; white-space: nowrap; }
.rep-pac:has(input:checked) .rep-conservar { opacity: 1; }
.rep-etq { font-size: 11px; font-weight: 600; color: #92400e; background: #fef3c7; padding: 2px 8px; border-radius: 999px; }
.rep-acc { display: flex; justify-content: flex-end; }

/* Archivos anulados (no se borran, se conservan en el historial) */
ul.lista-simple li.archivo-anulado { background: #fef2f2; border-color: #fecaca; }
li.archivo-anulado strong { text-decoration: line-through; color: #7f1d1d; }
.anulado-txt { font-size: 12px; font-weight: 600; color: #b91c1c; }

/* ═══ NOM-004: aviso de privacidad, historia clínica, bitácora e impresión del expediente ═══ */
.aviso-priv-form { margin: 4px 0 14px; padding: 12px 14px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; background: #eff6ff; border: 1.5px solid #bfdbfe; border-radius: 12px; }
.aviso-priv-form .chk { flex: 1 1 320px; margin: 0; }
.panel-aviso-priv { margin: 0 0 12px; padding: 10px 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 13.5px; font-weight: 600; color: #92400e; background: #fffbeb; border: 1.5px solid #fcd34d; border-radius: 12px; }
.panel-aviso-priv span { flex: 1 1 240px; }
.exp-acc-sep { gap: 8px; }

.hc-grupo { margin: 18px 0 8px; font-size: 11.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #94a3b8; }
.hc-version { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; width: 100%; margin-bottom: 6px; padding: 8px 12px; font: inherit; font-size: 13px; font-weight: 700; color: #334155; text-align: left; background: #fff; border: 1.5px solid #e2e8f0; border-radius: 10px; cursor: pointer; }
.hc-version small { font-size: 11.5px; font-weight: 500; color: #64748b; }
.hc-version:hover { border-color: #2563eb; }
.hc-version.activa { border-color: #2563eb; background: #eff6ff; }

.bit-lista { margin-top: 8px; }
.bit-fila { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 12px; padding: 10px 4px; font-size: 13.5px; line-height: 1.45; border-bottom: 1px solid #f1f5f9; }
.bit-cuando { font-size: 12px; color: #64748b; }
.bit-que small { color: #64748b; }
.bit-cambios { margin-top: 4px; padding: 6px 10px; font-size: 12.5px; background: #f8fafc; border-radius: 8px; }
.cambio-antes { color: #b91c1c; text-decoration: line-through; }
.cambio-despues { color: #047857; font-weight: 600; }
@media (max-width: 700px) { .bit-fila { grid-template-columns: 1fr; gap: 2px; } }

/* Cartas: firmas cortas y respuestas largas */
.cg-form .cg-firma.corta { height: 30px; }
.cg-form input.cg-blanco { max-width: 100%; }
.cg-form input.cg-blanco.largo { min-width: 60%; }
.rc-texto .rc-firma.rc-firma-corta { height: 10mm; }

/* Hoja impresa (aviso de privacidad y expediente): solo existe mientras se imprime */
#print-doc { display: none; font-family: 'Segoe UI', Arial, sans-serif; font-size: 11.5pt; line-height: 1.45; color: #111; background: #fff; }
#print-doc h1 { margin: 0 0 4px; font-size: 18pt; }
#print-doc h2 { margin: 18px 0 6px; padding-bottom: 3px; font-size: 13pt; border-bottom: 1.5px solid #333; break-after: avoid; }
#print-doc h3 { margin: 12px 0 4px; font-size: 11pt; text-transform: uppercase; letter-spacing: .04em; color: #444; break-after: avoid; }
#print-doc p { margin: 0 0 6px; white-space: pre-wrap; }
#print-doc .pd-sub, #print-doc .pd-meta { font-size: 10pt; color: #555; }
#print-doc .pd-cab { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 8px; border-bottom: 2.5px solid #111; }
#print-doc .pd-der { text-align: right; font-size: 10pt; }
#print-doc .pd-datos { display: grid; grid-template-columns: 1fr 1fr; gap: 3px 22px; font-size: 10.5pt; }
#print-doc .pd-dato span { display: block; font-size: 8.5pt; text-transform: uppercase; letter-spacing: .05em; color: #666; }
#print-doc .pd-campo { margin-bottom: 6px; break-inside: avoid; }
#print-doc .pd-campo b { font-size: 10pt; }
#print-doc .pd-nota { margin-bottom: 14px; padding: 8px 10px; border: 1px solid #999; border-radius: 4px; }
#print-doc .pd-nota-cab { margin-bottom: 4px; font-weight: 700; }
#print-doc .pd-aclar { margin: 4px 0; padding: 4px 8px; font-size: 10pt; background: #f2f2f2; }
#print-doc .pd-lista { margin: 0; padding-left: 20px; font-size: 10.5pt; }
#print-doc .pd-vacio { font-style: italic; color: #666; }
#print-doc .pd-firma, #print-doc .pd-firmas > div { margin-top: 34px; width: 280px; font-size: 10pt; text-align: center; break-inside: avoid; }
#print-doc .pd-linea { border-top: 1px solid #111; margin-bottom: 3px; }
#print-doc .pd-firmas { display: flex; gap: 40px; margin-top: 10px; }
#print-doc .pd-conf { margin-top: 14px; font-weight: 600; }
@media print {
  body > #print-doc { display: block !important; position: static; visibility: visible; }
}
