/**
 * CentroDolor — IA Dolor (frontend)
 * Estilos acotados a .cdia-root. Paleta primaria configurable vía --cdia-primary.
 */

.cdia-root {
	--cdia-primary: #100680;
	--cdia-ink: #1f2430;
	--cdia-muted: #6b7280;
	--cdia-line: #e5e7eb;
	--cdia-bg: #ffffff;
	--cdia-soft: #f7f8fc;
	--cdia-red: #c0392b;
	--cdia-orange: #e67e22;
	--cdia-green: #27ae60;

	max-width: 760px;
	margin: 1.5rem auto;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--cdia-ink);
	line-height: 1.55;
	font-size: 16px;
}

.cdia-root *,
.cdia-root *::before,
.cdia-root *::after { box-sizing: border-box; }

.cdia-card {
	background: var(--cdia-bg);
	border: 1px solid var(--cdia-line);
	border-radius: 14px;
	padding: 1.25rem 1.35rem;
	box-shadow: 0 1px 3px rgba(16, 6, 128, .05);
	margin-bottom: 1rem;
}

.cdia-title {
	font-size: 1.4rem;
	font-weight: 700;
	margin: 0 0 .35rem;
	color: var(--cdia-primary);
}

.cdia-sub { color: var(--cdia-muted); margin: 0 0 1rem; font-size: .95rem; }

.cdia-h {
	font-size: 1.05rem;
	font-weight: 700;
	margin: 0 0 .6rem;
	color: var(--cdia-primary);
	display: flex;
	align-items: center;
	gap: .4rem;
}

/* ── Disclaimer / avisos ───────────────────────────────────────────────── */
.cdia-notice {
	font-size: .85rem;
	background: #fff8e6;
	border: 1px solid #f5e3a8;
	color: #7a5b00;
	border-radius: 10px;
	padding: .6rem .8rem;
	margin: 0 0 1rem;
}
.cdia-notice strong { color: #6b4f00; }

.cdia-admin-hint {
	font-size: .85rem;
	background: #fdecea;
	border: 1px solid #f5c6c0;
	color: #8a2017;
	border-radius: 10px;
	padding: .6rem .8rem;
	margin: 0 0 1rem;
}

/* ── Formulario ────────────────────────────────────────────────────────── */
.cdia-textarea {
	width: 100%;
	min-height: 130px;
	resize: vertical;
	padding: .85rem 1rem;
	border: 1.5px solid var(--cdia-line);
	border-radius: 12px;
	font: inherit;
	color: var(--cdia-ink);
	background: var(--cdia-soft);
	transition: border-color .15s, box-shadow .15s;
}
.cdia-textarea:focus {
	outline: none;
	border-color: var(--cdia-primary);
	box-shadow: 0 0 0 3px rgba(16, 6, 128, .12);
	background: #fff;
}

.cdia-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: .6rem;
	flex-wrap: wrap;
}
.cdia-count { font-size: .8rem; color: var(--cdia-muted); }

.cdia-btn {
	appearance: none;
	border: 0;
	background: var(--cdia-primary);
	color: #fff;
	font: inherit;
	font-weight: 600;
	padding: .7rem 1.4rem;
	border-radius: 10px;
	cursor: pointer;
	transition: filter .15s, transform .05s;
}
.cdia-btn:hover { filter: brightness(1.12); }
.cdia-btn:active { transform: translateY(1px); }
.cdia-btn:disabled { opacity: .55; cursor: not-allowed; }

.cdia-btn-ghost {
	background: transparent;
	color: var(--cdia-primary);
	border: 1.5px solid var(--cdia-primary);
}

.cdia-btn-sm { padding: .45rem .9rem; font-size: .85rem; }

/* ── Chips / semiología ────────────────────────────────────────────────── */
.cdia-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: .2rem 0 .2rem; }
.cdia-chip {
	background: #eef0fb;
	color: var(--cdia-primary);
	border-radius: 999px;
	padding: .25rem .7rem;
	font-size: .85rem;
	font-weight: 600;
}

.cdia-fields { margin: 0; }
.cdia-field { display: flex; gap: .5rem; padding: .35rem 0; border-bottom: 1px dashed var(--cdia-line); }
.cdia-field:last-child { border-bottom: 0; }
.cdia-field-k { flex: 0 0 36%; color: var(--cdia-muted); font-size: .9rem; }
.cdia-field-v { flex: 1; font-weight: 500; }

/* ── Términos reconocidos ──────────────────────────────────────────────── */
.cdia-term { padding: .55rem 0; border-bottom: 1px solid var(--cdia-line); }
.cdia-term:last-child { border-bottom: 0; }
.cdia-term-name { font-weight: 700; color: var(--cdia-primary); }
.cdia-term-def { font-size: .9rem; color: #444; margin-top: .15rem; }

/* ── Escalas sugeridas ─────────────────────────────────────────────────── */
.cdia-scale {
	border: 1px solid var(--cdia-line);
	border-left: 4px solid var(--cdia-primary);
	border-radius: 10px;
	padding: .7rem .9rem;
	margin-bottom: .6rem;
	background: var(--cdia-soft);
}
.cdia-scale-top { display: flex; align-items: center; justify-content: space-between; gap: .6rem; flex-wrap: wrap; }
.cdia-scale-name { font-weight: 700; }
.cdia-scale-full { font-weight: 400; color: var(--cdia-muted); font-size: .9rem; }
.cdia-scale-reason { font-size: .85rem; color: #555; margin-top: .35rem; }

.cdia-badge { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: .15rem .55rem; border-radius: 999px; color: #fff; white-space: nowrap; }
.cdia-badge.alta { background: var(--cdia-red); }
.cdia-badge.media { background: var(--cdia-orange); }
.cdia-badge.baja { background: var(--cdia-green); }

/* ── Preguntas faltantes ───────────────────────────────────────────────── */
.cdia-q { margin-bottom: .7rem; }
.cdia-q label { display: block; font-size: .92rem; font-weight: 600; margin-bottom: .25rem; }
.cdia-q input[type="text"] {
	width: 100%;
	padding: .6rem .8rem;
	border: 1.5px solid var(--cdia-line);
	border-radius: 10px;
	font: inherit;
	background: #fff;
}
.cdia-q input[type="text"]:focus { outline: none; border-color: var(--cdia-primary); box-shadow: 0 0 0 3px rgba(16, 6, 128, .1); }

/* ── Estados ───────────────────────────────────────────────────────────── */
.cdia-spinner {
	display: inline-block;
	width: 1.05em; height: 1.05em;
	border: 2.5px solid rgba(16, 6, 128, .25);
	border-top-color: var(--cdia-primary);
	border-radius: 50%;
	animation: cdia-spin .7s linear infinite;
	vertical-align: -.18em;
	margin-right: .4rem;
}
@keyframes cdia-spin { to { transform: rotate(360deg); } }

.cdia-error {
	background: #fdecea; border: 1px solid #f5c6c0; color: #8a2017;
	border-radius: 10px; padding: .7rem .9rem; font-size: .9rem;
}

.cdia-hidden { display: none !important; }
.cdia-muted { color: var(--cdia-muted); font-size: .88rem; }
.cdia-disclaimer { font-size: .82rem; color: var(--cdia-muted); border-top: 1px solid var(--cdia-line); padding-top: .8rem; margin-top: .4rem; }

@media (max-width: 520px) {
	.cdia-field-k { flex-basis: 44%; }
	.cdia-root { font-size: 15px; }
}

/* ── v0.2.0: escalas inline ────────────────────────────────────────────────── */
.cdia-scale-actions { display: flex; align-items: center; gap: .8rem; margin-top: .55rem; flex-wrap: wrap; }
.cdia-scale-ext { font-size: .82rem; color: var(--cdia-muted); text-decoration: none; }
.cdia-scale-ext:hover { color: var(--cdia-primary); text-decoration: underline; }

.cdia-scale-host { margin-top: .6rem; }
.cdia-scale-form { background: #fff; border: 1px solid var(--cdia-line); border-radius: 10px; padding: .85rem .95rem; }
.cdia-scale-instr { font-size: .85rem; color: #555; background: #f4f6ff; border-radius: 8px; padding: .5rem .7rem; margin: 0 0 .8rem; }

.cdia-item { padding: .6rem 0; border-bottom: 1px dashed var(--cdia-line); }
.cdia-item:last-of-type { border-bottom: 0; }
.cdia-item-label { font-size: .92rem; font-weight: 600; margin-bottom: .45rem; }
.cdia-item-input { }
.cdia-item-err { background: #fdecea; border-radius: 8px; padding: .4rem .5rem; margin: .2rem -.5rem; }

.cdia-slider-row { display: flex; align-items: center; gap: .8rem; }
.cdia-slider { flex: 1; accent-color: var(--cdia-primary); }
.cdia-num { min-width: 2.2em; text-align: center; font-weight: 700; color: var(--cdia-primary); background: #eef0fb; border-radius: 8px; padding: .15rem .4rem; }
.cdia-range-lbl { display: flex; justify-content: space-between; font-size: .75rem; color: var(--cdia-muted); margin-top: .1rem; }

.cdia-opts { display: flex; gap: .5rem; }
.cdia-opts-wrap { flex-wrap: wrap; }
.cdia-opt {
	appearance: none; border: 1.5px solid var(--cdia-line); background: #fff; color: var(--cdia-ink);
	font: inherit; font-size: .88rem; padding: .4rem .9rem; border-radius: 8px; cursor: pointer; transition: all .12s;
}
.cdia-opt:hover { border-color: var(--cdia-primary); }
.cdia-opt-on { background: var(--cdia-primary); color: #fff; border-color: var(--cdia-primary); }

.cdia-scale-calc { margin-top: .8rem; }

.cdia-scale-result { margin-top: .8rem; }
.cdia-scale-result-in { background: var(--cdia-soft); border-left: 4px solid var(--cdia-primary); border-radius: 8px; padding: .7rem .9rem; }
.cdia-scale-result-level { font-weight: 700; margin-bottom: .2rem; }
.cdia-scale-result-score { font-size: .95rem; margin-bottom: .35rem; }
.cdia-scale-result-text { font-size: .9rem; color: #333; }
.cdia-scale-result-note { font-size: .82rem; color: var(--cdia-muted); margin-top: .4rem; font-style: italic; }

/* ── v0.2.0: preguntas de seguridad (cribado) ──────────────────────────────── */
.cdia-screening .cdia-h { color: #8a5a00; }
.cdia-sq { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .55rem 0; border-bottom: 1px solid var(--cdia-line); flex-wrap: wrap; }
.cdia-sq:last-of-type { border-bottom: 0; }
.cdia-sq-text { flex: 1 1 60%; font-size: .92rem; }
.cdia-sq.cdia-item-err { background: #fff8e6; border-radius: 8px; }

/* ── v0.2.0: banderas rojas ────────────────────────────────────────────────── */
.cdia-redflag-zone:empty { display: none; }
.cdia-rf-wrap { border: 2px solid var(--cdia-red); }
.cdia-rf-wrap .cdia-h { color: var(--cdia-red); }
.cdia-rf { border-radius: 10px; padding: .75rem .9rem; margin-bottom: .6rem; }
.cdia-rf:last-of-type { margin-bottom: 0; }
.cdia-rf-urgent { background: #fdecea; border: 1px solid #f5b7b1; }
.cdia-rf-priority { background: #fef5e7; border: 1px solid #f5cba7; }
.cdia-rf-top { display: flex; align-items: center; gap: .55rem; margin-bottom: .3rem; }
.cdia-rf-sev { font-size: .7rem; font-weight: 800; letter-spacing: .04em; color: #fff; padding: .12rem .5rem; border-radius: 999px; }
.cdia-rf-urgent .cdia-rf-sev { background: var(--cdia-red); }
.cdia-rf-priority .cdia-rf-sev { background: var(--cdia-orange); }
.cdia-rf-label { font-weight: 700; }
.cdia-rf-msg { font-size: .9rem; color: #333; }
.cdia-rf-action { font-size: .9rem; font-weight: 600; margin-top: .35rem; }
.cdia-rf-ok { background: #eafaf1; border: 1px solid #abe0c2; color: #1e6b43; font-size: .9rem; }

.cdia-print-btn { margin-top: .4rem; }

/* ── v0.3.0: anamnesis conversacional ──────────────────────────────────────── */
.cdia-convo { display: flex; flex-direction: column; gap: .55rem; margin-bottom: 1rem; }
.cdia-bubble { max-width: 85%; padding: .6rem .85rem; border-radius: 14px; }
.cdia-bubble-who { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; opacity: .6; margin-bottom: .15rem; }
.cdia-bubble-text { white-space: pre-wrap; word-wrap: break-word; }
.cdia-bubble-bot { align-self: flex-start; background: var(--cdia-soft); border: 1px solid var(--cdia-line); border-bottom-left-radius: 4px; }
.cdia-bubble-user { align-self: flex-end; background: var(--cdia-primary); color: #fff; border-bottom-right-radius: 4px; }
.cdia-bubble-user .cdia-bubble-who { color: #fff; opacity: .85; }
.cdia-typing .cdia-bubble-text { color: var(--cdia-muted); }

.cdia-qa { display: flex; gap: .5rem; margin-bottom: 1rem; }
.cdia-qa-input { flex: 1; padding: .7rem .9rem; border: 1.5px solid var(--cdia-line); border-radius: 10px; font: inherit; background: #fff; }
.cdia-qa-input:focus { outline: none; border-color: var(--cdia-primary); box-shadow: 0 0 0 3px rgba(16, 6, 128, .12); }

/* ── v0.3.0: síntesis integrada ────────────────────────────────────────────── */
.cdia-synthesis .cdia-h { color: var(--cdia-primary); }
.cdia-syn-resumen { margin: .2rem 0 .8rem; }
.cdia-phenotype { background: var(--cdia-soft); border-left: 4px solid var(--cdia-primary); border-radius: 8px; padding: .7rem .9rem; margin: .6rem 0; }
.cdia-phenotype-head { font-weight: 700; color: var(--cdia-primary); }
.cdia-phenotype-why { font-size: .9rem; color: #444; margin-top: .25rem; }
.cdia-confirm { margin: .9rem 0; }
.cdia-confirm-head { font-weight: 700; margin-bottom: .2rem; }
.cdia-confirm-host { margin-top: .5rem; }
.cdia-diff { margin: .9rem 0 .2rem; }
.cdia-diff-head { font-weight: 700; margin-bottom: .3rem; }
.cdia-diff-list { margin: .2rem 0 0; padding-left: 1.1rem; }
.cdia-diff-list li { margin-bottom: .3rem; font-size: .92rem; }
.cdia-diff-dx { font-weight: 600; }
.cdia-diff-why { color: #555; }
.cdia-scale-integra { font-size: .85rem; color: #555; margin-top: .4rem; font-style: italic; }
.cdia-report-zone { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .4rem; }

/* ── v0.4.0: informe estructurado para el médico ───────────────────────────── */
.cdia-gen-report { }
.cdia-report-host { margin-top: .9rem; }
.cdia-report-doc { border: 1px solid var(--cdia-line); border-radius: 12px; padding: 1.1rem 1.2rem; background: #fff; }
.cdia-rep-title { font-size: 1.15rem; font-weight: 800; color: var(--cdia-primary); margin-bottom: .4rem; }
.cdia-rep-id { font-size: .85rem; color: #333; border-bottom: 1px dashed var(--cdia-line); padding-bottom: .6rem; margin-bottom: .8rem; }
.cdia-rep-sec { margin-bottom: .7rem; }
.cdia-rep-h { font-weight: 700; color: var(--cdia-primary); font-size: .95rem; margin-bottom: .2rem; }
.cdia-rep-b { font-size: .92rem; color: #222; white-space: pre-wrap; }
.cdia-rep-list { margin: .2rem 0 0; padding-left: 1.1rem; }
.cdia-rep-list li { margin-bottom: .25rem; font-size: .92rem; }
.cdia-rep-nota { font-size: .82rem; color: var(--cdia-muted); border-top: 1px solid var(--cdia-line); padding-top: .6rem; margin-top: .6rem; font-style: italic; }

/* ── v0.6.0: datos del paciente (paso 1) ───────────────────────────────────── */
.cdia-intake-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem .8rem; margin: .5rem 0 .7rem; }
.cdia-fld { display: flex; flex-direction: column; gap: .25rem; }
.cdia-fld-full { grid-column: 1 / -1; }
.cdia-fld > span { font-size: .82rem; font-weight: 600; color: var(--cdia-ink); }
.cdia-fld input, .cdia-fld select { width: 100%; padding: .55rem .7rem; border: 1.5px solid var(--cdia-line); border-radius: 10px; font: inherit; background: #fff; color: var(--cdia-ink); }
.cdia-fld input:focus, .cdia-fld select:focus { outline: none; border-color: var(--cdia-primary); box-shadow: 0 0 0 3px rgba(16, 6, 128, .12); }
.cdia-intake-summary { margin-bottom: .6rem; font-size: .9rem; }
.cdia-btn-link { background: none; border: 0; color: var(--cdia-primary); font: inherit; font-size: .85rem; text-decoration: underline; cursor: pointer; padding: 0; }
@media (max-width: 520px) { .cdia-intake-grid { grid-template-columns: 1fr; } }

/* ── v0.2.0: impresión / PDF del informe ───────────────────────────────────── */
@media print {
	body * { visibility: hidden; }
	.cdia-root, .cdia-root * { visibility: visible; }
	.cdia-root { margin: 0; max-width: none; font-size: 12pt; }
	.cdia-input-card, .cdia-convo, .cdia-qa, .cdia-screening, .cdia-print-btn,
	.cdia-synthesis, .cdia-scale-calc, .cdia-scale-instr,
	.cdia-scale-form .cdia-item, .cdia-admin-hint, .cdia-btn { display: none !important; }
	.cdia-card { box-shadow: none; border-color: #ccc; break-inside: avoid; }
	.cdia-scale-result { margin-top: .3rem; }
}
