/*
 * 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); }
