/**
 * Talentooh — sistema de diseño unificado
 * Paleta: carbón + azul + verde
 */
:root {
    --talent: #1A1D21;
    --ooh: #2563EB;
    --forest: var(--talent);
    --amber: var(--ooh);
    --paper: #FAFAFA;
    --paper-dim: #F1F5F9;
    --ink: #1A1D21;
    --ink-soft: #64748B;
    --line: #E2E8F0;
    --line-strong: #CBD5E1;
    --surface: #FFFFFF;
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --shadow-sm: 0 1px 3px rgba(26, 29, 33, 0.06);
    --shadow-md: 0 8px 24px -8px rgba(26, 29, 33, 0.12);
    --ease: cubic-bezier(0.4, 0, 0.2, 1);
    --success: #059669;
    --success-bg: #ECFDF5;
    --warn: #D97706;
    --warn-bg: #FFFBEB;
    --danger: #DC2626;
    --danger-bg: #FEF2F2;
    --font-ui: 'IBM Plex Sans', system-ui, sans-serif;
    --font-display: 'Fraunces', Georgia, serif;
    --font-mono: 'IBM Plex Mono', ui-monospace, monospace;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--font-ui);
    font-size: 0.9375rem;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
    font-family: var(--font-display);
    font-weight: 500;
    color: var(--forest);
    margin: 0 0 0.5em;
    letter-spacing: -0.01em;
}

a { color: inherit; }

.mono { font-family: var(--font-mono); }

/* ——— Marca: icono + talent/ooh en color (conviven con logotipo gráfico futuro) ——— */
.brand-logo {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    text-decoration: none;
    font-family: var(--font-display);
    letter-spacing: -0.02em;
    line-height: 1.15;
    color: var(--ink);
    transition: opacity 0.2s var(--ease);
}
.brand-logo:hover { opacity: 0.88; }

.brand-mark {
    flex-shrink: 0;
    width: 1.65em;
    height: 1.65em;
    color: var(--ooh);
    display: flex;
    align-items: center;
    justify-content: center;
}
.brand-mark svg { width: 100%; height: 100%; display: block; }

.brand-lockup {
    display: inline-flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.15rem 0.5rem;
}

.brand-wordmark {
    display: inline-block;
    line-height: 1.1;
    letter-spacing: -0.02em;
    white-space: nowrap;
}

.brand-logo .brand-talent,
.brand-talent { color: var(--talent); font-weight: 500; }
.brand-logo .brand-ooh,
.brand-ooh { color: var(--ooh); font-weight: 700; margin: 0; padding: 0; }

.brand-logo--sm { font-size: 1.05rem; }
.brand-logo--md { font-size: 1.25rem; }
.brand-logo--lg { font-size: 1.5rem; }

.brand-suffix {
    font-family: var(--font-mono);
    font-size: 0.62em;
    font-weight: 500;
    color: var(--ink-soft);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    /* Separado del wordmark */
}

/* ——— Layout app ——— */
.app-shell { min-height: 100vh; background: var(--paper); }
.app-main { max-width: 820px; margin: 0 auto; padding: 1.5rem 1.5rem 2.5rem; }
.app-main--wide { max-width: 960px; }

.app-header {
    background: var(--surface);
    border-bottom: 1px solid var(--line);
    padding: 0.85rem 1.5rem;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    position: sticky;
    top: 0;
    z-index: 50;
    backdrop-filter: blur(8px);
    background: rgba(255, 255, 255, 0.92);
}

.app-nav-links {
    display: flex;
    align-items: center;
    gap: 0.25rem 1rem;
    flex-wrap: wrap;
    flex: 1;
}

.app-nav-links a {
    color: var(--ink-soft);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 500;
    padding: 0.35rem 0.5rem;
    border-radius: var(--radius-sm);
    transition: color 0.2s var(--ease), background 0.2s var(--ease);
}
.app-nav-links a:hover { color: var(--forest); background: var(--paper-dim); }
.app-nav-links a.active { color: var(--forest); font-weight: 600; background: var(--paper-dim); }
.app-nav-links a.nav-highlight {
    color: var(--talent) !important;
    font-weight: 600;
    background: rgba(99, 102, 241, 0.1) !important;
    padding: 0.35rem 0.65rem;
    border-radius: var(--radius-sm);
}

.app-header .spacer { flex: 1; }
.app-user { font-size: 0.85rem; color: var(--ink-soft); }
.app-logout {
    font-size: 0.85rem;
    color: var(--ink-soft);
    text-decoration: none;
    transition: color 0.2s var(--ease);
}
.app-logout:hover { color: var(--danger); }

.banner-nom {
    background: linear-gradient(90deg, rgba(99, 102, 241, 0.08), var(--paper));
    border-bottom: 1px solid var(--line);
    padding: 0.55rem 1.5rem;
    font-size: 0.82rem;
    color: var(--forest);
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}
.banner-nom a {
    margin-left: auto;
    color: var(--forest);
    font-weight: 600;
    text-decoration: none;
}

/* ——— Botones ——— */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.65rem 1.15rem;
    border-radius: var(--radius-sm);
    font-family: var(--font-ui);
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: transform 0.15s var(--ease), box-shadow 0.2s var(--ease), background 0.2s var(--ease);
}
.btn:active { transform: scale(0.98); }
.btn-primary { background: var(--forest); color: var(--paper); }
.btn-primary:hover { box-shadow: var(--shadow-md); }
.btn-secondary { background: var(--surface); color: var(--forest); border: 1px solid var(--line-strong); }
.btn-secondary:hover { background: var(--paper-dim); }
.btn-danger { background: var(--danger-bg); color: var(--danger); border: 1px solid rgba(220, 38, 38, 0.2); }
.btn-danger:hover { background: #fee2e2; }
.btn-ghost { background: transparent; color: var(--amber); padding: 0.4rem 0.6rem; }
.btn-ghost:hover { background: rgba(201, 138, 46, 0.08); }
.btn-sm { padding: 0.4rem 0.85rem; font-size: 0.8rem; }
.btn:disabled { opacity: 0.55; cursor: not-allowed; transform: none; }

/* ——— Cards y superficies ——— */
.card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: 1.25rem 1.35rem;
    box-shadow: var(--shadow-sm);
}
.card-flat {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    padding: 0.75rem 1rem;
    margin-bottom: 0.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}
/* Secciones con tablas o formularios — bloque completo, no fila flex */
.card-flat.block,
section.card {
    display: block;
    padding: 1.25rem 1.35rem;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    margin-bottom: 1rem;
}
.table-wrap {
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    margin-top: 0.75rem;
}

.stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 1rem;
    margin: 1.25rem 0;
}
.stat-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: 1.15rem;
    box-shadow: var(--shadow-sm);
}
.stat-card .num {
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 600;
    color: var(--forest);
    line-height: 1;
}
.stat-card .lbl { font-size: 0.8rem; color: var(--ink-soft); margin-top: 0.35rem; }

/* ——— Alertas ——— */
.alert {
    padding: 0.85rem 1rem;
    border-radius: var(--radius-sm);
    font-size: 0.875rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
}
.alert-success { background: var(--success-bg); color: var(--success); border-color: rgba(45, 106, 79, 0.2); }
.alert-warn,
.alert-warning { background: var(--warn-bg); color: var(--warn); border-color: rgba(184, 134, 11, 0.2); }
.alert-danger { background: var(--danger-bg); color: var(--danger); border-color: rgba(192, 57, 43, 0.15); }
.alert a { color: inherit; font-weight: 600; }

.panel-avisos-list { margin: 0.5rem 0 0; padding-left: 1.2rem; }
.panel-avisos-list li { margin: 0.25rem 0; }

.onboarding-checklist { margin-bottom: 1.25rem; }
.onboarding-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.85rem; }
.onboarding-step { display: grid; gap: 0.25rem; padding-left: 2rem; position: relative; }
.onboarding-step::before {
    content: counter(step);
    counter-increment: step;
    position: absolute; left: 0; top: 0;
    width: 1.4rem; height: 1.4rem; border-radius: 50%;
    background: var(--forest, #1a4d3e); color: #fff;
    font-size: 0.75rem; font-weight: 600;
    display: flex; align-items: center; justify-content: center;
}
.onboarding-steps { counter-reset: step; }
.onboarding-step span { font-size: 0.85rem; color: var(--ink-soft); }

.anuncio-vacante__titulo { font-family: 'Cormorant Garamond', serif; }
.anuncio-vacante__meta { font-size: 0.88rem; color: var(--ink-soft); margin: 0 0 0.5rem; }
.anuncio-vacante__sec h3 { font-size: 0.95rem; margin: 0.75rem 0 0.35rem; }
.anuncio-vacante__sec ul { margin: 0.25rem 0 0.5rem 1.1rem; padding: 0; }
.badge-inclusion { display: inline-block; font-size: 0.75rem; background: var(--mint-pale, #e8f5ef); color: var(--forest, #1a4d3e); padding: 0.2rem 0.5rem; border-radius: 4px; }

.data-table tr.row-vigencia-urgente { background: #fff5f5; }
.data-table tr.row-vigencia-aviso { background: #fffbeb; }
.vigencia-urgente { color: #b91c1c; font-weight: 600; }
.vigencia-aviso { color: #b45309; }

.text-muted { color: var(--ink-soft); font-size: 0.875rem; }
.text-link { color: var(--amber); font-weight: 600; text-decoration: none; }
.text-link:hover { text-decoration: underline; }

/* ——— Formularios ——— */
label {
    display: block;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--ink-soft);
    margin: 0.75rem 0 0.35rem;
}
label:first-child { margin-top: 0; }

input[type=text], input[type=email], input[type=password], input[type=number], select, textarea {
    width: 100%;
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--line-strong);
    border-radius: var(--radius-sm);
    font: inherit;
    color: var(--ink);
    background: var(--surface);
    transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
input:focus, select:focus, textarea:focus {
    outline: none;
    border-color: var(--amber);
    box-shadow: 0 0 0 3px rgba(201, 138, 46, 0.15);
}

.badge-pill {
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    white-space: nowrap;
}
a.badge-pill {
    text-decoration: none;
}
.nom035-item-card__citas {
    margin: 0.3rem 0 0;
    font-size: 0.75rem;
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
}

/* ——— Login ——— */
.login-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: var(--paper);
}
.login-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: 2rem 2rem 1.75rem;
    width: 100%;
    max-width: 380px;
    box-shadow: var(--shadow-md);
}
.login-card .brand-logo { margin-bottom: 1.25rem; }
.login-card h1 { font-size: 1.35rem; margin-bottom: 0.25rem; }
.login-card .sub { font-size: 0.85rem; color: var(--ink-soft); margin-bottom: 1.25rem; }
.login-audience-badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.25rem 0.55rem;
    border-radius: 4px;
    margin-bottom: 0.65rem;
}
.login-audience-badge--cliente {
    background: var(--ooh-soft, #e8f0fe);
    color: var(--ooh, #2563eb);
}
.login-crosslink { margin-top: 1rem; line-height: 1.55; font-size: 0.88rem; }
.login-forgot {
    margin: 0.35rem 0 0.75rem;
    text-align: right;
    font-size: 0.82rem;
}

/* Campo contraseña con ojito */
.password-field {
    position: relative;
    display: flex;
    align-items: stretch;
}
.password-field-input {
    width: 100%;
    padding-right: 2.75rem !important;
}
.password-toggle {
    position: absolute;
    right: 0.35rem;
    top: 50%;
    transform: translateY(-50%);
    border: none;
    background: transparent;
    color: var(--ink-soft);
    cursor: pointer;
    padding: 0.35rem;
    border-radius: var(--radius-sm);
    line-height: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.password-toggle:hover { color: var(--ooh); background: var(--paper-dim); }
.password-toggle:focus-visible {
    outline: 2px solid var(--ooh);
    outline-offset: 2px;
}
.admin-login-form .password-field { margin-bottom: 0; }
.admin-login-form .password-field-input {
    width: 100%;
    padding: 0.65rem 2.75rem 0.65rem 0.75rem;
    border: 1px solid rgba(148, 163, 184, 0.35);
    border-radius: var(--radius-sm);
    background: rgba(15, 23, 42, 0.5);
    color: #f8fafc;
    font-size: 0.95rem;
}
.admin-login-form .password-toggle { color: #94a3b8; }
.admin-login-form .password-toggle:hover { color: #e2e8f0; background: rgba(148, 163, 184, 0.15); }
.admin-login-forgot {
    margin: 0.2rem 0 0.85rem;
    text-align: right;
    font-size: 0.82rem;
}
.admin-login-forgot .text-link { color: #93c5fd; }
.admin-login-page .alert-success {
    background: rgba(5, 150, 105, 0.15);
    border: 1px solid rgba(5, 150, 105, 0.35);
    color: #6ee7b7;
    border-radius: var(--radius-sm);
    padding: 0.65rem 0.75rem;
    font-size: 0.85rem;
    margin-bottom: 1rem;
}

/* Barra de contexto — quién eres y qué panel es */
.panel-context {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 1.25rem;
    font-size: 0.78rem;
    border-bottom: 1px solid var(--line);
}
.panel-context--cliente {
    background: #f0f7ff;
    color: #1e40af;
}
.panel-context--admin {
    background: #1e293b;
    color: #cbd5e1;
}
.panel-context-type { font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.panel-context-sep { opacity: 0.5; }
.panel-context-entity { font-weight: 500; }
.panel-context-role { opacity: 0.9; }
.nav-trial-badge {
    display: inline-block;
    font-family: var(--font-mono, 'IBM Plex Mono', monospace);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #92400e;
    background: #fef3c7;
    border: 1px solid #fde68a;
    border-radius: 999px;
    padding: 0.12rem 0.5rem;
}

/* ——— Login superadmin (/admin/login.php) ——— */
.admin-login-page {
    min-height: 100vh;
    margin: 0;
    background:
        radial-gradient(ellipse 80% 60% at 50% -10%, rgba(37, 99, 235, 0.18), transparent),
        linear-gradient(165deg, #0f1419 0%, #1a1d21 45%, #111827 100%);
    color: #e2e8f0;
}
.admin-login-shell {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
}
.admin-login-card {
    width: 100%;
    max-width: 420px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-lg);
    padding: 2rem 2rem 1.75rem;
    box-shadow: 0 24px 48px -12px rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(12px);
}
.admin-login-card .brand-logo { margin-bottom: 1rem; }
.admin-login-card .brand-talent { color: #f8fafc !important; }
.admin-login-card h1 {
    font-size: 1.45rem;
    color: #f8fafc;
    margin-bottom: 0.35rem;
}
.admin-login-sub {
    font-size: 0.88rem;
    color: #94a3b8;
    margin: 0 0 1.35rem;
    line-height: 1.45;
}
.admin-login-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #93c5fd;
    background: rgba(37, 99, 235, 0.15);
    border: 1px solid rgba(37, 99, 235, 0.35);
    border-radius: 999px;
    padding: 0.3rem 0.65rem;
    margin-bottom: 1rem;
}
.admin-login-form label {
    display: block;
    font-size: 0.78rem;
    font-weight: 500;
    color: #cbd5e1;
    margin: 0.85rem 0 0.35rem;
}
.admin-login-form input {
    width: 100%;
    padding: 0.65rem 0.75rem;
    border-radius: var(--radius-sm);
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(15, 23, 42, 0.55);
    color: #f8fafc;
    font-family: var(--font-ui);
    font-size: 0.92rem;
}
.admin-login-form input:focus {
    outline: none;
    border-color: #60a5fa;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25);
}
.admin-login-form input:disabled { opacity: 0.55; cursor: not-allowed; }
.admin-login-submit {
    width: 100%;
    margin-top: 1.25rem;
    padding: 0.7rem 1rem;
    font-weight: 600;
}
.admin-login-security {
    list-style: none;
    margin: 1.35rem 0 0;
    padding: 0.85rem 0 0;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    font-size: 0.75rem;
    color: #64748b;
}
.admin-login-security li {
    position: relative;
    padding-left: 1rem;
    margin-bottom: 0.35rem;
}
.admin-login-security li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.45em;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #22c55e;
}
.admin-login-footer {
    margin-top: 1.25rem;
    font-size: 0.82rem;
    color: #64748b;
    text-align: center;
}
.admin-login-page .alert-warn {
    background: rgba(217, 119, 6, 0.15);
    border: 1px solid rgba(217, 119, 6, 0.35);
    color: #fcd34d;
    border-radius: var(--radius-sm);
    padding: 0.65rem 0.75rem;
    font-size: 0.85rem;
    margin-bottom: 1rem;
}
.admin-login-page .alert-danger {
    background: rgba(220, 38, 38, 0.12);
    border: 1px solid rgba(220, 38, 38, 0.35);
    color: #fca5a5;
}

/* ——— Shell panel admin ——— */
.admin-shell {
    min-height: 100vh;
    background: var(--paper);
    margin: 0;
    font-family: var(--font-ui);
    color: var(--ink);
}
.admin-top-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1.5rem;
    width: 100%;
    box-sizing: border-box;
}
.admin-main {
    max-width: 1100px;
    margin: 0 auto;
    padding: 1.5rem 1.5rem 2.5rem;
    width: 100%;
    box-sizing: border-box;
}
.admin-main--narrow { max-width: 720px; }
.admin-main--form { max-width: 520px; }
.admin-main h1 {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 1.75rem;
    margin: 0 0 0.5rem;
}
.admin-main h2,
.admin-main h3 {
    font-family: var(--font-display);
    font-weight: 500;
    margin: 1.75rem 0 0.65rem;
}
.admin-muted {
    color: var(--ink-soft);
    font-size: 0.9rem;
    margin: 0 0 1.25rem;
}
.admin-top {
    background: var(--surface);
    border-bottom: 1px solid var(--line);
    box-shadow: var(--shadow-sm);
}
.admin-top .admin-top-inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding-top: 1rem;
    padding-bottom: 1rem;
}
.admin-top nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1rem;
}
.admin-top nav a {
    color: var(--ink-soft);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 500;
    transition: color 0.2s var(--ease);
}
.admin-top nav a:hover { color: var(--ooh); }
.admin-top-user {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 1rem;
}
.admin-top .user {
    color: var(--ink-soft);
    font-size: 0.85rem;
}
.admin-top .logout {
    color: var(--danger);
    font-size: 0.85rem;
    font-weight: 500;
    text-decoration: none;
}
.admin-top .logout:hover { text-decoration: underline; }
.panel-context .admin-top-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}
.admin-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.8rem;
    margin: 1.25rem 0 1.5rem;
}
.admin-stat {
    background: var(--paper-dim);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    padding: 1rem;
}
.admin-stat .num {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--ooh);
    line-height: 1.1;
}
.admin-stat .lbl {
    font-size: 0.8rem;
    color: var(--ink-soft);
    margin-top: 0.25rem;
}
.admin-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    margin-bottom: 1.25rem;
}
.admin-tag {
    display: inline-block;
    font-size: 0.72rem;
    background: #eff6ff;
    color: #1d4ed8;
    padding: 0.15rem 0.45rem;
    border-radius: 4px;
}
.admin-tag--pres { background: var(--success-bg); color: var(--success); }
.admin-tag--hib { background: var(--warn-bg); color: var(--warn); }
.admin-tag--consultor { background: #f3e8ff; color: #7c3aed; }
.admin-tag--producto { background: #eff6ff; color: #1d4ed8; }
.admin-tag--ats { background: #ecfdf5; color: #047857; }
.admin-tag--nom035 { background: #fef3c7; color: #b45309; }
.admin-resumen {
    background: var(--paper-dim);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: 1rem 1.15rem;
    margin: 0 0 1.5rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 0.85rem 1.25rem;
}
.admin-resumen dt {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--ink-soft);
    margin: 0 0 0.2rem;
}
.admin-resumen dd {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.45;
}
.admin-resumen a { color: var(--ooh); }
.admin-table .contacto-sub { display: block; font-size: 0.78rem; color: var(--ink-soft); margin-top: 0.15rem; }
.admin-form-row {
    background: var(--paper-dim);
    border: 1px solid var(--line);
    padding: 0.8rem 1rem;
    border-radius: var(--radius-sm);
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
    gap: 1rem;
}
.admin-form-row label { margin: 0; font-size: 0.88rem; }
.admin-form-stack label {
    display: block;
    margin-top: 0.9rem;
    font-size: 0.85rem;
    color: var(--ink-soft);
}
.admin-form-stack input,
.admin-form-stack select {
    width: 100%;
    padding: 0.55rem;
    box-sizing: border-box;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    font-family: inherit;
    font-size: 0.9rem;
}
.admin-form-stack .hint { font-size: 0.8rem; color: var(--ink-soft); margin-top: 0.25rem; }
.admin-ref { font-family: 'IBM Plex Mono', monospace; font-weight: 600; }
.admin-table-actions form { display: inline; }
.admin-table-actions .btn { margin-left: 0.3rem; }
.admin-sin-actividad { opacity: 0.55; }
.admin-estado {
    font-size: 0.72rem;
    padding: 0.15rem 0.5rem;
    border-radius: 10px;
}
.admin-estado.activo { background: var(--success-bg); color: var(--success); }
.admin-estado.suspendido { background: var(--warn-bg); color: var(--warn); }
.admin-estado.cancelado { background: var(--danger-bg); color: var(--danger); }
.admin-badge-estado {
    font-size: 0.72rem;
    padding: 0.1rem 0.45rem;
    border-radius: 8px;
    background: var(--paper-dim);
}
.admin-badge-estado.en_proceso { background: var(--warn-bg); color: var(--warn); }
.admin-badge-estado.completado { background: var(--success-bg); color: var(--success); }
.admin-badge-estado.vencido { background: var(--danger-bg); color: var(--danger); }
.admin-estados-form { margin-top: 1rem; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.admin-estados-form button {
    padding: 0.4rem 0.8rem;
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-size: 0.85rem;
}
.admin-btn-activar { background: var(--success-bg); color: var(--success); }
.admin-btn-suspender { background: var(--warn-bg); color: var(--warn); }
.admin-btn-cancelar { background: var(--danger-bg); color: var(--danger); }
.admin-btn-eliminar {
    background: #7f1d1d;
    color: #fff;
    padding: 0.4rem 0.8rem;
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-size: 0.85rem;
}
.admin-btn-eliminar:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}
.admin-eliminar-bloque {
    margin: 1.25rem 0 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border, #e5e7eb);
}
.admin-eliminar-form {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 28rem;
    margin-top: 0.5rem;
}
.admin-eliminar-form input[type="text"] {
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--border, #d1d5db);
    border-radius: var(--radius-sm);
    font-size: 0.9rem;
}
.admin-alerta--danger {
    background: var(--danger-bg);
    color: var(--danger);
}
.admin-alerta {
    background: var(--warn-bg);
    color: var(--warn);
    padding: 0.5rem 0.8rem;
    border-radius: var(--radius-sm);
    font-size: 0.85rem;
    margin: 0.75rem 0 1rem;
}
.admin-inline-form {
    margin: 0.6rem 0 1rem;
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
    font-size: 0.85rem;
}
.admin-inline-form input[type="date"],
.admin-inline-form input[type="text"] {
    padding: 0.35rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
}

.admin-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    overflow: hidden;
}
.admin-table th,
.admin-table td {
    text-align: left;
    padding: 0.65rem 0.85rem;
    border-bottom: 1px solid var(--line);
    font-size: 0.88rem;
}
.admin-table th {
    background: var(--paper-dim);
    font-weight: 600;
    color: var(--ink-soft);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.admin-table tr:last-child td { border-bottom: none; }
.admin-table a { color: var(--ooh); }

/* ——— Ruta NOM (embudo) ——— */
.nom035-ruta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: 0.85rem 1rem;
    margin-bottom: 1.25rem;
    font-size: 0.82rem;
}
.paso-ruta { display: flex; align-items: center; gap: 0.35rem; color: var(--ink-soft); transition: color 0.2s var(--ease); }
.paso-ruta .num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 50%;
    background: var(--paper-dim);
    font-size: 0.7rem;
    font-weight: 700;
    transition: background 0.2s var(--ease), color 0.2s var(--ease);
}
.paso-ruta.actual { color: var(--forest); font-weight: 600; }
.paso-ruta.actual .num { background: var(--forest); color: var(--paper); }
.paso-ruta.hecho { color: var(--success); }
.paso-ruta.hecho .num { background: var(--success-bg); color: var(--success); }
.paso-ruta a { color: inherit; text-decoration: none; display: flex; align-items: center; gap: 0.35rem; }
.flecha-ruta { color: var(--line-strong); font-size: 0.75rem; }

/* ——— Recorrido operativo NOM (sustituye embudo cuando el ciclo está activo) ——— */
.nom035-recorrido {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: 0.85rem 1rem 1rem;
    margin-bottom: 1.25rem;
    box-shadow: var(--shadow-sm);
}
.nom035-recorrido__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
}
.nom035-recorrido__eyebrow {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--muted);
}
.nom035-recorrido__guia {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--forest, #1a4d3e);
    text-decoration: none;
    white-space: nowrap;
}
.nom035-recorrido__guia:hover { text-decoration: underline; }
.nom035-recorrido__etapas {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.35rem 0.25rem;
}
.nom035-recorrido__flecha {
    align-self: center;
    color: var(--line-strong);
    font-size: 0.75rem;
    padding: 0 0.15rem;
}
.nom035-recorrido__etapa {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    flex: 1 1 8.5rem;
    min-width: 7.5rem;
    max-width: 11rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: var(--paper-dim);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.nom035-recorrido__etapa:hover {
    border-color: var(--forest, #1a4d3e);
    background: #fff;
}
.nom035-recorrido__etapa.is-active {
    border-color: var(--forest, #1a4d3e);
    background: #fff;
    box-shadow: 0 0 0 2px rgba(26, 77, 62, 0.12);
}
.nom035-recorrido__etapa.is-hecho:not(.is-active) {
    border-color: #a7f3d0;
    background: #f0fdf4;
}
.nom035-recorrido__etapa.is-prevencion {
    border-left: 3px solid #0ea5e9;
}
.nom035-recorrido__etapa.is-prevencion.is-active {
    border-left-width: 3px;
    background: #f0f9ff;
}
.nom035-recorrido__etapa-num {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 50%;
    background: var(--paper-dim);
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--muted);
    margin-top: 0.1rem;
}
.nom035-recorrido__etapa.is-active .nom035-recorrido__etapa-num,
.nom035-recorrido__etapa.is-hecho .nom035-recorrido__etapa-num {
    background: var(--forest, #1a4d3e);
    color: #fff;
}
.nom035-recorrido__etapa-text {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}
.nom035-recorrido__etapa-label {
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--ink);
}
.nom035-recorrido__etapa-sub {
    font-size: 0.68rem;
    line-height: 1.3;
    color: var(--muted);
}
.nom035-recorrido__sub {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px dashed var(--line);
}
.nom035-recorrido__sub-titulo {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--muted);
    white-space: nowrap;
}
.nom035-recorrido__sub-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}
.nom035-recorrido__sub-link {
    display: inline-block;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 600;
    text-decoration: none;
    color: var(--ink-soft);
    background: #fff;
    border: 1px solid var(--line);
}
.nom035-recorrido__sub-link:hover {
    border-color: var(--forest, #1a4d3e);
    color: var(--forest, #1a4d3e);
}
.nom035-recorrido__sub-link.is-active {
    background: var(--forest, #1a4d3e);
    border-color: var(--forest, #1a4d3e);
    color: #fff;
}
.nom035-recorrido__sub-link.is-hecho:not(.is-active) {
    border-color: #6ee7b7;
    color: #047857;
}
.nom035-recorrido__aviso {
    margin: 0.65rem 0 0;
    font-size: 0.82rem;
    color: var(--muted);
}
.nom035-recorrido__aviso a { font-weight: 600; color: var(--forest, #1a4d3e); }

@media (max-width: 720px) {
    .nom035-recorrido__etapa { flex: 1 1 calc(50% - 0.5rem); max-width: none; }
    .nom035-recorrido__flecha { display: none; }
}

/* ——— Seguimiento widget ——— */
.nom035-seguimiento {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: 1.2rem;
    margin-bottom: 1.5rem;
    box-shadow: var(--shadow-sm);
}
.nom035-seguimiento h2 { font-size: 1.05rem; margin-bottom: 0.8rem; }
.progreso-meta { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.5rem; }
.progreso-meta .pct { font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; color: var(--forest); }
.barra-progreso { height: 6px; background: var(--paper-dim); border-radius: 99px; overflow: hidden; margin-bottom: 0.8rem; }
.barra-progreso .fill { height: 100%; border-radius: 99px; transition: width 0.4s var(--ease); }
.pasos-list { list-style: none; padding: 0; margin: 0; font-size: 0.82rem; color: var(--ink-soft); }
.pasos-list li { margin: 0.25rem 0; }
.pasos-list li.hecho { color: var(--success); }

/* ——— Timeline NOM ——— */
.nom035-timeline-wrap { margin: 1.75rem 0; }
.timeline-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.timeline-header h3 { font-size: 1.2rem; margin: 0 0 0.2rem; }
.timeline-sub { margin: 0; font-size: 0.8rem; color: var(--ink-soft); }
.timeline-stats { display: flex; align-items: center; gap: 0.75rem; }
.progress-ring {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: conic-gradient(var(--forest) calc(var(--pct) * 1%), var(--paper-dim) 0);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.progress-ring::after {
    content: attr(data-label);
    position: absolute;
    inset: 5px;
    border-radius: 50%;
    background: var(--surface);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--forest);
}
.timeline-count { font-size: 0.78rem; color: var(--ink-soft); }

.nom035-timeline { list-style: none; margin: 0; padding: 0 0 0 0.35rem; position: relative; }
.nom035-timeline::before {
    content: '';
    position: absolute;
    left: 19px;
    top: 10px;
    bottom: 10px;
    width: 2px;
    background: linear-gradient(180deg, var(--line) 0%, var(--paper-dim) 100%);
    border-radius: 1px;
}

.timeline-item { display: flex; gap: 0.85rem; padding-bottom: 1rem; position: relative; }
.timeline-item:last-child { padding-bottom: 0; }

.timeline-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    z-index: 1;
    background: var(--surface);
    border: 2px solid var(--line);
    transition: border-color 0.2s var(--ease), background 0.2s var(--ease);
}
.estado-completado .timeline-icon { border-color: var(--success); background: var(--success-bg); }
.estado-vencido .timeline-icon { border-color: var(--danger); background: var(--danger-bg); }
.estado-proximo .timeline-icon { border-color: var(--warn); background: var(--warn-bg); }
.estado-pendiente .timeline-icon { border-color: var(--line-strong); background: var(--paper); }

.timeline-card {
    flex: 1;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: 0.9rem 1rem;
    box-shadow: var(--shadow-sm);
    transition: box-shadow 0.2s var(--ease), border-color 0.2s var(--ease);
}
.timeline-card:hover { box-shadow: var(--shadow-md); }
.estado-completado .timeline-card { border-color: rgba(45, 106, 79, 0.25); opacity: 0.92; }
.estado-vencido .timeline-card { border-color: rgba(192, 57, 43, 0.2); }
.estado-proximo .timeline-card { border-color: rgba(184, 134, 11, 0.25); }

.timeline-card-top { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.3rem; }
.timeline-card-top time { font-size: 0.75rem; color: var(--ink-soft); font-weight: 600; font-family: var(--font-mono); }
.timeline-title { margin: 0 0 0.25rem; font-size: 0.92rem; font-weight: 600; color: var(--forest); font-family: var(--font-ui); line-height: 1.35; }
.estado-completado .timeline-title { color: var(--success); text-decoration: line-through; text-decoration-color: rgba(45, 106, 79, 0.35); }

.timeline-details { margin: 0.5rem 0 0; }
.timeline-details summary {
    font-size: 0.78rem;
    color: var(--ink-soft);
    cursor: pointer;
    user-select: none;
    list-style: none;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    transition: color 0.2s var(--ease);
}
.timeline-details summary::-webkit-details-marker { display: none; }
.timeline-details summary::before { content: '▸'; font-size: 0.65rem; transition: transform 0.2s var(--ease); }
.timeline-details[open] summary::before { transform: rotate(90deg); }
.timeline-details summary:hover { color: var(--amber); }
.timeline-details p { margin: 0.5rem 0 0; font-size: 0.8rem; color: var(--ink-soft); line-height: 1.45; }

.timeline-actions { display: flex; flex-wrap: wrap; gap: 0.45rem; align-items: center; margin-top: 0.65rem; }
.timeline-hecho { margin: 0.5rem 0 0; font-size: 0.8rem; color: var(--success); font-weight: 600; }

.badge-completado { background: var(--success-bg); color: var(--success); }
.badge-vencido { background: var(--danger-bg); color: var(--danger); }
.badge-proximo { background: var(--warn-bg); color: var(--warn); }
.badge-pendiente { background: var(--paper-dim); color: var(--ink-soft); }

.precio-display {
    font-family: var(--font-display);
    font-size: 2.2rem;
    font-weight: 600;
    color: var(--forest);
    margin: 0.5rem 0 1rem;
    line-height: 1;
}
.precio-display span { font-size: 0.9rem; color: var(--ink-soft); font-family: var(--font-ui); font-weight: 400; }

.metodos-pago { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1rem; }

.sem-badge {
    font-size: 0.72rem;
    color: #fff;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-weight: 600;
}
.seguimiento-sub { font-size: 0.88rem; font-weight: 600; color: var(--ink-soft); margin: 1.1rem 0 0.45rem; }
.acciones-list { list-style: none; padding: 0; margin: 0; font-size: 0.85rem; }
.acciones-list li { padding: 0.35rem 0; border-bottom: 1px dashed var(--line); }
.acciones-list li:last-child { border-bottom: none; }
.acciones-list a { color: var(--ink-soft); text-decoration: none; transition: color 0.2s var(--ease); }
.acciones-list a:hover { color: var(--forest); }
.acciones-list li.urgente a { color: var(--danger); font-weight: 600; }
.eco-cards { display: grid; gap: 0.6rem; margin-top: 0.35rem; }
.eco-card {
    display: block;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    padding: 0.75rem;
    text-decoration: none;
    color: inherit;
    background: var(--paper);
    transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.eco-card:hover { border-color: var(--amber); box-shadow: var(--shadow-sm); }
.eco-card strong { display: block; font-size: 0.88rem; color: var(--forest); margin-bottom: 0.25rem; }
.eco-card span { display: block; font-size: 0.78rem; color: var(--ink-soft); line-height: 1.4; }
.eco-card em { display: block; font-size: 0.75rem; color: var(--amber); margin-top: 0.4rem; font-style: normal; font-weight: 600; }

.datos-banco {
    background: var(--paper-dim);
    border-radius: var(--radius-sm);
    padding: 1rem;
    font-size: 0.88rem;
    margin: 1rem 0;
    line-height: 1.7;
}
.datos-banco .ref { font-family: var(--font-mono); font-size: 1.05rem; font-weight: 600; color: var(--forest); }

.diagnostico-item {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: 1rem;
    margin-bottom: 0.65rem;
    transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.diagnostico-item:hover { border-color: var(--amber); box-shadow: var(--shadow-sm); }
.diagnostico-item a { color: var(--forest); text-decoration: none; font-weight: 600; }
.estado-tag { font-size: 0.72rem; padding: 0.15rem 0.5rem; border-radius: 999px; margin-left: 0.5rem; font-weight: 600; }
.estado-tag.en_proceso { background: var(--warn-bg); color: var(--warn); }
.estado-tag.completado { background: var(--success-bg); color: var(--success); }
.estado-tag.vencido { background: var(--danger-bg); color: var(--danger); }
.form-card { margin-top: 1.5rem; }
.form-card label { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; }
.nom035-help-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    padding: 0;
    border-radius: 999px;
    border: 1px solid var(--border, #cbd5e1);
    background: #f8fafc;
    color: var(--muted, #64748b);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}
.nom035-help-btn:hover,
.nom035-help-btn:focus-visible {
    border-color: var(--ooh, #2563eb);
    color: var(--ooh, #2563eb);
    outline: none;
}
.nom035-help-text { width: 100%; flex-basis: 100%; }
.error-box { display: none; }

/* ——— Consultor virtual: wizard + checklist ——— */
.nom035-wizard { margin-bottom: 1.25rem; }
.wizard-head { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: flex-start; }
.wizard-eyebrow { font-family: var(--font-mono); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ooh); }
.wizard-title { font-size: 1.15rem; margin: 0.25rem 0 0.35rem; }
.wizard-desc { margin: 0; font-size: 0.88rem; max-width: 42rem; }
.wizard-cta { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.wizard-progress { margin-top: 1rem; }
.wizard-bar { height: 6px; background: var(--line); border-radius: 999px; overflow: hidden; }
.wizard-fill { height: 100%; border-radius: 999px; transition: width 0.3s var(--ease); }
.wizard-step-label { font-size: 0.78rem; color: var(--ink-soft); margin-top: 0.35rem; display: block; }
.wizard-ruta { margin-top: 0.85rem; font-size: 0.85rem; }
.wizard-ruta-list { margin: 0.5rem 0 0; padding-left: 1.2rem; }
.wizard-ruta-list li { margin-bottom: 0.35rem; }
.wizard-ruta-list li.estado-hecho { color: var(--success); }
.wizard-ruta-list li.estado-actual { color: var(--ooh); font-weight: 600; }
.wizard-ruta-list a { color: inherit; }

.checklist-resumen { margin: 1rem 0 1.25rem; }
.checklist-pct { display: flex; align-items: center; gap: 0.75rem; }
.checklist-pct .pct { font-family: var(--font-display); font-size: 2rem; font-weight: 500; line-height: 1; }
.checklist-items { list-style: none; margin: 0; padding: 0; }
.checklist-item {
    display: flex; gap: 0.75rem; align-items: flex-start;
    padding: 0.85rem 0; border-bottom: 1px solid var(--line);
}
.checklist-item:last-child { border-bottom: none; }
.checklist-item.ok .check-icon { color: var(--success); background: var(--success-bg); }
.checklist-item.pendiente .check-icon { color: var(--warn); background: var(--warn-bg); }
.check-icon {
    flex-shrink: 0; width: 1.6rem; height: 1.6rem; border-radius: 50%;
    display: flex; align-items: center; justify-content: center; font-size: 0.85rem; font-weight: 700;
}
.check-body p { margin: 0.2rem 0 0.35rem; font-size: 0.85rem; }

/* ——— Guía del piloto NOM-035 ——— */
.guia-piloto-main { max-width: 52rem; }
.guia-piloto-header {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 1.25rem;
}
.guia-piloto-header h1 { margin: 0 0 0.35rem; font-size: 1.55rem; }
.guia-piloto-lead { max-width: 38rem; margin: 0; font-size: 0.9rem; }
.guia-piloto-resumen { padding: 1rem 1.15rem; min-width: 14rem; }
.guia-piloto-stats { display: flex; flex-direction: column; gap: 0.35rem; }
.guia-piloto-stat { font-size: 0.88rem; }
.guia-piloto-stat strong { font-family: var(--font-display); font-size: 1.35rem; margin-right: 0.25rem; }
.guia-piloto-stat--actual { color: var(--ooh); font-weight: 600; }
.guia-piloto-stat--ok { color: var(--success); font-weight: 600; }
.guia-piloto-fases { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1rem; }
.guia-fase { border-left: 4px solid var(--line); padding: 1.1rem 1.15rem; }
.guia-fase.estado-hecho { border-left-color: var(--success); }
.guia-fase.estado-en_curso { border-left-color: var(--warn); }
.guia-fase.es-actual { box-shadow: 0 0 0 1px var(--ooh-soft, rgba(37, 99, 235, 0.25)); border-left-color: var(--ooh); }
.guia-fase-top { display: flex; gap: 0.85rem; align-items: flex-start; margin-bottom: 0.65rem; }
.guia-fase-num {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: var(--line);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 0.95rem;
}
.guia-fase.es-actual .guia-fase-num { background: var(--ooh); color: #fff; }
.guia-fase.estado-hecho .guia-fase-num { background: var(--success-bg); color: var(--success); }
.guia-fase-head { flex: 1; display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; justify-content: space-between; }
.guia-fase-head h2 { margin: 0; font-size: 1.1rem; font-weight: 600; }
.guia-fase-resumen { margin: 0 0 0.85rem; font-size: 0.9rem; color: var(--ink-soft); }
.guia-fase-grid { display: grid; grid-template-columns: 1fr; gap: 0.85rem; }
@media (min-width: 720px) {
    .guia-fase-grid { grid-template-columns: 1fr 1fr; }
    .guia-fase-grid .guia-evidencia-box:only-child { grid-column: 1 / -1; }
}
.guia-fase-sub { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.04em; margin: 0 0 0.4rem; color: var(--ink-soft); }
.guia-fase-list { margin: 0; padding-left: 1.15rem; font-size: 0.88rem; }
.guia-fase-list li { margin-bottom: 0.3rem; }
.guia-evidencia-box {
    background: var(--surface-alt, #f8faf9);
    border: 1px dashed var(--ooh);
    border-radius: var(--radius-md);
    padding: 0.85rem 1rem;
}
.guia-evidencia-box p { margin: 0 0 0.5rem; font-size: 0.86rem; }
.guia-evidencia-cat { font-size: 0.8rem !important; }
.guia-evidencia-cat code { font-size: 0.78rem; background: var(--line); padding: 0.1rem 0.35rem; border-radius: 4px; }
.guia-evidencia-alt { font-size: 0.78rem; margin: 0.5rem 0 0 !important; }
.guia-acuse-details { margin-top: 0.65rem; font-size: 0.82rem; }
.guia-acuse-input {
    width: 100%;
    margin-top: 0.4rem;
    font-size: 0.72rem;
    padding: 0.35rem;
    border: 1px solid var(--line);
    border-radius: 4px;
}
.guia-fase-links { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.85rem; }
.guia-coplan { font-size: 0.78rem; margin: 0.75rem 0 0; padding-top: 0.65rem; border-top: 1px solid var(--line); }
.guia-coplan-label { font-weight: 600; }
.guia-piloto-nota { margin-top: 1.25rem; }
.guia-hero {
    margin: 0 0 1.25rem;
    padding: 1.25rem 1.35rem;
    border-left: 4px solid var(--ooh);
    background: linear-gradient(135deg, #f8fafc 0%, #fff 100%);
}
.guia-hero--ok { border-left-color: var(--success); }
.guia-hero-eyebrow {
    display: block;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--muted);
    margin-bottom: 0.35rem;
}
.guia-hero-title { margin: 0 0 0.5rem; font-size: 1.2rem; }
.guia-hero-linea { margin: 0 0 1rem; font-size: 0.92rem; color: var(--ink-soft); max-width: 36rem; }
.guia-hero-btn { font-size: 0.95rem; padding: 0.65rem 1.15rem; }
.guia-cronograma { margin: 0 0 1.5rem; padding: 1.15rem 1.25rem; border-left: 4px solid var(--warn); }
.guia-cronograma-titulo { margin: 0 0 0.35rem; font-size: 1.05rem; }
.guia-cronograma-lead { margin: 0 0 1rem; font-size: 0.88rem; max-width: 40rem; }
.guia-cronograma-form { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: flex-end; margin-bottom: 1rem; }
.guia-cronograma-label { display: flex; flex-direction: column; gap: 0.35rem; font-size: 0.82rem; font-weight: 600; }
.guia-cronograma-label input[type="date"] { font-weight: 400; padding: 0.45rem 0.55rem; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.guia-cronograma-tabla { width: 100%; border-collapse: collapse; font-size: 0.85rem; margin-top: 0.5rem; }
.guia-cronograma-tabla th,
.guia-cronograma-tabla td { text-align: left; padding: 0.5rem 0.65rem; border-bottom: 1px solid var(--line); }
.guia-cronograma-tabla th { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ink-soft); }
.guia-cronograma-tabla tr.hecho td { color: var(--success); }
.guia-cronograma-nota { font-size: 0.8rem; margin: 0.75rem 0 0; }

.bienestar-fecha-input {
  font-weight: 400;
  padding: 0.4rem 0.5rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  font-size: 0.85rem;
  min-width: 0;
  width: 100%;
  max-width: 10.5rem;
  box-sizing: border-box;
}
.bienestar-calendario-form .data-table {
  min-width: 680px;
  font-size: 0.82rem;
}
.bienestar-calendario-form .data-table th,
.bienestar-calendario-form .data-table td {
  vertical-align: middle;
  padding: 0.5rem 0.6rem;
}
.bienestar-calendario-form .data-table .col-sesion {
  min-width: 9rem;
  max-width: 12rem;
}
.bienestar-calendario-form .data-table .col-material {
  max-width: 8.5rem;
  word-break: break-word;
  font-size: 0.78rem;
  line-height: 1.35;
}
.bienestar-calendario-form .data-table .col-acciones {
  white-space: nowrap;
}
.bienestar-calendario-form .bw-acciones {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
}
.bienestar-calendario-form .bw-acciones .btn-sm {
  padding: 0.3rem 0.55rem;
  font-size: 0.75rem;
}
.bienestar-calendario-form .nom-check {
  font-size: 0.78rem;
  display: flex;
  align-items: center;
  gap: 0.3rem;
  cursor: pointer;
  white-space: nowrap;
}

/* Cronograma unificado (Fase C) */
.nom035-cronograma-unificado { margin-top: 0.75rem; }
.nom035-cronograma-tabla tr.vencido td { color: var(--warn); }
.nom035-capa-badge { display: inline-block; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.15rem 0.45rem; border-radius: 999px; margin-right: 0.35rem; }
.nom035-capa-badge.capa-promotivo { background: #ecfdf5; color: #047857; }
.nom035-capa-badge.capa-campana { background: #eff6ff; color: #1d4ed8; }
.nom035-cronograma-etiq { display: block; font-size: 0.75rem; margin-top: 0.1rem; }
.nom035-cronograma-nota { font-size: 0.72rem; margin-left: 0.25rem; cursor: help; }
.nom035-cronograma-sin-fecha { margin-top: 0.75rem; font-size: 0.85rem; }
.nom035-cronograma-sin-fecha summary { cursor: pointer; font-weight: 600; }
.nom035-cronograma-lista { margin: 0.5rem 0 0; padding-left: 0; list-style: none; }
.nom035-cronograma-lista li { padding: 0.35rem 0; border-bottom: 1px solid var(--line); }
.nom035-cronograma-preview summary { cursor: pointer; font-weight: 600; font-size: 0.88rem; }
.nom035-proximos-lista { margin: 0; padding: 0; list-style: none; font-size: 0.85rem; }
.nom035-proximos-lista li { padding: 0.4rem 0; border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; }

/* Planes correctivo / promotivo (Fase D) */
.nom035-planes-tabs { margin: 0.5rem 0 1.5rem; }
.nom035-planes-tabs > input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; width: 0; height: 0; }
.nom035-planes-tab-nav { display: flex; gap: 0; border-bottom: 2px solid var(--line); margin-bottom: 1rem; }
.nom035-planes-tab-nav label { padding: 0.55rem 1rem; font-size: 0.88rem; font-weight: 600; cursor: pointer; color: var(--ink-soft); border-bottom: 2px solid transparent; margin-bottom: -2px; }
#nom035-tab-correctivo:checked ~ .nom035-planes-tab-nav label[for="nom035-tab-correctivo"],
#nom035-tab-promotivo:checked ~ .nom035-planes-tab-nav label[for="nom035-tab-promotivo"] { color: var(--ink); border-bottom-color: var(--accent, #2563eb); }
.nom035-planes-panel { display: none; }
#nom035-tab-correctivo:checked ~ .nom035-planes-panel--correctivo,
#nom035-tab-promotivo:checked ~ .nom035-planes-panel--promotivo { display: block; }
.nom035-plan-promotivo-lista { margin: 0; padding-left: 1.1rem; font-size: 0.88rem; }
.nom035-plan-promotivo-lista li { margin-bottom: 0.65rem; }
.nom035-plan-card { margin-bottom: 0.75rem; }
.guia-macro-bloques {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 1.25rem;
    padding: 0.75rem;
    background: var(--surface-alt, #f8faf9);
    border-radius: var(--radius-md);
    border: 1px solid var(--line);
}
.guia-macro-item {
    flex: 1 1 7rem;
    min-width: 6.5rem;
    padding: 0.5rem 0.65rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--line);
    background: #fff;
    text-align: center;
    font-size: 0.72rem;
}
.guia-macro-item.is-activo { border-color: var(--ooh); box-shadow: 0 0 0 1px var(--ooh); font-weight: 600; }
.guia-macro-item.is-hecho { border-color: var(--success); background: var(--success-bg, #ecfdf5); }
.guia-macro-item--transversal { border-style: dashed; background: transparent; }
.guia-macro-item--banderazo.is-activo { border-color: var(--warn); }
.guia-macro-num { display: block; font-family: var(--font-display); font-size: 1rem; margin-bottom: 0.15rem; }
.guia-macro-label { display: block; line-height: 1.25; color: var(--ink-soft); }
.guia-banderazo { margin: 0 0 1.25rem; padding: 1.15rem 1.25rem; border-left: 4px solid var(--warn); }
.guia-banderazo--ok { border-left-color: var(--success); }
.guia-banderazo-titulo { margin: 0 0 0.35rem; font-size: 1.05rem; }
.guia-banderazo-lead { margin: 0 0 0.85rem; font-size: 0.88rem; max-width: 40rem; }
.guia-banderazo-checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.45rem; }
.guia-banderazo-checklist li { display: flex; align-items: center; gap: 0.5rem; font-size: 0.88rem; }
.guia-banderazo-checklist li.hecho a { color: var(--success); }
.guia-check-icon { width: 1.25rem; text-align: center; flex-shrink: 0; }
.guia-dirige { margin: 0 0 1.25rem; padding: 1rem 1.15rem; border-left: 4px dashed var(--ooh); background: #f8fafc; }
.guia-dirige-titulo { margin: 0 0 0.25rem; font-size: 0.95rem; }
.guia-dirige-lista { margin: 0; padding-left: 1.15rem; font-size: 0.85rem; color: var(--ink-soft); }
.guia-dirige-lista li { margin-bottom: 0.35rem; }
.guia-ciclo-pregunta { margin: 0 0 1.25rem; padding: 1.15rem 1.25rem; border-left: 4px solid var(--ooh); }
.guia-ciclo-pregunta-titulo { margin: 0 0 0.5rem; font-size: 1.05rem; }
.guia-ciclo-pregunta-lead { margin: 0 0 1rem; font-size: 0.88rem; max-width: 40rem; }
.guia-ciclo-pregunta-acciones { display: flex; flex-wrap: wrap; gap: 0.65rem; align-items: center; }
.guia-ciclo-nuevo-form { margin: 0; display: inline; }
.guia-bloques-detalle { display: flex; flex-direction: column; gap: 0.85rem; margin-bottom: 1.5rem; }
.guia-bloque { padding: 1rem 1.1rem; border-left: 4px solid var(--line); }
.guia-bloque.estado-hecho { border-left-color: var(--success); }
.guia-bloque.estado-en_curso { border-left-color: var(--warn); }
.guia-bloque-head { display: flex; gap: 0.75rem; align-items: flex-start; margin-bottom: 0.65rem; }
.guia-bloque-num {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: var(--line);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.9rem;
}
.guia-bloque-head h3 { margin: 0; font-size: 1rem; }
.guia-bloque-hitos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.guia-bloque-hitos li {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.84rem;
    padding: 0.4rem 0.55rem;
    background: var(--surface-alt, #f8faf9);
    border-radius: var(--radius-sm);
}
.guia-bloque-hitos li.estado-hecho { color: var(--success); }
.guia-hito-estado { font-size: 0.72rem; color: var(--muted); white-space: nowrap; }
.guia-lista-titulo { font-size: 0.95rem; margin: 0 0 0.65rem; color: var(--ink-soft); }
.guia-fase-pendiente {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    font-size: 0.88rem;
    color: var(--muted);
    padding: 0.15rem 0;
}
.guia-fase-pendiente .guia-fase-num {
    width: 1.65rem;
    height: 1.65rem;
    font-size: 0.78rem;
    background: var(--paper-dim);
    color: var(--muted);
}
.guia-fase-collapsed summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.guia-fase-collapsed summary::-webkit-details-marker { display: none; }
.guia-fase-actual-ref {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    font-size: 0.88rem;
    padding: 0.15rem 0;
    border-left: 3px solid var(--ooh);
    padding-left: 0.5rem;
}
.guia-fase-mas summary { cursor: pointer; font-size: 0.82rem; color: var(--ooh); margin-top: 0.35rem; }

/* ——— Tour del Ciclo NOM (demo pre-pago) ——— */
.nom035-tour-page .app-main { max-width: none; }
.tour-public-header {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: 1rem; padding: 0.85rem 1.25rem; border-bottom: 1px solid var(--line); background: var(--surface);
}
.tour-public-nav { display: flex; gap: 0.75rem; align-items: center; }
.tour-public-nav a { font-size: 0.88rem; font-weight: 600; text-decoration: none; color: var(--ink); }
.tour-demo-banner {
    background: #fef3c7; color: #92400e; text-align: center; padding: 0.45rem 1rem;
    font-size: 0.82rem; border-bottom: 1px solid #fde68a;
}
.nom035-tour-layout {
    display: grid; grid-template-columns: 280px 1fr; gap: 1.25rem;
    max-width: 1100px; margin: 0 auto; padding: 1.25rem 1rem 2rem;
}
@media (max-width: 860px) {
    .nom035-tour-layout { grid-template-columns: 1fr; }
    .tour-sidebar { order: 2; }
}
.tour-sidebar { position: sticky; top: 0.75rem; align-self: start; padding: 1rem; }
.tour-sidebar-eyebrow { font-family: var(--font-mono); font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ooh); margin: 0; }
.tour-sidebar-name { font-size: 1.1rem; margin: 0.25rem 0 0.75rem; }
.tour-sidebar-stats { margin: 0 0 0.75rem; }
.tour-sidebar-stats div { display: flex; justify-content: space-between; gap: 0.5rem; padding: 0.25rem 0; border-bottom: 1px solid var(--line); font-size: 0.82rem; }
.tour-sidebar-stats dt { margin: 0; color: var(--ink-soft); }
.tour-sidebar-stats dd { margin: 0; font-weight: 600; }
.tour-sidebar-note { font-size: 0.78rem; margin: 0 0 0.85rem; line-height: 1.45; }

/* Quiz Ciclo NOM (landing, tour, descubrir) */
.ciclo-quiz { margin-top: 1rem; padding: 1.1rem 1.15rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.ciclo-quiz--compact { margin-top: 0.75rem; padding: 0.85rem; }
.ciclo-quiz--compact .ciclo-quiz-title { font-size: 0.92rem; margin-bottom: 0.35rem; }
.ciclo-quiz--compact .ciclo-quiz-lead { display: none; }
.ciclo-quiz--compact .ciclo-quiz-row { flex-direction: column; align-items: stretch; }
.ciclo-quiz--compact .ciclo-quiz-btn { width: 100%; }
.ciclo-quiz-title { font-size: 1.05rem; margin: 0 0 0.35rem; }
.ciclo-quiz-lead { font-size: 0.88rem; margin: 0 0 0.85rem; line-height: 1.45; }
.ciclo-quiz-label { display: block; font-size: 0.78rem; font-weight: 600; margin-bottom: 0.35rem; color: var(--ink-soft); }
.ciclo-quiz-row { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.ciclo-quiz-input {
    width: 7rem; max-width: 100%; padding: 0.5rem 0.65rem; border: 1px solid var(--line);
    border-radius: var(--radius-md); font: inherit;
}
.ciclo-quiz-result { margin-top: 0.85rem; padding-top: 0.85rem; border-top: 1px dashed var(--line); }
.ciclo-quiz-result-eyebrow { font-family: var(--font-mono); font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ooh); margin: 0 0 0.25rem; }
.ciclo-quiz-result-name { font-size: 1.15rem; font-weight: 600; margin: 0 0 0.15rem; }
.ciclo-quiz-result-price { font-size: 1.35rem; font-weight: 600; color: var(--forest, var(--ink)); margin: 0 0 0.25rem; }
.ciclo-quiz-result-tag { font-size: 0.82rem; margin: 0 0 0.65rem; }
.ciclo-quiz-result-list { margin: 0 0 0.75rem; padding-left: 1.1rem; font-size: 0.86rem; line-height: 1.5; color: var(--ink-soft); }
.ciclo-quiz-result-cta { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.ciclo-quiz-faq { font-size: 0.78rem; margin: 0.65rem 0 0; }
.tour-sidebar .ciclo-quiz { box-shadow: none; }
.tour-outline { list-style: none; margin: 0; padding: 0; max-height: 42vh; overflow-y: auto; }
.tour-outline li { margin-bottom: 0.2rem; }
.tour-outline-btn {
    width: 100%; text-align: left; border: none; background: transparent; padding: 0.35rem 0.5rem;
    border-radius: 6px; font-size: 0.78rem; cursor: pointer; color: var(--ink-soft); line-height: 1.35;
}
.tour-outline-btn:hover { background: var(--paper-dim); color: var(--ink); }
.tour-outline-btn.is-current { background: var(--ooh-soft, #eff6ff); color: var(--ooh); font-weight: 600; }
.tour-outline-btn.is-done { color: var(--success); }
.tour-progress-wrap { margin-bottom: 1rem; }
.tour-progress-bar { height: 6px; background: var(--line); border-radius: 999px; overflow: hidden; }
.tour-progress-fill { height: 100%; background: var(--ooh); width: 0; transition: width 0.25s var(--ease); border-radius: 999px; }
.tour-progress-label { font-size: 0.78rem; color: var(--ink-soft); margin-top: 0.35rem; display: block; }
.tour-step { padding: 1.25rem 1.35rem; margin-bottom: 0; }
.tour-step-head { display: flex; gap: 0.85rem; align-items: flex-start; margin-bottom: 1rem; }
.tour-step-num {
    width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--ooh); color: #fff;
    display: flex; align-items: center; justify-content: center; font-weight: 600; flex-shrink: 0;
}
.tour-step-head h1 { margin: 0 0 0.35rem; font-size: 1.35rem; }
.tour-step-lead { margin: 0; color: var(--ink-soft); font-size: 0.92rem; max-width: 40rem; }
.tour-bloque { margin-bottom: 1rem; }
.tour-bloque-titulo { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.04em; margin: 0 0 0.4rem; color: var(--ink-soft); }
.tour-list { margin: 0; padding-left: 1.15rem; font-size: 0.9rem; line-height: 1.5; }
.tour-dos-col { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
@media (max-width: 640px) { .tour-dos-col { grid-template-columns: 1fr; } }
.tour-col-card { border: 1px solid var(--line); border-radius: var(--radius-md); padding: 0.85rem; background: var(--surface); }
.tour-table-wrap { overflow-x: auto; }
.tour-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.tour-table th, .tour-table td { text-align: left; padding: 0.45rem 0.6rem; border-bottom: 1px solid var(--line); }
.tour-table th { font-size: 0.72rem; text-transform: uppercase; color: var(--ink-soft); }
.tour-mock-card { background: var(--paper-dim); border-radius: var(--radius-md); padding: 0.85rem 1rem; border: 1px solid var(--line); }
.tour-mock-row { display: flex; flex-wrap: wrap; gap: 0.35rem 0.75rem; padding: 0.35rem 0; border-bottom: 1px solid var(--line); font-size: 0.86rem; }
.tour-mock-row:last-child { border-bottom: none; }
.tour-mock-key { font-weight: 600; min-width: 8rem; color: var(--ink-soft); }
.tour-quote {
    margin: 0; padding: 0.85rem 1rem; border-left: 4px solid var(--ooh);
    background: var(--ooh-soft, #eff6ff); font-size: 0.9rem; font-style: italic; border-radius: 0 var(--radius-md) var(--radius-md) 0;
}
.tour-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
@media (max-width: 640px) { .tour-cards { grid-template-columns: 1fr; } }
.tour-mini-card { border: 1px solid var(--line); border-radius: var(--radius-md); padding: 0.85rem; }
.tour-mini-card h4 { margin: 0 0 0.35rem; font-size: 0.92rem; }
.tour-mini-card p { margin: 0; font-size: 0.85rem; color: var(--ink-soft); }
.tour-mini-meta { margin-top: 0.45rem !important; font-size: 0.78rem !important; color: var(--ooh) !important; font-weight: 600; }
.tour-callout { padding: 0.75rem 0.9rem; border-radius: var(--radius-md); font-size: 0.86rem; line-height: 1.45; }
.tour-callout--info { background: var(--paper-dim); border: 1px solid var(--line); }
.tour-callout--warn { background: var(--warn-bg); border: 1px solid #fde68a; color: #92400e; }
.tour-callout--ia { background: #eff6ff; border: 1px solid #bfdbfe; color: #1e40af; }
.tour-callout--precio { background: #ecfdf5; border: 1px solid #a7f3d0; color: #065f46; font-weight: 600; }
.tour-callout--legal { background: var(--paper-dim); font-size: 0.8rem; color: var(--ink-soft); }
.tour-step-cta { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.tour-nav { display: flex; justify-content: space-between; gap: 0.75rem; margin-top: 1rem; }

/* ——— Reclutamiento (ATS) ——— */
.app-main--full { max-width: 1100px; }
.page-header { margin-bottom: 1.25rem; }
.page-header h1 { font-size: 1.65rem; margin: 0 0 0.35rem; }
.page-header .lead { margin: 0; color: var(--ink-soft); font-size: 0.9rem; }
.page-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
}
.page-back {
    font-size: 0.875rem;
    color: var(--amber);
    text-decoration: none;
    font-weight: 600;
    display: inline-block;
    margin-bottom: 0.75rem;
}
.page-back:hover { text-decoration: underline; }

.data-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: var(--surface);
}
.data-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.data-table th, .data-table td {
    text-align: left;
    padding: 0.65rem 0.85rem;
    border-bottom: 1px solid var(--line);
}
.data-table th {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--ink-soft);
    font-weight: 600;
    background: var(--paper-dim);
}
.data-table tr:last-child td { border-bottom: none; }
.data-table tbody tr:hover { background: rgba(0, 0, 0, 0.015); }
.data-table .actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.65rem;
    align-items: center;
}
.data-table .actions a {
    color: var(--forest);
    font-weight: 600;
    text-decoration: none;
    font-size: 0.82rem;
}
.data-table .actions a:hover { color: var(--amber); }

.badge-estado-borrador { background: var(--paper-dim); color: var(--ink-soft); }
.badge-estado-publicada { background: var(--success-bg); color: var(--success); }
.badge-estado-pausada { background: var(--warn-bg); color: var(--warn); }
.badge-estado-cerrada { background: var(--danger-bg); color: var(--danger); }

.empty-state {
    text-align: center;
    padding: 2.5rem 1.5rem;
    background: var(--surface);
    border: 1px dashed var(--line-strong);
    border-radius: var(--radius-md);
}
.empty-state h2 { font-size: 1.1rem; margin: 0 0 0.5rem; }
.empty-state p {
    color: var(--ink-soft);
    font-size: 0.9rem;
    margin: 0 auto 1.25rem;
    max-width: 28rem;
}

.quick-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 0.75rem;
    margin: 1.25rem 0;
}
.quick-action {
    display: block;
    padding: 1rem 1.1rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.quick-action:hover { border-color: var(--amber); box-shadow: var(--shadow-sm); }
.quick-action strong { display: block; font-size: 0.9rem; color: var(--forest); margin-bottom: 0.25rem; }
.quick-action span { font-size: 0.78rem; color: var(--ink-soft); }

.empleos-link-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    align-items: center;
    padding: 0.75rem 1rem;
    background: var(--paper-dim);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    margin-bottom: 1.25rem;
    font-size: 0.85rem;
}
.empleos-link-bar a { color: var(--forest); font-weight: 600; word-break: break-all; }

.kanban-board {
    display: flex;
    gap: 0.85rem;
    padding-bottom: 0.5rem;
    overflow-x: auto;
    align-items: flex-start;
    margin-top: 1rem;
}
.kanban-col {
    min-width: 270px;
    max-width: 290px;
    flex-shrink: 0;
    background: var(--paper-dim);
    border-radius: var(--radius-md);
    padding: 0.75rem;
    border: 1px solid var(--line);
}
.kanban-col-head {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-soft);
    font-weight: 600;
    margin: 0 0 0.75rem;
}
.pipeline-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    padding: 0.85rem;
    margin-bottom: 0.6rem;
    box-shadow: var(--shadow-sm);
}
.pipeline-card .nombre { font-weight: 600; font-size: 0.92rem; }
.pipeline-card .email { font-size: 0.78rem; color: var(--ink-soft); margin: 0.15rem 0 0.45rem; }
.match-score {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: var(--paper-dim);
    color: var(--ink-soft);
}
.match-score.alto { background: var(--success-bg); color: var(--success); }
.pipeline-card .explicacion { font-size: 0.78rem; color: var(--ink-soft); margin: 0.4rem 0; line-height: 1.4; }
.pipeline-actions { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.55rem; }
.pipeline-actions select { flex: 1; min-width: 100px; font-size: 0.75rem; padding: 0.35rem; }
.pipeline-actions .btn-xs {
    font-size: 0.72rem;
    padding: 0.3rem 0.55rem;
    border: 1px solid var(--line-strong);
    background: var(--surface);
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-family: inherit;
}
.pipeline-actions .btn-xs.danger { color: var(--danger); border-color: rgba(192, 57, 43, 0.25); }
.pipeline-actions .btn-xs.primary { color: var(--forest); border-color: rgba(27, 52, 46, 0.25); }

.funnel-row { display: flex; align-items: center; margin-bottom: 0.65rem; gap: 0.75rem; }
.funnel-label { width: 150px; font-size: 0.85rem; flex-shrink: 0; }
.funnel-track {
    flex: 1;
    background: var(--line);
    border-radius: var(--radius-sm);
    height: 24px;
    position: relative;
    overflow: hidden;
}
.funnel-fill { background: var(--forest); height: 100%; border-radius: var(--radius-sm); min-width: 2px; }
.funnel-count {
    position: absolute;
    right: 8px;
    top: 0;
    font-size: 0.78rem;
    line-height: 24px;
    color: var(--ink);
    font-weight: 600;
}

.tag-mindset { background: #e8eef9; color: #2a4e8c; }
.tag-emocional { background: #fbe9e7; color: var(--danger); }
.tag-catalogo { background: rgba(99, 102, 241, 0.1); color: var(--talent); }
.tag-propio { background: var(--warn-bg); color: var(--warn); }

.banco-card, .list-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: 1rem 1.1rem;
    margin-bottom: 0.65rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    box-shadow: var(--shadow-sm);
}
.banco-card .habilidades, .list-card .meta { font-size: 0.8rem; color: var(--ink-soft); margin-top: 0.25rem; }
.banco-actions { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.banco-actions select { max-width: 220px; font-size: 0.82rem; }

.sugerencia-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: 1.1rem 1.2rem;
    margin-bottom: 0.75rem;
    box-shadow: var(--shadow-sm);
}
.sugerencia-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.sugerencia-score {
    font-family: var(--font-display);
    font-size: 1.5rem;
    color: var(--forest);
    font-weight: 600;
    white-space: nowrap;
}
.sugerencia-explicacion { font-size: 0.88rem; color: var(--ink-soft); margin: 0.65rem 0; font-style: italic; }
.tag-ok { background: var(--success-bg); color: var(--success); padding: 0.1rem 0.45rem; border-radius: 3px; margin-right: 0.25rem; font-size: 0.75rem; }
.tag-gap { background: var(--danger-bg); color: var(--danger); padding: 0.1rem 0.45rem; border-radius: 3px; margin-right: 0.25rem; font-size: 0.75rem; }

.bitacora-entry { background: var(--paper-dim); border-radius: var(--radius-sm); padding: 0.85rem; margin-bottom: 0.6rem; font-size: 0.88rem; }
.checkpoint-entry { background: var(--warn-bg); border-radius: var(--radius-sm); padding: 0.85rem; margin-bottom: 0.6rem; font-size: 0.88rem; }
.checkpoint-entry.confirmado { border-left: 3px solid var(--success); }
.checkpoint-entry.no-confirmado { border-left: 3px solid var(--danger); }

.search-bar { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0; }
.search-bar input { flex: 1; min-width: 200px; max-width: 360px; }

@media (max-width: 640px) {
    .app-header { padding: 0.75rem 1rem; }
    .app-nav-links { gap: 0.15rem 0.5rem; }
    .app-nav-links a { font-size: 0.8rem; padding: 0.3rem 0.4rem; }
    .app-main { padding: 1rem 1rem 2rem; }
    .kanban-col { min-width: 240px; }
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Diagnóstico de conocimiento NOM-035 (pantalla independiente) */
.diag-conoc-main { max-width: 40rem; }
.diag-conoc-eyebrow {
    font-family: var(--font-mono);
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ooh, #2563eb);
    margin: 0 0 0.5rem;
}
.diag-conoc-header h1 { margin: 0 0 0.5rem; font-size: 1.55rem; }
.diag-conoc-lead { max-width: 36rem; }
.diag-conoc-progreso {
    height: 4px;
    background: var(--line);
    border-radius: 99px;
    margin: 0.65rem 0 1rem;
    overflow: hidden;
}
.diag-conoc-progreso span {
    display: block;
    height: 100%;
    background: var(--ooh, #2563eb);
}
.diag-conoc-opciones { border: 0; margin: 0 0 1rem; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.diag-conoc-opcion {
    display: flex;
    gap: 0.65rem;
    align-items: flex-start;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm, 8px);
    cursor: pointer;
    background: #fff;
}
.diag-conoc-opcion:hover { border-color: var(--ooh, #2563eb); }
.diag-conoc-opcion:has(input:checked) {
    border-color: var(--ooh, #2563eb);
    box-shadow: 0 0 0 1px var(--ooh, #2563eb);
}
.diag-conoc-letra {
    flex-shrink: 0;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    background: var(--paper-dim, #f1f5f9);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
}
.diag-conoc-opcion input { margin-top: 0.2rem; }
.diag-conoc-feedback { padding: 1.15rem 1.25rem; }
.diag-conoc-feedback.is-ok { border-left: 4px solid var(--success, #059669); }
.diag-conoc-feedback.is-fallo { border-left: 4px solid var(--warn, #d97706); }
.diag-conoc-veredicto { font-weight: 700; margin: 0 0 0.35rem; }
.diag-conoc-explicacion { font-size: 0.95rem; line-height: 1.5; margin: 0.75rem 0 1rem; }
.diag-conoc-resultado { padding: 1.25rem 1.35rem; margin-bottom: 1.25rem; }
.diag-conoc-resultado--principiante { border-left: 4px solid var(--ooh, #2563eb); }
.diag-conoc-resultado--intermedio { border-left: 4px solid var(--success, #059669); }
.diag-conoc-resultado--avanzado { border-left: 4px solid #7c3aed; }
.diag-conoc-puntaje { margin: 0; font-size: 0.88rem; color: var(--ink-soft); }
.diag-conoc-puntaje strong { font-size: 1.75rem; color: var(--ink); }
.diag-conoc-nivel { margin: 0.25rem 0 0.65rem; }
.diag-conoc-mensaje { margin: 0 0 1rem; line-height: 1.5; }
.diag-conoc-ctas { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.diag-conoc-hoja { padding: 1.15rem 1.25rem; margin-bottom: 1.25rem; }
.diag-conoc-hoja-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.diag-conoc-hoja-head h2 { margin: 0 0 0.25rem; font-size: 1.15rem; }
.diag-conoc-hoja-acciones { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.diag-conoc-temas { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1rem; }
.diag-conoc-tema {
    padding: 0.85rem 0 0;
    border-top: 1px solid var(--line);
}
.diag-conoc-tema:first-child { border-top: 0; padding-top: 0; }
.diag-conoc-tema h3 { margin: 0 0 0.4rem; font-size: 1rem; }
.diag-conoc-tema p { margin: 0 0 0.4rem; font-size: 0.88rem; line-height: 1.45; color: var(--ink-soft); }
.diag-conoc-kicker {
    display: block;
    font-family: var(--font-mono);
    font-size: 0.68rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ink);
    margin-bottom: 0.15rem;
}
.diag-conoc-bullets { margin: 0 0 1rem; padding-left: 1.15rem; color: var(--ink-soft); font-size: 0.9rem; }
.diag-conoc-intro, .diag-conoc-form { padding: 1.15rem 1.25rem; }
.diag-conoc-otra { margin: 0 0 2rem; }
.diag-conoc-intro-acciones { display: flex; flex-wrap: wrap; gap: 0.65rem; align-items: center; }
.diag-conoc-omitir { margin: 0.85rem 0 0; font-size: 0.88rem; }

@media print {
    .app-nav, .tour-public-header, .diag-conoc-ctas, .diag-conoc-hoja-acciones, .diag-conoc-otra, .diag-conoc-resultado {
        display: none !important;
    }
    .diag-conoc-hoja { border: 0; box-shadow: none; }
    .diag-conoc-header { margin-bottom: 0.5rem; }
}

/* ——— Tablero NOM-035: clasificación normativa + tarjetas ——— */
.badge-nom-ley {
    background: var(--success-bg);
    color: var(--success);
}
.badge-nom-recomendado {
    background: var(--warn-bg);
    color: var(--warn);
}
.badge-nom-interno {
    background: var(--paper-dim);
    color: var(--ink-soft);
}

.nom035-item-card {
    padding: 0.85rem 0;
    border-bottom: 1px solid var(--line);
}
.nom035-item-card:last-child {
    border-bottom: none;
}
.nom035-item-card.is-ok {
    border-left: 3px solid var(--success);
    padding-left: 0.65rem;
}
.nom035-item-card.is-pendiente {
    border-left: 3px solid var(--warn);
    padding-left: 0.65rem;
}
.nom035-item-card.is-siguiente {
    border-left: 3px solid var(--ooh);
    background: color-mix(in srgb, var(--ooh) 6%, transparent);
    padding: 1rem 0.85rem;
    border-radius: 0 6px 6px 0;
    scroll-margin-top: 5rem;
}
.nom035-item-card__badge-siguiente {
    display: inline-block;
    margin-top: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--ooh);
    background: var(--ooh-soft, #e8f0fe);
    padding: 0.15rem 0.45rem;
    border-radius: 4px;
}
.nom035-item-card__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
}
.nom035-item-card__titulo-wrap {
    display: flex;
    gap: 0.65rem;
    align-items: flex-start;
}
.nom035-item-card__titulo {
    display: block;
    font-size: 0.95rem;
}
.nom035-item-card__meta {
    margin: 0.2rem 0 0;
    font-size: 0.78rem;
    color: var(--ink-soft);
}
.nom035-item-card__detalle {
    margin: 0.45rem 0 0.35rem;
    font-size: 0.85rem;
}
.nom035-item-card.is-compacta {
    margin: 0.5rem 0;
    padding: 0.75rem 1rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-left: 3px solid var(--warn);
    border-radius: var(--radius-sm);
}
.nom035-item-card__desplegable > summary {
    list-style: none;
}
.nom035-item-card__desplegable > summary::-webkit-details-marker {
    display: none;
}
.nom035-item-card__summary {
    display: block;
    padding: 0;
    cursor: pointer;
}
.nom035-item-card__summary-fila,
.nom035-item-card__summary-titulo {
    display: flex;
    align-items: center;
}
.nom035-item-card__summary-fila {
    justify-content: space-between;
    gap: 0.75rem;
}
.nom035-item-card__summary-titulo {
    min-width: 0;
    gap: 0.5rem;
}
.nom035-item-card__chevron {
    flex: 0 0 auto;
    color: var(--ink-soft);
    font-size: 1.35rem;
    line-height: 1;
    transform-origin: center;
    transition: transform 0.2s var(--ease);
}
.nom035-item-card__desplegable[open] .nom035-item-card__chevron {
    transform: rotate(90deg);
}
.nom035-item-card__resumen-compacto {
    display: block;
    margin: 0.35rem 0 0 1.85rem;
    font-size: 0.8rem;
    line-height: 1.35;
    white-space: normal;
    overflow-wrap: anywhere;
}
.nom035-item-card__contenido-expandido {
    padding-bottom: 0.2rem;
}
.nom035-microleccion {
    margin: 0.75rem 0;
    padding: 0.85rem;
    background: var(--paper-dim);
    border-radius: 6px;
}
.nom035-microleccion [hidden] {
    display: none !important;
}
.nom035-microleccion__progreso {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.35rem;
}
.nom035-microleccion__barra {
    height: 4px;
    border-radius: 99px;
    background: var(--line);
    transition: background 0.2s var(--ease);
}
.nom035-microleccion__barra.is-activa {
    background: var(--ooh);
}
.nom035-microleccion__pantallas {
    min-height: 10.25rem;
    display: grid;
    place-items: center;
}
.nom035-microleccion__pantalla {
    width: min(100%, 32rem);
    text-align: center;
    padding: 1.1rem 0.5rem 0.75rem;
}
.nom035-microleccion__pantalla p {
    max-width: 28rem;
    margin: 0.85rem auto 0;
    color: var(--ink);
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.45;
}
.nom035-microleccion__icono {
    width: 3.25rem;
    height: 3.25rem;
    color: var(--ooh);
}
.nom035-microleccion__acciones {
    min-height: 2.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.65rem;
}
.nom035-microleccion__acciones [data-micro-siguiente],
.nom035-microleccion__acciones [data-micro-empezar] {
    margin-left: auto;
}
.nom035-microleccion__leer {
    display: block;
    width: fit-content;
    margin: 0.65rem auto 0;
    font-size: 0.78rem;
    color: var(--ink-soft);
}
.nom035-item-card__accion-completa {
    margin-top: 0.5rem;
}
.nom035-item-card__practica {
    margin-top: 0.75rem;
}
.nom035-item-card__practica .btn {
    display: inline-flex;
}

@keyframes nom035-pulse-ok {
    0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--success) 45%, transparent); }
    100% { box-shadow: 0 0 0 10px transparent; }
}
.nom035-item-card.is-ok.is-just-done {
    animation: nom035-pulse-ok 0.9s var(--ease) 1;
}
@media (prefers-reduced-motion: reduce) {
    .nom035-item-card.is-just-done { animation: none; }
    .nom035-item-card__chevron { transition: none; }
}

.nom035-tablero-resumen {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}
.nom035-progress-ring {
    --pct: 0;
    --ring: var(--warn);
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 50%;
    background: conic-gradient(var(--ring) calc(var(--pct) * 1%), var(--paper-dim) 0);
    display: grid;
    place-items: center;
    flex-shrink: 0;
}
.nom035-progress-ring__inner {
    width: 3.35rem;
    height: 3.35rem;
    border-radius: 50%;
    background: var(--paper);
    display: grid;
    place-items: center;
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--ring);
}
.nom035-progress-ring.is-ok { --ring: var(--success); }
.nom035-progress-ring.is-warn { --ring: var(--warn); }
.nom035-progress-ring.is-bad { --ring: var(--danger); }

.nom035-guia-i-indicador {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.25rem;
    margin-top: 1.25rem;
    padding: 1rem 1.15rem;
    background: var(--paper);
    border: 1px dashed var(--line-strong);
    border-top: 4px solid var(--warn);
    border-radius: var(--radius-sm);
}
.nom035-guia-i-indicador.is-activa {
    border-top-color: var(--success);
}
.nom035-guia-i-indicador__contenido {
    min-width: 0;
}
.nom035-guia-i-indicador__encabezado {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-wrap: wrap;
}
.nom035-guia-i-indicador__encabezado h2 {
    margin: 0;
    font-size: 1rem;
}
.nom035-guia-i-indicador.is-pendiente .nom035-guia-i-indicador__encabezado h2 span {
    color: var(--warn);
}
.nom035-guia-i-indicador.is-activa .nom035-guia-i-indicador__encabezado h2 span {
    color: var(--success);
}
.nom035-guia-i-indicador__numeral {
    color: var(--ink-soft);
    font-family: var(--font-mono);
    font-size: 0.72rem;
}
.nom035-guia-i-indicador p {
    margin: 0.45rem 0 0;
}
.nom035-guia-i-indicador__detalle {
    font-size: 0.82rem;
}
.nom035-guia-i-indicador__accion {
    flex-shrink: 0;
}
.nom035-guia-i-indicador__accion form {
    margin: 0;
}

.nom035-evaluacion-anticipada {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.25rem;
    margin-top: 1rem;
    padding: 1rem 1.15rem;
    background: var(--warn-bg);
    border: 1px solid var(--warn);
    border-left: 4px solid var(--warn);
    border-radius: var(--radius-sm);
}
.nom035-evaluacion-anticipada__contenido {
    min-width: 0;
}
.nom035-evaluacion-anticipada__encabezado {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-wrap: wrap;
}
.nom035-evaluacion-anticipada__encabezado h2 {
    margin: 0;
    font-size: 1rem;
}
.nom035-evaluacion-anticipada p {
    margin: 0.45rem 0 0;
}
.nom035-evaluacion-anticipada__detalle {
    font-size: 0.82rem;
}
.nom035-evaluacion-anticipada__accion {
    flex-shrink: 0;
}
.nom035-evaluacion-anticipada__accion form {
    margin: 0;
}
.nom035-reevaluacion {
    background: var(--success-bg);
    border-color: var(--success);
    border-left-color: var(--success);
}

.lft132-indicador {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.25rem;
    margin-top: 1.25rem;
    padding: 1rem 1.15rem;
    background: var(--paper);
    border: 1px dashed var(--line-strong);
    border-top: 4px solid var(--ink-soft);
    border-radius: var(--radius-sm);
}
.lft132-indicador.is-proceso {
    border-top-color: var(--warn);
}
.lft132-indicador.is-vigente {
    border-top-color: var(--success);
}
.lft132-indicador__contenido {
    min-width: 0;
}
.lft132-indicador__encabezado {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-wrap: wrap;
}
.lft132-indicador__encabezado h2 {
    margin: 0;
    font-size: 1rem;
}
.lft132-indicador.is-pendiente .lft132-indicador__encabezado h2 span {
    color: var(--ink-soft);
}
.lft132-indicador.is-proceso .lft132-indicador__encabezado h2 span {
    color: var(--warn);
}
.lft132-indicador.is-vigente .lft132-indicador__encabezado h2 span {
    color: var(--success);
}
.lft132-indicador__numeral {
    color: var(--ink-soft);
    font-family: var(--font-mono);
    font-size: 0.72rem;
}
.lft132-indicador p {
    margin: 0.45rem 0 0;
}
.lft132-indicador__detalle {
    font-size: 0.82rem;
}
.lft132-indicador__accion {
    flex-shrink: 0;
}
.badge-lft {
    background: var(--ink);
    color: var(--paper);
}
.lft132-denuncia-cta {
    margin: 1rem 0;
    padding: 1rem 1.1rem;
    border: 1px dashed var(--line-strong);
    border-radius: var(--radius-sm);
}
.lft132-denuncia-cta__encabezado {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-wrap: wrap;
}
.lft132-denuncia-cta__encabezado h2 {
    margin: 0;
    font-size: 1rem;
}
.lft132-denuncia-cta p {
    margin: 0.45rem 0 0;
}

.denuncia-publica {
    width: min(680px, calc(100% - 2rem));
    margin: 2rem auto;
}
.denuncia-publica__header {
    margin-bottom: 1.25rem;
}
.denuncia-publica__header h1 {
    margin: 0.2rem 0 0.5rem;
}
.denuncia-publica__eyebrow {
    margin: 0;
    color: var(--ooh);
    font-family: var(--font-mono);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.denuncia-publica__limite {
    line-height: 1.55;
}
.denuncia-publica__form fieldset {
    margin: 0 0 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
}
.denuncia-publica__form fieldset label {
    display: block;
    margin: 0.45rem 0;
}
.denuncia-publica__aviso {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
    margin: 1rem 0;
    line-height: 1.45;
}
.denuncia-publica__aviso input {
    width: auto;
    margin-top: 0.25rem;
}
.denuncia-publica__recibo code {
    overflow-wrap: anywhere;
}
.denuncia-publica__token {
    display: block;
    padding: 0.65rem;
    background: var(--paper-dim);
}
.denuncia-publica__respuesta,
.denuncia-panel-relato {
    padding: 1rem;
    background: var(--paper-dim);
    border-left: 4px solid var(--ooh);
    border-radius: var(--radius-sm);
}
.denuncia-honeypot {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
}
.denuncia-panel-datos {
    display: grid;
    grid-template-columns: minmax(110px, auto) 1fr;
    gap: 0.45rem 1rem;
}
.denuncia-panel-datos dt {
    font-weight: 600;
}
.denuncia-panel-datos dd {
    margin: 0;
}

.nom035-tablero-secciones {
    display: grid;
    gap: 0.85rem;
    margin-top: 1.25rem;
}
.nom035-tablero-seccion__summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    cursor: pointer;
    list-style: none;
    padding: 0.25rem 0;
}
.nom035-tablero-seccion__summary::-webkit-details-marker {
    display: none;
}
.nom035-tablero-seccion__titulo {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.nom035-tablero-seccion__progreso {
    font-family: var(--font-mono);
    font-size: 0.82rem;
    color: var(--ink-soft);
    white-space: nowrap;
}
.nom035-tablero-seccion__tarjetas {
    margin-top: 0.75rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--line);
}

@media (max-width: 640px) {
    .nom035-item-card__head { flex-direction: column; align-items: flex-start; }
    .nom035-tablero-seccion__summary { align-items: flex-start; }
    .nom035-guia-i-indicador { align-items: flex-start; flex-direction: column; }
    .nom035-evaluacion-anticipada { align-items: flex-start; flex-direction: column; }
    .lft132-indicador { align-items: flex-start; flex-direction: column; }
    .nom035-progress-ring { width: 3.75rem; height: 3.75rem; }
    .nom035-progress-ring__inner { width: 2.75rem; height: 2.75rem; font-size: 0.95rem; }
}


