/* ==========================================================================
   [proprietary_data] — comprobador de señales de confianza
   Todo va bajo .pdl-root para no filtrar estilos al tema.
   ========================================================================== */

.pdl-root {
	--pdl-bg: #ffffff;
	--pdl-surface: #f8fafc;
	--pdl-text: #111827;
	--pdl-muted: #55607a;
	--pdl-border: #dfe3ec;
	--pdl-accent: #1d4ed8;
	--pdl-accent-hover: #1e40af;
	--pdl-focus: #0b3ba8;
	--pdl-good: #15803d;
	--pdl-warn: #a16207;
	--pdl-risk: #b91c1c;
	--pdl-tone: var(--pdl-accent);
	--pdl-radius: 14px;
	--pdl-radius-sm: 9px;
	--pdl-gap: 20px;

	color: var(--pdl-text);
	font-family: inherit;
	line-height: 1.55;
	display: block;
	margin: 32px 0;
}

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

.pdl-card {
	background: var(--pdl-bg);
	border: 1px solid var(--pdl-border);
	border-radius: var(--pdl-radius);
	border-top: 4px solid var(--pdl-tone);
	padding: 28px;
}

/* --- Cabecera ------------------------------------------------------------ */

.pdl-eyebrow {
	margin: 0 0 6px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--pdl-muted);
}

.pdl-title {
	margin: 0 0 8px;
	font-size: clamp(20px, 2.4vw, 26px);
	line-height: 1.25;
	font-weight: 700;
	color: inherit;
}

.pdl-intro {
	margin: 0;
	color: var(--pdl-muted);
	font-size: 15px;
}

/* --- Formulario ---------------------------------------------------------- */

.pdl-form {
	display: grid;
	gap: var(--pdl-gap);
	margin-top: 26px;
}

.pdl-field {
	display: grid;
	gap: 8px;
}

.pdl-label {
	display: flex;
	align-items: baseline;
	gap: 10px;
	font-weight: 600;
	font-size: 15px;
	cursor: pointer;
}

.pdl-label-index {
	flex: 0 0 auto;
	min-width: 22px;
	height: 22px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--pdl-surface);
	border: 1px solid var(--pdl-border);
	font-size: 12px;
	font-weight: 700;
	color: var(--pdl-muted);
	transform: translateY(2px);
}

.pdl-hint {
	margin: 0;
	font-size: 13px;
	color: var(--pdl-muted);
}

.pdl-select {
	width: 100%;
	min-height: 46px;
	padding: 10px 12px;
	font: inherit;
	font-size: 16px; /* Evita el zoom automático en iOS. */
	color: inherit;
	background: var(--pdl-bg);
	border: 1px solid var(--pdl-border);
	border-radius: var(--pdl-radius-sm);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.pdl-select:hover {
	border-color: var(--pdl-muted);
}

.pdl-select[data-pdl-missing="true"] {
	border-color: var(--pdl-risk);
	box-shadow: 0 0 0 3px rgba(185, 28, 28, 0.12);
}

/* --- Botones ------------------------------------------------------------- */

.pdl-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 4px;
}

.pdl-button {
	appearance: none;
	font: inherit;
	font-size: 16px;
	font-weight: 600;
	min-height: 46px;
	padding: 10px 22px;
	background: var(--pdl-accent);
	color: #fff;
	border: 1px solid transparent;
	border-radius: var(--pdl-radius-sm);
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.pdl-button:hover {
	background: var(--pdl-accent-hover);
	color: #fff;
}

.pdl-button--ghost {
	background: transparent;
	color: var(--pdl-accent);
	border-color: var(--pdl-border);
}

.pdl-button--ghost:hover {
	background: var(--pdl-surface);
	color: var(--pdl-accent);
}

.pdl-button[hidden] {
	display: none;
}

/* Foco visible con color propio: currentColor sería blanco sobre el botón. */
.pdl-root :is(button, select, a):focus-visible {
	outline: 3px solid var(--pdl-focus);
	outline-offset: 2px;
	border-radius: var(--pdl-radius-sm);
}

/* --- Resultado ----------------------------------------------------------- */

.pdl-result {
	margin-top: 26px;
	padding: 20px;
	background: var(--pdl-surface);
	border: 1px solid var(--pdl-border);
	border-left: 4px solid var(--pdl-tone);
	border-radius: var(--pdl-radius-sm);
}

.pdl-result[hidden] {
	display: none;
}

.pdl-meter {
	height: 6px;
	border-radius: 999px;
	background: var(--pdl-border);
	overflow: hidden;
	margin-bottom: 14px;
}

.pdl-meter-fill {
	display: block;
	height: 100%;
	width: 0;
	background: var(--pdl-tone);
	transition: width 0.4s ease;
}

.pdl-result-title {
	margin: 0 0 6px;
	font-size: 17px;
	font-weight: 700;
	color: var(--pdl-tone);
}

.pdl-result-text {
	margin: 0;
	font-size: 15px;
}

.pdl-result-score {
	margin: 10px 0 0;
	font-size: 13px;
	color: var(--pdl-muted);
}

.pdl-result-score:empty {
	display: none;
}

/* Tonos por nivel: una sola variable controla borde, barra y titular. */
.pdl-result[data-pdl-tone="good"] { --pdl-tone: var(--pdl-good); }
.pdl-result[data-pdl-tone="warn"] { --pdl-tone: var(--pdl-warn); }
.pdl-result[data-pdl-tone="risk"] { --pdl-tone: var(--pdl-risk); }

.pdl-disclaimer {
	margin: 20px 0 0;
	padding-top: 16px;
	border-top: 1px solid var(--pdl-border);
	font-size: 12.5px;
	color: var(--pdl-muted);
}

/* --- Responsive ---------------------------------------------------------- */

@media (max-width: 600px) {
	.pdl-card {
		padding: 20px;
	}

	.pdl-actions .pdl-button {
		flex: 1 1 100%;
	}
}

/* --- Tema oscuro --------------------------------------------------------- */

@media (prefers-color-scheme: dark) {
	.pdl-root {
		--pdl-bg: #12161f;
		--pdl-surface: #1a2029;
		--pdl-text: #e8ecf3;
		--pdl-muted: #9aa5b8;
		--pdl-border: #2c3543;
		--pdl-accent: #6d9bff;
		--pdl-accent-hover: #8ab0ff;
		--pdl-focus: #9dbcff;
		--pdl-good: #58d68a;
		--pdl-warn: #e5b04a;
		--pdl-risk: #ff8c86;
	}

	.pdl-button {
		color: #0d1219;
	}

	.pdl-button:hover {
		color: #0d1219;
	}
}

/* --- Alto contraste y movimiento reducido -------------------------------- */

@media (forced-colors: active) {
	.pdl-card,
	.pdl-result,
	.pdl-select {
		border: 1px solid CanvasText;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pdl-root *,
	.pdl-root *::before,
	.pdl-root *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* --- Impresión ----------------------------------------------------------- */

@media print {
	.pdl-actions {
		display: none;
	}
}
