@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@700;800&display=swap');

:root {
    font-family: 'DM Sans', 'Segoe UI', sans-serif;
    color: #24324b;
    background: #090979;
    --lila: #9c26bc;
    --azul: #090979;
    --turquesa: #11fdf5;
    --naranja: #ffc876;
    --celeste: #0ebde8;
    --beige: #090979;
    --navy: #090979;
    --navy-soft: #090979;
    --gold: #ffc876;
    --gold-light: #ffc876;
    --ink-soft: #5e6684;
    --line: #e6cdb7;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body { background: #090979; }
a { color: var(--lila); text-decoration: none; }
a:hover { color: var(--azul); text-decoration: underline; }

.app-shell { min-height: 100vh; }
.app-body { display: flex; align-items: stretch; min-height: calc(100vh - 68px); }
.app-body > .content { flex: 1; min-width: 0; }
.app-header { height: 74px; display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(1.25rem, 5vw, 5rem); color: #fff; background: linear-gradient(100deg, var(--azul), var(--lila)); box-shadow: 0 4px 20px rgba(9, 9, 121, .22); }
.brand { display: flex; align-items: center; gap: .7rem; color: #fff; font-family: Manrope, sans-serif; font-weight: 800; letter-spacing: -.02em; }
.brand::before { content: '✦'; display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid rgba(255,255,255,.45); border-radius: 4px; color: var(--turquesa); font-size: .9rem; }
.user-area { display: flex; align-items: center; gap: 1.25rem; color: #dce8f2; font-size: .88rem; }
.link-button { border: 1px solid rgba(255,255,255,.3); border-radius: 4px; padding: .48rem .75rem; color: #fff; background: transparent; cursor: pointer; font: inherit; transition: .2s ease; }
.link-button:hover { background: rgba(255,255,255,.1); }
.content { min-height: calc(100vh - 74px); }

.auth-page { position: relative; isolation: isolate; min-height: 100vh; display: grid; place-items: center; overflow: hidden; padding: 3rem 1.5rem; background: linear-gradient(135deg, #090979 0%, #9c26bc 52%, #0ebde8 100%); }
.auth-page::before, .auth-page::after { content: ''; position: absolute; z-index: -1; border-radius: 50%; filter: blur(1px); }
.auth-page::before { width: 34rem; height: 34rem; right: -13rem; top: -13rem; background: rgba(14,189,232,.16); }
.auth-page::after { width: 24rem; height: 24rem; left: -10rem; bottom: -10rem; background: rgba(255,200,118,.3); }
.auth-card { position: relative; width: min(100%, 470px); padding: clamp(2rem, 5vw, 3.25rem); background: rgba(255,255,255,.94); border: 1px solid rgba(255,255,255,.8); border-radius: 4px; box-shadow: 0 28px 70px rgba(16,42,67,.14); backdrop-filter: blur(10px); }
.auth-card::before { content: ''; position: absolute; top: 0; left: 2.5rem; right: 2.5rem; height: 4px; border-radius: 0 0 4px 4px; background: linear-gradient(90deg, var(--lila), var(--celeste), var(--turquesa)); }
.auth-heading { margin-bottom: 2rem; }
.auth-help-icon { display: block; width: 128px; height: 128px; margin: 0 auto 1rem; object-fit: contain; filter: drop-shadow(0 10px 18px rgba(9,9,121,.18)); }
.auth-heading h1, .welcome-card h1 { margin: .55rem 0 .7rem; color: var(--navy); font-family: Manrope, sans-serif; font-size: clamp(1.7rem, 4vw, 2.15rem); letter-spacing: -.045em; }
.auth-heading h1:focus, .welcome-card h1:focus { outline: none; }
.auth-heading p, .welcome-card p { color: var(--ink-soft); margin: 0; line-height: 1.6; }
.eyebrow { color: var(--lila); font-size: .7rem; font-weight: 700; letter-spacing: .17em; }
form { display: grid; gap: 1.05rem; }
label { display: grid; gap: .45rem; color: #40536d; font-size: .84rem; font-weight: 700; }
input { width: 100%; padding: .86rem .95rem; border: 1px solid #cbd7e3; border-radius: 4px; color: #25344d; background: #fbfcfd; font: inherit; transition: border-color .2s, box-shadow .2s, background .2s; }
input::placeholder { color: #a2afbf; }
input:hover { border-color: #aebdcd; }
input:focus { outline: none; border-color: var(--celeste); background: #fff; box-shadow: 0 0 0 4px rgba(14,189,232,.18); }
input[type=file] { width: 100%; padding: .42rem; border: 1px dashed #cdb2d7; border-radius: 4px; color: #40536d; background: #fff; cursor: pointer; }
input[type=file]::file-selector-button { margin-right: .65rem; padding: .48rem .78rem; border: 0; border-radius: 4px; color: #fff; background: #9c26bc; font: inherit; font-size: .76rem; font-weight: 800; cursor: pointer; transition: background .2s, transform .2s; }
input[type=file]::file-selector-button:hover { background: #090979; transform: translateY(-1px); }
input[type=file]::-webkit-file-upload-button { margin-right: .65rem; padding: .48rem .78rem; border: 0; border-radius: 4px; color: #fff; background: #9c26bc; font: inherit; font-size: .76rem; font-weight: 800; cursor: pointer; }
input[type=file]:focus { outline: none; border-color: #0ebde8; box-shadow: 0 0 0 4px rgba(14,189,232,.16); }
.primary { border: 0; border-radius: 4px; padding: .9rem 1rem; color: var(--azul); background: linear-gradient(135deg, var(--naranja), #ffe0a8); box-shadow: 0 8px 18px rgba(255,174,74,.25); font: inherit; font-weight: 700; cursor: pointer; transition: transform .2s, box-shadow .2s, filter .2s; }
.primary:hover { filter: brightness(.97); transform: translateY(-1px); box-shadow: 0 11px 22px rgba(255,174,74,.35); }
.full { width: 100%; margin-top: .55rem; }
.notice { padding: .8rem .9rem; border-radius: 4px; font-size: .85rem; line-height: 1.45; }
.notice.error { color: #8b2635; background: #fff1f2; border: 1px solid #f4cbd1; }
.notice.success { color: #21653d; background: #edf9f1; border: 1px solid #c5e6d0; }
.auth-footer { margin: 1.7rem 0 0; color: var(--ink-soft); text-align: center; font-size: .88rem; }
.welcome-card { width: min(100% - 3rem, 850px); margin: 5rem auto; padding: clamp(2rem, 5vw, 4rem); background: #fff; border: 1px solid var(--line); border-radius: 4px; box-shadow: 0 18px 45px rgba(16,42,67,.08); }
.welcome-card h1 { font-size: clamp(1.8rem, 4vw, 2.7rem); }
.home-action { display: inline-block; margin-top: 1.8rem; }
.home-actions { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.secondary-link { color: var(--lila); font-weight: 700; }
.audit-page, .profile-page, .module-page { min-height: calc(100vh - 74px); padding: clamp(1.5rem, 4vw, 3.5rem) clamp(1rem, 4vw, 4rem); background: linear-gradient(135deg, #090979 0%, #9c26bc 52%, #0ebde8 100%); }
.audit-hero, .profile-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; max-width: 1180px; margin: 0 auto 2rem; }
.audit-hero h1, .profile-heading h1 { margin: .45rem 0 .65rem; color: var(--azul); font-family: Manrope, sans-serif; font-size: clamp(1.8rem, 4vw, 2.7rem); letter-spacing: -.045em; }
.audit-hero p, .profile-heading p { max-width: 680px; margin: 0; color: var(--ink-soft); line-height: 1.6; }
.audit-stats { display: grid; grid-template-columns: repeat(4, 1fr); max-width: 1180px; margin: 0 auto 2.5rem; padding: 1rem; background: rgba(255,255,255,.7); border: 1px solid var(--line); border-radius: 4px; }
.audit-stats div { display: grid; gap: .25rem; padding: .65rem 1.2rem; border-right: 1px solid var(--line); }
.audit-stats div:last-child { border-right: 0; }
.audit-stats strong { color: var(--lila); font-family: Manrope, sans-serif; font-size: 1.7rem; }
.audit-stats span { color: var(--ink-soft); font-size: .78rem; }
.audit-section-heading { display: flex; align-items: end; justify-content: space-between; max-width: 1180px; margin: 0 auto 1rem; }
.audit-section-heading h2 { margin: .35rem 0 0; color: var(--azul); font-family: Manrope, sans-serif; }
.pillar-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; max-width: 1180px; margin: auto; }
.pillar-card, .module-links a, .module-grid a, .questions-card { background: #fff; border: 1px solid var(--line); border-radius: 4px; box-shadow: 0 10px 25px rgba(9,9,121,.06); }
.pillar-card { padding: 1.25rem; }
.pillar-code { color: var(--lila); font-size: .72rem; font-weight: 800; letter-spacing: .12em; }
.pillar-card h3 { margin: .55rem 0 .45rem; color: var(--azul); font-size: 1rem; }
.pillar-card p { min-height: 3.1rem; margin: 0 0 1rem; color: var(--ink-soft); font-size: .82rem; line-height: 1.45; }
.pillar-progress, .completion-bar { height: 7px; overflow: hidden; border-radius: 4px; background: #e8edf2; }
.pillar-progress span, .completion-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--lila), var(--celeste), var(--turquesa)); }
.pillar-card footer { display: flex; justify-content: space-between; gap: .5rem; margin-top: .75rem; color: var(--ink-soft); font-size: .75rem; }
.pillar-card footer a { color: var(--lila); font-weight: 700; }
.module-links, .module-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; max-width: 1180px; margin: 2rem auto 0; }
.module-grid { grid-template-columns: repeat(2, 1fr); max-width: 900px; margin: 0; }
.module-links a, .module-grid a { display: grid; gap: .45rem; padding: 1.25rem; color: inherit; transition: transform .2s, border-color .2s; }
.module-links a:hover, .module-grid a:hover { border-color: var(--celeste); transform: translateY(-2px); text-decoration: none; }
.module-links strong, .module-grid strong { color: var(--azul); }
.module-links span, .module-grid span { color: var(--ink-soft); font-size: .8rem; line-height: 1.45; }
.completion-badge { padding: .5rem .8rem; border-radius: 4px; color: var(--azul); background: #dff8fb; font-size: .8rem; font-weight: 800; }
.completion-bar { max-width: 1180px; margin: -1rem auto 1.5rem; }
.questions-card { max-width: 1180px; margin: auto; padding: 1rem 1.3rem; }
.profile-config-card { max-width: 1180px; margin: 0 auto 1rem; padding: 1.1rem 1.3rem; display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; background: #fff; border: 1px solid var(--line); border-radius: 4px; box-shadow: 0 10px 25px rgba(9,9,121,.06); }
.profile-config-card h2 { margin: .2rem 0; color: var(--blue); font-size: 1.15rem; }
.profile-config-card p { margin: 0; color: #66758b; font-size: .82rem; }
.profile-config-fields { display: flex; align-items: end; gap: 1.25rem; min-width: 430px; }
.profile-config-fields label:not(.check-field) { flex: 1; color: var(--blue); font-size: .75rem; font-weight: 700; }
.profile-config-fields input:not([type=checkbox]) { display: block; width: 100%; margin-top: .35rem; padding: .58rem .7rem; border: 1px solid #cbd8e8; border-radius: 4px; color: var(--blue); }
.check-field { display: flex; align-items: center; gap: .45rem; white-space: nowrap; color: var(--blue); font-size: .82rem; font-weight: 700; }
.question-text { flex: 1; }
.answer-check { display: flex; align-items: center; justify-content: flex-end; gap: .55rem; min-width: 145px; color: #090979; font-size: .85rem; font-weight: 800; cursor: pointer; }
.answer-check input { width: 1.2rem; height: 1.2rem; accent-color: #9c26bc; cursor: pointer; }
.answer-check input:disabled { cursor: not-allowed; opacity: .5; }
.question-head { display: grid; grid-template-columns: 1fr 145px; gap: 1rem; padding: .7rem .25rem; color: var(--lila); border-bottom: 2px solid var(--line); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.select-all-check { display: flex; align-items: center; justify-content: flex-end; gap: .4rem; color: var(--lila); cursor: pointer; white-space: nowrap; }
.select-all-check input { width: 1.1rem; height: 1.1rem; accent-color: var(--lila); cursor: pointer; }
.question-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem .25rem; border-bottom: 1px solid #edf1f5; color: #40536d; font-size: .84rem; }
.question-row:last-of-type { border-bottom: 0; }
.question-row select { width: 145px; padding: .55rem .65rem; }
.module-page .empty-state { max-width: 900px; margin: 2rem auto; }
.empty-state { padding: 3.5rem 1.5rem; text-align: center; background: rgba(255,255,255,.82); border: 1px solid var(--line); border-radius: 4px; box-shadow: 0 12px 30px rgba(9,9,121,.06); }
.empty-state h1, .empty-state h2 { color: var(--azul); font-family: Manrope, sans-serif; }
.empty-state p { max-width: 580px; margin: 0 auto 1.5rem; color: var(--ink-soft); line-height: 1.55; }
.empty-icon { display: grid; place-items: center; width: 48px; height: 48px; margin: 0 auto 1rem; border-radius: 50%; color: var(--azul); background: var(--naranja); font-size: 1.5rem; font-weight: 700; }
.company-page { min-height: calc(100vh - 74px); padding: 0 clamp(1rem, 4vw, 4rem) 3rem; background: linear-gradient(135deg, #090979 0%, #9c26bc 52%, #0ebde8 100%); }
.company-tabs { display: flex; gap: clamp(1rem, 2.3vw, 2.4rem); overflow-x: auto; border-bottom: 1px solid var(--line); white-space: nowrap; }
.company-selector { max-width: 1380px; margin: 1rem auto 0; padding: .8rem 1rem; display: flex; align-items: center; gap: 1rem; background: #fff; border: 1px solid var(--line); border-radius: 4px; box-shadow: 0 6px 18px rgba(9,9,121,.05); }
.company-selector div { display: flex; flex-direction: column; gap: .12rem; margin-right: auto; color: var(--blue); font-size: .85rem; }
.company-selector select { min-width: 320px; padding: .55rem .7rem; border: 1px solid #cbd8e8; border-radius: 4px; color: var(--blue); background: #fff; }
.secondary { padding: .58rem .9rem; border: 1px solid var(--lila); border-radius: 4px; background: #fff; color: var(--lila); font-weight: 700; cursor: pointer; }
.company-tabs a, .company-tabs span { position: relative; padding: 1.25rem 0 1rem; color: #60728b; font-size: .85rem; }
.company-tabs a.active { color: var(--lila); font-weight: 700; }
.company-tabs a.active::after { content: ''; position: absolute; right: 0; bottom: -1px; left: 0; height: 3px; border-radius: 3px 3px 0 0; background: linear-gradient(90deg, var(--lila), var(--turquesa)); }
.company-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; max-width: 1180px; margin: 2.2rem auto 1.35rem; }
.company-heading h1 { margin: .35rem 0 .45rem; color: var(--navy); font-family: Manrope, sans-serif; font-size: clamp(1.6rem, 3vw, 2.25rem); letter-spacing: -.04em; }
.company-heading p { margin: 0; color: var(--ink-soft); }
.status-badge { padding: .45rem .75rem; border-radius: 4px; color: #21653d; background: #eaf7ef; font-size: .78rem; font-weight: 700; }
.company-form { max-width: 1180px; margin: 0 auto; padding: clamp(1.25rem, 3vw, 2.3rem); background: #fff; border: 1px solid var(--line); border-radius: 4px; box-shadow: 0 12px 32px rgba(16,42,67,.055); }
.form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 1.15rem; row-gap: 1.05rem; }
.form-grid label { min-width: 0; gap: .3rem; font-size: .77rem; }
.field-caption { display: inline-flex; align-items: center; gap: .28rem; min-height: 1.1rem; }
.info-help { position: relative; display: inline-grid; place-items: center; width: 16px; height: 16px; padding: 0; border: 1px solid var(--celeste); border-radius: 50%; color: var(--azul); background: #e7fbfd; font-family: Georgia, serif; font-size: .68rem; font-weight: 700; line-height: 1; cursor: help; }
.info-help:hover, .info-help:focus-visible { color: #fff; background: var(--lila); border-color: var(--lila); outline: none; }
.form-grid input, .form-grid select, .form-grid textarea { padding: .62rem .75rem; border-radius: 4px; font-size: .82rem; }
.form-grid em, .company-actions em { color: var(--lila); font-style: normal; }
.form-grid small { margin-top: -.12rem; color: var(--ink-soft); font-size: .68rem; font-weight: 500; }
select { width: 100%; padding: .62rem .75rem; border: 1px solid #cbd7e3; border-radius: 4px; color: #25344d; background: #fbfcfd; font: inherit; font-size: .82rem; }
select:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 4px rgba(200,148,62,.15); }
.company-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2rem; padding-top: 1.35rem; border-top: 1px solid #edf1f5; color: var(--ink-soft); font-size: .78rem; }
@media (max-width: 1050px) { .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .form-grid { grid-template-columns: 1fr; } .company-heading { align-items: start; flex-direction: column; } .company-tabs { gap: 1.25rem; } .company-actions { align-items: stretch; flex-direction: column; } }
@media (max-width: 900px) { .pillar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .audit-stats { grid-template-columns: repeat(2, 1fr); } .audit-stats div:nth-child(2) { border-right: 0; } .module-links { grid-template-columns: 1fr; } }
@media (max-width: 800px) { .profile-config-card, .profile-config-fields { align-items: stretch; flex-direction: column; min-width: 0; } }
@media (max-width: 700px) { .company-selector { align-items: stretch; flex-direction: column; } .company-selector select { min-width: 0; width: 100%; } }
@media (max-width: 600px) { .audit-hero, .profile-heading, .audit-section-heading { align-items: start; flex-direction: column; } .pillar-grid, .module-grid { grid-template-columns: 1fr; } .audit-stats { grid-template-columns: 1fr 1fr; } .audit-stats div { padding: .6rem; } .question-row { align-items: start; flex-direction: column; } .question-row select { width: 100%; } }
@media (max-width: 600px) { .question-head { grid-template-columns: 1fr; gap: .2rem; } }
#blazor-error-ui { display: none; }

/* Paleta Elixir Software ampliada aplicada a APDIA. */
:root {
    --lila: #7226b9;
    --azul: #121080;
    --turquesa: #00c9b7;
    --naranja: #ff963d;
    --celeste: #16b6dc;
    --beige: #f3ddc8;
    --navy: #121080;
    --navy-soft: #2d3fa3;
    --gold: #ffc76e;
    --gold-light: #ffe28a;
    --ink-soft: #4b5563;
    --line: #e6e6e6;
}
.app-header { background: linear-gradient(100deg, #121080 0%, #121080 68%, #7226b9 100%); }
.auth-page, .audit-page, .profile-page, .module-page, .company-page, .home-dashboard { background: linear-gradient(135deg, #f5f3f0 0%, #f3ddc8 100%); }
.auth-page::before { background: rgba(22,182,220,.18); }
.auth-page::after { background: rgba(255,150,61,.22); }
.auth-card::before { background: linear-gradient(90deg, #121080, #16b6dc, #00c9b7); }
.primary { color: #121080; background: #ffc76e; box-shadow: 0 8px 18px rgba(255,150,61,.28); }
.primary:hover { color: #fff; background: #ff963d; box-shadow: 0 11px 22px rgba(255,150,61,.35); }
.eyebrow, .secondary-link, .pillar-code, .pillar-card footer a { color: #7226b9; }
.audit-hero h1, .profile-heading h1, .audit-section-heading h2, .pillar-card h3, .module-links strong, .module-grid strong, .company-heading h1, .empty-state h1, .empty-state h2, .welcome-card h1, .home-intro h1 { color: #121080; }
.audit-stats strong { color: #7226b9; }
.pillar-progress span, .completion-bar span { background: linear-gradient(90deg, #121080, #16b6dc, #00c9b7); }
.company-tabs a.active { color: #7226b9; }
.company-tabs a.active::after { background: linear-gradient(90deg, #7226b9, #00c9b7); }
.question-head { color: #7226b9; border-bottom-color: #e6e6e6; }
.info-help { color: #121080; border-color: #16b6dc; background: #e6e6e6; }
.info-help:hover, .info-help:focus-visible { background: #7226b9; border-color: #7226b9; }
input:focus, select:focus { border-color: #16b6dc; box-shadow: 0 0 0 4px rgba(22,182,220,.18); }
.company-selector, .company-menu-card { border-top-color: #7226b9; }
.secondary { border-color: #7226b9; color: #7226b9; }
.secondary:hover { color: #fff; background: #7226b9; }
.status-badge, .completion-badge { color: #121080; background: #00e6e6; }
.company-count { color: #121080; background: #00c9b7; }
.rule-state { color: #121080; background: #76e7d2; }
.risk-tag { color: #121080; background: #ffc76e; }
.risk-tag.crítico, .risk-tag.critico { color: #fff; background: #a927c4; }
.risk-tag.bajo { background: #b7e249; }
.transfer-table-card th { color: #7226b9; border-bottom-color: #e6e6e6; }
.delete-button { color: #a927c4; }

/* Perfil PDP compacto: las preguntas se muestran sin separadores. */
.questions-card .question-row { padding: .58rem .25rem; border-bottom: 0; }
.questions-card .question-head { border-bottom: 0; padding-bottom: .55rem; }
.pdp-questions-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; }
.pdp-questions-grid .question-row { min-width: 0; }
.pdp-questions-grid .answer-check { min-width: 0; flex-shrink: 0; }
@media (max-width: 900px) { .pdp-questions-grid { grid-template-columns: 1fr; } }
.company-menu-main { flex: 1; min-width: 0; }
.company-progress-heading { display: flex; align-items: center; justify-content: space-between; max-width: 520px; margin-top: .8rem; color: #4b5563; font-size: .72rem; }
.company-progress-heading strong { color: #121080; font-size: .82rem; }
.company-progress { max-width: 520px; height: .42rem; margin-top: .28rem; overflow: hidden; border-radius: 4px; background: #e6e6e6; }
.company-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #121080, #16b6dc, #00c9b7); transition: width .25s ease; }
.company-menu-main small { display: block; margin-top: .35rem; color: #4b5563; font-size: .7rem; }
.password-help { display: block; margin: -.65rem 0 1rem; color: #4b5563; font-size: .76rem; }
button:disabled { cursor: wait; opacity: .65; }
.admin-page { max-width: 1220px; margin: 0 auto; }
.admin-users-card { margin-top: 1.25rem; overflow: hidden; }
.admin-users-card table { min-width: 0; table-layout: fixed; }
.admin-users-card th:nth-child(1) { width: 15%; }
.admin-users-card th:nth-child(2) { width: 13%; }
.admin-users-card th:nth-child(3) { width: 21%; }
.admin-users-card th:nth-child(4) { width: 12%; }
.admin-users-card th:nth-child(5) { width: 7%; }
.admin-users-card th:nth-child(6) { width: 9%; }
.admin-users-card th:nth-child(7) { width: 23%; }
.admin-users-card td { vertical-align: middle; overflow-wrap: anywhere; }
.admin-actions { white-space: normal; }
.admin-action-list { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; }
.admin-action-list .delete-button { padding: .42rem .55rem; border: 1px solid transparent; border-radius: 4px; font-size: .72rem; font-weight: 700; }
.admin-action-list .delete-button:hover { border-color: #a927c4; background: #fbf0fd; }
.small-button { padding: .42rem .65rem; font-size: .72rem; }
.admin-protected, .admin-note { color: #4b5563; font-size: .75rem; }
.admin-note { margin: 1rem 1.1rem 0; }
.user-edit-card { max-width: 1180px; margin: 1.25rem auto 0; padding: 1.35rem 1.5rem; background: linear-gradient(135deg, #fff 0%, #fffafe 100%); border: 1px solid #dcc9e3; border-top: 3px solid #9c26bc; border-radius: 4px; box-shadow: 0 12px 28px rgba(9,9,121,.08); }
.user-edit-header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.user-edit-card h2 { margin: .2rem 0 0; color: #090979; font-size: 1.15rem; }
.user-role-badge { padding: .35rem .65rem; border-radius: 4px; color: #090979; background: #e7fbfd; font-size: .72rem; font-weight: 800; }
.user-edit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.user-edit-grid label { display: grid; gap: .35rem; color: #40536d; font-size: .78rem; font-weight: 700; }
.user-edit-grid input { padding: .62rem .75rem; font-size: .82rem; }
.user-permission-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.15rem; padding: .85rem 1rem; border: 1px solid #e5d4eb; border-radius: 4px; background: #fbf7fd; }
.user-permission-row strong, .user-permission-row small { display: block; }
.user-permission-row strong { color: #090979; font-size: .78rem; }
.user-permission-row small { margin-top: .2rem; color: #5e6684; font-size: .7rem; font-weight: 400; }
.user-permission-row .user-admin-checkbox { display: flex; align-items: center; gap: .5rem; color: #090979; font-size: .78rem; cursor: pointer; }
.user-permission-row .user-admin-checkbox input { width: 1.05rem; height: 1.05rem; accent-color: #9c26bc; }
.user-edit-actions { display: flex; gap: .7rem; margin-top: 1rem; }
.user-edit-actions .secondary { padding: .72rem 1rem; }
@media (max-width: 760px) { .user-edit-grid { grid-template-columns: 1fr; } .user-permission-row { align-items: stretch; flex-direction: column; } .user-edit-actions { flex-direction: column; } }
.attachment-table-card { margin-top: 1.25rem; }
.attachment-row { cursor: pointer; transition: background .15s ease; }
.attachment-row:hover { background: #f8f2fb; }
.attachment-pillar { display: inline-block; color: #9c26bc; font-weight: 800; font-size: .72rem; letter-spacing: .06em; }
.attachment-name { color: #090979; font-weight: 700; text-decoration: underline; text-decoration-color: #0ebde8; text-underline-offset: 3px; }
.question-admin-card form { display: grid; gap: .8rem; }
.question-admin-card textarea { width: 100%; padding: .75rem; border: 1px solid #cbd7e3; border-radius: 4px; color: #25344d; font: inherit; resize: vertical; }
.question-admin-card .field-help { color: #66758b; font-size: .75rem; }
.multi-select { position: relative; min-width: 240px; color: #25344d; font-size: .78rem; }
.multi-select summary { padding: .58rem .65rem; overflow: hidden; border: 1px solid #cbd7e3; border-radius: 4px; background: #fbfcfd; cursor: pointer; list-style: none; white-space: nowrap; text-overflow: ellipsis; }
.multi-select summary::-webkit-details-marker { display: none; }
.multi-select-options { position: absolute; z-index: 5; top: calc(100% + .25rem); left: 0; width: 290px; max-height: 230px; overflow-y: auto; padding: .55rem; border: 1px solid #dcc9e3; border-radius: 4px; background: #fff; box-shadow: 0 10px 24px rgba(9,9,121,.15); }
.multi-select-options label { display: flex; align-items: center; gap: .45rem; padding: .35rem .2rem; color: #40536d; font-size: .75rem; font-weight: 600; }
.multi-select-options .select-all-option { padding-bottom: .55rem; margin-bottom: .25rem; border-bottom: 1px solid #dcc9e3; color: #9c26bc; font-weight: 800; }
.multi-select-options input { width: 1rem; height: 1rem; accent-color: #9c26bc; }
.question-admin-settings { display: flex; align-items: end; gap: 1rem; }
.question-admin-settings label:first-child { flex: 1; }
.question-admin-settings input:not([type=checkbox]) { display: block; width: 100%; margin-top: .35rem; padding: .62rem .75rem; border: 1px solid #cbd7e3; border-radius: 4px; }
.criterion-form-card { max-width: 1180px; }
.criterion-filter { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; border-bottom: 1px solid #edf1f5; }
.criterion-filter label { display: flex; align-items: center; gap: .7rem; min-width: min(520px, 100%); color: #40536d; font-size: .78rem; font-weight: 700; }
.criterion-filter select { margin-left: auto; max-width: 360px; }
.criterion-filter-summary { display: flex; align-items: center; gap: .8rem; color: #090979; font-size: .82rem; }
.criterion-filter-summary strong { color: #9c26bc; }
.criterion-filter-summary span { padding: .35rem .65rem; border-radius: 4px; background: #e8fbfb; color: #087d86; font-weight: 700; }
.domain-control-filter { align-items: flex-end; flex-wrap: wrap; }
.domain-control-filter label { flex: 1 1 260px; align-items: stretch; flex-direction: column; gap: .4rem; }
.domain-control-filter select { max-width: none; margin-left: 0; }
.domain-control-detail { margin: 1.1rem; padding: 1.2rem; border: 1px solid #bde9e5; border-radius: 4px; background: linear-gradient(135deg, #f4fffe, #fff); }
.domain-control-detail-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.domain-control-detail h2 { margin: .25rem 0 .35rem; color: #090979; }
.domain-control-detail-heading p { margin: 0; color: #40536d; line-height: 1.55; }
.domain-control-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.domain-control-detail-grid div { padding: .8rem; border-radius: 4px; background: #fff; border: 1px solid #edf1f5; }
.domain-control-detail-grid span { color: #9c26bc; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.domain-control-detail-grid p { margin: .4rem 0 0; color: #40536d; white-space: pre-line; line-height: 1.45; }
.domain-control-empty { margin: 1.1rem; padding: 1.2rem; border: 1px dashed #b9cbd8; border-radius: 4px; color: #60758a; text-align: center; }
.domain-selection-summary { display: flex; align-items: center; gap: .7rem; margin: 0 1.1rem .85rem; padding: .7rem .9rem; border: 1px solid #dbe7ee; border-left: 3px solid #00c9b7; border-radius: 4px; background: linear-gradient(100deg, #f5fcfc, #fff); color: #5e6684; font-size: .78rem; }
.domain-selection-summary strong { color: #090979; font-size: .82rem; }
.domain-selection-summary span { margin-left: auto; color: #087d86; font-size: .72rem; font-weight: 700; }
.domain-config-page { background: linear-gradient(135deg, #f5f3f0 0%, #fff 58%, #f3ddc8 100%); }
.domain-config-page > .admin-page { max-width: 1280px; margin: 0 auto; }
.domain-mode-tabs { display: flex; gap: .35rem; width: fit-content; margin: 0 auto 1.35rem; padding: .3rem; border: 1px solid #dce7ed; border-radius: 4px; background: #fff; box-shadow: 0 7px 18px rgba(18,16,128,.08); }
.domain-mode-tabs a { display: inline-flex; align-items: center; gap: .45rem; padding: .65rem 1.4rem; border-radius: 4px; color: #4b5563; font-size: .82rem; font-weight: 800; }
.domain-mode-tabs a:hover { color: #121080; text-decoration: none; background: #f0fcf9; }
.domain-mode-tabs a.active { color: #fff; background: #121080; box-shadow: 0 5px 12px rgba(18,16,128,.2); }
.domain-mode-tabs a span { color: #00e6e6; font-size: 1rem; }
.domain-mode-tabs a.active span { color: #ffc76e; }
.domain-config-page .profile-heading, .pillar-workspace .profile-heading { align-items: center; margin-bottom: 1rem; padding-bottom: 1rem; border-bottom: 1px solid #e5eaf0; }
.domain-config-page .profile-heading h1, .pillar-workspace .profile-heading h1 { margin: .25rem 0 .4rem; font-size: clamp(1.9rem, 3.4vw, 2.55rem); }
.domain-config-page .profile-heading p, .pillar-workspace .profile-heading p { max-width: 760px; line-height: 1.4; }
.domain-config-page .domain-mode-tabs, .pillar-workspace .domain-mode-tabs { margin-top: 0; }
.question-config-page { padding-top: 2rem; padding-bottom: 2rem; }
.question-config-page .profile-heading { margin-bottom: 1rem; }
.question-config-page .profile-heading h1 { margin-top: .3rem; margin-bottom: .35rem; }
.question-config-page .profile-heading p { line-height: 1.35; }
.question-config-page .special-card { margin-bottom: .8rem; padding: .9rem 1.1rem; }
.question-config-page .special-card h2 { margin-bottom: .7rem; font-size: 1.05rem; }
.question-config-page .question-admin-settings { gap: .75rem; }
.question-config-page .question-admin-settings input:not([type=checkbox]) { margin-top: .2rem; padding: .52rem .7rem; }
.question-config-page .question-admin-card form { gap: .65rem; }
.question-config-page .question-admin-card textarea { min-height: 4.2rem; padding: .55rem .7rem; }
.question-config-page .question-admin-card .multi-select { margin-top: -.25rem; }
.question-config-page .question-admin-card .primary { padding: .65rem .85rem; }
.question-config-page .transfer-table-card { margin-top: .8rem; }
.pillar-actions { display: grid; justify-items: end; gap: .7rem; }
.new-criterion-button { justify-self: end; }
.view-switch { display: inline-flex; gap: .2rem; padding: .2rem; border: 1px solid #ead0eb; border-radius: 4px; background: #fff; }
.view-switch a { padding: .45rem .8rem; border-radius: 4px; color: #9c26bc; font-size: .75rem; font-weight: 800; text-decoration: none; }
.view-switch a:hover, .view-switch a.active { color: #090979; background: #ffc876; }
.pillar-audit-meta { display: flex; align-items: center; gap: .8rem; max-width: 1180px; margin: 0 auto 1rem; color: #40536d; }
.pillar-audit-meta strong { color: #090979; }
.pillar-audit-meta > span:last-child { margin-left: auto; padding: .45rem .75rem; border-radius: 4px; background: #e8fbfb; color: #087d86; font-weight: 700; }
.pillar-label { padding: .3rem .55rem; border-radius: 4px; background: #f3deca; color: #9c26bc; font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
.xtc-governance-banner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; max-width: 1180px; margin: 0 auto 1rem; padding: .9rem 1rem; border: 1px solid #bde9ee; border-left: 4px solid #0ebde8; border-radius: 4px; background: linear-gradient(100deg, #f4fdfe, #fff8f1); }
.xtc-governance-banner div { display: grid; gap: .15rem; }
.xtc-governance-banner strong { color: #090979; font-size: .95rem; }
.xtc-governance-banner small { color: #5c6d87; font-size: .72rem; }
.xtc-rule { padding: .42rem .65rem; border-radius: 4px; color: #090979; background: #11fdf5; font-size: .7rem; font-weight: 800; white-space: nowrap; }
.audit-criteria-card { max-width: 1180px; margin: 0 auto; overflow: hidden; background: rgba(255,255,255,.88); border: 1px solid #ead0eb; border-radius: 4px; box-shadow: 0 12px 30px rgba(9,9,121,.08); }
.audit-criteria-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; border-bottom: 1px solid #ead0eb; }
.audit-criteria-toolbar div { display: grid; gap: .2rem; color: #090979; }
.audit-criteria-toolbar small { color: #5c6d87; }
.audit-criteria-toolbar input { width: min(360px, 100%); }
.criterion-state { display: inline-block; padding: .25rem .5rem; border-radius: 4px; font-size: .72rem; font-weight: 800; }
.criterion-state.active { background: #e3f6ec; color: #087d52; }
.criterion-state.inactive { background: #f4e7e7; color: #a23b3b; }
.audit-cell-value { display: inline-block; padding: .2rem .45rem; border-radius: 4px; background: #eef1f6; color: #40536d; font-size: .72rem; }
.evaluation-overlay { position: fixed; inset: 0; z-index: 20; display: flex; justify-content: flex-end; background: rgba(9,9,121,.34); }
.evaluation-panel { display: flex; flex-direction: column; width: min(620px, 96vw); height: 100%; background: #fff; box-shadow: -12px 0 35px rgba(9,9,121,.2); }
.evaluation-panel > header { display: flex; align-items: flex-start; justify-content: space-between; padding: 1.2rem 1.4rem; border-bottom: 1px solid #ead0eb; }
.evaluation-panel h2 { margin: .35rem 0 .2rem; color: #090979; }
.evaluation-panel header small { color: #5c6d87; }
.panel-close { border: 0; background: transparent; color: #40536d; font-size: 1.6rem; cursor: pointer; }
.evaluation-body { flex: 1; overflow-y: auto; padding: 1rem 1.4rem; }
.evaluation-objective { padding: .8rem; background: #eef1f6; border-radius: 4px; }
.evaluation-objective span, .evaluation-section > span { display: block; margin-bottom: .55rem; color: #9c26bc; font-size: .7rem; font-weight: 800; letter-spacing: .1em; }
.evaluation-objective p { margin: 0; color: #40536d; }
.evaluation-section { display: grid; gap: .7rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #ead0eb; }
.evaluation-section label { display: grid; gap: .3rem; color: #40536d; font-size: .76rem; font-weight: 700; }
.evaluation-section textarea { min-height: 72px; resize: vertical; }
.evaluation-section input[readonly] { background: #f5f6f9; }
.evaluation-section > small { color: #5c6d87; }
.evaluation-files { display: grid; gap: .35rem; }
.file-link { width: fit-content; border: 0; padding: 0; background: transparent; color: #9c26bc; text-decoration: underline; cursor: pointer; }
.evaluation-panel > footer { display: flex; justify-content: flex-end; gap: .7rem; padding: 1rem 1.4rem; border-top: 1px solid #ead0eb; }
@media (max-width: 700px) { .pillar-audit-meta, .audit-criteria-toolbar { align-items: stretch; flex-direction: column; } .pillar-audit-meta > span:last-child { margin-left: 0; } .audit-criteria-toolbar input { width: 100%; } }
@media (max-width: 700px) { .xtc-governance-banner { align-items: stretch; flex-direction: column; } .xtc-rule { width: fit-content; white-space: normal; } }
@media (max-width: 760px) { .question-admin-settings { align-items: stretch; flex-direction: column; } .criterion-filter { align-items: stretch; flex-direction: column; } .criterion-filter label { flex-direction: column; align-items: stretch; } .criterion-filter select { margin-left: 0; max-width: none; } }
.mail-config-page { max-width: 980px; margin: 0 auto; }
.mail-config-card { margin-top: 1.25rem; }
.mail-config-card h2 { margin-top: 0; color: #121080; }
.mail-test-card { margin-top: 1.25rem; }
.mail-test-card h2 { margin-top: 0; color: #121080; }
.mail-test-card form { display: flex; align-items: end; gap: 1rem; }
.mail-test-card label { flex: 1; }
@media (max-width: 700px) { .mail-test-card form { align-items: stretch; flex-direction: column; } }
.app-header .link-button:hover,
.app-header .link-button:focus-visible { color: #fff; background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.7); text-decoration: none; outline: none; }
.app-header .brand,
.app-header .brand:hover,
.app-header .brand:focus-visible { color: #fff; text-decoration: none; text-shadow: 0 1px 1px rgba(0,0,0,.18); outline: none; }
.app-header .brand small { color: rgba(255,255,255,.78); font-size: .64rem; font-weight: 700; letter-spacing: .08em; }
.active-company { display: grid; gap: .05rem; max-width: 230px; color: #fff; font-size: .78rem; font-weight: 700; line-height: 1.15; }
.active-company small { color: #11fdf5; font-size: .56rem; font-weight: 800; letter-spacing: .1em; }
@media (max-width: 1000px) { .active-company { max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } }
@media (max-width: 760px) { .active-company { display: none; } }

/* Identidad visual formal APDIA: azul institucional y lila protagonista. */
:root { --line: #dcc9e3; --ink-soft: #4e5878; }
.app-header { background: linear-gradient(100deg, #090979 0%, #090979 58%, #9c26bc 100%); }
.primary { color: #fff; background: linear-gradient(135deg, #090979 0%, #9c26bc 100%); box-shadow: 0 8px 18px rgba(156,38,188,.25); }
.primary:hover { filter: brightness(1.08); box-shadow: 0 11px 22px rgba(9,9,121,.3); }
.auth-card::before { background: linear-gradient(90deg, #090979, #9c26bc); }
.eyebrow, .secondary-link, .pillar-code, .pillar-card footer a { color: #9c26bc; }
.audit-hero h1, .profile-heading h1, .audit-section-heading h2, .pillar-card h3, .module-links strong, .module-grid strong, .company-heading h1, .empty-state h1, .empty-state h2 { color: #090979; }
.audit-stats strong { color: #9c26bc; }
.pillar-progress span, .completion-bar span { background: linear-gradient(90deg, #090979, #9c26bc); }
.company-tabs a.active { color: #9c26bc; }
.company-tabs a.active::after { background: linear-gradient(90deg, #090979, #9c26bc); }
.question-head { color: #9c26bc; border-bottom-color: #dcc9e3; }
.info-help { color: #090979; border-color: #9c26bc; background: #f7edfa; }
.info-help:hover, .info-help:focus-visible { background: #9c26bc; border-color: #9c26bc; }
input:focus, select:focus { border-color: #9c26bc; box-shadow: 0 0 0 4px rgba(156,38,188,.15); }
.company-selector { border-top: 3px solid #9c26bc; }
.secondary { border-color: #9c26bc; color: #9c26bc; }
.secondary:hover { color: #fff; background: #9c26bc; text-decoration: none; }
@media (max-width: 600px) { .auth-page { padding: 1.25rem; } .auth-card { padding: 2.1rem 1.35rem; border-radius: 4px; } .auth-card::before { left: 1.5rem; right: 1.5rem; } .app-header { padding: 0 1rem; } .user-area span { display: none; } }

/* Aplicación equilibrada de la paleta APDIA. */
.content { background: #fff; }
.app-header { background: linear-gradient(100deg, #090979 0%, #090979 72%, #9c26bc 100%); }
.primary { color: #090979; background: #ffc876; box-shadow: 0 8px 18px rgba(255,200,118,.35); }
.primary:hover { color: #fff; background: #9c26bc; filter: none; box-shadow: 0 11px 22px rgba(156,38,188,.28); }
.auth-page { background: linear-gradient(135deg, #f3deca 0%, #fff 48%, #dffaff 100%); }
.auth-card::before { background: linear-gradient(90deg, #090979, #9c26bc, #0ebde8); }
.audit-page, .profile-page, .module-page, .company-page { background: linear-gradient(135deg, #fff 0%, #f3deca 100%); }
.welcome-card { border-top: 4px solid #9c26bc; }
.welcome-card h1, .audit-hero h1, .profile-heading h1, .company-heading h1 { color: #090979; }
.home-action { background: #ffc876; color: #090979; }
.home-action:hover { background: #9c26bc; color: #fff; text-decoration: none; }
.status-badge, .completion-badge { color: #090979; background: #11fdf5; }
.module-links a:hover, .module-grid a:hover { border-color: #0ebde8; box-shadow: 0 10px 25px rgba(14,189,232,.16); }
.home-dashboard { min-height: calc(100vh - 74px); padding: clamp(2rem, 5vw, 4.5rem) clamp(1rem, 5vw, 5rem); background: linear-gradient(135deg, #fff 0%, #f3deca 100%); }
.home-intro, .company-menu-card { max-width: 1180px; margin: auto; }
.home-intro { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 2rem; }
.home-intro-copy { flex: 1; }
.home-help-icon { width: 92px; height: 92px; object-fit: contain; filter: drop-shadow(0 10px 14px rgba(9,9,121,.18)); }
.home-intro h1 { margin: .45rem 0 .65rem; color: #090979; font-family: Manrope, sans-serif; font-size: clamp(1.25rem, 2vw, 1.65rem); line-height: 1.3; }
.home-intro p, .company-menu-heading p { margin: 0; color: var(--ink-soft); }
.home-help-card { display: flex; align-items: center; gap: 1.25rem; max-width: 1180px; margin: 1rem auto 1.25rem; padding: 1.15rem 1.3rem; border: 1px solid #bde9ee; border-left: 4px solid #0ebde8; border-radius: 4px; background: linear-gradient(105deg, #f4fdfe, #fff8f1); box-shadow: 0 10px 25px rgba(9,9,121,.06); }
.home-help-visual img { display: block; width: 112px; height: 112px; object-fit: contain; }
.home-help-content { display: grid; gap: .35rem; }
.home-help-content h2 { margin: 0; color: #090979; font-family: Manrope, sans-serif; }
.home-help-content p { margin: 0 0 .2rem; color: var(--ink-soft); }
.home-help-steps { display: flex; flex-wrap: wrap; gap: .4rem; margin: .2rem 0 .25rem; }
.home-help-steps span { padding: .3rem .5rem; border-radius: 4px; color: #090979; background: #11fdf5; font-size: .68rem; font-weight: 800; }
.company-menu-card { padding: 1.3rem; background: #fff; border: 1px solid #dcc9e3; border-top: 4px solid #9c26bc; border-radius: 4px; box-shadow: 0 15px 35px rgba(9,9,121,.1); }
.company-menu-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid #dcc9e3; }
.company-menu-heading h2 { margin: 0 0 .25rem; color: #090979; font-family: Manrope, sans-serif; }
.company-count { padding: .45rem .7rem; border-radius: 4px; color: #090979; background: #11fdf5; font-size: .78rem; font-weight: 800; }
.company-menu-grid { display: grid; gap: .8rem; margin-top: 1rem; }
.company-menu-item { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid #e5d9e9; border-radius: 4px; background: #fff; }
.company-menu-item.selected { border-color: #9c26bc; box-shadow: inset 4px 0 #9c26bc; }
.company-menu-status { color: #9c26bc; font-size: .68rem; font-weight: 800; letter-spacing: .12em; }
.company-menu-item h3 { margin: .25rem 0; color: #090979; font-size: 1rem; }
.company-menu-item p { margin: 0; color: var(--ink-soft); font-size: .8rem; }
.home-empty { padding: 2rem; text-align: center; color: var(--ink-soft); }
.special-card { max-width: 1180px; margin: 0 auto 1.25rem; padding: 1.3rem 1.5rem; background: #fff; border: 1px solid #dcc9e3; border-radius: 4px; box-shadow: 0 10px 25px rgba(9,9,121,.06); }
.special-card h2 { margin: 0 0 1rem; color: #090979; font-family: Manrope, sans-serif; font-size: 1.2rem; }
.special-card form { gap: 1.2rem; }
.special-card .form-grid { row-gap: 1rem; }
.special-card .wide-field { grid-column: span 2; }
.special-message { max-width: 1180px; margin: 0 auto 1rem; }
.module-disabled-state { max-width: 1180px; margin: 1.25rem auto; padding: 2.2rem 1.5rem; }
.audit-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 1.5rem; align-items: start; max-width: 1500px; margin: 0 auto; }
.audit-sidebar { position: sticky; top: 1rem; min-height: calc(100vh - 110px); padding: 1rem .75rem; color: #fff; background: #090979; border: 1px solid rgba(14,189,232,.35); border-radius: 4px; box-shadow: 0 12px 28px rgba(9,9,121,.22); }
.audit-sidebar-brand { display: flex; align-items: center; gap: .65rem; padding: .5rem .55rem 1rem; border-bottom: 1px solid rgba(255,255,255,.14); }
.audit-sidebar-modes { display: grid; grid-template-columns: 1fr 1fr; gap: .2rem; margin: 1rem 0 .6rem; padding: .2rem; border: 1px solid rgba(255,255,255,.18); border-radius: 4px; }
.audit-sidebar-modes a { padding: .45rem .25rem; border-radius: 4px; color: #cbd2eb; font-size: .7rem; font-weight: 800; text-align: center; text-decoration: none; }
.audit-sidebar-modes a:hover, .audit-sidebar-modes a.active { color: #090979; background: #ffc876; }
.sidebar-mark { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid rgba(17,253,245,.7); border-radius: 4px; color: #11fdf5; }
.audit-sidebar-brand strong { display: block; color: #fff; font-size: .7rem; letter-spacing: .12em; }
.audit-sidebar-brand small, .audit-sidebar-item small, .audit-sidebar-summary small { display: block; margin-top: .25rem; color: #a9b0ca; font-size: .6rem; letter-spacing: .08em; }
.audit-sidebar-summary, .audit-sidebar-item { display: flex; align-items: center; gap: .65rem; color: #fff; text-decoration: none; }
.audit-sidebar-summary { margin: 1rem 0 .5rem; padding: .7rem .55rem; border: 1px solid rgba(156,38,188,.45); border-radius: 4px; background: rgba(156,38,188,.28); }
.audit-sidebar-summary:hover, .audit-sidebar-item:hover { color: #fff; text-decoration: none; background: rgba(156,38,188,.28); }
.sidebar-summary-icon { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: #090979; background: #f3deca; font-weight: 800; }
.audit-sidebar-summary strong, .audit-sidebar-item strong { display: block; max-width: 205px; overflow-wrap: anywhere; font-size: .73rem; line-height: 1.25; }
.audit-sidebar-list { display: grid; gap: .2rem; }
.audit-sidebar-item { padding: .55rem .45rem; border-radius: 4px; }
.audit-sidebar-item.active { border: 1px solid rgba(17,253,245,.55); background: rgba(156,38,188,.35); }
.sidebar-progress { display: grid; place-items: center; flex: 0 0 30px; width: 30px; height: 30px; border: 3px solid #11fdf5; border-radius: 50%; color: #fff; font-size: .52rem; font-weight: 800; }
.audit-main-content { min-width: 0; }
.pillar-workspace .pillar-audit-page { min-width: 0; }
@media (max-width: 900px) { .audit-layout { grid-template-columns: 1fr; } .audit-sidebar { position: static; min-height: auto; } .audit-sidebar-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .audit-sidebar-list { grid-template-columns: 1fr; } }
.transfer-toolbar { max-width: 1180px; margin: 0 auto .9rem; display: flex; justify-content: flex-end; }
.transfer-form { margin-bottom: 1rem; }
.transfer-form h2 { margin: 0; color: #090979; font-family: Manrope, sans-serif; font-size: 1.15rem; }
.transfer-table-card { max-width: 1180px; margin: 0 auto; background: #fff; border: 1px solid #dcc9e3; border-radius: 4px; box-shadow: 0 10px 25px rgba(9,9,121,.06); }
.transfer-table-wrap { overflow-x: auto; }
.transfer-table-card table { width: 100%; border-collapse: collapse; min-width: 850px; }
.transfer-table-card th { padding: .75rem; text-align: left; color: #9c26bc; border-bottom: 2px solid #dcc9e3; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.transfer-table-card td { padding: .8rem .75rem; color: #40536d; border-bottom: 1px solid #edf1f5; font-size: .82rem; }
.table-empty { padding: 2rem !important; text-align: center; color: var(--ink-soft) !important; }
.delete-button { border: 0; color: #9c26bc; background: transparent; font-size: 1.3rem; cursor: pointer; }
.delete-button:hover { color: #090979; }
.third-party-form h2 { margin: 0; color: #090979; font-family: Manrope, sans-serif; font-size: 1.15rem; }
.third-party-form input[type=file] { padding: .45rem; background: #fff; }
.third-party-form small { color: var(--ink-soft); font-size: .7rem; }
.third-party-table td { vertical-align: middle; }
.rule-form h2 { margin: 0; color: #090979; font-family: Manrope, sans-serif; font-size: 1.15rem; }
.rules-table td { vertical-align: middle; }
.rule-state { display: inline-block; padding: .2rem .45rem; border-radius: 4px; color: #187044; background: #dff5e8; font-size: .68rem; font-weight: 800; }
.control-tag { display: inline-block; margin: .15rem .2rem .15rem 0; padding: .25rem .45rem; border-radius: 4px; color: #4f5c76; background: #eef0f5; font-size: .7rem; }
.risk-tag { display: inline-block; padding: .25rem .5rem; border-radius: 4px; color: #090979; background: #ffc876; font-size: .7rem; font-weight: 800; }
.risk-tag.crítico, .risk-tag.critico { color: #fff; background: #9c26bc; }
.risk-tag.bajo { background: #11fdf5; }
@media (max-width: 700px) { .home-intro, .company-menu-item { align-items: stretch; flex-direction: column; } .home-help-icon { align-self: center; } .home-help-card { align-items: stretch; flex-direction: column; } .home-help-visual img { width: 95px; height: 95px; } .company-menu-item .secondary { width: 100%; } }
@media (max-width: 760px) { .special-card .wide-field { grid-column: auto; } }

/* Refinamiento visual global APDIA: conserva la paleta institucional y mejora jerarquia, contraste y ritmo. */
html { scroll-behavior: smooth; }
body { color: #24324b; background: #090979; }
.app-shell { background: #f8fbfd; }
.app-header { position: sticky; top: 0; z-index: 30; height: 68px; padding-inline: clamp(1rem, 4vw, 4rem); border-bottom: 1px solid rgba(17,253,245,.22); background: linear-gradient(105deg, #090979 0%, #121080 64%, #9c26bc 100%); box-shadow: 0 8px 24px rgba(9,9,121,.2); }
.brand { gap: .6rem; font-size: 1rem; }
.brand::before { content: ''; width: 38px; height: 38px; border: 1px solid rgba(17,253,245,.55); border-radius: 4px; background: rgba(255,255,255,.94) url('/_content/App_Calidad_LOPDP.Shared/icono.png?v=3') center/contain no-repeat; box-shadow: 0 4px 12px rgba(0,0,0,.18); }
.user-area { gap: .8rem; font-size: .82rem; }
.link-button { border-color: rgba(255,255,255,.42); border-radius: 4px; padding: .5rem .82rem; }
.content { background: #f8fbfd; }
.auth-page { min-height: calc(100vh - 68px); padding: 2.5rem 1.25rem; background: radial-gradient(circle at 10% 15%, rgba(17,253,245,.18), transparent 28%), radial-gradient(circle at 90% 85%, rgba(255,200,118,.2), transparent 30%), linear-gradient(135deg, #090979 0%, #5b1b9c 52%, #0ebde8 100%); }
.auth-card { width: min(100%, 480px); padding: clamp(2rem, 4vw, 3rem); border: 1px solid rgba(255,255,255,.75); border-radius: 4px; box-shadow: 0 24px 70px rgba(9,9,121,.28); }
.auth-heading { margin-bottom: 1.7rem; text-align: center; }
.auth-heading p { max-width: 320px; margin-inline: auto; }
.auth-heading h1 { letter-spacing: -.06em; }
form { gap: .85rem; }
label { color: #31435e; font-size: .78rem; letter-spacing: .01em; }
input, select, textarea { border-color: #d5deea; border-radius: 4px; background: #fbfdff; transition: border-color .2s, box-shadow .2s, transform .2s; }
input:focus, select:focus, textarea:focus { border-color: #0ebde8; box-shadow: 0 0 0 4px rgba(14,189,232,.14); }
.primary, .secondary { border-radius: 4px; font-weight: 800; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.primary:hover, .secondary:hover { transform: translateY(-1px); }
.primary { box-shadow: 0 8px 18px rgba(255,200,118,.25); }
.audit-page, .profile-page, .module-page, .company-page { background: linear-gradient(135deg, #f8fbfd 0%, #fff 54%, #f3deca 100%); }
.audit-layout { gap: 1.25rem; max-width: 1560px; }
.audit-sidebar { top: 84px; border: 0; border-top: 3px solid #11fdf5; border-radius: 4px; background: linear-gradient(165deg, #090979, #17146d 70%, #35147b); box-shadow: 0 18px 40px rgba(9,9,121,.18); }
.audit-sidebar-modes a, .audit-sidebar-summary, .audit-sidebar-item { border-radius: 4px; }
.audit-main-content { padding-bottom: 2rem; }
.profile-heading { margin-bottom: 1.35rem; }
.profile-heading h1, .audit-hero h1 { letter-spacing: -.055em; }
.pillar-audit-meta { padding: .8rem 1rem; border: 1px solid #e2eaf2; border-radius: 4px; background: rgba(255,255,255,.75); box-shadow: 0 8px 20px rgba(9,9,121,.04); }
.audit-criteria-card, .transfer-table-card, .special-card, .company-menu-card, .welcome-card { border-color: #dfe8f0; border-radius: 4px; box-shadow: 0 14px 32px rgba(9,9,121,.07); }
.audit-criteria-toolbar, .criterion-filter { background: rgba(250,252,254,.8); }
.transfer-table-card table, .audit-criteria-card table { border-collapse: separate; border-spacing: 0; }
.transfer-table-card th, .audit-criteria-card th { color: #fff; background: #121080; border: 0; font-size: .68rem; letter-spacing: .08em; }
.transfer-table-card th:first-child, .audit-criteria-card th:first-child { border-radius: 4px 0 0 4px; }
.transfer-table-card th:last-child, .audit-criteria-card th:last-child { border-radius: 0 4px 4px 0; }
.transfer-table-card td, .audit-criteria-card td { border-bottom: 1px solid #e8eef4; }
.transfer-table-card tbody tr:hover, .audit-criteria-card tbody tr:hover { background: #f4fbfd; }
.evaluation-panel { width: min(680px, 96vw); box-shadow: -16px 0 45px rgba(9,9,121,.24); }
.evaluation-panel > header { background: linear-gradient(105deg, #f8fbfd, #fff8f1); border-bottom-color: #dfe8f0; }
.evaluation-body { padding: 1.15rem 1.5rem; }
.evaluation-objective { border: 1px solid #dbeef2; border-left: 4px solid #0ebde8; background: #f3fbfc; }
.evaluation-section { border-top-color: #e5edf3; }
.evaluation-section > span { color: #9c26bc; }
.home-dashboard { background: linear-gradient(135deg, #f8fbfd 0%, #fff 52%, #f3deca 100%); }
.home-intro { margin-bottom: 1.35rem; }
.company-menu-heading { border-bottom-color: #e4ebf2; }
.company-menu-item { border-color: #e2eaf2; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.company-menu-item:hover { transform: translateY(-2px); border-color: #0ebde8; box-shadow: 0 12px 26px rgba(14,189,232,.12); }
.home-help-card, .xtc-governance-banner { border-color: #cceff2; box-shadow: 0 10px 26px rgba(9,9,121,.06); }

/* Evaluacion XTC 5D como espacio de trabajo: menu persistente y formulario a todo el ancho disponible. */
.audit-sidebar { z-index: 25; }
.evaluation-overlay { inset: 68px 0 0; z-index: 20; align-items: stretch; padding-left: 300px; background: rgba(9,9,121,.28); }
.evaluation-panel { width: 100%; max-width: none; border-left: 1px solid rgba(14,189,232,.28); box-shadow: -14px 0 36px rgba(9,9,121,.18); }
.evaluation-panel > header { position: sticky; top: 0; z-index: 2; min-height: 92px; padding-inline: clamp(1.25rem, 3vw, 3rem); }
.evaluation-heading { flex: 1; min-width: 0; }
.evaluation-heading h2 { overflow-wrap: anywhere; }
.evaluation-body { width: min(100%, 1480px); margin: 0 auto; padding-inline: clamp(1.25rem, 3vw, 3rem); }
.evaluation-panel .form-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.evaluation-panel .wide-field { grid-column: span 2; }
.evaluation-panel > footer { position: sticky; bottom: 0; z-index: 2; padding-inline: clamp(1.25rem, 3vw, 3rem); background: rgba(255,255,255,.96); }
@media (max-width: 1100px) { .evaluation-overlay { padding-left: 300px; } .evaluation-panel .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) { .evaluation-overlay { padding-left: 0; } .evaluation-panel .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .evaluation-panel .wide-field { grid-column: span 2; } }
@media (max-width: 560px) { .evaluation-overlay { inset: 68px 0 0; } .evaluation-panel .form-grid { grid-template-columns: 1fr; } .evaluation-panel .wide-field { grid-column: auto; } .evaluation-panel > header { min-height: 78px; } }

/* El modal empieza despues del menu para evitar desenfoque y conservar la navegacion. */
.evaluation-overlay { left: 300px; padding-left: 0; background: rgba(9,9,121,.2); }
.evaluation-header-actions, .evaluation-footer-nav, .evaluation-footer-actions { display: flex; align-items: center; gap: .6rem; }
.evaluation-header-actions { align-self: center; }
.evaluation-position { padding: .35rem .6rem; border: 1px solid #bde9ee; border-radius: 4px; color: #087d86; background: #f0fcfd; font-size: .7rem; font-weight: 800; }
.evaluation-panel > footer { justify-content: space-between; }
.evaluation-footer-actions { justify-content: flex-end; }
.evaluation-footer-nav .small-button:disabled { opacity: .42; cursor: not-allowed; transform: none; }

.templates-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; width: 100%; margin: 0 auto; align-items: start; }
.templates-catalog-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: .8rem; }
.template-tabs { display: flex; gap: .5rem; margin-bottom: 1rem; border-bottom: 1px solid #dcc9e3; padding-bottom: .6rem; flex-wrap: wrap; }
.template-tabs button { padding: .7rem 1.1rem; border: 1px solid #dcc9e3; border-radius: 4px; background: white; color: #090979; font-weight: 700; cursor: pointer; }
.template-tabs button.active { background: #090979; border-color: #090979; color: white; }
.template-pagination { display: flex; align-items: center; justify-content: flex-end; gap: .75rem; padding: 1rem; flex-wrap: wrap; }
.template-pagination > span { margin-right: auto; color: #40536d; }
.template-pagination button:disabled { opacity: .45; cursor: not-allowed; }
.template-empty { padding: 1rem; }
.templates-list { display: grid; gap: .7rem; padding: .9rem; border: 1px solid #dcc9e3; border-radius: 4px; background: #fff; box-shadow: 0 14px 32px rgba(9,9,121,.07); }
.templates-list-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding-bottom: .65rem; border-bottom: 1px solid #edf1f5; color: #40536d; font-size: .78rem; }
.templates-list-heading strong { color: #090979; }
.template-card { display: grid; gap: .28rem; width: 100%; padding: .85rem; border: 1px solid #edf1f5; border-radius: 4px; background: #fff; color: #40536d; text-align: left; cursor: pointer; }
.template-card span { color: #9c26bc; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.template-card strong { color: #090979; line-height: 1.25; }
.template-card small { color: #60758a; }
.template-card.active { border-color: #00d8d0; background: #f4fffe; box-shadow: inset 4px 0 0 #00d8d0; }
.templates-workspace { min-width: 0; }
.template-editor { margin-bottom: 1rem; }
.template-editor-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.template-detail-card th:nth-child(1) { width: 9%; }
.template-detail-card th:nth-child(2) { width: 8%; }
.template-detail-card th:nth-child(3) { width: 22%; }
.template-detail-card th:nth-child(4) { width: 25%; }
.template-detail-card th:nth-child(5) { width: 18%; }
.template-detail-card th:nth-child(6) { width: 15%; }
.template-detail-card th:nth-child(7) { width: 3%; }
.table-input, .table-textarea { width: 100%; padding: .45rem .55rem; border: 1px solid #d7e1ea; border-radius: 4px; background: #fff; color: #22314b; font: inherit; font-size: .78rem; }
.table-textarea { min-height: 58px; resize: vertical; line-height: 1.35; }
@media (max-width: 980px) { .templates-layout { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .evaluation-overlay { left: 0; } }

/* Nueva identidad visual solicitada: turquesa, menta, verde suave, gris oscuro y fondo claro. */
:root { --primary: #00C9B7; --secondary: #40E0C3; --detail: #76E7D2; --contrast: #4B5563; --surface: #FFFFFF; --background: #F5F3F0; --lila: #00C9B7; --azul: #4B5563; --turquesa: #00C9B7; --naranja: #40E0C3; --celeste: #76E7D2; --navy: #4B5563; --navy-soft: #4B5563; --ink-soft: #6B7280; --line: #DDE5E2; }
body { color: #4B5563; background: #F5F3F0; }
.app-shell { background: #F5F3F0; }
.app-header { background: linear-gradient(105deg, #4B5563 0%, #374151 58%, #00C9B7 100%); border-bottom-color: rgba(118,231,210,.45); }
.brand::before { border-color: rgba(118,231,210,.7); background-color: #fff; }
.link-button { border-color: rgba(255,255,255,.5); }
.content { background: #F5F3F0; }
.auth-page { background: radial-gradient(circle at 10% 15%, rgba(118,231,210,.35), transparent 30%), radial-gradient(circle at 90% 85%, rgba(64,224,195,.28), transparent 32%), linear-gradient(135deg, #4B5563 0%, #3f6970 55%, #00C9B7 100%); }
.auth-card { border-color: rgba(255,255,255,.86); box-shadow: 0 24px 70px rgba(75,85,99,.3); }
.auth-card::before { background: linear-gradient(90deg, #00C9B7, #40E0C3, #76E7D2); }
.auth-heading h1, .welcome-card h1, .audit-hero h1, .profile-heading h1, .audit-section-heading h2, .pillar-card h3, .company-heading h1 { color: #4B5563; }
.eyebrow, .secondary-link, .pillar-code, .pillar-card footer a { color: #00A99A; }
input:focus, select:focus, textarea:focus { border-color: #00C9B7; box-shadow: 0 0 0 4px rgba(0,201,183,.17); }
.primary { color: #fff; background: #00C9B7; box-shadow: 0 8px 18px rgba(0,201,183,.25); }
.primary:hover { color: #fff; background: #00A99A; box-shadow: 0 11px 22px rgba(0,201,183,.3); }
.secondary { color: #009C8E; border-color: #00C9B7; background: #fff; }
.secondary:hover { color: #fff; background: #00C9B7; border-color: #00C9B7; }
.audit-page, .profile-page, .module-page, .company-page, .home-dashboard { background: #F5F3F0; }
.audit-sidebar { border-top-color: #00C9B7; background: linear-gradient(165deg, #4B5563, #374151 70%, #2F7B7B); box-shadow: 0 18px 40px rgba(75,85,99,.18); }
.audit-sidebar-modes a:hover, .audit-sidebar-modes a.active { color: #4B5563; background: #76E7D2; }
.audit-sidebar-summary { border-color: rgba(64,224,195,.55); background: rgba(0,201,183,.22); }
.audit-sidebar-summary:hover, .audit-sidebar-item:hover { background: rgba(0,201,183,.3); }
.audit-sidebar-item.active { border-color: rgba(118,231,210,.8); background: rgba(0,201,183,.27); }
.sidebar-progress { border-color: #00C9B7; }
.pillar-audit-meta, .audit-criteria-card, .transfer-table-card, .special-card, .company-menu-card, .welcome-card { border-color: #DDE5E2; background: #fff; box-shadow: 0 14px 32px rgba(75,85,99,.08); }
.pillar-label { color: #087D73; background: #DDF8F1; }
.audit-criteria-toolbar, .criterion-filter { border-color: #E3EBE8; background: #FBFCFC; }
.transfer-table-card th, .audit-criteria-card th { color: #fff; background: #4B5563; }
.transfer-table-card td, .audit-criteria-card td { color: #4B5563; border-bottom-color: #E6EEEB; }
.transfer-table-card tbody tr:hover, .audit-criteria-card tbody tr:hover { background: #F0FCF9; }
.audit-cell-value { background: #E4F9F4; color: #087D73; }
.home-action, .home-action:hover { color: #4B5563; background: #40E0C3; }
.home-help-card, .xtc-governance-banner { border-color: #B9F0E3; border-left-color: #00C9B7; background: linear-gradient(105deg, #F0FCF9, #FFFFFF); }
.home-help-steps span { color: #4B5563; background: #76E7D2; }
.evaluation-overlay { background: rgba(75,85,99,.2); }
.evaluation-panel > header { background: linear-gradient(105deg, #fff, #F0FCF9); border-bottom-color: #DDE5E2; }
.evaluation-objective { border-color: #B9F0E3; border-left-color: #00C9B7; background: #F0FCF9; }
.evaluation-section { border-top-color: #E3EBE8; }
.evaluation-section > span { color: #00A99A; }
.evaluation-position { border-color: #B9F0E3; color: #087D73; background: #F0FCF9; }
.status-badge, .completion-badge { color: #4B5563; background: #76E7D2; }
.company-selector { border-top-color: #00C9B7; }

/* Equilibrio final: esencia Elixir como base y nueva paleta turquesa como acento. */
:root { --lila: #9c26bc; --azul: #090979; --navy: #090979; --navy-soft: #121080; --ink-soft: #5e6684; --line: #e6cdb7; }
body, .content, .app-shell { background: #F5F3F0; }
.app-header { background: linear-gradient(100deg, #090979 0%, #090979 68%, #9c26bc 100%); border-bottom-color: rgba(0,201,183,.4); }
.brand::before { border-color: rgba(0,201,183,.65); }
.auth-page { background: radial-gradient(circle at 10% 15%, rgba(118,231,210,.24), transparent 28%), radial-gradient(circle at 90% 85%, rgba(64,224,195,.2), transparent 30%), linear-gradient(135deg, #090979 0%, #4a248d 55%, #0ebde8 100%); }
.auth-heading h1, .welcome-card h1, .audit-hero h1, .profile-heading h1, .audit-section-heading h2, .pillar-card h3, .company-heading h1 { color: #090979; }
.eyebrow, .secondary-link, .pillar-code, .pillar-card footer a { color: #9c26bc; }
.primary { color: #090979; background: #00C9B7; box-shadow: 0 8px 18px rgba(0,201,183,.25); }
.primary:hover { color: #fff; background: #9c26bc; }
.secondary { color: #9c26bc; border-color: #9c26bc; }
.secondary:hover { color: #fff; background: #9c26bc; border-color: #9c26bc; }
.audit-page, .profile-page, .module-page, .company-page, .home-dashboard { background: linear-gradient(135deg, #F5F3F0 0%, #fff 56%, #f3deca 100%); }
.audit-sidebar { border-top-color: #11fdf5; background: linear-gradient(165deg, #090979, #121080 72%, #4a1c8d); }
.audit-sidebar-modes a:hover, .audit-sidebar-modes a.active { color: #090979; background: #ffc876; }
.audit-sidebar-summary { border-color: rgba(156,38,188,.55); background: rgba(156,38,188,.28); }
.audit-sidebar-summary:hover, .audit-sidebar-item:hover { background: rgba(156,38,188,.36); }
.audit-sidebar-item.active { border-color: rgba(17,253,245,.75); background: rgba(156,38,188,.35); }
.sidebar-progress { border-color: #00C9B7; }
.pillar-audit-meta, .audit-criteria-card, .transfer-table-card, .special-card, .company-menu-card, .welcome-card { border-color: #dcc9e3; }
.pillar-label { color: #9c26bc; background: #f3deca; }
.domain-control-filter { padding: 1rem; }
label { padding-inline: .25rem; }
.transfer-table-card th, .audit-criteria-card th { background: #090979; }
.audit-cell-value { background: #E4F9F4; color: #087D73; }
.home-action, .home-action:hover { color: #090979; background: #ffc876; }
.home-help-card, .xtc-governance-banner { border-color: #b9f0e3; border-left-color: #00C9B7; background: linear-gradient(105deg, #f0fcf9, #fff8f1); }
.home-help-steps span { color: #090979; background: #76E7D2; }
.evaluation-panel > header { background: linear-gradient(105deg, #fff, #f7edfa); }
.evaluation-objective { border-color: #b9f0e3; border-left-color: #00C9B7; background: #f0fcf9; }
.evaluation-section > span { color: #9c26bc; }
.evaluation-position { color: #087D73; background: #f0fcf9; border-color: #b9f0e3; }
.completion-bar span, .pillar-progress span { background: linear-gradient(90deg, #090979, #9c26bc); }

/* Submenú visible de la gobernanza activa: mantiene el contexto del flujo XTC 5D. */
.governance-submenu { display: grid; gap: .18rem; margin: .05rem .3rem .65rem 3.1rem; padding: .35rem 0 .35rem .7rem; border-left: 1px solid rgba(118,231,210,.55); }
.governance-submenu::before { content: 'FLUJO XTC 5D'; margin: 0 0 .12rem .45rem; color: #76E7D2; font-size: .58rem; font-weight: 800; letter-spacing: .12em; }
.governance-submenu a { padding: .34rem .45rem; border-radius: 4px; color: #bfeee6; font-size: .67rem; line-height: 1.2; text-decoration: none; transition: background .15s ease, color .15s ease; }
.governance-submenu a::before { content: '•'; margin-right: .35rem; color: #00C9B7; }
.governance-submenu a:hover, .governance-submenu a:focus { color: #090979; background: #76E7D2; text-decoration: none; }
#xtc-d2, #xtc-d3, #xtc-d4, #xtc-d5 { scroll-margin-top: 1rem; }

/* Identidad visual unificada: fresca, sobria y legible. */
:root {
    --primary: #087f8c;
    --secondary: #16a6a1;
    --detail: #d8f1ed;
    --contrast: #203344;
    --surface: #ffffff;
    --background: #f3f7f7;
    --azul: #17324d;
    --navy: #17324d;
    --navy-soft: #284a63;
    --lila: #087f8c;
    --turquesa: #16a6a1;
    --celeste: #56b8c2;
    --naranja: #d9a441;
    --gold: #d9a441;
    --gold-light: #f3dfb2;
    --ink-soft: #607384;
    --line: #d9e3e6;
}
html, body, .app-shell, .content { color: #263b4b; background: #f3f7f7; }
a { color: #087f8c; }
a:hover { color: #075e68; }
.app-header { background: #17324d; border-bottom: 3px solid #16a6a1; box-shadow: 0 3px 12px rgba(23,50,77,.12); }
.brand-group { display: flex; align-items: center; gap: .65rem; min-width: 0; }
.app-version { padding: .28rem .48rem; border: 1px solid rgba(255,255,255,.2); border-radius: 4px; color: #cfe7e6; font-size: .68rem; font-weight: 700; letter-spacing: .03em; white-space: nowrap; }
.app-version:hover, .app-version:focus-visible { color: #fff; border-color: #56b8c2; background: rgba(255,255,255,.08); text-decoration: none; }
.brand::before { color: #16a6a1; border-color: rgba(255,255,255,.35); }
.user-area { color: #e4edf1; }
.link-button { border-color: rgba(255,255,255,.35); }
.audit-page, .profile-page, .module-page, .company-page, .home-dashboard { background: #f3f7f7; }
.audit-hero h1, .profile-heading h1, .audit-section-heading h2, .company-heading h1,
.auth-heading h1, .welcome-card h1, .pillar-card h3, .special-card h2 { color: #17324d; }
.eyebrow, .pillar-code { color: #087f8c; }
.secondary-link { color: #087f8c; }
.primary { color: #fff; background: #087f8c; box-shadow: 0 3px 9px rgba(8,127,140,.16); }
.primary:hover { color: #fff; background: #075e68; box-shadow: 0 5px 12px rgba(8,127,140,.2); }
.secondary { color: #087f8c; border-color: #087f8c; background: #fff; }
.secondary:hover { color: #fff; border-color: #075e68; background: #075e68; }
input:focus, select:focus, textarea:focus { border-color: #16a6a1; box-shadow: 0 0 0 3px rgba(22,166,161,.14); }
.main-nav { background: #fff; border-right-color: #d9e3e6; box-shadow: 3px 0 12px rgba(23,50,77,.035); }
.main-nav-heading { color: #087f8c; }
.main-nav-home:hover, .nav-group summary:hover { color: #17324d; background: #eef6f5; }
.main-nav-home.active { color: #17324d; background: #e4f3f1; }
.nav-group summary::after, .nav-icon { color: #087f8c; }
.nav-submenu a:hover, .nav-submenu a.active { color: #075e68; background: #f0f7f6; border-left-color: #16a6a1; }
.nav-domain-picker select:hover, .nav-domain-picker select:focus { border-color: #16a6a1; }
.audit-sidebar { border-top-color: #16a6a1; background: #17324d; box-shadow: 0 8px 22px rgba(23,50,77,.12); }
.audit-sidebar-modes a:hover, .audit-sidebar-modes a.active { color: #17324d; background: #bfe8e2; }
.audit-sidebar-summary { border-color: rgba(191,232,226,.5); background: rgba(22,166,161,.17); }
.audit-sidebar-summary:hover, .audit-sidebar-item:hover, .audit-sidebar-item.active { background: rgba(22,166,161,.22); }
.audit-sidebar-item.active { border-color: #7ed0c8; }
.pillar-audit-meta, .audit-criteria-card, .transfer-table-card, .special-card, .company-menu-card, .welcome-card, .questions-card, .pillar-card, .templates-list, .template-card, .profile-config-card, .company-form, .user-edit-card, .auth-card {
    border-color: #d9e3e6;
    background-color: #fff;
    box-shadow: 0 5px 16px rgba(23,50,77,.045);
}
.transfer-table-card th, .audit-criteria-card th { color: #fff; background: #284a63; }
.transfer-table-card td, .audit-criteria-card td { color: #334b5d; border-bottom-color: #e7edef; }
.transfer-table-card tbody tr:hover, .audit-criteria-card tbody tr:hover { background: #f1f8f7; }
.pillar-label, .status-badge, .completion-badge { color: #075e68; background: #d8f1ed; }
.home-help-card, .xtc-governance-banner { border-color: #c8e7e2; border-left-color: #16a6a1; background: #f8fcfb; }
.home-help-steps span { color: #17324d; background: #d8f1ed; }
.evaluation-overlay { background: rgba(23,50,77,.24); }
.evaluation-panel > header { background: #f7fbfa; border-bottom-color: #d9e3e6; }
.evaluation-objective, .evaluation-position { border-color: #c8e7e2; background: #eff8f6; }
.evaluation-section { border-top-color: #d9e3e6; }
.evaluation-section > span { color: #087f8c; }
.audit-cell-value { color: #075e68; background: #e1f3ef; }
.home-action, .home-action:hover { color: #fff; background: #087f8c; }
.company-tabs a.active { color: #087f8c; }
.company-tabs a.active::after { background: #16a6a1; }
.template-card.active { border-color: #16a6a1; background: #f1faf8; box-shadow: inset 4px 0 0 #16a6a1; }
.template-tabs button.active { border-color: #17324d; background: #17324d; }
.notice.success { border-color: #c8e7e2; color: #075e68; background: #eff8f6; }
::selection { color: #17324d; background: #bfe8e2; }

/* Cierre de consistencia: estados, filtros, adjuntos y controles secundarios. */
.audit-stats strong, .company-progress-heading strong { color: #087f8c; }
.pillar-progress span, .completion-bar span, .company-progress span { background: linear-gradient(90deg, #17324d, #087f8c, #16a6a1); }
.answer-check, .domain-control-detail h2, .criterion-filter-summary { color: #17324d; }
.answer-check input, .select-all-check input, .multi-select-options input { accent-color: #087f8c; }
.question-head, .select-all-check, .attachment-pillar, .domain-control-detail-grid span, .criterion-filter-summary strong { color: #087f8c; }
.question-head { border-bottom-color: #d9e3e6; }
.info-help { color: #17324d; border-color: #56b8c2; background: #eaf6f5; }
.info-help:hover, .info-help:focus-visible { color: #fff; border-color: #087f8c; background: #087f8c; }
.company-selector, .company-menu-card { border-top-color: #16a6a1; }
.company-selector div, .company-selector select { color: #17324d; }
.company-count, .xtc-rule { color: #075e68; background: #d8f1ed; }
.rule-state { color: #17644e; background: #dff3e9; }
.risk-tag { color: #624b18; background: #f3dfb2; }
.risk-tag.crítico, .risk-tag.critico { color: #fff; background: #a33c46; }
.risk-tag.bajo { color: #17644e; background: #dff3e9; }
.risk-tag.medio { color: #624b18; background: #f3dfb2; }
.attachment-row:hover { background: #f1f8f7; }
.attachment-name, .file-link { color: #087f8c; text-decoration-color: #56b8c2; }
.multi-select-options { border-color: #d9e3e6; box-shadow: 0 10px 24px rgba(23,50,77,.12); }
.multi-select-options .select-all-option { border-bottom-color: #d9e3e6; color: #087f8c; }
.criterion-filter { border-bottom-color: #d9e3e6; }
.criterion-filter-summary span { color: #075e68; background: #e1f3ef; }
.domain-control-detail { border-color: #c8e7e2; background: #f8fcfb; }
.domain-control-detail-grid div { border-color: #e7edef; }
.domain-mode-tabs { border-color: #d9e3e6; box-shadow: 0 5px 14px rgba(23,50,77,.06); }
.domain-mode-tabs a:hover { color: #17324d; background: #eff8f6; }
.domain-mode-tabs a.active { color: #fff; background: #17324d; box-shadow: 0 4px 10px rgba(23,50,77,.15); }
.domain-mode-tabs a span, .domain-mode-tabs a.active span { color: #56b8c2; }
.view-switch { border-color: #d9e3e6; }
.view-switch a { color: #087f8c; }
.view-switch a:hover, .view-switch a.active { color: #fff; background: #087f8c; }
.governance-submenu { border-left-color: rgba(22,166,161,.48); }
.governance-submenu::before, .governance-submenu a { color: #bfe8e2; }
.governance-submenu a::before { color: #16a6a1; }
.governance-submenu a:hover, .governance-submenu a:focus { color: #17324d; background: #bfe8e2; }
input[type=file]::file-selector-button, input[type=file]::-webkit-file-upload-button { color: #fff; background: #087f8c; }
input[type=file]::file-selector-button:hover, input[type=file]::-webkit-file-upload-button:hover { background: #075e68; }
.release-notes-page { max-width: 1120px; margin-inline: auto; }
.release-heading { align-items: end; margin-bottom: 1.5rem; }
.release-heading h1 { margin: .4rem 0; }
.release-heading p { margin: 0; color: #607384; }
.release-current-version { display: grid; gap: .25rem; padding: .6rem .8rem; border: 1px solid #d9e3e6; background: #fff; color: #607384; font-size: .72rem; }
.release-current-version strong { color: #087f8c; font-size: .95rem; }
.release-card { margin: 0 0 1rem; padding: 1.25rem 1.4rem; border: 1px solid #d9e3e6; border-left: 3px solid #16a6a1; background: #fff; box-shadow: 0 5px 16px rgba(23,50,77,.045); }
.release-card header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; padding-bottom: .75rem; border-bottom: 1px solid #e7edef; }
.release-card h2 { margin: .25rem 0 0; color: #17324d; font-size: 1.1rem; }
.release-card time { color: #607384; font-size: .78rem; white-space: nowrap; }
.release-card ul { display: grid; gap: .5rem; margin: .85rem 0 0; padding-left: 1.2rem; color: #40596b; line-height: 1.5; }
.release-back-link { display: inline-block; margin-top: .5rem; }
.company-template-card { max-width: 1180px; margin: 1.5rem auto; padding: clamp(1rem, 3vw, 2rem); background: #fff; border: 1px solid #d9e3e6; border-radius: 4px; display: grid; gap: 1rem; }
.company-template-card h2 { color: #17324d; font-size: 1.25rem; margin: .4rem 0; }
.company-template-card p { margin: 0; color: #607384; line-height: 1.6; }
.company-template-confirm { display: grid; gap: .75rem; padding: 1rem; background: #fff9ec; border: 1px solid #e9d5aa; border-left: 4px solid #c79432; }
.company-template-actions, .company-template-summary { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.company-template-summary { justify-content: space-between; padding: .75rem 0; color: #17324d; border-bottom: 1px solid #d9e3e6; }
.company-template-summary span { color: #607384; font-size: .8rem; }
.company-template-table { width: 100%; margin: 0; overflow-x: auto; }
.company-template-table table { width: 100%; min-width: 600px; }
.company-template-table td { padding: .85rem; vertical-align: top; white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 620px) { .release-heading { align-items: stretch; } .release-card header { flex-direction: column; } .app-version { font-size: .62rem; } }
