:root{--primary:#3b5284;--primary-2:#4a5f8f;--teal:#5babad;--lime:#cbe54e;--dark:#26334f;--paper:#fff;--bg:#f4f7fb;--muted:#68738a;--danger:#ef4444;--shadow:0 18px 45px rgba(59,82,132,.13)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 90% 5%,rgba(91,171,173,.16),transparent 30%),var(--bg);color:var(--dark);font-family:Inter,system-ui,sans-serif}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2));background:rgba(255,255,255,.9)}.brand{display:flex;align-items:center;gap:12px;color:var(--primary);font-weight:800;text-decoration:none}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--primary),var(--teal));color:#fff}.phase{font-size:.8rem;color:var(--muted)}.container{width:min(1180px,calc(100% - 32px));margin:40px auto}.hero{overflow:hidden;min-height:310px;display:flex;align-items:center;justify-content:space-between;padding:54px;border-radius:28px;background:linear-gradient(135deg,var(--primary),var(--primary-2) 60%,var(--teal));color:#fff;box-shadow:var(--shadow)}.hero>div:first-child{max-width:720px}.eyebrow{font-size:.75rem;font-weight:800;letter-spacing:.15em;color:var(--lime)}h1{font-size:clamp(2.5rem,6vw,4.8rem);line-height:.95;margin:18px 0}p{font-size:1.08rem;line-height:1.7;color:#e8edf7}.orb{width:190px;height:190px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.12);font-size:6rem}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;padding:13px 18px;border-radius:12px;font-weight:700;text-decoration:none}.button.primary{background:var(--lime);color:#34450d}.button.muted{background:rgba(255,255,255,.12);color:#fff}.notice{margin:22px 0;padding:15px 18px;border-radius:14px}.warning{background:#fff7d6;border:1px solid #f0d56c;color:#705900}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:24px}.card{display:flex;flex-direction:column;gap:10px;padding:24px;background:var(--paper);border-radius:20px;box-shadow:0 10px 30px rgba(59,82,132,.08)}.card span,.card small{color:var(--muted)}.card strong{font-size:1.8rem;color:var(--primary)}.card strong.ok{color:#438234}.card strong.bad{color:var(--danger)}.debug{margin-top:20px;padding:16px;background:#fff;border-radius:12px}.debug code{display:block;margin-top:12px;color:var(--danger)}@media(max-width:850px){.kpis{grid-template-columns:repeat(2,1fr)}.hero{padding:36px}.orb{display:none}}@media(max-width:520px){.phase{display:none}.hero{padding:30px 24px}.kpis{grid-template-columns:1fr}}
.main-nav{display:flex;align-items:center;gap:18px;font-size:.88rem}.main-nav a{color:var(--primary);font-weight:700;text-decoration:none}.main-nav span{color:var(--muted)}.main-nav form{margin:0}.main-nav button,.table-action{border:0;background:transparent;color:var(--primary);font-weight:700;cursor:pointer}.guest-body{min-height:100vh;background:linear-gradient(135deg,var(--primary),var(--primary-2) 55%,var(--teal));display:grid;place-items:center;padding:32px}.login-shell{width:min(1050px,100%);display:grid;grid-template-columns:1.05fr .95fr;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:30px;overflow:hidden;box-shadow:0 30px 80px rgba(20,31,60,.3)}.login-brand{padding:70px 58px;color:#fff}.brand-mark.large{width:58px;height:58px;font-size:1.5rem}.login-brand h1{font-size:4rem}.login-points{display:flex;flex-direction:column;gap:13px;margin-top:30px;color:#eef7fa}.login-card{background:#fff;padding:58px;display:flex;flex-direction:column;justify-content:center}.login-card h2,.panel h2{font-size:1.65rem;margin:10px 0}.login-card p,.page-head p{color:var(--muted)}.eyebrow.dark{color:var(--teal)}.form-stack{display:flex;flex-direction:column;gap:18px;margin-top:24px}.form-stack label{display:flex;flex-direction:column;gap:8px;font-size:.85rem;font-weight:700;color:var(--dark)}.form-stack input,.form-stack select{width:100%;padding:13px 14px;border:1px solid #dbe1ec;border-radius:11px;font:inherit;outline:none}.form-stack input:focus,.form-stack select:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(91,171,173,.15)}.form-button{border:0;justify-content:center;cursor:pointer}.login-help{margin-top:20px;color:var(--muted)}.alert{margin:20px 0;padding:14px 17px;border-radius:12px}.alert.error{background:#feecec;color:#a52222}.alert.success{background:#edf8e8;color:#356b29}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:25px}.page-head h1{font-size:2.7rem;margin:10px 0}.button.soft{background:#e7ecf5;color:var(--primary)}.admin-grid{display:grid;grid-template-columns:340px 1fr;gap:22px}.panel{background:#fff;padding:25px;border-radius:20px;box-shadow:0 10px 30px rgba(59,82,132,.08)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.panel-title{display:flex;align-items:center;justify-content:space-between}.badge{padding:7px 11px;border-radius:999px;background:#edf1f8;color:var(--primary);font-size:.78rem;font-weight:700}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;margin-top:15px}th,td{text-align:left;padding:14px 10px;border-bottom:1px solid #edf0f5;font-size:.86rem}th{color:var(--muted);font-size:.75rem;text-transform:uppercase}td strong,td small{display:block}td small{color:var(--muted);margin-top:4px}.status{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:.75rem;font-weight:700}.status.active{background:#edf8e8;color:#356b29}.status.inactive{background:#feecec;color:#a52222}@media(max-width:820px){.login-shell{grid-template-columns:1fr}.login-brand{display:none}.admin-grid{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column;gap:12px}}@media(max-width:560px){.login-card{padding:36px 25px}.main-nav span{display:none}.form-row{grid-template-columns:1fr}}
/* Accesibilidad WCAG: contraste, foco visible y lectura sobre fondos claros */
:root{--teal:#317d80;--teal-contrast:#246a70;--muted:#59647a;--focus:#ffbf47}
p{color:var(--muted)}
.hero{background:linear-gradient(0deg,rgba(20,31,60,.38),rgba(20,31,60,.38)),linear-gradient(135deg,var(--primary),var(--primary-2) 60%,var(--teal))}
.hero p,.login-brand p,.login-points{color:#fff}
.eyebrow.dark{color:var(--teal-contrast)}
.button.primary{color:#253409}
.button.soft{background:#dfe7f3;color:#2f4778}
.main-nav button,.table-action,.main-nav a{color:#2f4778}
.card span,.card small,td small,.phase,.login-help,.login-card p,.page-head p{color:var(--muted)}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.button:focus-visible,.table-action:focus-visible,.main-nav a:focus-visible,.main-nav button:focus-visible{box-shadow:0 0 0 5px rgba(255,191,71,.28)}
.form-stack input:focus-visible,.form-stack select:focus-visible,.form-stack textarea:focus-visible{border-color:var(--teal-contrast);box-shadow:0 0 0 4px rgba(255,191,71,.26);outline:3px solid var(--focus);outline-offset:2px}
.status.active{background:#e8f7e6;color:#285f20}
.status.inactive{background:#feecec;color:#8f1d1d}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
