/*
 * Kamaya Client Portal — estilos del portal (/portal/).
 * Tokens de CLAUDE.md (colores, tipografía, espaciado, radios). Mobile-first: 640 / 900 / 1200 px.
 * Contraste AA: botones y enlaces en --kmy-blue-700 sobre claro; texto blanco solo sobre navy o azul 700.
 */

:root {
	--kmy-blue: #1695DB;
	--kmy-carbon: #3D3D3D;
	--kmy-sky: #35C2FB;
	--kmy-orange: #FF5001;
	--kmy-white: #FFFFFF;
	--kmy-blue-50: #EAF5FC;
	--kmy-blue-100: #D0E9F8;
	--kmy-blue-700: #0F6FA8;
	--kmy-blue-800: #0B5584;
	--kmy-blue-900: #083A5A;
	--kmy-orange-600: #C73E00;
	--kmy-navy-900: #07121D;
	--kmy-navy: #0B1B2B;
	--kmy-navy-800: #12283D;
	--kmy-navy-700: #1B3650;
	--kmy-ink: #0B1B2B;
	--kmy-text: var(--kmy-carbon);
	--kmy-muted: #5A6573;
	--kmy-muted-dark: #A9B4C2;
	--kmy-line: #DDE3EA;
	--kmy-surface: #F5F8FB;
	--kmy-success: #1E8E5A;
	--kmy-error: #C0262D;
	--kmy-focus: var(--kmy-sky);

	--kmy-font-sans: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--kmy-font-label: "Jost", "Manrope", system-ui, sans-serif;
	--kmy-font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

	--kmy-fs-h1: clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem);
	--kmy-fs-h2: clamp(1.375rem, 1.2rem + 0.8vw, 1.75rem);
	--kmy-fs-body: 1rem;
	--kmy-fs-small: 0.875rem;
	--kmy-fs-label: 0.8125rem;

	--kmy-space-1: 0.25rem;
	--kmy-space-2: 0.5rem;
	--kmy-space-3: 0.75rem;
	--kmy-space-4: 1rem;
	--kmy-space-5: 1.5rem;
	--kmy-space-6: 2rem;
	--kmy-space-7: 3rem;
	--kmy-space-8: 4rem;
	--kmy-space-9: 6rem;
	--kmy-gutter: clamp(1rem, 0.5rem + 2.5vw, 2rem);

	--kmy-radius-sm: 4px;
	--kmy-radius: 8px;
	--kmy-radius-lg: 14px;
	--kmy-radius-pill: 999px;
	--kmy-shadow: 0 4px 16px rgb(11 27 43 / 0.08), 0 1px 3px rgb(11 27 43 / 0.06);
	--kmy-shadow-lg: 0 16px 40px rgb(11 27 43 / 0.14);
	--kmy-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--kmy-dur: 180ms;
}

/* Base ------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--kmy-font-sans);
	font-size: var(--kmy-fs-body);
	line-height: 1.6;
	color: var(--kmy-text);
	background: var(--kmy-surface);
}
img { max-width: 100%; height: auto; }
a { color: var(--kmy-blue-700); }
a:hover { color: var(--kmy-blue-800); }
:focus-visible { outline: 2px solid var(--kmy-focus); outline-offset: 3px; }
h1, h2, h3 { color: var(--kmy-ink); line-height: 1.15; letter-spacing: -0.02em; margin: 0 0 var(--kmy-space-3); }
p { margin: 0 0 var(--kmy-space-4); }
[hidden] { display: none !important; }

.kmy-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100;
	padding: var(--kmy-space-3) var(--kmy-space-4);
	background: var(--kmy-white);
	color: var(--kmy-ink);
}
.kmy-skip:focus { left: var(--kmy-space-4); top: var(--kmy-space-4); }

.kmy-eyebrow {
	margin: 0 0 var(--kmy-space-3);
	font-family: var(--kmy-font-label);
	font-size: var(--kmy-fs-label);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--kmy-blue-700);
}

/* Botones (píldora) ------------------------------------------------------ */
.kmy-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--kmy-space-2);
	min-height: 48px;
	padding: 0.75rem 1.5rem;
	border: 2px solid transparent;
	border-radius: var(--kmy-radius-pill);
	font: 700 1rem/1.2 var(--kmy-font-sans);
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--kmy-dur) var(--kmy-ease), color var(--kmy-dur) var(--kmy-ease), border-color var(--kmy-dur) var(--kmy-ease);
}
.kmy-btn--primary { background: var(--kmy-blue-700); color: var(--kmy-white); }
.kmy-btn--primary:hover { background: var(--kmy-blue-800); color: var(--kmy-white); }
.kmy-btn--cta { background: var(--kmy-orange); color: var(--kmy-navy); }
.kmy-btn--outline { background: transparent; color: var(--kmy-blue-700); border-color: var(--kmy-blue-700); }
.kmy-btn--outline:hover { background: var(--kmy-blue-50); }
.kmy-btn--ghost { background: transparent; color: var(--kmy-white); border-color: rgb(255 255 255 / 0.6); }
.kmy-btn--ghost:hover { background: rgb(255 255 255 / 0.1); color: var(--kmy-white); border-color: var(--kmy-white); }
.kmy-btn--block { width: 100%; }
.kmy-btn--small { min-height: 38px; padding: 0.4rem 1rem; font-size: var(--kmy-fs-small); white-space: nowrap; }
.kmy-actions { display: flex; flex-wrap: wrap; gap: var(--kmy-space-3); }

/* Formularios ------------------------------------------------------------ */
.kmy-form { display: grid; gap: var(--kmy-space-5); }
.kmy-field { display: grid; gap: var(--kmy-space-2); }
.kmy-field label { font-weight: 700; color: var(--kmy-ink); font-size: 0.9375rem; }
.kmy-field__row { display: flex; justify-content: space-between; align-items: baseline; gap: var(--kmy-space-3); flex-wrap: wrap; }
.kmy-field input[type="text"],
.kmy-field input[type="email"],
.kmy-field input[type="password"] {
	width: 100%;
	min-height: 48px;
	padding: 0.7rem 0.9rem;
	border: 1px solid #B8C3CF;
	border-radius: var(--kmy-radius);
	background: var(--kmy-white);
	font: 400 1rem/1.4 var(--kmy-font-sans);
	color: var(--kmy-ink);
}
.kmy-field input:focus-visible { border-color: var(--kmy-blue-700); outline-offset: 1px; }
.kmy-field input[aria-invalid="true"] { border-color: var(--kmy-error); }
.kmy-field__help { margin: 0; font-size: var(--kmy-fs-small); color: var(--kmy-muted); }
.kmy-field__help--error { color: var(--kmy-error); font-weight: 600; }
.kmy-link-small { font-size: var(--kmy-fs-small); font-weight: 600; }
.kmy-check { display: flex; align-items: flex-start; gap: var(--kmy-space-2); font-size: 0.9375rem; }
.kmy-check input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--kmy-blue-700); }

.kmy-password { position: relative; }
.kmy-password input { padding-right: 5.5rem; }
.kmy-password__toggle {
	position: absolute;
	top: 50%;
	right: 6px;
	transform: translateY(-50%);
	min-height: 36px;
	padding: 0 0.75rem;
	border: 0;
	border-radius: var(--kmy-radius-sm);
	background: var(--kmy-blue-50);
	color: var(--kmy-blue-700);
	font: 600 var(--kmy-fs-small)/1 var(--kmy-font-sans);
	cursor: pointer;
}

.kmy-alert {
	padding: var(--kmy-space-3) var(--kmy-space-4);
	border-left: 4px solid;
	border-radius: 0 var(--kmy-radius) var(--kmy-radius) 0;
	font-size: 0.9375rem;
	margin-bottom: var(--kmy-space-5);
}
.kmy-alert--error { border-color: var(--kmy-error); background: #FCEEEE; color: #8E1C21; }
.kmy-alert--success { border-color: var(--kmy-success); background: #EAF6F0; color: #155E3C; }
.kmy-alert--info { border-color: var(--kmy-blue-700); background: var(--kmy-blue-50); color: var(--kmy-blue-900); }

/* Pantallas de acceso ---------------------------------------------------- */
.kmy-auth { min-height: 100vh; display: flex; flex-direction: column; }
.kmy-auth__brand {
	position: relative;
	padding: var(--kmy-space-5) var(--kmy-gutter);
	background: var(--kmy-navy-900);
	color: var(--kmy-muted-dark);
	overflow: hidden;
}
.kmy-auth__brand::after {
	/* Isotipo como textura, igual que los heros del sitio. */
	content: "";
	position: absolute;
	right: -12%;
	bottom: -20%;
	width: 70%;
	aspect-ratio: 1;
	background: url("../../../../themes/kamaya/assets/img/logo/isotipo-light.webp") center / contain no-repeat;
	opacity: 0.05;
	pointer-events: none;
}
.kmy-auth__logo img { display: block; width: 150px; }
.kmy-auth__pitch, .kmy-auth__legal { display: none; position: relative; z-index: 1; }
.kmy-auth__pitch .kmy-eyebrow { color: var(--kmy-sky); }
.kmy-auth__claim { font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.5rem); font-weight: 800; line-height: 1.12; letter-spacing: -0.02em; color: var(--kmy-white); max-width: 16ch; }
.kmy-auth__points { list-style: none; margin: var(--kmy-space-6) 0 0; padding: 0; display: grid; gap: var(--kmy-space-3); }
.kmy-auth__points li { position: relative; padding-left: 1.75rem; }
.kmy-auth__points li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 0.9rem; height: 2px; background: var(--kmy-orange); }
.kmy-auth__legal { font-size: var(--kmy-fs-small); margin: 0; }

.kmy-auth__main {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: var(--kmy-space-5) var(--kmy-gutter) var(--kmy-space-6);
}
.kmy-auth__langs { align-self: flex-end; display: flex; gap: var(--kmy-space-2); margin-bottom: var(--kmy-space-5); }
.kmy-auth__langs a {
	padding: 0.25rem 0.6rem;
	border-radius: var(--kmy-radius-pill);
	font: 600 var(--kmy-fs-small)/1.4 var(--kmy-font-label);
	letter-spacing: 0.08em;
	color: var(--kmy-muted);
	text-decoration: none;
}
.kmy-auth__langs a[aria-current="true"] { background: var(--kmy-blue-50); color: var(--kmy-blue-700); }
.kmy-auth__card {
	width: 100%;
	max-width: 440px;
	padding: var(--kmy-space-6) var(--kmy-space-5);
	background: var(--kmy-white);
	border: 1px solid var(--kmy-line);
	border-radius: var(--kmy-radius-lg);
	box-shadow: var(--kmy-shadow);
}
.kmy-auth__title { font-size: var(--kmy-fs-h2); font-weight: 800; }
.kmy-auth__lead { color: var(--kmy-muted); margin-bottom: var(--kmy-space-5); }
.kmy-auth__back { margin: var(--kmy-space-5) 0 0; text-align: center; font-size: 0.9375rem; }
.kmy-auth__help { margin: var(--kmy-space-5) 0 0; font-size: var(--kmy-fs-small); color: var(--kmy-muted); text-align: center; }

@media (min-width: 900px) {
	.kmy-auth { flex-direction: row; }
	.kmy-auth__brand {
		flex: 0 0 44%;
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		padding: var(--kmy-space-7) clamp(2rem, 4vw, 4rem);
	}
	.kmy-auth__pitch, .kmy-auth__legal { display: block; }
	.kmy-auth__logo img { width: 180px; }
	.kmy-auth__main { justify-content: center; padding: var(--kmy-space-6); }
	.kmy-auth__langs { position: absolute; top: var(--kmy-space-5); right: var(--kmy-space-6); margin: 0; }
	.kmy-auth__card { padding: var(--kmy-space-7) var(--kmy-space-6); }
}

/* Vistas con sesión ------------------------------------------------------ */
.kmy-app-header { background: var(--kmy-navy-900); color: var(--kmy-white); }
.kmy-app-header__inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: var(--kmy-space-3) var(--kmy-gutter);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--kmy-space-4);
}
.kmy-app-header__brand { display: flex; align-items: center; gap: var(--kmy-space-3); text-decoration: none; }
.kmy-app-header__brand img { width: 112px; display: block; }
.kmy-app-header__product {
	display: none;
	padding-left: var(--kmy-space-3);
	border-left: 1px solid var(--kmy-navy-700);
	font: 600 var(--kmy-fs-label)/1.2 var(--kmy-font-label);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--kmy-sky);
}
.kmy-app-header__user { display: flex; align-items: center; gap: var(--kmy-space-3); }
@media (min-width: 640px) { .kmy-app-header__user { gap: var(--kmy-space-4); } }
.kmy-app-header__name { display: none; text-align: right; font-weight: 700; font-size: 0.9375rem; line-height: 1.3; }
.kmy-app-header__name small { display: block; font-weight: 500; color: var(--kmy-muted-dark); }
@media (min-width: 640px) {
	.kmy-app-header__product, .kmy-app-header__name { display: block; }
	.kmy-app-header__brand img { width: 150px; }
}

.kmy-app { padding: var(--kmy-space-6) 0 var(--kmy-space-7); }
.kmy-app__container { max-width: 1240px; margin: 0 auto; padding: 0 var(--kmy-gutter); }
.kmy-app__title { font-size: var(--kmy-fs-h1); font-weight: 800; }
.kmy-app__subtitle { font-size: var(--kmy-fs-h2); margin-top: var(--kmy-space-6); }
.kmy-simple-list { padding-left: 1.25rem; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

/* Cabecera: enlace de cuenta ---------------------------------------------- */
.kmy-app-header__link {
	display: inline-block;
	font-weight: 600;
	font-size: 0.9375rem;
	color: var(--kmy-white);
	text-decoration: none;
	padding: 0.4rem 0.25rem;
	border-bottom: 2px solid transparent;
}
.kmy-app-header__link:hover { color: var(--kmy-white); border-bottom-color: var(--kmy-sky); }
.kmy-app-header__link[aria-current="page"] { border-bottom-color: var(--kmy-orange); }

/* Paneles y seguridad de la cuenta --------------------------------------- */
.kmy-app__container--narrow { max-width: 820px; }
.kmy-panel {
	margin-top: var(--kmy-space-5);
	padding: var(--kmy-space-5);
	background: var(--kmy-white);
	border: 1px solid var(--kmy-line);
	border-radius: var(--kmy-radius-lg);
	box-shadow: var(--kmy-shadow);
}
.kmy-panel h2 { font-size: 1.25rem; }
.kmy-panel--highlight { border-left: 6px solid var(--kmy-blue); }
.kmy-status--ok { font-weight: 700; color: var(--kmy-success); }
.kmy-steps { padding-left: 1.25rem; display: grid; gap: var(--kmy-space-6); margin: var(--kmy-space-5) 0 0; }
.kmy-steps > li::marker { font-weight: 800; color: var(--kmy-blue-700); }
.kmy-steps strong { display: block; margin-bottom: var(--kmy-space-3); color: var(--kmy-ink); }
.kmy-qr { width: 208px; max-width: 100%; aspect-ratio: 1; padding: 4px; background: var(--kmy-white); border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius); margin-bottom: var(--kmy-space-3); }
.kmy-qr svg { display: block; width: 100%; height: 100%; }
.kmy-secret { display: inline-block; max-width: 100%; }
.kmy-secret, .kmy-recovery code {
	font-family: var(--kmy-font-mono);
	font-size: 1rem;
	letter-spacing: 0.08em;
	padding: 0.35rem 0.6rem;
	background: var(--kmy-surface);
	border: 1px solid var(--kmy-line);
	border-radius: var(--kmy-radius-sm);
	color: var(--kmy-ink);
	word-break: break-all;
}
.kmy-recovery { display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: var(--kmy-space-3); padding-left: 1.5rem; margin: var(--kmy-space-4) 0 var(--kmy-space-5); }
.kmy-form--inline { grid-template-columns: 1fr; align-items: end; max-width: 520px; }
@media (min-width: 640px) { .kmy-form--inline { grid-template-columns: minmax(0, 14rem) auto; } }
.kmy-code-input {
	font-family: var(--kmy-font-mono) !important;
	font-size: 1.25rem !important;
	letter-spacing: 0.2em;
	text-align: center;
}
.kmy-field input.kmy-code-input { max-width: 16rem; }
.kmy-btn--danger { background: transparent; color: var(--kmy-error); border-color: var(--kmy-error); }
.kmy-btn--danger:hover { background: #FCEEEE; color: #8E1C21; }

/* Distintivos (mismos colores que wp-admin; texto blanco con contraste AA) ---- */
.kmy-badge {
	display: inline-flex;
	align-items: center;
	padding: 0.15rem 0.6rem;
	border-radius: var(--kmy-radius-pill);
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--kmy-white);
	background: var(--kmy-muted);
	white-space: nowrap;
}
.kmy-badge--severity-critical, .kmy-badge--status-reopened { background: var(--kmy-error); }
.kmy-badge--severity-high { background: var(--kmy-orange-600); }
.kmy-badge--severity-medium, .kmy-badge--status-retest { background: #8A5A00; }
.kmy-badge--severity-low, .kmy-badge--status-remediation, .kmy-badge--project-active { background: var(--kmy-blue-700); }
.kmy-badge--severity-info, .kmy-badge--project-scheduled { background: var(--kmy-muted); }
.kmy-badge--status-open { background: var(--kmy-navy); }
.kmy-badge--status-closed { background: var(--kmy-success); }
.kmy-badge--project-archived { background: var(--kmy-carbon); }

.kmy-muted { color: var(--kmy-muted); }
.kmy-link-arrow { font-weight: 700; text-decoration: none; white-space: nowrap; }
.kmy-link-arrow:hover { text-decoration: underline; }

/* Encabezado de página + indicador "en vivo" ------------------------------ */
.kmy-page-head { display: grid; gap: var(--kmy-space-4); margin-bottom: var(--kmy-space-6); }
.kmy-page-head .kmy-app__title { margin-bottom: var(--kmy-space-2); }
.kmy-page-head__lead { margin: 0; color: var(--kmy-muted); }
@media (min-width: 900px) { .kmy-page-head { grid-template-columns: 1fr auto; align-items: end; } }
.kmy-live { display: flex; align-items: center; flex-wrap: wrap; gap: var(--kmy-space-2) var(--kmy-space-3); font-size: var(--kmy-fs-small); color: var(--kmy-muted); }
.kmy-live__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--kmy-success); box-shadow: 0 0 0 4px rgb(30 142 90 / 0.15); }
.kmy-live--new .kmy-live__dot { background: var(--kmy-orange); box-shadow: 0 0 0 4px rgb(255 80 1 / 0.2); }
.kmy-live--new .kmy-live__text { color: var(--kmy-ink); font-weight: 700; }

/* Indicadores ------------------------------------------------------------- */
.kmy-stats { display: grid; gap: var(--kmy-space-4); grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: var(--kmy-space-7); }
@media (min-width: 900px) { .kmy-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--kmy-space-5); } }
.kmy-stat {
	padding: var(--kmy-space-4);
	background: var(--kmy-white);
	border: 1px solid var(--kmy-line);
	border-top: 4px solid var(--kmy-blue);
	border-radius: var(--kmy-radius-lg);
	box-shadow: var(--kmy-shadow);
}
@media (min-width: 640px) { .kmy-stat { padding: var(--kmy-space-5); } }
.kmy-stat--alert { border-top-color: var(--kmy-error); }
.kmy-stat__label {
	margin: 0 0 var(--kmy-space-2);
	font-family: var(--kmy-font-label);
	font-size: var(--kmy-fs-label);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--kmy-muted);
	line-height: 1.3;
}
.kmy-stat__value { margin: 0; font-size: clamp(2rem, 1.6rem + 1.4vw, 2.75rem); font-weight: 800; line-height: 1.1; color: var(--kmy-ink); letter-spacing: -0.02em; }
.kmy-stat__value small { font-size: 0.55em; font-weight: 700; margin-left: 2px; }
.kmy-stat--alert .kmy-stat__value { color: var(--kmy-error); }
.kmy-stat__note { margin: var(--kmy-space-2) 0 0; font-size: var(--kmy-fs-small); color: var(--kmy-muted); line-height: 1.4; }
.kmy-stat .kmy-progress { margin-top: var(--kmy-space-3); }

/* Barra de progreso ------------------------------------------------------- */
.kmy-progress { height: 8px; border-radius: var(--kmy-radius-pill); background: var(--kmy-line); overflow: hidden; }
.kmy-progress > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--kmy-blue-700), var(--kmy-blue)); }
.kmy-progress__label { display: flex; justify-content: space-between; font-size: var(--kmy-fs-small); color: var(--kmy-muted); margin-bottom: var(--kmy-space-2); }
.kmy-progress__label strong { color: var(--kmy-ink); }

/* Dos columnas: proyectos + actividad ------------------------------------ */
.kmy-dash { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--kmy-space-7); }
.kmy-dash > * { min-width: 0; }
@media (min-width: 1200px) { .kmy-dash { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--kmy-space-6); } }
.kmy-section-title { font-size: var(--kmy-fs-h2); padding-left: var(--kmy-space-4); border-left: 6px solid var(--kmy-blue); margin-bottom: var(--kmy-space-5); }

/* Pestañas de estado ------------------------------------------------------ */
.kmy-tabs { display: flex; gap: var(--kmy-space-2); overflow-x: auto; margin-bottom: var(--kmy-space-5); padding-bottom: 2px; }
.kmy-tabs__tab {
	display: inline-flex;
	align-items: center;
	gap: var(--kmy-space-2);
	min-height: 40px;
	padding: 0 var(--kmy-space-4);
	border: 1px solid var(--kmy-line);
	border-radius: var(--kmy-radius-pill);
	background: var(--kmy-white);
	color: var(--kmy-ink);
	font-weight: 600;
	font-size: 0.9375rem;
	text-decoration: none;
	white-space: nowrap;
}
.kmy-tabs__tab:hover { border-color: var(--kmy-blue-700); color: var(--kmy-blue-700); }
.kmy-tabs__tab[aria-current="page"] { background: var(--kmy-navy); border-color: var(--kmy-navy); color: var(--kmy-white); }
.kmy-tabs__count { min-width: 1.5rem; padding: 0 0.4rem; border-radius: var(--kmy-radius-pill); background: var(--kmy-surface); color: var(--kmy-ink); font-size: 0.8125rem; text-align: center; }
.kmy-tabs__tab[aria-current="page"] .kmy-tabs__count { background: var(--kmy-navy-700); color: var(--kmy-white); }

/* Tarjeta de proyecto ----------------------------------------------------- */
.kmy-project-list { display: grid; gap: var(--kmy-space-4); }
.kmy-project {
	display: grid;
	gap: var(--kmy-space-4);
	padding: var(--kmy-space-5);
	background: var(--kmy-white);
	border: 1px solid var(--kmy-line);
	border-radius: var(--kmy-radius-lg);
	box-shadow: var(--kmy-shadow);
	transition: box-shadow var(--kmy-dur) var(--kmy-ease), border-color var(--kmy-dur) var(--kmy-ease);
}
.kmy-project:hover { border-color: var(--kmy-blue-100); box-shadow: var(--kmy-shadow-lg); }
.kmy-project--archived { background: var(--kmy-surface); box-shadow: none; }
.kmy-project__head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--kmy-space-3); }
.kmy-project__title { margin: 0; font-size: 1.1875rem; line-height: 1.3; }
.kmy-project__title a { color: var(--kmy-ink); text-decoration: none; }
.kmy-project__title a:hover { color: var(--kmy-blue-700); text-decoration: underline; }
.kmy-project__meta { margin: calc(-1 * var(--kmy-space-3)) 0 0; font-size: var(--kmy-fs-small); color: var(--kmy-muted); }
.kmy-project__findings { display: flex; flex-wrap: wrap; align-items: center; gap: var(--kmy-space-2); font-size: var(--kmy-fs-small); }
.kmy-project__findings-label { color: var(--kmy-muted); margin-right: var(--kmy-space-2); }
.kmy-project__foot { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--kmy-space-2); padding-top: var(--kmy-space-4); border-top: 1px solid var(--kmy-line); font-size: var(--kmy-fs-small); }

/* Línea de tiempo --------------------------------------------------------- */
.kmy-timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.kmy-timeline::before { content: ""; position: absolute; left: 5px; top: 8px; bottom: 8px; width: 2px; background: var(--kmy-line); }
.kmy-timeline__item { position: relative; padding: 0 0 var(--kmy-space-5) var(--kmy-space-6); }
.kmy-timeline__item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 6px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--kmy-white);
	border: 3px solid var(--kmy-blue);
}
.kmy-timeline__text { margin: 0 0 var(--kmy-space-2); font-weight: 600; color: var(--kmy-ink); line-height: 1.45; }
.kmy-timeline__meta { margin: 0; font-size: var(--kmy-fs-small); color: var(--kmy-muted); line-height: 1.5; }
.kmy-timeline__meta a { font-weight: 600; }

.kmy-empty { color: var(--kmy-muted); }
.kmy-empty--box { padding: var(--kmy-space-6); background: var(--kmy-white); border: 1px dashed #B8C3CF; border-radius: var(--kmy-radius-lg); text-align: center; }
.kmy-empty--box p { margin: 0 0 var(--kmy-space-2); }

/* Detalle de proyecto ----------------------------------------------------- */
.kmy-crumbs { display: flex; flex-wrap: wrap; gap: var(--kmy-space-2); margin-bottom: var(--kmy-space-5); font-size: var(--kmy-fs-small); color: var(--kmy-muted); }
.kmy-crumbs a { font-weight: 600; }
.kmy-project-hero {
	display: grid;
	gap: var(--kmy-space-5);
	padding: var(--kmy-space-5);
	margin-bottom: var(--kmy-space-7);
	background: var(--kmy-white);
	border: 1px solid var(--kmy-line);
	border-radius: var(--kmy-radius-lg);
	box-shadow: var(--kmy-shadow);
}
@media (min-width: 900px) { .kmy-project-hero { grid-template-columns: 1fr auto; align-items: center; padding: var(--kmy-space-6); } }
.kmy-project-hero__progress { display: grid; justify-items: center; gap: var(--kmy-space-2); text-align: center; }
.kmy-project-hero__progress p { margin: 0; font-size: var(--kmy-fs-small); }
.kmy-ring {
	--kmy-ring: 0;
	width: 120px;
	aspect-ratio: 1;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: conic-gradient(var(--kmy-blue) calc(var(--kmy-ring) * 1%), var(--kmy-line) 0);
}
.kmy-ring span { display: flex; align-items: baseline; justify-content: center; padding-top: 30px; width: 92px; aspect-ratio: 1; border-radius: 50%; background: var(--kmy-white); font-size: 1.75rem; font-weight: 800; color: var(--kmy-ink); }
.kmy-ring small { font-size: 0.55em; }
.kmy-live--compact { justify-content: center; }

.kmy-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: var(--kmy-space-4); margin: var(--kmy-space-4) 0 0; }
.kmy-facts dt { font-family: var(--kmy-font-label); font-size: var(--kmy-fs-label); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--kmy-muted); margin-bottom: 0.25rem; }
.kmy-facts dd { margin: 0; font-weight: 600; color: var(--kmy-ink); overflow-wrap: anywhere; }
.kmy-facts--small { margin: 0 0 var(--kmy-space-5); gap: var(--kmy-space-3) var(--kmy-space-5); }
.kmy-facts--small dd { font-weight: 500; font-size: 0.9375rem; }
.kmy-facts__wide { grid-column: 1 / -1; }

.kmy-detail { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--kmy-space-7); }
.kmy-detail > * { min-width: 0; }
@media (min-width: 1200px) { .kmy-detail { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--kmy-space-6); } .kmy-detail__side { order: 0; } }
.kmy-detail__side { display: grid; gap: var(--kmy-space-5); align-content: start; }
.kmy-detail__side .kmy-panel { margin-top: 0; }
.kmy-block + .kmy-block { margin-top: var(--kmy-space-7); }
.kmy-detail__side .kmy-block + .kmy-block { margin-top: 0; }
.kmy-panel__title { font-size: 1.125rem; margin-bottom: var(--kmy-space-4); }
.kmy-coverage-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--kmy-space-4); }
.kmy-progress--done > span { background: var(--kmy-success); }
.kmy-scope { margin: 0; font-family: var(--kmy-font-mono); font-size: 0.875rem; line-height: 1.7; color: var(--kmy-ink); overflow-wrap: anywhere; }

/* Hallazgos --------------------------------------------------------------- */
.kmy-findings { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--kmy-space-3); }
.kmy-finding { min-width: 0; }
.kmy-finding {
	background: var(--kmy-white);
	border: 1px solid var(--kmy-line);
	border-left: 5px solid var(--kmy-muted);
	border-radius: var(--kmy-radius);
	box-shadow: 0 1px 2px rgb(11 27 43 / 0.06);
}
.kmy-finding--critical { border-left-color: var(--kmy-error); }
.kmy-finding--high { border-left-color: var(--kmy-orange-600); }
.kmy-finding--medium { border-left-color: #8A5A00; }
.kmy-finding--low { border-left-color: var(--kmy-blue-700); }
.kmy-finding[open] { box-shadow: var(--kmy-shadow); }
.kmy-finding__summary {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: var(--kmy-space-2) var(--kmy-space-3);
	padding: var(--kmy-space-4);
	cursor: pointer;
	list-style: none;
}
.kmy-finding__summary::-webkit-details-marker { display: none; }
.kmy-finding__summary > .kmy-badge:last-child { grid-column: 2; justify-self: start; }
@media (min-width: 640px) {
	.kmy-finding__summary { grid-template-columns: auto 1fr auto; }
	.kmy-finding__summary > .kmy-badge:last-child { grid-column: auto; }
}
.kmy-finding__title { font-weight: 700; color: var(--kmy-ink); line-height: 1.35; }
.kmy-finding__summary:hover .kmy-finding__title { color: var(--kmy-blue-700); }
.kmy-finding__body { padding: 0 var(--kmy-space-4) var(--kmy-space-5); border-top: 1px solid var(--kmy-line); padding-top: var(--kmy-space-5); }
@media (min-width: 640px) { .kmy-finding__body { padding-left: var(--kmy-space-5); padding-right: var(--kmy-space-5); } }
.kmy-finding__body h3 { font-size: 1rem; margin: var(--kmy-space-5) 0 var(--kmy-space-2); }
.kmy-prose > :last-child { margin-bottom: 0; }
.kmy-prose code, .kmy-facts code, .kmy-small-code { font-family: var(--kmy-font-mono); font-size: 0.8125rem; padding: 0.1rem 0.35rem; background: var(--kmy-surface); border-radius: var(--kmy-radius-sm); overflow-wrap: anywhere; }
.kmy-evidence {
	margin: 0;
	padding: var(--kmy-space-4);
	background: var(--kmy-navy);
	color: #E6EDF3;
	border-radius: var(--kmy-radius);
	font-family: var(--kmy-font-mono);
	font-size: 0.8125rem;
	line-height: 1.6;
	overflow-x: auto;
	white-space: pre;
	max-width: 100%;
}
.kmy-note { margin: var(--kmy-space-5) 0 0; padding: var(--kmy-space-3) var(--kmy-space-4); border-radius: var(--kmy-radius); font-size: 0.9375rem; font-weight: 600; }
.kmy-note--wait { background: #FBF3E3; color: #6B4600; }
.kmy-note--ok { background: #EAF6F0; color: #155E3C; }
.kmy-note--bad { background: #FCEEEE; color: #8E1C21; }
.kmy-finding__actions { display: grid; gap: var(--kmy-space-4); margin-top: var(--kmy-space-5); padding-top: var(--kmy-space-5); border-top: 1px dashed var(--kmy-line); }
.kmy-retest-form, .kmy-validate-form { display: grid; gap: var(--kmy-space-2); }
.kmy-retest-form label, .kmy-validate-form label, .kmy-comment-form label { font-weight: 700; font-size: 0.9375rem; color: var(--kmy-ink); }
.kmy-retest-form .kmy-btn { justify-self: start; }
textarea {
	width: 100%;
	padding: 0.7rem 0.9rem;
	border: 1px solid #B8C3CF;
	border-radius: var(--kmy-radius);
	font: 400 1rem/1.5 var(--kmy-font-sans);
	color: var(--kmy-ink);
	resize: vertical;
}
textarea:focus-visible { border-color: var(--kmy-blue-700); outline-offset: 1px; }

/* Comentarios y activity log completo ------------------------------------ */
.kmy-comment-form { display: grid; gap: var(--kmy-space-2); margin-bottom: var(--kmy-space-6); padding: var(--kmy-space-4); background: var(--kmy-white); border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius-lg); }
.kmy-comment-form__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--kmy-space-3); font-size: var(--kmy-fs-small); }
.kmy-timeline__detail { margin: 0 0 var(--kmy-space-2); padding: var(--kmy-space-3) var(--kmy-space-4); background: var(--kmy-white); border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius); font-size: 0.9375rem; overflow-wrap: anywhere; }
.kmy-timeline__detail > :last-child { margin-bottom: 0; }
.kmy-timeline__item--comment::before { border-color: var(--kmy-sky); }
.kmy-timeline__item--client::before { border-color: var(--kmy-orange); }
.kmy-timeline__item--retest_requested::before { border-color: #8A5A00; }
.kmy-timeline__item--retest_validated::before { border-color: var(--kmy-success); background: var(--kmy-success); }
.kmy-timeline__item--finding_published::before { border-color: var(--kmy-error); }
.kmy-tag { display: inline-block; padding: 0 0.4rem; border-radius: var(--kmy-radius-sm); background: var(--kmy-blue-50); color: var(--kmy-blue-700); font-size: 0.75rem; font-weight: 700; }

/* Dashboard interno -------------------------------------------------------- */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.kmy-app-header__link--wide { display: none; }
@media (min-width: 900px) { .kmy-app-header__link--wide { display: inline-block; } }
.kmy-tabs--inline { margin: var(--kmy-space-4) 0 0; }
.kmy-page-head .kmy-actions { justify-content: flex-start; }
@media (min-width: 900px) { .kmy-page-head .kmy-actions { justify-content: flex-end; } }

.kmy-table-wrap {
	position: relative; /* Contiene los textos solo para lectores de pantalla (posición absoluta). */
	overflow-x: auto;
	background: var(--kmy-white);
	border: 1px solid var(--kmy-line);
	border-radius: var(--kmy-radius-lg);
	box-shadow: var(--kmy-shadow);
}
.kmy-table-wrap:focus-visible { outline-offset: 2px; }
.kmy-table { width: 100%; min-width: 720px; border-collapse: collapse; font-size: 0.9375rem; }
.kmy-table th, .kmy-table td { padding: var(--kmy-space-3) var(--kmy-space-4); text-align: left; vertical-align: top; border-bottom: 1px solid var(--kmy-line); }
.kmy-table thead th {
	font-family: var(--kmy-font-label);
	font-size: var(--kmy-fs-label);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--kmy-muted);
	background: var(--kmy-surface);
	white-space: nowrap;
}
.kmy-table tbody tr:last-child > * { border-bottom: 0; }
.kmy-table tbody tr:hover { background: #FAFCFE; }
.kmy-table__main { display: inline; font-weight: 700; color: var(--kmy-ink); text-decoration: none; margin-left: var(--kmy-space-2); }
.kmy-table td > .kmy-table__main:first-child { margin-left: 0; }
.kmy-table__main:hover { color: var(--kmy-blue-700); text-decoration: underline; }
.kmy-table__progress { min-width: 140px; }
.kmy-table__actions { white-space: nowrap; }
.kmy-table__actions a + a { margin-left: var(--kmy-space-3); }
.kmy-row--alert { background: #FEF6F6; }
.kmy-row--alert:hover { background: #FCEEEE !important; }
.kmy-chips { display: inline-flex; flex-wrap: wrap; gap: 0.3rem; }
.kmy-table--matrix { min-width: 640px; }
.kmy-table--matrix td { text-align: center; font-weight: 700; font-size: 1rem; }
.kmy-table--matrix th:not(:first-child) { text-align: center; }
.kmy-small { font-size: var(--kmy-fs-small); margin-top: var(--kmy-space-3); }
.kmy-subtitle { font-size: 1.125rem; margin-top: var(--kmy-space-6); }
.kmy-soon { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--kmy-space-2); }
.kmy-soon strong { display: inline-block; min-width: 6.5rem; color: var(--kmy-ink); }
.kmy-tag--client { background: #FFF0E8; color: var(--kmy-orange-600); }
.kmy-block + .kmy-dash { margin-top: var(--kmy-space-7); }
.kmy-table--matrix { min-width: 560px; }
.kmy-table--matrix thead th { white-space: normal; line-height: 1.3; }

/* Documentos -------------------------------------------------------------- */
.kmy-docs { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--kmy-space-3); }
.kmy-doc { padding-bottom: var(--kmy-space-3); border-bottom: 1px solid var(--kmy-line); }
.kmy-doc:last-child { border-bottom: 0; padding-bottom: 0; }
.kmy-doc__row { display: grid; gap: 0.15rem; }
.kmy-doc__download { display: inline-flex; align-items: center; gap: var(--kmy-space-2); font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
.kmy-doc__download::before {
	content: "";
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12m0 0l-4-4m4 4l4-4M5 21h14'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12m0 0l-4-4m4 4l4-4M5 21h14'/%3E%3C/svg%3E") center / contain no-repeat;
}
.kmy-doc__download:hover { text-decoration: underline; }
.kmy-doc__meta { font-size: 0.8125rem; color: var(--kmy-muted); }
.kmy-doc__history { margin-top: var(--kmy-space-2); font-size: var(--kmy-fs-small); }
.kmy-doc__history summary { cursor: pointer; color: var(--kmy-blue-700); font-weight: 600; }
.kmy-doc__history .kmy-doc__row { margin: var(--kmy-space-2) 0 0 var(--kmy-space-4); font-weight: 500; }
.kmy-doc__history .kmy-doc__download { font-weight: 600; }
.kmy-doc__delete { display: inline; }
.kmy-link-danger { padding: 0; border: 0; background: none; color: var(--kmy-error); font: 600 0.8125rem/1.4 var(--kmy-font-sans); cursor: pointer; text-decoration: underline; }
.kmy-upload { display: grid; gap: var(--kmy-space-2); margin-top: var(--kmy-space-5); padding-top: var(--kmy-space-5); border-top: 1px dashed var(--kmy-line); }
.kmy-upload h3 { font-size: 1rem; margin: 0 0 var(--kmy-space-2); }
.kmy-upload label { font-weight: 700; font-size: 0.875rem; color: var(--kmy-ink); margin-top: var(--kmy-space-2); }
.kmy-upload input[type="text"], .kmy-upload select {
	width: 100%;
	min-height: 44px;
	padding: 0.5rem 0.75rem;
	border: 1px solid #B8C3CF;
	border-radius: var(--kmy-radius);
	font: 400 0.9375rem/1.4 var(--kmy-font-sans);
	color: var(--kmy-ink);
	background: var(--kmy-white);
}
.kmy-upload input[type="file"] { font: 400 0.875rem/1.4 var(--kmy-font-sans); max-width: 100%; }
.kmy-upload .kmy-btn { justify-self: start; margin-top: var(--kmy-space-3); }

/* Panel del consultor: clientes ------------------------------------------- */
.kmy-toolbar { display: flex; flex-wrap: wrap; gap: var(--kmy-space-3) var(--kmy-space-5); align-items: center; justify-content: space-between; margin-bottom: var(--kmy-space-5); }
.kmy-toolbar .kmy-tabs { margin: 0; }
.kmy-search { display: flex; gap: var(--kmy-space-2); align-items: center; }
.kmy-search input {
	min-height: 40px;
	width: min(260px, 60vw);
	padding: 0.45rem 0.8rem;
	border: 1px solid #B8C3CF;
	border-radius: var(--kmy-radius-pill);
	font: 400 0.9375rem/1.4 var(--kmy-font-sans);
	color: var(--kmy-ink);
	background: var(--kmy-white);
}
.kmy-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.kmy-dot--green, .kmy-light--green::before { background: var(--kmy-success); }
.kmy-dot--yellow, .kmy-light--yellow::before { background: #B98300; }
.kmy-dot--red, .kmy-light--red::before { background: var(--kmy-error); }
.kmy-light { display: inline-flex; align-items: center; gap: 0.5rem; font-weight: 700; font-size: 0.9375rem; white-space: nowrap; }
.kmy-light::before { content: ""; width: 12px; height: 12px; border-radius: 50%; flex: 0 0 auto; }
.kmy-light--green { color: #1A7A4E; }
.kmy-light--yellow { color: #7A5300; }
.kmy-light--red { color: var(--kmy-error); }
.kmy-light--green::before { box-shadow: 0 0 0 4px rgb(30 142 90 / 0.15); }
.kmy-light--yellow::before { box-shadow: 0 0 0 4px rgb(185 131 0 / 0.18); }
.kmy-light--red::before { box-shadow: 0 0 0 4px rgb(192 38 45 / 0.15); }

/* Tipos de servicio: cada uno con su color (texto oscuro sobre fondo tenue, contraste AA). */
.kmy-svc { display: inline-flex; align-items: center; padding: 0.1rem 0.55rem; border-radius: 6px; font-size: 0.75rem; font-weight: 700; line-height: 1.6; white-space: nowrap; border: 1px solid currentColor; }
.kmy-svc--pentest_externo { color: #5B3CC4; background: #F1EBFB; }
.kmy-svc--pentest_interno { color: #3345A8; background: #E9ECFA; }
.kmy-svc--pentest_web { color: #0F6FA8; background: #EAF5FC; }
.kmy-svc--pentest_mobile { color: #0E7066; background: #E3F5F2; }
.kmy-svc--ingenieria_social { color: #B03A00; background: #FFF0E8; }
.kmy-svc--red_team { color: #B0232A; background: #FCEEEE; }
.kmy-svc--ot_ics { color: #7A5300; background: #FBF3E3; }
.kmy-svc--cloud_security { color: #0B6A87; background: #E3F4FA; }
.kmy-svc--api_security { color: #1E7A4C; background: #EAF6F0; }

/* Lista de clientes: tabla en escritorio, tarjetas en móvil */
.kmy-clients { display: grid; gap: var(--kmy-space-3); }
.kmy-clients__head { display: none; }
.kmy-client {
	display: grid;
	gap: var(--kmy-space-3);
	padding: var(--kmy-space-4);
	background: var(--kmy-white);
	border: 1px solid var(--kmy-line);
	border-radius: var(--kmy-radius-lg);
	box-shadow: var(--kmy-shadow);
}
.kmy-client > * { min-width: 0; }
.kmy-client__name a { display: block; font-weight: 800; font-size: 1.0625rem; color: var(--kmy-ink); text-decoration: none; }
.kmy-client__name a:hover { color: var(--kmy-blue-700); text-decoration: underline; }
.kmy-client__name .kmy-muted { font-size: var(--kmy-fs-small); }
.kmy-client__label { display: block; font-family: var(--kmy-font-label); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--kmy-muted); margin-bottom: 0.25rem; }
.kmy-client__reason { display: block; font-size: 0.8125rem; margin-top: 0.2rem; }
.kmy-client__action .kmy-btn { width: 100%; }
@media (min-width: 1100px) {
	.kmy-clients { gap: 0; background: var(--kmy-white); border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius-lg); box-shadow: var(--kmy-shadow); overflow: hidden; }
	.kmy-clients__head, .kmy-client { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.8fr) minmax(0, 1.2fr) minmax(0, 1.2fr) minmax(0, 0.8fr) auto; align-items: center; gap: var(--kmy-space-4); padding: var(--kmy-space-3) var(--kmy-space-5); }
	.kmy-clients__head { display: grid; background: var(--kmy-surface); font-family: var(--kmy-font-label); font-size: var(--kmy-fs-label); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--kmy-muted); border-bottom: 1px solid var(--kmy-line); }
	.kmy-client { border: 0; border-radius: 0; box-shadow: none; border-bottom: 1px solid var(--kmy-line); }
	.kmy-client:last-child { border-bottom: 0; }
	.kmy-client:hover { background: #FAFCFE; }
	.kmy-client__label { display: none; }
	.kmy-client__action .kmy-btn { width: auto; }
}

/* Ficha del cliente */
.kmy-section-row { display: flex; flex-wrap: wrap; gap: var(--kmy-space-3); align-items: center; justify-content: space-between; margin-bottom: var(--kmy-space-5); }
.kmy-section-row .kmy-section-title { margin: 0; }
.kmy-reasons { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--kmy-space-2); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.kmy-reason { padding: var(--kmy-space-3) var(--kmy-space-4); border-radius: var(--kmy-radius); font-weight: 600; font-size: 0.9375rem; }
.kmy-reason--red { background: #FCEEEE; color: #8E1C21; }
.kmy-reason--yellow { background: #FBF3E3; color: #6B4600; }
.kmy-users { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--kmy-space-2); }
.kmy-users li { display: flex; flex-wrap: wrap; gap: var(--kmy-space-2) var(--kmy-space-3); align-items: center; padding: var(--kmy-space-3) var(--kmy-space-4); background: var(--kmy-white); border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius); }

/* Panel del consultor: pestañas Servicios y Planificación (fase C) --------- */
.kmy-tabs--page { margin-top: var(--kmy-space-6); }
.kmy-field select, .kmy-field input[type="date"], .kmy-field input[type="number"],
.kmy-task__form input[type="text"], .kmy-task__form input[type="date"], .kmy-task__form input[type="number"], .kmy-task__form select,
.kmy-search select {
	width: 100%;
	min-height: 44px;
	padding: 0.55rem 0.8rem;
	border: 1px solid #B8C3CF;
	border-radius: var(--kmy-radius);
	background: var(--kmy-white);
	font: 400 1rem/1.4 var(--kmy-font-sans);
	color: var(--kmy-ink);
}
.kmy-search select { width: auto; max-width: 100%; }
.kmy-disclosure { margin: 0 0 var(--kmy-space-6); }
.kmy-disclosure > summary { cursor: pointer; font-weight: 800; color: var(--kmy-blue-700); }
.kmy-disclosure[open] > summary { margin-bottom: var(--kmy-space-5); }
.kmy-form-grid { display: grid; gap: var(--kmy-space-4); }
.kmy-form-grid__foot { display: grid; gap: var(--kmy-space-3); justify-items: start; }
@media (min-width: 900px) {
	.kmy-form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.kmy-field--wide { grid-column: span 3; }
	.kmy-form-grid__foot { grid-column: 1 / -1; }
}

.kmy-svc-group + .kmy-svc-group { margin-top: var(--kmy-space-6); }
.kmy-svc-group__title { display: flex; flex-wrap: wrap; gap: var(--kmy-space-3); align-items: center; font-size: var(--kmy-fs-h3); margin-bottom: var(--kmy-space-4); }
.kmy-svc-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--kmy-space-4); }
@media (min-width: 900px) { .kmy-svc-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.kmy-svc-card { display: grid; gap: var(--kmy-space-2); align-content: start; padding: var(--kmy-space-5); background: var(--kmy-white); border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius-lg); box-shadow: var(--kmy-shadow-sm); }
.kmy-svc-card p { margin: 0; }
.kmy-svc-card__head { display: flex; justify-content: space-between; align-items: center; gap: var(--kmy-space-3); }
.kmy-svc-card__plan { font-weight: 700; font-size: var(--kmy-fs-small); }
.kmy-svc-card__dates { font-weight: 700; color: var(--kmy-ink); }
.kmy-svc-card form { margin-top: var(--kmy-space-2); }

/* Estados de tarea: gris, azul, morado, verde, naranja. */
.kmy-legend { list-style: none; margin: 0 0 var(--kmy-space-5); padding: 0; display: flex; flex-wrap: wrap; gap: var(--kmy-space-2) var(--kmy-space-5); font-size: var(--kmy-fs-small); color: var(--kmy-muted); }
.kmy-legend li { display: inline-flex; align-items: center; gap: var(--kmy-space-2); }
.kmy-task-dot { flex: none; width: 12px; height: 12px; border-radius: 50%; background: #8793A1; }
.kmy-task-dot--running { background: var(--kmy-blue-700); }
.kmy-task-dot--review { background: #6B3FA0; }
.kmy-task-dot--done { background: var(--kmy-success); }
.kmy-task-dot--rescheduled { background: var(--kmy-orange); }

.kmy-plan-day + .kmy-plan-day { margin-top: var(--kmy-space-6); }
.kmy-plan-day__title { display: flex; flex-wrap: wrap; gap: var(--kmy-space-3); align-items: baseline; font-size: 1.125rem; margin-bottom: var(--kmy-space-3); text-transform: capitalize; }
.kmy-plan-day__title .kmy-muted { font-weight: 500; font-size: var(--kmy-fs-small); text-transform: none; }
.kmy-plan-day--today .kmy-plan-day__title::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--kmy-orange); align-self: center; }

.kmy-task { background: var(--kmy-white); border: 1px solid var(--kmy-line); border-left: 4px solid #8793A1; border-radius: var(--kmy-radius); }
.kmy-task + .kmy-task { margin-top: var(--kmy-space-2); }
.kmy-task--running { border-left-color: var(--kmy-blue-700); }
.kmy-task--review { border-left-color: #6B3FA0; }
.kmy-task--done { border-left-color: var(--kmy-success); }
.kmy-task--rescheduled { border-left-color: var(--kmy-orange); }
.kmy-task__summary { display: flex; flex-wrap: wrap; align-items: center; gap: var(--kmy-space-2) var(--kmy-space-3); padding: var(--kmy-space-3) var(--kmy-space-4); cursor: pointer; list-style: none; }
.kmy-task__summary::-webkit-details-marker { display: none; }
.kmy-task__name { flex: 1 1 14rem; font-weight: 700; color: var(--kmy-ink); }
.kmy-task--done .kmy-task__name { color: var(--kmy-muted); }
.kmy-task__meta { display: flex; flex-wrap: wrap; gap: var(--kmy-space-1) var(--kmy-space-3); font-size: var(--kmy-fs-small); color: var(--kmy-muted); }
.kmy-task__status { font-weight: 700; color: var(--kmy-ink); }
.kmy-task__late { font-weight: 700; color: var(--kmy-error); }
.kmy-task[open] > .kmy-task__summary { border-bottom: 1px solid var(--kmy-line); }
.kmy-task__body { padding: var(--kmy-space-4); display: grid; gap: var(--kmy-space-3); }
.kmy-task__body > p { margin: 0; }
.kmy-task__info { padding: var(--kmy-space-2) var(--kmy-space-3); background: var(--kmy-surface); border-radius: var(--kmy-radius-sm); font-size: var(--kmy-fs-small); }
.kmy-task__actions { display: grid; gap: var(--kmy-space-4); }
@media (min-width: 900px) { .kmy-plan-day .kmy-task__actions, .kmy-tree .kmy-task__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); } .kmy-task__edit, .kmy-task__actions > form:last-child { grid-column: 1 / -1; } }
.kmy-task__form { display: grid; gap: var(--kmy-space-2); align-content: start; }
.kmy-task__form label, .kmy-task__form legend, .kmy-task__form-title { font-weight: 700; font-size: 0.9375rem; color: var(--kmy-ink); margin: 0; }
.kmy-task__form fieldset { border: 0; margin: 0; padding: 0; }
.kmy-task__form .kmy-btn { justify-self: start; margin-top: var(--kmy-space-1); }
.kmy-task__choices { display: flex; flex-wrap: wrap; gap: var(--kmy-space-2) var(--kmy-space-4); margin-top: var(--kmy-space-2); }
.kmy-task__choices label { font-weight: 500; display: inline-flex; gap: var(--kmy-space-2); align-items: center; }
.kmy-task__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--kmy-space-3); }
.kmy-task__row > span { display: grid; gap: var(--kmy-space-2); }
.kmy-task__edit > summary { cursor: pointer; font-weight: 700; color: var(--kmy-blue-700); }
.kmy-task__edit[open] > summary { margin-bottom: var(--kmy-space-3); }

.kmy-week-nav { display: flex; flex-wrap: wrap; gap: var(--kmy-space-3); align-items: center; justify-content: space-between; margin-bottom: var(--kmy-space-4); }
.kmy-week { display: grid; gap: var(--kmy-space-3); }
@media (min-width: 1200px) { .kmy-week { grid-template-columns: repeat(var(--kmy-week-cols, 5), minmax(0, 1fr)); } }
.kmy-week__day { min-width: 0; padding: var(--kmy-space-3); background: var(--kmy-surface); border-radius: var(--kmy-radius); }
.kmy-week__day--today { box-shadow: inset 0 3px 0 var(--kmy-orange); }
.kmy-week__title { font-size: 1rem; margin-bottom: var(--kmy-space-3); text-transform: capitalize; }
.kmy-week__title span { font-weight: 500; color: var(--kmy-muted); font-size: var(--kmy-fs-small); }
.kmy-week__empty { margin: 0; font-size: var(--kmy-fs-small); }
@media (min-width: 1200px) {
	.kmy-week .kmy-task__summary { padding: var(--kmy-space-2) var(--kmy-space-3); }
	.kmy-week .kmy-task__name { flex-basis: 100%; font-size: 0.9375rem; }
	.kmy-week .kmy-task__actions { grid-template-columns: 1fr; }
}

.kmy-tree + .kmy-tree { margin-top: var(--kmy-space-6); }
.kmy-tree__service { display: flex; flex-wrap: wrap; gap: var(--kmy-space-3); align-items: center; font-size: var(--kmy-fs-h3); margin-bottom: var(--kmy-space-3); }
.kmy-tree__service .kmy-muted { font-size: var(--kmy-fs-small); font-weight: 500; }
.kmy-tree__phase { border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius-lg); background: var(--kmy-surface); }
.kmy-tree__phase + .kmy-tree__phase { margin-top: var(--kmy-space-3); }
.kmy-tree__phase > summary { display: flex; flex-wrap: wrap; align-items: center; gap: var(--kmy-space-2) var(--kmy-space-4); padding: var(--kmy-space-4); cursor: pointer; }
.kmy-tree__phase[open] { padding-bottom: var(--kmy-space-3); }
.kmy-tree__phase > .kmy-task { margin: 0 var(--kmy-space-3); }
.kmy-tree__phase > .kmy-task + .kmy-task { margin-top: var(--kmy-space-2); }
.kmy-tree__name { font-weight: 800; color: var(--kmy-ink); flex: 1 1 12rem; }
.kmy-tree__progress { display: inline-flex; align-items: center; gap: var(--kmy-space-2); font-weight: 700; font-size: var(--kmy-fs-small); }
.kmy-tree__progress .kmy-progress { width: 90px; }
.kmy-phase-status { padding: 0.15rem 0.6rem; border-radius: var(--kmy-radius-pill); font-size: 0.8125rem; font-weight: 700; background: var(--kmy-line); color: var(--kmy-ink); }
.kmy-phase-status--running { background: var(--kmy-blue-100); color: var(--kmy-blue-900); }
.kmy-phase-status--completed { background: #DDF2E7; color: #145E3C; }
.kmy-plan-toolbar > * { min-width: 0; max-width: 100%; }
.kmy-plan-toolbar .kmy-search { flex-wrap: wrap; }
.kmy-plan-toolbar .kmy-search select { flex: 1 1 12rem; min-width: 0; }
.kmy-task__meta > span + span::before { content: "·"; margin-right: var(--kmy-space-3); color: var(--kmy-line); font-weight: 700; }
.kmy-week .kmy-task__meta > span + span::before { content: none; }
.kmy-week .kmy-task__meta { gap: 0 var(--kmy-space-2); }

/* Panel del consultor: pestañas Hallazgos y Actividad (fase D) ----------- */
.kmy-sev-chips { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr)); gap: var(--kmy-space-3); }
.kmy-sev-chip { display: grid; gap: var(--kmy-space-1); padding: var(--kmy-space-3) var(--kmy-space-4); background: var(--kmy-white); border: 1px solid var(--kmy-line); border-top: 4px solid var(--kmy-muted); border-radius: var(--kmy-radius); color: var(--kmy-ink); text-decoration: none; }
.kmy-sev-chip strong { font-size: 1.75rem; line-height: 1.1; font-weight: 800; }
.kmy-sev-chip span { font-size: var(--kmy-fs-small); font-weight: 600; color: var(--kmy-muted); }
.kmy-sev-chip:hover { box-shadow: var(--kmy-shadow); }
.kmy-sev-chip[aria-current="true"] { background: var(--kmy-blue-50); border-color: var(--kmy-blue-700); }
.kmy-sev-chip--critical { border-top-color: var(--kmy-error); }
.kmy-sev-chip--high { border-top-color: var(--kmy-orange-600); }
.kmy-sev-chip--medium { border-top-color: #8A5A00; }
.kmy-sev-chip--low { border-top-color: var(--kmy-blue-700); }
.kmy-sev-note { margin: var(--kmy-space-2) 0 var(--kmy-space-5); font-size: var(--kmy-fs-small); }
.kmy-filters { display: grid; gap: var(--kmy-space-3); margin-bottom: var(--kmy-space-4); padding: var(--kmy-space-4); background: var(--kmy-white); border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius-lg); }
@media (min-width: 640px) { .kmy-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .kmy-filters { grid-template-columns: repeat(4, minmax(0, 1fr)) auto; align-items: end; } }
.kmy-filters__actions { display: flex; flex-wrap: wrap; gap: var(--kmy-space-3); align-items: center; }
.kmy-filters__actions a { font-weight: 700; font-size: var(--kmy-fs-small); }
.kmy-tag--draft { background: #FBF3E3; color: #6B4600; margin-left: var(--kmy-space-2); }
.kmy-table--findings code { font-size: 0.8125rem; word-break: break-all; }
.kmy-cell--late { color: var(--kmy-error); font-weight: 800; }
.kmy-pager { display: flex; flex-wrap: wrap; gap: var(--kmy-space-3); align-items: center; justify-content: center; margin-top: var(--kmy-space-6); font-size: var(--kmy-fs-small); color: var(--kmy-muted); }
/* Hallazgos en móvil: cada fila es una tarjeta. */
@media (max-width: 639px) {
	.kmy-table-wrap:has(.kmy-table--findings) { overflow: visible; border: 0; background: none; box-shadow: none; }
	.kmy-table--findings { min-width: 0; }
	.kmy-table--findings thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.kmy-table--findings, .kmy-table--findings tbody, .kmy-table--findings tr, .kmy-table--findings td { display: block; }
	.kmy-table--findings tr { margin-bottom: var(--kmy-space-3); padding: var(--kmy-space-3) var(--kmy-space-4); background: var(--kmy-white); border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius-lg); }
	.kmy-table--findings td { padding: var(--kmy-space-1) 0; border: 0; }
	.kmy-table--findings td[data-label]:nth-child(n+3)::before { content: attr(data-label); display: block; font: 600 0.75rem/1.4 var(--kmy-font-label); letter-spacing: 0.08em; text-transform: uppercase; color: var(--kmy-muted); }
	.kmy-table--findings td:nth-child(n+4) { display: inline-block; margin-right: var(--kmy-space-5); vertical-align: top; }
	.kmy-table--findings .kmy-table__main { margin-left: 0; }
	.kmy-table--findings td.kmy-table__actions { display: flex; gap: var(--kmy-space-5); margin: var(--kmy-space-2) 0 0; padding-top: var(--kmy-space-3); border-top: 1px solid var(--kmy-line); font-weight: 700; }
	.kmy-table--findings .kmy-table__actions a + a { margin-left: 0; }
}

/* Evidencias: galería y visor (fase E) ------------------------------------ */
.kmy-gallery { list-style: none; margin: var(--kmy-space-3) 0 0; padding: 0; display: grid; gap: var(--kmy-space-3); grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); }
.kmy-gallery__item { display: grid; grid-template-rows: auto 1fr; background: var(--kmy-white); border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius); overflow: hidden; }
.kmy-gallery__thumb { display: block; aspect-ratio: 16 / 10; background: var(--kmy-surface); }
.kmy-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--kmy-dur) var(--kmy-ease); }
.kmy-gallery__thumb:hover img { transform: scale(1.03); }
.kmy-gallery__thumb--doc { display: grid; place-content: center; justify-items: center; gap: var(--kmy-space-1); text-decoration: none; font-weight: 700; color: var(--kmy-blue-700); }
.kmy-gallery__ext { padding: 0.35rem 0.7rem; border-radius: var(--kmy-radius-sm); background: var(--kmy-navy); color: var(--kmy-white); font: 700 0.8125rem/1.2 var(--kmy-font-mono); letter-spacing: 0.04em; }
.kmy-gallery__body { display: grid; gap: var(--kmy-space-2); align-content: start; padding: var(--kmy-space-3); font-size: var(--kmy-fs-small); }
.kmy-gallery__body p { margin: 0; }
.kmy-gallery__meta { color: var(--kmy-muted); }
.kmy-gallery__desc { color: var(--kmy-ink); }
.kmy-gallery__download { font-weight: 700; word-break: break-word; }
.kmy-gallery__cmd { margin: 0; padding: var(--kmy-space-3); background: var(--kmy-navy); color: #E6EDF5; border-radius: var(--kmy-radius-sm); font: 400 0.8125rem/1.5 var(--kmy-font-mono); white-space: pre-wrap; word-break: break-word; }
.kmy-link-button { padding: 0; border: 0; background: none; font: inherit; font-weight: 700; color: var(--kmy-blue-700); cursor: pointer; text-decoration: underline; }
.kmy-link-button--danger { color: var(--kmy-error); }
.kmy-task__evidence { display: grid; gap: var(--kmy-space-2); padding-top: var(--kmy-space-3); border-top: 1px dashed var(--kmy-line); }
.kmy-task__evidence .kmy-task__form-title .kmy-muted { font-weight: 500; font-size: var(--kmy-fs-small); margin-left: var(--kmy-space-2); }
.kmy-task__form input[type="file"] { font: inherit; font-size: var(--kmy-fs-small); max-width: 100%; }

.kmy-lightbox { width: min(1100px, 96vw); max-width: none; height: min(90vh, 900px); max-height: none; padding: 0; border: 0; border-radius: var(--kmy-radius-lg); background: var(--kmy-navy-900); color: var(--kmy-white); overflow: hidden; }
.kmy-lightbox[open] { display: grid; grid-template-rows: auto 1fr; }
.kmy-lightbox::backdrop { background: rgb(7 18 29 / 0.85); }
.kmy-lightbox__bar { display: flex; flex-wrap: wrap; gap: var(--kmy-space-3); align-items: center; padding: var(--kmy-space-3) var(--kmy-space-4); border-bottom: 1px solid var(--kmy-navy-700); }
.kmy-lightbox__caption { flex: 1 1 16rem; margin: 0; font-size: var(--kmy-fs-small); color: var(--kmy-muted-dark); }
.kmy-lightbox__stage { position: relative; display: grid; place-items: center; min-height: 0; padding: var(--kmy-space-4) var(--kmy-space-8); overflow: auto; }
.kmy-lightbox__stage img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: var(--kmy-radius-sm); }
.kmy-lightbox__text { align-self: stretch; justify-self: stretch; margin: 0; padding: var(--kmy-space-4); background: #02080F; color: #E6EDF5; border-radius: var(--kmy-radius-sm); font: 400 0.8125rem/1.55 var(--kmy-font-mono); white-space: pre-wrap; word-break: break-word; overflow: auto; }
.kmy-lightbox__nav { position: absolute; top: 50%; width: 44px; height: 64px; border: 0; border-radius: var(--kmy-radius); background: rgb(255 255 255 / 0.1); color: var(--kmy-white); font-size: 2rem; cursor: pointer; }
.kmy-lightbox__nav:hover { background: rgb(255 255 255 / 0.2); }
.kmy-lightbox__nav--prev { left: var(--kmy-space-3); }
.kmy-lightbox__nav--next { right: var(--kmy-space-3); }
@media (max-width: 639px) { .kmy-lightbox__stage { padding: var(--kmy-space-3); } .kmy-lightbox__nav { top: auto; bottom: var(--kmy-space-3); } }

/* Portal del cliente: Inicio y Reportes (fase E) -------------------------- */
.kmy-stats + .kmy-dash, .kmy-tabs--page + .kmy-stats { margin-top: var(--kmy-space-6); }
.kmy-dash__side { display: grid; gap: var(--kmy-space-6); align-content: start; }
.kmy-dash__side .kmy-block + .kmy-block, .kmy-dash__side .kmy-panel { margin-top: 0; }
.kmy-charts { display: grid; gap: var(--kmy-space-5); }
@media (min-width: 900px) { .kmy-charts { grid-template-columns: 3fr 2fr; } }
.kmy-chart { margin: 0; padding: var(--kmy-space-5); background: var(--kmy-white); border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius-lg); box-shadow: var(--kmy-shadow-sm); }
.kmy-chart__title { margin-bottom: var(--kmy-space-4); font: 600 var(--kmy-fs-label)/1.3 var(--kmy-font-label); letter-spacing: 0.16em; text-transform: uppercase; color: var(--kmy-muted); }
.kmy-bars { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--kmy-space-3); }
.kmy-bars__row { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr) 3.5rem; gap: var(--kmy-space-3); align-items: center; font-size: var(--kmy-fs-small); }
.kmy-bars__label { font-weight: 700; color: var(--kmy-ink); }
.kmy-bars__track { display: flex; height: 14px; border-radius: var(--kmy-radius-pill); background: var(--kmy-surface); overflow: hidden; }
.kmy-bars__open { background: var(--kmy-muted); }
.kmy-bars__open--critical { background: var(--kmy-error); }
.kmy-bars__open--high { background: var(--kmy-orange-600); }
.kmy-bars__open--medium { background: #8A5A00; }
.kmy-bars__open--low { background: var(--kmy-blue-700); }
.kmy-bars__closed { background: #BFD9CB; }
.kmy-bars__value { text-align: right; color: var(--kmy-muted); }
.kmy-bars__value strong { color: var(--kmy-ink); }
.kmy-chart__legend { display: flex; flex-wrap: wrap; align-items: center; gap: var(--kmy-space-2); margin: var(--kmy-space-4) 0 0; font-size: 0.8125rem; color: var(--kmy-muted); }
.kmy-chart__key { display: inline-block; width: 12px; height: 12px; border-radius: 3px; vertical-align: -1px; margin-right: var(--kmy-space-1); }
.kmy-chart__key--open { background: var(--kmy-error); }
.kmy-chart__key--closed { background: #BFD9CB; margin-left: var(--kmy-space-3); }
.kmy-donut-wrap { display: flex; flex-wrap: wrap; gap: var(--kmy-space-5); align-items: center; }
.kmy-donut { position: relative; flex: none; width: 150px; height: 150px; border-radius: 50%; display: grid; place-items: center; }
.kmy-donut::before { content: ""; position: absolute; inset: 22px; border-radius: 50%; background: var(--kmy-white); }
.kmy-donut span { position: relative; display: grid; justify-items: center; font-size: 1.75rem; font-weight: 800; color: var(--kmy-ink); line-height: 1.1; }
.kmy-donut small { font-size: 0.75rem; font-weight: 600; color: var(--kmy-muted); }
.kmy-donut__legend { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--kmy-space-2); font-size: var(--kmy-fs-small); }
.kmy-donut__legend strong { margin-left: var(--kmy-space-1); color: var(--kmy-ink); }
.kmy-health__level { margin: 0 0 var(--kmy-space-3); font-size: 1.0625rem; }
.kmy-health .kmy-reasons { gap: var(--kmy-space-2); }
.kmy-reports { display: grid; gap: var(--kmy-space-5); }
@media (min-width: 900px) { .kmy-reports { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.kmy-reports .kmy-panel { margin: 0; }
.kmy-reports .kmy-panel__title a { color: var(--kmy-ink); text-decoration: none; }
.kmy-reports .kmy-panel__title a:hover { color: var(--kmy-blue-700); text-decoration: underline; }

/* Portal del cliente: Avances (fase E) ------------------------------------ */
.kmy-overall { margin: 0 0 var(--kmy-space-6); display: grid; gap: var(--kmy-space-3); }
.kmy-overall p { margin: 0; }
.kmy-overall .kmy-progress__label { margin: 0; font-weight: 700; color: var(--kmy-ink); font-size: 1rem; }
.kmy-overall .kmy-progress__label strong { font-size: 1.5rem; }
.kmy-progress--lg { height: 14px; }
.kmy-legend--states { margin: 0; }
.kmy-state { font-weight: 600; }
.kmy-tree--client .kmy-tree__service { font-size: 1.125rem; }
.kmy-tree--client .kmy-tree__phase > summary { list-style: none; }
.kmy-tree--client .kmy-tree__phase > summary::-webkit-details-marker { display: none; }
.kmy-tree--client .kmy-tree__phase > summary::before { content: "▸"; color: var(--kmy-blue-700); font-size: 1.1rem; transition: transform var(--kmy-dur) var(--kmy-ease); }
.kmy-tree--client .kmy-tree__phase[open] > summary::before { transform: rotate(90deg); }
.kmy-tree__empty { margin: 0 var(--kmy-space-4) var(--kmy-space-2); }
.kmy-ctasks { list-style: none; margin: 0 var(--kmy-space-3); padding: 0; display: grid; gap: var(--kmy-space-2); }
.kmy-ctask { display: grid; gap: var(--kmy-space-2); padding: var(--kmy-space-3) var(--kmy-space-4); background: var(--kmy-white); border: 1px solid var(--kmy-line); border-left: 4px solid #8793A1; border-radius: var(--kmy-radius); }
.kmy-ctask--running { border-left-color: var(--kmy-blue-700); }
.kmy-ctask--review { border-left-color: #6B3FA0; }
.kmy-ctask--done { border-left-color: var(--kmy-success); }
.kmy-ctask--rescheduled { border-left-color: var(--kmy-orange); }
.kmy-ctask p { margin: 0; }
.kmy-ctask__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--kmy-space-2) var(--kmy-space-3); }
.kmy-ctask__icon { flex: none; }
.kmy-ctask__name { flex: 1 1 14rem; font-weight: 700; color: var(--kmy-ink); }
.kmy-ctask__status { padding: 0.1rem 0.6rem; border-radius: var(--kmy-radius-pill); font-size: 0.8125rem; font-weight: 700; background: #EEF0F3; color: #3F4A57; }
.kmy-ctask--running .kmy-ctask__status { background: var(--kmy-blue-100); color: var(--kmy-blue-900); }
.kmy-ctask--review .kmy-ctask__status { background: #EFE7F8; color: #4E2C78; }
.kmy-ctask--done .kmy-ctask__status { background: #DDF2E7; color: #145E3C; }
.kmy-ctask--rescheduled .kmy-ctask__status { background: #FFE9DE; color: #8A2F00; }
.kmy-ctask__meta { display: flex; flex-wrap: wrap; gap: var(--kmy-space-1) var(--kmy-space-4); font-size: var(--kmy-fs-small); color: var(--kmy-muted); }
.kmy-ctask__late { font-weight: 700; color: var(--kmy-error); }
.kmy-ctask__note { padding: var(--kmy-space-2) var(--kmy-space-3); background: #F1F8F4; border-radius: var(--kmy-radius-sm); font-size: var(--kmy-fs-small); color: var(--kmy-ink); }
.kmy-ctask__note--rescheduled { background: #FFF4EE; }
.kmy-ctask__actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--kmy-space-3) var(--kmy-space-5); }
.kmy-ctask__evidence { flex: 1 1 100%; }
.kmy-ctask__evidence > summary { list-style: none; display: inline-flex; }
.kmy-ctask__evidence > summary::-webkit-details-marker { display: none; }
.kmy-ctask__evidence[open] > summary { background: var(--kmy-blue-50); }
.kmy-ctask__comments { align-self: center; font-weight: 700; font-size: var(--kmy-fs-small); }

/* Comentarios por tarea (fase E) ------------------------------------------ */
.kmy-thread { list-style: none; margin: 0 0 var(--kmy-space-4); padding: 0; display: grid; gap: var(--kmy-space-3); }
.kmy-msg { max-width: 46rem; padding: var(--kmy-space-3) var(--kmy-space-4); border-radius: var(--kmy-radius-lg); background: var(--kmy-surface); border: 1px solid var(--kmy-line); }
.kmy-msg--kamaya { background: var(--kmy-blue-50); border-color: var(--kmy-blue-100); }
.kmy-msg--mine { justify-self: end; }
.kmy-msg__meta { margin: 0 0 var(--kmy-space-1); font-size: var(--kmy-fs-small); color: var(--kmy-muted); }
.kmy-msg__meta strong { color: var(--kmy-ink); }
.kmy-msg__text p { margin: 0 0 var(--kmy-space-2); }
.kmy-msg__text p:last-child { margin: 0; }
.kmy-thread-card { margin: 0; }
.kmy-thread-card + .kmy-thread-card { margin-top: var(--kmy-space-4); }
.kmy-thread-card--focus { box-shadow: 0 0 0 3px var(--kmy-sky), var(--kmy-shadow); }
.kmy-thread-card__head { margin-bottom: var(--kmy-space-4); }
.kmy-thread-card__title { font-size: var(--kmy-fs-h3); margin: 0 0 var(--kmy-space-1); }
.kmy-thread-card__head p { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--kmy-space-2); font-size: var(--kmy-fs-small); }
.kmy-panel .kmy-comment-form, .kmy-task .kmy-comment-form { margin: 0; padding: 0; border: 0; background: none; }
.kmy-comment-form label { font-weight: 700; font-size: 0.9375rem; color: var(--kmy-ink); }
.kmy-comment-form select { min-height: 44px; padding: 0.55rem 0.8rem; border: 1px solid #B8C3CF; border-radius: var(--kmy-radius); background: var(--kmy-white); font: 400 1rem/1.4 var(--kmy-font-sans); color: var(--kmy-ink); max-width: 100%; }
.kmy-task__thread .kmy-thread { margin-top: var(--kmy-space-2); }

/* Canales de aviso (fase F) ----------------------------------------------- */
.kmy-field input[type="url"] {
	width: 100%;
	min-height: 48px;
	padding: 0.7rem 0.9rem;
	border: 1px solid #B8C3CF;
	border-radius: var(--kmy-radius);
	background: var(--kmy-white);
	font: 400 1rem/1.4 var(--kmy-font-sans);
	color: var(--kmy-ink);
}
.kmy-note--info { background: var(--kmy-blue-50); color: var(--kmy-blue-900); margin-bottom: var(--kmy-space-5); }
.kmy-channels { display: grid; gap: var(--kmy-space-5); }
@media (min-width: 1200px) { .kmy-channels { grid-template-columns: 1fr 1fr; align-items: start; } .kmy-channel:last-of-type { grid-column: 1 / -1; } }
.kmy-channels .kmy-panel { margin: 0; display: grid; gap: var(--kmy-space-4); align-content: start; }
.kmy-channels .kmy-panel > p { margin: 0; }
.kmy-channel__head { display: flex; justify-content: space-between; align-items: center; gap: var(--kmy-space-3); }
.kmy-channel__head .kmy-panel__title { margin: 0; }
.kmy-switch { display: inline-flex; align-items: center; gap: var(--kmy-space-2); padding: 0.3rem 0.8rem; border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius-pill); font-weight: 700; font-size: var(--kmy-fs-small); cursor: pointer; }
.kmy-switch:has(input:checked) { background: #DDF2E7; border-color: #9FD4B8; color: #145E3C; }
.kmy-switch input { width: 1.1rem; height: 1.1rem; accent-color: var(--kmy-success); }
.kmy-channel__events { margin: 0; padding: var(--kmy-space-3) var(--kmy-space-4); border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius); display: grid; gap: var(--kmy-space-2); }
.kmy-channel__events legend { padding: 0 var(--kmy-space-2); font-weight: 700; color: var(--kmy-ink); font-size: 0.9375rem; }
.kmy-channel__events label { display: flex; gap: var(--kmy-space-2); align-items: flex-start; font-size: 0.9375rem; }
.kmy-channel__events input, .kmy-inline input { margin-top: 0.2rem; accent-color: var(--kmy-blue-700); }
.kmy-inline { display: inline-flex; gap: var(--kmy-space-1); align-items: center; margin-left: var(--kmy-space-3); font-weight: 600; }
.kmy-channel > .kmy-inline { margin-left: 0; }
.kmy-howto { font-size: 0.9375rem; }
.kmy-howto summary { cursor: pointer; font-weight: 700; color: var(--kmy-blue-700); }
.kmy-howto ol { margin: var(--kmy-space-2) 0 0; padding-left: 1.25rem; display: grid; gap: var(--kmy-space-1); color: var(--kmy-text); }
.kmy-channel .kmy-btn { justify-self: start; }
.kmy-channels__foot { display: flex; justify-content: flex-end; }
@media (min-width: 1200px) { .kmy-channels__foot { grid-column: 1 / -1; } }
.kmy-channels .kmy-form-grid { gap: var(--kmy-space-3) var(--kmy-space-4); }
@media (min-width: 900px) { .kmy-channels .kmy-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.kmy-status--fail { font-weight: 700; color: var(--kmy-error); }
.kmy-table--history { min-width: 560px; }
.kmy-channels .kmy-field { align-content: start; }
/* Enlace con icono en la cabecera: solo icono en móvil (el texto queda para lectores de pantalla). */
.kmy-app-header__link--icon { display: inline-flex; align-items: center; gap: var(--kmy-space-2); }
.kmy-app-header__link--icon svg { flex: none; }
@media (max-width: 899px) {
	.kmy-app-header__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* Portal del cliente: pestaña Monitoreo (motor) --------------------------- */
.kmy-monitor-card { margin: 0 0 var(--kmy-space-5); }
.kmy-monitor-card__head { display: flex; flex-wrap: wrap; gap: var(--kmy-space-3); align-items: center; justify-content: space-between; margin-bottom: var(--kmy-space-4); }
.kmy-monitor-card__head .kmy-panel__title { margin: 0; }
.kmy-table--assets { min-width: 520px; }
.kmy-table--assets code { font-size: 0.875rem; word-break: break-all; }
.kmy-crit { font-weight: 700; font-size: var(--kmy-fs-small); }
.kmy-crit--high { color: var(--kmy-error); }
.kmy-crit--medium { color: #8A5A00; }
.kmy-crit--low, .kmy-crit--info { color: var(--kmy-muted); }

/* ----- Barra lateral del portal (Proyectos / Kynapt) — v0.25.0 ----- */
.kmy-shell{display:grid;grid-template-columns:220px 1fr;gap:24px;align-items:start;margin-top:8px}
.kmy-side{position:sticky;top:16px}
.kmy-side__group{font-family:var(--kmy-font-label,inherit);text-transform:uppercase;letter-spacing:.14em;font-size:.64rem;font-weight:600;color:var(--kmy-muted,#5a6573);margin:14px 6px 6px}
.kmy-side__group--kyn{color:var(--kmy-blue-700,#0f6fa8);display:flex;align-items:center;gap:7px}
.kmy-side__group--kyn::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,var(--kmy-blue,#1695db),transparent);opacity:.5}
.kmy-side__list{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-direction:column;gap:2px}
.kmy-side__item{display:block;padding:9px 12px;border-radius:9px;color:var(--kmy-text,#3d3d3d);text-decoration:none;font-size:.92rem;line-height:1.3}
.kmy-side__item:hover{background:var(--kmy-surface,#f5f8fb)}
.kmy-side__item:focus-visible{outline:2px solid var(--kmy-focus,#35c2fb);outline-offset:2px}
.kmy-side__item[aria-current="page"]{background:var(--kmy-blue-50,#eaf5fc);color:var(--kmy-blue-700,#0f6fa8);font-weight:700}
.kmy-side__item--kyn[aria-current="page"]{box-shadow:inset 3px 0 0 var(--kmy-blue,#1695db)}
.kmy-shell__main{min-width:0}
@media(max-width:860px){
	.kmy-shell{grid-template-columns:1fr;gap:12px}
	.kmy-side{position:static}
	.kmy-side__list{flex-direction:row;flex-wrap:wrap;gap:6px}
	.kmy-side__item{border:1px solid var(--kmy-line,#dde3ea);border-radius:999px;padding:7px 14px;font-size:.86rem}
	.kmy-side__group{width:100%;margin:10px 2px 2px}
}

/* CVE panel: correlacion continua vs. tecnologia del cliente */
.kmy-kyn-cvetable .kmy-kyn-analysis{font-size:.85em;line-height:1.45;color:var(--kmy-muted,#555);max-width:42ch}
.kmy-kyn-cvetable .kmy-kyn-fix{display:block;margin-top:.35em;font-size:.95em;color:var(--kmy-text,#222)}
.kmy-kyn-verdict{display:inline-block;padding:.12em .6em;border-radius:999px;font-size:.78em;font-weight:600;letter-spacing:.02em;white-space:nowrap}
.kmy-kyn-verdict--vuln{background:#fde8e8;color:#b42318;border:1px solid #f5c2c0}
.kmy-kyn-verdict--verify{background:#fef3cd;color:#8a6100;border:1px solid #f3dd9a}

/* "Proyectos" clicable (abre Inicio) */
.kmy-side__grouplink{color:inherit;text-decoration:none}
.kmy-side__grouplink:hover,.kmy-side__grouplink:focus{text-decoration:underline}
.kmy-side__grouplink[aria-current="page"]{text-decoration:underline;font-weight:700}

/* Aside Kynapt: estado del monitoreo + carrusel vertical de CVEs */
.kmy-kyn-aside{float:right;width:300px;margin:0 0 1.25rem 1.5rem}
@media (max-width:900px){.kmy-kyn-aside{float:none;width:auto;margin:0 0 1.25rem}}
.kmy-kyn-statuscard{display:flex;align-items:center;gap:.6rem;padding:.7rem .9rem;border:1px solid var(--kmy-border,#e3e6ea);border-radius:10px;margin-bottom:1rem;background:var(--kmy-surface,#fff)}
.kmy-kyn-statusbody{display:flex;flex-direction:column;min-width:0}
.kmy-kyn-statusdot{width:10px;height:10px;border-radius:50%;flex:none}
.kmy-kyn-statusdot--on{background:#12b76a;animation:kmykynpulse 2s infinite}
.kmy-kyn-statusdot--off{background:#98a2b3}
@keyframes kmykynpulse{0%,100%{box-shadow:0 0 0 0 rgba(18,183,106,.55)}50%{box-shadow:0 0 0 6px rgba(18,183,106,0)}}
.kmy-kyn-statustxt{font-size:.9rem}
.kmy-kyn-statusmeta{font-size:.78rem;color:var(--kmy-muted,#667085)}
.kmy-kyn-carousel{border:1px solid var(--kmy-border,#e3e6ea);border-radius:10px;padding:.7rem .9rem;background:var(--kmy-surface,#fff)}
.kmy-kyn-carousel__h{margin:0 0 .4rem;font-size:.82rem;color:var(--kmy-muted,#667085)}
.kmy-kyn-carousel__vp{height:300px;overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(180deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(180deg,transparent,#000 10%,#000 90%,transparent)}
.kmy-kyn-carousel__track{list-style:none;margin:0;padding:0;animation:kmykynscroll 28s linear infinite}
.kmy-kyn-carousel__vp:hover .kmy-kyn-carousel__track{animation-play-state:paused}
.kmy-kyn-carousel__item{display:flex;align-items:center;gap:.45rem;padding:.45rem .1rem;border-bottom:1px dashed var(--kmy-border,#eef0f2);font-size:.8rem}
.kmy-kyn-carousel__aff{color:var(--kmy-muted,#667085);margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:10ch}
@keyframes kmykynscroll{from{transform:translateY(-50%)}to{transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){.kmy-kyn-carousel__track{animation:none}}

.kmy-kyn-carousel__empty{margin:0;font-size:.8rem;color:var(--kmy-muted,#667085);padding:.6rem .1rem}

/* ===== Superficie de ataque: inventario estilo Censys ===== */
.kmy-asm__legend{display:flex;gap:1.2rem;margin:.2rem 0 1rem;font-size:.8rem;color:var(--kmy-muted,#667085);flex-wrap:wrap}
.kmy-asm__key{display:inline-flex;align-items:center;gap:.4rem}
.kmy-asm__dot{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block}
.kmy-asm__dot--ok{background:#12b76a}
.kmy-asm__dot--vuln{background:#d92d20}
.kmy-asm__group{margin:0 0 1.2rem}
.kmy-asm__grouph{margin:0 0 .55rem;font-size:.92rem;color:var(--kmy-ink,#0b1b2b);display:flex;align-items:center;gap:.5rem}
.kmy-asm__count{background:var(--kmy-blue-50,#eef4fb);color:var(--kmy-blue-700,#0f6fa8);border-radius:999px;padding:.05rem .55rem;font-size:.72rem;font-weight:700}
.kmy-asm__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.kmy-asm__host{display:flex;gap:.7rem;padding:.7rem .85rem;border:1px solid var(--kmy-line,#dde3ea);border-radius:10px;background:var(--kmy-surface,#fff)}
.kmy-asm__host.is-vuln{border-color:#f3b4ad;background:#fef4f3}
.kmy-asm__host .kmy-asm__dot{margin-top:.35rem}
.kmy-asm__body{min-width:0;flex:1}
.kmy-asm__head{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.kmy-asm__name{font-weight:600;font-size:.92rem;color:var(--kmy-ink,#0b1b2b);word-break:break-all}
.kmy-asm__ip{font-size:.78rem;color:var(--kmy-muted,#5a6573);background:var(--kmy-bg,#f1f5f9);padding:.08rem .42rem;border-radius:5px;font-family:ui-monospace,Menlo,Consolas,monospace}
.kmy-asm__badge{font-size:.68rem;font-weight:700;color:#b42318;background:#fde8e6;border:1px solid #f5c2c0;border-radius:999px;padding:.08rem .5rem;text-transform:uppercase;letter-spacing:.03em}
.kmy-asm__fn{display:block;font-size:.8rem;color:var(--kmy-muted,#5a6573);margin:.2rem 0}
.kmy-asm__svcs{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem}
.kmy-asm__svc{font-size:.74rem;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--kmy-blue-700,#0f6fa8);background:var(--kmy-blue-50,#eef4fb);border:1px solid #d6e6f5;border-radius:6px;padding:.1rem .45rem}
.kmy-asm__svc b{font-weight:700}
.kmy-asm__nosvc{display:block;font-size:.76rem;color:var(--kmy-muted,#98a2b3);margin-top:.25rem;font-style:italic}

/* ===== Phishing (estilo GoPhish) ===== */
.kmy-ph__gauges{display:grid;grid-template-columns:repeat(5,1fr);gap:.8rem;margin:1rem 0 1.5rem}
@media(max-width:760px){.kmy-ph__gauges{grid-template-columns:repeat(2,1fr)}}
.kmy-ph__gauge{display:flex;flex-direction:column;align-items:center;gap:.45rem;padding:1rem .6rem;border:1px solid var(--kmy-line,#dde3ea);border-radius:12px;background:var(--kmy-surface,#fff)}
.kmy-ph__ring{--c:#3498db;--pct:0;position:relative;width:94px;height:94px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--c) calc(var(--pct) * 1%), #e9edf2 0)}
.kmy-ph__ring::before{content:"";position:absolute;width:70px;height:70px;border-radius:50%;background:var(--kmy-surface,#fff)}
.kmy-ph__num{position:relative;font-weight:700;font-size:1.3rem;color:var(--kmy-ink,#0b1b2b)}
.kmy-ph__glab{font-size:.8rem;color:var(--kmy-muted,#5a6573);text-align:center;line-height:1.2}
.kmy-ph__gpct{font-size:.85rem;font-weight:700}
.kmy-ph__gauge--sent .kmy-ph__ring{--c:#3498db}
.kmy-ph__gauge--opened .kmy-ph__ring{--c:#f1c40f}.kmy-ph__gauge--opened .kmy-ph__gpct{color:#b7920a}
.kmy-ph__gauge--clicked .kmy-ph__ring{--c:#e67e22}.kmy-ph__gauge--clicked .kmy-ph__gpct{color:#cf6412}
.kmy-ph__gauge--submitted .kmy-ph__ring{--c:#e74c3c}.kmy-ph__gauge--submitted .kmy-ph__gpct{color:#c0392b}
.kmy-ph__gauge--reported .kmy-ph__ring{--c:#2ecc71}.kmy-ph__gauge--reported .kmy-ph__gpct{color:#219150}
.kmy-ph__table td{vertical-align:middle}
.kmy-ph__date{font-size:.74rem;color:var(--kmy-muted,#98a2b3)}
.kmy-ph__mut{font-size:.74rem;color:var(--kmy-muted,#98a2b3)}
.kmy-ph__status{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700}
.kmy-ph__status--completed{background:#e1f0fa;color:#0f6fa8}
.kmy-ph__status--in_progress{background:#fef3cd;color:#8a6100}
.kmy-ph__funnel{display:flex;height:9px;border-radius:5px;overflow:hidden;background:#eef1f5;min-width:130px}
.kmy-ph__seg{height:100%}
.kmy-ph__seg--opened{background:#f1c40f}
.kmy-ph__seg--clicked{background:#e67e22}
.kmy-ph__seg--submitted{background:#e74c3c}

/* PM: asignar pentesters a proyecto (portal interno) */
.kmy-assign{display:inline-block;margin-top:.3rem}
.kmy-assign>summary{cursor:pointer;color:var(--kmy-blue-700,#0f6fa8);font-size:.82rem;list-style:none}
.kmy-assign>summary::-webkit-details-marker{display:none}
.kmy-assign__form{margin-top:.4rem;padding:.55rem .6rem;border:1px solid var(--kmy-line,#dde3ea);border-radius:8px;background:var(--kmy-surface,#fff);min-width:190px;display:flex;flex-direction:column;gap:.35rem}
.kmy-assign__opt{display:flex;align-items:center;gap:.4rem;font-size:.82rem}

/* PM: alta de cliente desde el portal */
.kmy-newclient{position:relative}
.kmy-newclient>summary{cursor:pointer;list-style:none}
.kmy-newclient>summary::-webkit-details-marker{display:none}
.kmy-newclient__form{position:absolute;right:0;top:calc(100% + .4rem);z-index:50;width:min(420px,92vw);display:flex;flex-direction:column;gap:.55rem;padding:1rem;border:1px solid var(--kmy-line,#dde3ea);border-radius:12px;background:var(--kmy-surface,#fff);box-shadow:0 14px 40px rgba(11,27,43,.18)}
.kmy-nc__row{display:flex;flex-direction:column;gap:.2rem;font-size:.82rem;color:var(--kmy-muted,#5a6573)}
.kmy-nc__row input,.kmy-nc__row select{padding:.4rem .5rem;border:1px solid var(--kmy-line,#dde3ea);border-radius:7px;font-size:.9rem}
.kmy-nc__svcs{border:1px solid var(--kmy-line,#eef0f2);border-radius:8px;padding:.5rem .6rem;display:grid;grid-template-columns:1fr 1fr;gap:.25rem .6rem;margin:0}
.kmy-nc__svcs legend{font-size:.78rem;color:var(--kmy-muted,#5a6573);padding:0 .3rem}
.kmy-nc__chk{display:flex;align-items:center;gap:.35rem;font-size:.8rem}
.kmy-nc__grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.kmy-nc__hint{margin:0;font-size:.76rem;color:var(--kmy-muted,#98a2b3)}
.kmy-chip{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.74rem;background:var(--kmy-blue-50,#eef4fb);color:var(--kmy-blue-700,#0f6fa8);margin:.1rem}
.kmy-chip--contracted{background:#e8f6ef;color:#157347;border:1px solid #bfe6cf}

/* Prueba de entrega (seed test) ------------------------------------------- */
.kmy-seed__intro { margin: 0 0 var(--kmy-space-4); color: var(--kmy-muted); max-width: 68ch; }
.kmy-seed__form { display: grid; gap: var(--kmy-space-4); max-width: 520px; margin-bottom: var(--kmy-space-5); }
.kmy-seed__form select,
.kmy-seed__form textarea { width: 100%; padding: 0.6rem 0.75rem; border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius); font: inherit; color: var(--kmy-ink); background: #fff; }
.kmy-seed__form textarea { resize: vertical; min-height: 5.5rem; font-family: var(--kmy-font-mono); }
.kmy-seed__form select:focus-visible,
.kmy-seed__form textarea:focus-visible { border-color: var(--kmy-blue-700); outline: 2px solid var(--kmy-focus); outline-offset: 1px; }
.kmy-seed__notice { margin: 0 0 var(--kmy-space-4); padding: 0.6rem 0.85rem; border-radius: var(--kmy-radius); border-left: 4px solid; font-size: var(--kmy-fs-small); }
.kmy-seed__notice--ok { background: #ddf2e7; border-color: #1e8e5a; color: #145e3c; }
.kmy-seed__notice--warn { background: #fef3cd; border-color: #cf9a00; color: #7a5200; }
.kmy-seed__notice--error { background: #fbe3e4; border-color: var(--kmy-error); color: #9b1c23; }
.kmy-seed__results { margin-top: var(--kmy-space-5); }
.kmy-seed__rtitle { margin: 0 0 var(--kmy-space-3); font-size: var(--kmy-fs-h3); color: var(--kmy-ink); display: flex; align-items: center; gap: var(--kmy-space-2); }
.kmy-seed__mock { font: 600 0.68rem/1 var(--kmy-font-label); text-transform: uppercase; letter-spacing: .1em; padding: .18rem .45rem; border-radius: var(--kmy-radius-sm); background: var(--kmy-line); color: var(--kmy-muted); }
.kmy-seed__place { display: inline-block; padding: .12rem .55rem; border-radius: 999px; font-size: .74rem; font-weight: 700; }
.kmy-seed__place--inbox { background: #ddf2e7; color: #145e3c; }
.kmy-seed__place--spam { background: #fbe3e4; color: #9b1c23; }
.kmy-seed__place--quarantine { background: #fef3cd; color: #7a5200; }
.kmy-seed__place--unknown { background: var(--kmy-line); color: var(--kmy-muted); }
.kmy-seed__auth { font-family: var(--kmy-font-mono); font-size: .78rem; font-weight: 700; }
.kmy-seed__auth--pass { color: #145e3c; }
.kmy-seed__auth--fail { color: #9b1c23; }
.kmy-camp { margin-top: var(--kmy-space-5); }
.kmy-camp__last { margin-top: var(--kmy-space-4); font-size: var(--kmy-fs-small); color: var(--kmy-muted); display: flex; align-items: center; gap: var(--kmy-space-2); }
.kmy-seed__form input[type="text"] { width: 100%; padding: 0.6rem 0.75rem; border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius); font: inherit; color: var(--kmy-ink); background: #fff; }
.kmy-seed__form input[type="file"] { font: inherit; }
.kmy-tpl { border: 0; padding: 0; margin: 0; display: grid; gap: var(--kmy-space-3); }
.kmy-tpl > legend { font-weight: 700; color: var(--kmy-ink); font-size: 0.9375rem; padding: 0; margin-bottom: var(--kmy-space-1); }
.kmy-tpl__item { border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius-lg); padding: var(--kmy-space-4); background: #fff; }
.kmy-tpl__item:has(input:checked) { border-color: var(--kmy-blue-700); box-shadow: 0 0 0 1px var(--kmy-blue-700); }
.kmy-tpl__pick { display: flex; align-items: center; gap: var(--kmy-space-2); font-weight: 700; color: var(--kmy-ink); cursor: pointer; }
.kmy-tpl__pick input { accent-color: var(--kmy-blue-700); }
.kmy-tpl__name { font-size: 1rem; }
.kmy-tpl__lang { font: 600 0.68rem/1 var(--kmy-font-label); letter-spacing: .08em; padding: .16rem .4rem; border-radius: var(--kmy-radius-sm); background: var(--kmy-blue-50); color: var(--kmy-blue-900); }
.kmy-tpl__meta { margin: var(--kmy-space-2) 0 0; font-size: var(--kmy-fs-small); color: var(--kmy-muted); }
.kmy-tpl__desc { margin: var(--kmy-space-1) 0 0; font-size: var(--kmy-fs-small); color: var(--kmy-text); }
.kmy-tpl__prev { margin-top: var(--kmy-space-3); }
.kmy-tpl__prev > summary { cursor: pointer; font-size: var(--kmy-fs-small); font-weight: 600; color: var(--kmy-blue-700); }
.kmy-tpl__frame { width: 100%; height: 260px; margin-top: var(--kmy-space-2); border: 1px solid var(--kmy-line); border-radius: var(--kmy-radius); background: #fff; }

/* ------------------------------------------------------------------ *
 * Phishing · compositor de correo del cliente (firma, previews)
 * ------------------------------------------------------------------ */
.kmy-seed__sig-cur {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin: 0 0 8px;
}
.kmy-seed__sig-img {
	display: block;
	max-width: 220px;
	max-height: 90px;
	height: auto;
	width: auto;
	border: 1px solid var(--kmy-border, #d7dce3);
	border-radius: 6px;
	padding: 4px;
	background: #fff;
}
.kmy-tpl__frame--tall {
	min-height: 260px;
}
.kmy-seed__preview {
	margin-top: 12px;
}
.kmy-camp__email {
	border: 1px solid var(--kmy-border, #d7dce3);
	border-radius: 8px;
	padding: 12px 14px;
	margin: 0 0 16px;
	background: var(--kmy-surface-2, #f7f9fc);
}
.kmy-camp__email-lbl {
	margin: 0 0 6px;
	font-weight: 600;
}
.kmy-camp__subject {
	margin: 0 0 8px;
}

/* Buzones semilla: grupo de casillas (máximo fijo, una por campo). */
.kmy-seed__mboxes { display: grid; gap: var(--kmy-space-2); }
.kmy-seed__mbox { width: 100%; }

/* Importación de correos por reenvío. */
.kmy-import__addr { display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; margin:0 0 6px; }
.kmy-import__addr-val { font-family:monospace; background:var(--kmy-surface-2,#f7f9fc); border:1px solid var(--kmy-border,#d7dce3); border-radius:6px; padding:4px 8px; word-break:break-all; }
.kmy-import__list { list-style:none; margin:12px 0 0; padding:0; display:grid; gap:12px; }
.kmy-import__item { border:1px solid var(--kmy-border,#d7dce3); border-radius:8px; padding:12px 14px; display:grid; gap:8px; }
.kmy-import__meta { display:flex; flex-wrap:wrap; gap:4px 12px; align-items:baseline; }
.kmy-import__from { color:var(--kmy-muted,#5b6472); font-size:var(--kmy-fs-small,0.85rem); }
