:root{
  --navy:#0a1220; --navy2:#111c2e; --blue:#2f6fed; --gold:#c9a45b;
  --bg:#eef2f6; --card:#fff; --text:#182232; --muted:#718096;
  --line:#dfe5ec; --green:#2e9d69; --red:#c94b4b; --amber:#b98222;
}
*{box-sizing:border-box} body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{text-decoration:none;color:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:270px;background:linear-gradient(180deg,var(--navy),#080e18);color:#fff;padding:22px 16px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0}
.brand{display:flex;gap:12px;align-items:center;padding:4px 8px 25px;border-bottom:1px solid rgba(255,255,255,.1)}
.brand img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}
.brand strong{display:block;font-size:19px;letter-spacing:.08em}.brand span{display:block;font-size:10px;color:#aab7ca;margin-top:3px;line-height:1.35}
.nav{padding-top:22px}.nav-section-title{display:flex;align-items:center;justify-content:center;margin:18px 4px 9px;color:#7f8da3;font-size:9px;font-weight:800;letter-spacing:.22em;text-align:center}.nav-section-title:first-child{margin-top:0}.nav-section-title:before,.nav-section-title:after{content:"";height:1px;flex:1;background:rgba(255,255,255,.10)}.nav-section-title span{padding:0 10px}.nav-section-title + a{}.nav a{display:flex;align-items:center;gap:13px;color:#aebbd0;padding:12px 13px;border-radius:9px;margin-bottom:5px;font-size:14px}
.nav a:hover,.nav a.active{background:#1b2a42;color:#fff}.nav a:first-of-type{}.nav a.active{box-shadow:inset 3px 0 var(--gold)}
.sidebar-bottom{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding-top:16px}.mini-user{display:flex;gap:10px;align-items:center;margin-bottom:13px}.avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#243858;color:#fff;font-weight:700}
.mini-user strong{display:block;font-size:12px}.mini-user small{display:block;color:#8e9cb1;font-size:10px;margin-top:2px}.logout{display:block;color:#9aa8bb;font-size:12px;padding:8px 2px}.main{margin-left:270px;width:calc(100% - 270px)}.topbar{height:82px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px}
.eyebrow{font-size:9px;letter-spacing:.18em;color:var(--gold);font-weight:700}.top-title{font-size:20px;font-weight:700;margin-top:4px}.status{font-size:11px;color:var(--muted);display:flex;gap:7px;align-items:center}.status span{width:7px;height:7px;background:#40b77b;border-radius:50%}
.content{padding:30px 34px;max-width:1500px}.flash{padding:12px 15px;border-radius:8px;margin-bottom:18px;font-size:13px}.flash.success{background:#e6f6ee;color:#20734e}.flash.error{background:#fdeaea;color:#943737}
.page-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}.page-head h1{margin:0;font-size:27px}.page-head p{margin:6px 0 0;color:var(--muted);font-size:13px}
.btn{border:0;border-radius:7px;padding:10px 14px;background:var(--navy2);color:#fff;font-weight:600;font-size:12px;cursor:pointer;display:inline-block}.btn.gold{background:var(--gold);color:#182232}.btn.blue{background:var(--blue)}.btn.light{background:#edf1f6;color:#344054}
.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(4,1fr)}.cards-3{grid-template-columns:repeat(3,1fr)}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;box-shadow:0 2px 7px rgba(17,28,46,.03)}
.metric .label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.07em}.metric .value{font-size:29px;font-weight:700;margin-top:8px}.metric .hint{font-size:10px;color:var(--muted);margin-top:5px}
.section-title{font-size:15px;font-weight:700;margin:0 0 14px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:12px}.table th{text-align:left;background:#f7f9fb;color:#718096;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.table th,.table td{padding:12px;border-bottom:1px solid var(--line);white-space:nowrap}.table tr:last-child td{border-bottom:0}.table td.actions{white-space:normal;text-align:right}
.badge{display:inline-block;padding:5px 8px;border-radius:20px;font-size:10px;font-weight:700}.b-green{background:#e6f6ee;color:#23734f}.b-red{background:#fdeaea;color:#9b3838}.b-amber{background:#fff5dc;color:#91651a}.b-blue{background:#e8f0ff;color:#315fae}.b-gray{background:#edf1f5;color:#5d6a7b}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:700;color:#536174}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:7px;padding:10px 11px;font:inherit;font-size:12px;outline:none;background:#fff}.field input:focus,.field select:focus,.field textarea:focus{border-color:#86a9ee}.field textarea{min-height:110px;resize:vertical}
.profile{display:grid;grid-template-columns:280px 1fr;gap:18px}.profile-side{background:var(--navy2);color:#fff;border-radius:10px;padding:24px}.profile-side .crest{width:90px;height:90px;border-radius:50%;object-fit:cover;border:3px solid var(--gold);margin-bottom:14px}.profile-side h2{font-size:19px;margin:0 0 4px}.profile-side p{color:#aebbd0;font-size:11px}.profile-side .kv{border-top:1px solid rgba(255,255,255,.1);padding-top:14px;margin-top:16px}.kv div{display:flex;justify-content:space-between;margin:8px 0;font-size:11px}.kv span{color:#8f9db2}
.notice{border-left:4px solid var(--gold);background:#fff;padding:15px;border-radius:7px;border:1px solid var(--line);border-left-width:4px}.notice h3{margin:0 0 5px;font-size:14px}.notice p{margin:0;color:#6c7889;font-size:11px;line-height:1.6}
.login-page{min-height:100vh;background:radial-gradient(circle at top right,#1c2d49,#070d17 55%);display:grid;place-items:center}.login-card{width:420px;background:#fff;border-radius:14px;padding:35px;box-shadow:0 30px 70px rgba(0,0,0,.3)}.login-card img{width:85px;height:85px;object-fit:cover;border-radius:50%;display:block;margin:0 auto 15px;border:3px solid var(--gold)}.login-card h1{text-align:center;margin:0;font-family:"Libre Baskerville",serif;font-size:20px}.login-card p{text-align:center;color:var(--muted);font-size:11px;margin:8px 0 25px}.login-card .field{margin-bottom:13px}
@media(max-width:1000px){.sidebar{width:220px}.main{margin-left:220px;width:calc(100% - 220px)}.stats{grid-template-columns:repeat(2,1fr)}.cards-3{grid-template-columns:1fr}.profile{grid-template-columns:1fr}}
@media(max-width:700px){.sidebar{position:static;width:100%;min-height:auto}.app-shell{display:block}.main{margin:0;width:100%}.nav{display:grid;grid-template-columns:repeat(2,1fr)}.content{padding:20px}.topbar{padding:0 20px}.stats{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}}
.filter-head,.section-row,.evaluation-head,.criterion-top{display:flex;justify-content:space-between;align-items:center;gap:15px}.filter-form{display:grid;grid-template-columns:1.4fr 1fr 1fr auto auto;gap:8px;margin-top:14px}.filter-form input,.filter-form select{border:1px solid var(--line);padding:10px;border-radius:7px;font:inherit;font-size:12px;background:#fff}.muted-small{font-size:11px;color:var(--muted)}.empty-cell{text-align:center!important;color:var(--muted);padding:30px!important}.empty-state{padding:28px;border:1px dashed var(--line);border-radius:8px;background:#f8fafc;color:var(--muted);font-size:12px;text-align:center}.criteria-list{display:grid;gap:10px}.criterion{border:1px solid var(--line);border-radius:9px;padding:13px;background:#fff}.criterion-ooc{background:#f0f1f3;border-color:#d4d7dc}.criterion-top strong{font-size:13px}.criterion select{border:1px solid var(--line);border-radius:7px;padding:8px;background:#fff;font-size:12px}.criterion textarea{width:100%;margin-top:10px;border:1px solid var(--line);border-radius:7px;padding:9px;font:inherit;font-size:12px;resize:vertical}.ooc-tag{display:inline-block;margin-left:7px;padding:3px 6px;border-radius:4px;background:#6f7782;color:#fff;font-size:9px;font-weight:800;letter-spacing:.06em}.scale-note{font-size:10px;color:var(--muted)}.evaluation-average{margin-top:15px;padding:14px;border-radius:8px;background:#f7f9fb;border:1px solid var(--line);display:flex;align-items:center;gap:14px}.evaluation-average span{font-size:11px;text-transform:uppercase;color:var(--muted);font-weight:700}.evaluation-average strong{font-size:13px}.evaluation-average small{margin-left:auto;color:var(--muted);font-size:10px}.score-big{font-size:25px;font-weight:800}.score-big small{font-size:11px;color:var(--muted);font-weight:500}.score-pill{font-weight:800;background:#edf1f6;padding:6px 9px;border-radius:20px;font-size:11px}.criterion-desc{font-size:12px;line-height:1.6;color:#5e6978;margin:10px 0 0;white-space:pre-wrap}.general-comment{margin-top:16px;padding:15px;border-top:1px solid var(--line)}.general-comment strong{font-size:12px}.general-comment p{font-size:12px;color:#5e6978;line-height:1.6;white-space:pre-wrap}.light-kv{border-top:1px solid var(--line);padding-top:8px}.light-kv div{display:flex;justify-content:space-between;gap:15px;padding:9px 0;border-bottom:1px solid var(--line);font-size:11px}.light-kv span{color:var(--muted)}
@media(max-width:900px){.filter-form{grid-template-columns:1fr 1fr}.filter-form .btn{width:100%;text-align:center}.grid[style*="grid-template-columns:1fr 300px"]{grid-template-columns:1fr!important}}
@media(max-width:700px){.filter-form{grid-template-columns:1fr}.filter-head,.section-row,.evaluation-head{align-items:flex-start;flex-direction:column}.evaluation-average{align-items:flex-start;flex-direction:column}.evaluation-average small{margin-left:0}}

/* v0.4 — expediente, bloqueo de examen y estados */
.status-big{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:999px;font-weight:800;font-size:12px;letter-spacing:.04em}.status-en-proceso{background:#fff4d6;color:#8a6400}.status-aprobado{background:#dff4e5;color:#176b35}.status-rechazado{background:#fde2e2;color:#9b2222}.status-expulsado{background:#eadcf5;color:#642c82}.danger{background:#8f1d1d;color:#fff}.notice-danger{background:#f9e6e6;border:1px solid #efc4c4;color:#8f1d1d;padding:12px;border-radius:8px}.exam-locked{background:linear-gradient(180deg,#fff,#f5f5f5);border:1px solid #ddd}.locked-box{margin-top:14px;padding:18px;display:flex;gap:15px;align-items:flex-start;background:#f1f1f1;border:1px solid #d7d7d7;border-radius:10px;color:#555}.lock-icon{font-size:28px;opacity:.7}.prereq{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.prereq span{padding:6px 9px;border-radius:6px;background:#e2e2e2;font-size:11px;font-weight:700}.prereq .ok{background:#dff4e5;color:#176b35}.prereq .bad{background:#fde2e2;color:#9b2222}.exam-intro{border-left:4px solid #9c7a24;padding:4px 0 4px 14px}.exam-intro h2{margin:8px 0 4px}.exam-intro p{margin:0;color:#666}.exam-result{margin-top:15px;padding:13px 15px;border-radius:8px;display:flex;justify-content:space-between;align-items:center}.exam-pass{background:#dff4e5;color:#176b35}.exam-fail{background:#fde2e2;color:#9b2222}.exam-result strong{font-size:14px}.exam-result span{font-size:12px}.muted-small{font-size:11px;color:#777}

/* v0.5 — academias unificadas y RED */
.actions{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.academy-link{color:var(--navy2);text-decoration:none}.academy-link:hover{text-decoration:underline}.academy-summary{grid-template-columns:repeat(4,1fr)}.academy-summary .metric .value{font-size:27px}.btn.danger{background:#a52a2a;color:#fff}.btn.danger:hover{filter:brightness(.95)}

.mini-user-link{display:block;color:inherit}.mini-user-link:hover strong{text-decoration:underline}.profile-history{display:grid;gap:10px}.profile-history-item{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fff}.profile-history-item .history-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.profile-history-item .history-meta{font-size:11px;color:var(--muted);margin-top:5px}.profile-history-item .history-note{font-size:12px;color:#536174;margin-top:8px}.role-card{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;background:#edf1f6;font-size:10px;font-weight:800;color:#435064}

/* v0.7 */
.profile-side .crest{width:96px;height:96px}.profile-side h2{font-size:21px}.profile-side p{font-size:12px}.profile-side .kv div{font-size:12px}.sidebar .nav a{font-size:15px;padding:13px 14px}.sidebar .nav a span{font-weight:600}.profile-side::after{content:'LSPD / RED\A Recruitment & Employment Division\A Sistema interno de formación y evaluación';white-space:pre;display:block;margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);color:#8291a8;font-size:10px;line-height:1.7;letter-spacing:.03em}.criterion-ooc textarea{background:#fafafa}.profile-history-item a{color:inherit}
.role-protected{display:inline-flex;align-items:center;padding:8px 10px;border-radius:7px;background:#f1f1f1;color:#555;font-weight:700;font-size:12px}.modal-backdrop{position:fixed;inset:0;background:rgba(5,12,22,.62);align-items:center;justify-content:center;z-index:1000}.modal-card{width:min(460px,calc(100% - 30px));background:#fff;border-radius:12px;padding:22px;box-shadow:0 25px 80px rgba(0,0,0,.3)}.modal-card h2{margin:0 0 7px}.modal-card p{font-size:12px;color:var(--muted);line-height:1.5}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.schedule-grid{display:grid;gap:9px}.schedule-item{display:grid;grid-template-columns:130px 1fr auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:13px;background:#fff}.schedule-time{font-weight:800;font-size:13px;color:var(--navy2)}
@media(max-width:700px){.schedule-item{grid-template-columns:1fr}.schedule-item .actions{justify-content:flex-start}}

.calendar-wrap{overflow:auto}.calendar{min-width:760px}.calendar-head{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:8px}.calendar-head div{padding:9px 8px;text-align:center;background:#f5f7fa;border:1px solid var(--line);border-radius:7px;color:#66748a;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-day{min-height:120px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:9px;position:relative}.calendar-day.empty{background:#f8fafc;border-style:dashed}.calendar-day.today-range{box-shadow:inset 0 2px 0 var(--gold)}.calendar-date{font-size:12px;font-weight:800;color:var(--navy2);display:flex;justify-content:space-between;gap:4px}.calendar-weekday{font-size:9px;color:var(--muted);font-weight:600}.calendar-event{margin-top:7px;padding:6px 7px;border-radius:6px;background:#edf3ff;border-left:3px solid var(--blue);font-size:10px}.calendar-event strong{display:block;font-size:10px}.calendar-event span{display:block;color:#617086;margin-top:2px}.calendar-event .event-actions{margin-top:5px;display:flex;gap:4px}.calendar-event .btn{padding:4px 6px;font-size:9px}.upload-help{margin-top:8px;font-size:10px;color:var(--muted)}.upload-error{margin-top:8px;padding:9px 11px;border-radius:7px;background:#fff3f3;border:1px solid #f1cccc;color:#9b3838;font-size:11px}

/* v1.1 — navegación, panel de administración y permisos visuales */
.nav-section-title{font-size:11px;letter-spacing:.24em;font-weight:800;margin-top:22px;margin-bottom:11px}.nav-section-title span{padding:0 12px}.nav-icon{width:18px;height:18px;display:inline-grid;place-items:center;flex:0 0 18px;font-size:11px;font-weight:900;line-height:1;border:1px solid rgba(255,255,255,.22);color:#aebbd0}.nav-icon-alert{border-radius:50%;font-size:10px}.nav-icon-book{border-radius:3px;font-size:11px}.nav-icon-calendar{border-radius:3px;font-size:10px}.role-static{display:inline-flex;align-items:center;padding:8px 10px;border-radius:7px;background:#f1f3f6;color:#445064;font-weight:700;font-size:12px}
.admin-banner{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;border-radius:11px;background:linear-gradient(110deg,#111c2e,#1a2a43);color:#fff;margin-bottom:16px}.admin-banner strong{font-size:15px}.admin-banner p{margin:5px 0 0;color:#aebbd0;font-size:11px}.admin-badge{display:inline-flex;padding:4px 7px;border-radius:5px;background:var(--gold);color:#182232;font-size:9px;font-weight:900;letter-spacing:.08em;margin-right:8px}.admin-banner-status{font-size:11px;color:#b7c4d5;display:flex;align-items:center;gap:7px}.admin-banner-status span{width:7px;height:7px;background:#40b77b;border-radius:50%}.admin-kpis{grid-template-columns:1.4fr 1fr}.admin-main-grid{grid-template-columns:1.35fr 1fr}.status-bars{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.status-bars>div{padding:13px;border-radius:8px;background:#f7f9fb;border:1px solid var(--line)}.status-bars span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:700}.status-bars strong{display:block;font-size:22px;margin-top:5px}.admin-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.admin-mini-grid div{padding:14px;background:#f7f9fb;border:1px solid var(--line);border-radius:8px}.admin-mini-grid strong{display:block;font-size:22px}.admin-mini-grid span{display:block;color:var(--muted);font-size:10px;margin-top:3px}.role-list{display:grid;gap:2px}.role-list div{display:flex;justify-content:space-between;padding:9px 2px;border-bottom:1px solid var(--line);font-size:12px}.role-list div:last-child{border-bottom:0}.role-list strong{font-size:13px}.admin-academy{display:flex;align-items:center;gap:12px}.admin-academy-icon{width:42px;height:42px;border-radius:9px;background:var(--navy2);color:var(--gold);display:grid;place-items:center;font-weight:800}.admin-academy>div:nth-child(2){flex:1}.admin-academy span{display:block;color:var(--muted);font-size:10px;margin-top:3px}.admin-list{display:grid;gap:4px}.admin-list>div{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.admin-list>div:last-child{border-bottom:0}.admin-list strong{display:block;font-size:12px}.admin-list span{display:block;color:var(--muted);font-size:10px;margin-top:3px}.admin-date{min-width:48px;text-align:center;padding:7px;border-radius:7px;background:#edf1f6;color:#435064;font-size:10px;font-weight:800}.admin-dot{width:28px;height:28px;border-radius:7px;background:#fff5dc;color:#91651a;display:grid;place-items:center;font-weight:900}.admin-dot.book{background:#e8f0ff;color:#315fae}
@media(max-width:900px){.admin-kpis,.admin-main-grid{grid-template-columns:1fr}.status-bars{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.admin-banner{align-items:flex-start;flex-direction:column}.admin-mini-grid{grid-template-columns:1fr}.status-bars{grid-template-columns:1fr}.nav-section-title{font-size:10px}}

/* v1.2 — navegación y centro de control */
.nav-section-title{font-size:14px;letter-spacing:.28em;margin-top:25px;margin-bottom:12px;color:#9eabc0}.nav-section-title span{padding:0 14px}.nav-section-title:before,.nav-section-title:after{background:rgba(255,255,255,.16)}
.inline-role-form{display:flex;gap:7px;align-items:center}.inline-role-form select{border:1px solid var(--line);padding:7px;border-radius:6px;background:#fff}.admin-control-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:16px}.admin-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.admin-action{padding:13px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.admin-action:hover{background:#f0f4f9}.admin-action strong{display:block;font-size:12px}.admin-action span{display:block;color:var(--muted);font-size:10px;margin-top:4px}.stats-context{display:flex;justify-content:space-between;gap:10px;align-items:center}.stats-context strong{font-size:15px}.stats-context span{font-size:11px;color:var(--muted)}.stats-2{grid-template-columns:1.3fr 1fr}
@media(max-width:900px){.admin-control-grid,.stats-2{grid-template-columns:1fr}}@media(max-width:700px){.admin-actions{grid-template-columns:1fr}.stats-context{align-items:flex-start;flex-direction:column}}

/* v1.3 — archivo de personal, filtros estadísticos y jerarquía visual */
.nav-section-title{font-size:16px;letter-spacing:.30em;font-weight:900;text-align:center;color:#b7c3d5;border-top:1px solid rgba(255,255,255,.12);padding-top:13px;margin-top:26px;margin-bottom:13px}.nav-section-title:first-child{border-top:0;margin-top:4px;padding-top:0}
.subnav-tabs{display:flex;gap:6px;margin:0 0 14px}.subnav-tabs a{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#556174;font-size:11px;font-weight:800}.subnav-tabs a.active{background:var(--navy2);border-color:var(--navy2);color:#fff}.subnav-tabs span{min-width:18px;text-align:center;padding:2px 5px;border-radius:10px;background:#e8edf4;color:#526176;font-size:9px}.subnav-tabs a.active span{background:rgba(255,255,255,.16);color:#fff}.archive-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;background:#f7f9fc}.archive-banner strong{font-size:14px}.archive-banner p{margin:4px 0 0;color:var(--muted);font-size:11px}.stats-filter{display:flex;align-items:center;justify-content:space-between;gap:18px}.stats-filter strong{display:block;font-size:13px}.stats-filter span{display:block;color:var(--muted);font-size:10px;margin-top:3px}.stats-filter form{min-width:300px}.stats-filter select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;font-weight:700;color:#334055}.role-static{display:inline-flex;align-items:center;padding:8px 10px;border-radius:7px;background:#f1f3f6;color:#445064;font-weight:700;font-size:12px}
@media(max-width:700px){.stats-filter,.archive-banner{align-items:flex-start;flex-direction:column}.stats-filter form{width:100%;min-width:0}.subnav-tabs{overflow:auto}}


/* v1.4 — Manuales V2 y acabados de interfaz */
.manual-v2-form-card{margin-bottom:18px}.manual-v2-library{background:transparent}.manual-v2-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.manual-v2-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:0;overflow:hidden;box-shadow:0 2px 7px rgba(17,28,46,.03)}.manual-v2-open{width:100%;border:0;background:#fff;display:flex;align-items:center;gap:13px;padding:16px;text-align:left;cursor:pointer;color:var(--text)}.manual-v2-open:hover{background:#f8fafc}.manual-v2-icon{width:42px;height:42px;flex:0 0 42px;border-radius:9px;background:#eef3fb;color:#315fae;display:grid;place-items:center;font-weight:900}.manual-v2-body{min-width:0;flex:1}.manual-v2-body strong{display:block;font-size:13px;line-height:1.35}.manual-v2-body small{display:block;margin-top:5px;color:var(--muted);font-size:10px}.manual-v2-arrow{font-size:25px;color:#9aa6b7}.manual-v2-meta{border-top:1px solid var(--line);padding:10px 13px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fbfcfd}.manual-modal{position:fixed;inset:0;z-index:1000;display:none}.manual-modal.open{display:block}.manual-modal-backdrop{position:absolute;inset:0;background:rgba(5,12,22,.72);backdrop-filter:blur(2px)}.manual-modal-panel{position:relative;width:min(1180px,92vw);height:min(88vh,900px);margin:6vh auto 0;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 25px 80px rgba(0,0,0,.35);display:flex;flex-direction:column}.manual-modal-head{height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--line);background:#fff}.manual-modal-head strong{font-size:13px}.manual-modal-close{border:0;background:#edf1f6;color:#445064;border-radius:7px;width:32px;height:32px;font-size:22px;line-height:1;cursor:pointer}.manual-modal-frame{flex:1;background:#e9edf2}.manual-modal-frame iframe{width:100%;height:100%;border:0}.upload-help{font-size:10px;color:var(--muted);line-height:1.5}@media(max-width:800px){.manual-v2-grid{grid-template-columns:1fr}.manual-modal-panel{width:96vw;height:92vh;margin:4vh auto 0}}

/* v1.4 — selector de estadísticas */
.stats-filter{padding:17px 18px;background:linear-gradient(180deg,#fff,#fbfcfe);border-radius:11px}.stats-filter-copy{display:flex;align-items:center;gap:12px;min-width:0}.stats-filter-icon{width:36px;height:36px;flex:0 0 36px;border-radius:9px;display:grid;place-items:center;background:#eef3fb;color:#315fae;font-size:18px;font-weight:800;border:1px solid #dce5f3}.stats-filter-copy strong{display:block;font-size:13px}.stats-filter-copy span:not(.stats-filter-icon){display:block;color:var(--muted);font-size:10px;margin-top:4px;line-height:1.4}.stats-select-form{min-width:330px}.stats-select-form label{display:block;margin-bottom:5px;color:#667386;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.stats-select-wrap{position:relative}.stats-select-wrap select{appearance:none;-webkit-appearance:none;width:100%;padding:11px 38px 11px 12px;border:1px solid #d7dee8;border-radius:8px;background:#fff;color:#29364a;font:600 12px Inter,Arial,sans-serif;box-shadow:0 1px 2px rgba(17,28,46,.03);cursor:pointer}.stats-select-wrap select:hover{border-color:#b7c4d5}.stats-select-wrap select:focus{outline:none;border-color:#86a9ee;box-shadow:0 0 0 3px rgba(47,111,237,.10)}.stats-select-chevron{pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-54%);color:#748196;font-size:15px;font-weight:800}.manual-v2-form-card .form-grid{align-items:end}
@media(max-width:700px){.stats-filter-copy{align-items:flex-start}.stats-select-form{width:100%;min-width:0}}
/* Academy promotion identity */
.academy-name-cell{display:inline-flex;align-items:center;gap:10px}.academy-mark{position:relative;width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:9px;background:linear-gradient(145deg,#17243a,#263b5c);color:#f0c96a;border:1px solid rgba(240,201,106,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 4px 10px rgba(17,28,46,.10);font-family:Inter,Arial,sans-serif}.academy-mark b{font-family:'Libre Baskerville',serif;font-size:21px;line-height:1}.academy-mark small{position:absolute;right:5px;top:4px;font-size:7px;line-height:1;font-weight:900;letter-spacing:.02em;color:#fff;background:rgba(240,201,106,.18);border-radius:3px;padding:2px 3px}.academy-mark-lg{width:50px;height:50px;flex-basis:50px;border-radius:11px}.academy-mark-lg b{font-size:28px}.academy-mark-lg small{right:6px;top:5px;font-size:8px}.academy-title-row{display:flex;align-items:center;gap:13px}.academy-title-row h1{margin:0}.academy-create-card .academy-name-preview{min-height:42px;display:flex;align-items:center;gap:11px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.academy-create-card .academy-name-preview strong{font-size:13px;color:#29364a}.admin-academy-icon.academy-mark{width:42px;height:42px;flex-basis:42px}.admin-academy-icon.academy-mark b{font-size:23px}.admin-academy-icon.academy-mark small{font-size:7px}

/* v1.6 — seguridad y editor de usuarios */
.admin-user-editor{max-width:900px}.editor-head{display:flex;align-items:center;gap:12px;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line)}.editor-head>div:nth-child(2){flex:1}.editor-head strong{display:block;font-size:15px}.editor-head span:not(.badge){display:block;color:var(--muted);font-size:11px;margin-top:4px}.editor-avatar{width:44px;height:44px;border-radius:10px;background:var(--navy2);color:var(--gold);display:grid;place-items:center;font-weight:900;font-size:18px}.editor-actions{display:flex;gap:8px;padding-top:5px}.security-note{max-width:900px;margin-top:14px;background:#f7f9fc;border-left:3px solid #7a8798}.security-note p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.role-static{min-height:38px;box-sizing:border-box;display:flex;align-items:center}

/* v1.7 — comparador de academias y detalles de navegación */
.stats-tabs{display:flex;gap:7px;margin:0 0 14px;padding:4px;background:#edf1f6;border:1px solid #dfe5ed;border-radius:10px;width:max-content}.stats-tabs a{display:inline-flex;align-items:center;padding:9px 14px;border-radius:7px;color:#667386;text-decoration:none;font-size:11px;font-weight:800}.stats-tabs a.active{background:#fff;color:#26364d;box-shadow:0 2px 7px rgba(17,28,46,.08)}.compare-selector{padding:18px;margin-bottom:16px}.compare-selector-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}.compare-selector-head strong{display:block;font-size:13px}.compare-selector-head span{display:block;margin-top:4px;color:var(--muted);font-size:10px}.compare-select-grid{display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr) auto;gap:12px;align-items:end}.compare-field label{display:block;margin-bottom:6px;color:#667386;font-size:9px;font-weight:800;letter-spacing:.08em}.compare-field select{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid #d7dee8;border-radius:8px;background:#fff;color:#29364a;font:600 12px Inter,Arial,sans-serif}.compare-vs{height:38px;display:grid;place-items:center;font-size:10px;font-weight:900;color:#8290a3}.compare-submit{height:38px;white-space:nowrap}.compare-heading{display:grid;grid-template-columns:1fr 70px 1fr;gap:12px;align-items:center;margin-bottom:12px;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,#fff,#f8fafc)}.compare-heading strong{display:block;font-size:14px}.compare-heading span{display:block;color:var(--muted);font-size:10px;margin-top:4px}.compare-heading-vs{text-align:center;font-size:11px;font-weight:900;letter-spacing:.16em;color:#7d899b}.align-right{text-align:right}.compare-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.compare-card{padding:15px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 2px 7px rgba(17,28,46,.03)}.compare-label{font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.07em}.compare-values{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin-top:12px}.compare-values strong{font-size:23px}.compare-values strong:last-child{text-align:right}.compare-values span{text-align:center;color:#9aa6b7;font-size:10px;font-weight:800}.compare-names{display:flex;justify-content:space-between;gap:10px;margin-top:8px;color:#7b8798;font-size:9px}.stats-filter-icon{font-family:Inter,Arial,sans-serif}
@media(max-width:800px){.compare-select-grid{grid-template-columns:1fr}.compare-vs{height:auto}.compare-submit{width:100%}.compare-grid{grid-template-columns:1fr 1fr}.compare-heading{grid-template-columns:1fr;gap:7px}.compare-heading-vs{display:none}.align-right{text-align:left}}
@media(max-width:520px){.stats-tabs{width:100%;box-sizing:border-box}.stats-tabs a{flex:1;justify-content:center}.compare-grid{grid-template-columns:1fr}}

/* v1.7.1 - Login institucional */
.login-layout{width:min(980px,calc(100% - 36px));display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:34px;align-items:center}
.login-info{color:#e7edf6;padding:18px 10px 18px 18px}
.login-info-mark{width:62px;height:62px;border:1px solid rgba(240,201,106,.45);border-radius:14px;display:grid;place-items:center;color:#f0c96a;font:800 16px Inter,Arial,sans-serif;letter-spacing:.08em;background:rgba(255,255,255,.04);box-shadow:0 12px 30px rgba(0,0,0,.18);margin-bottom:22px}
.login-info .eyebrow{color:#aebbd0;font-size:10px;letter-spacing:.18em;font-weight:800;margin-bottom:9px}
.login-info h2{font:700 28px 'Libre Baskerville',serif;margin:0 0 13px;line-height:1.2}
.login-info p{max-width:500px;color:#aebbd0;font-size:13px;line-height:1.75;margin:0}
.login-info-line{display:flex;align-items:center;gap:9px;margin-top:22px;color:#8392a8}.login-info-line span{width:7px;height:7px;border-radius:50%;background:#62b27c;box-shadow:0 0 0 4px rgba(98,178,124,.12)}.login-info-line small{font-size:10px;font-weight:700;letter-spacing:.03em}
@media(max-width:780px){.login-layout{grid-template-columns:1fr;gap:16px}.login-info{padding:10px 4px;text-align:center}.login-info-mark{margin:0 auto 15px}.login-info-line{justify-content:center}.login-info h2{font-size:23px}.login-card{width:auto}}

/* v1.8 — Preselección y marca institucional */
.login-info-logo{padding:7px;overflow:hidden}.login-info-logo img{width:100%;height:100%;object-fit:contain;border-radius:50%;display:block}.preselection-add{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.6fr);gap:20px;align-items:end}.preselection-add-form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}.preselection-table th,.preselection-table td{text-align:center}.preselection-table th:nth-child(1),.preselection-table th:nth-child(2),.preselection-table td:nth-child(1),.preselection-table td:nth-child(2){text-align:left}.preselection-status-form{margin:0}.preselection-status-select{min-width:125px;appearance:none;-webkit-appearance:none;padding:8px 28px 8px 10px;border:1px solid #d7dee8;border-radius:8px;background:#fff;color:#566276;font:700 10px Inter,Arial,sans-serif;text-align:center;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,#7d899b 50%),linear-gradient(135deg,#7d899b 50%,transparent 50%);background-position:calc(100% - 12px) 12px,calc(100% - 8px) 12px;background-size:4px 4px,4px 4px;background-repeat:no-repeat}.preselection-status-select:focus{outline:none;border-color:#86a9ee;box-shadow:0 0 0 3px rgba(47,111,237,.10)}.preselection-status-select.is-apto{background-color:#e8f6ee;color:#23734f;border-color:#b9e1ca}.preselection-status-select.is-no-apto{background-color:#fdeaea;color:#9b3838;border-color:#efc0c0}.nav-icon-check{font-weight:900;color:#8fa4c2}@media(max-width:850px){.preselection-add{grid-template-columns:1fr}.preselection-add-form{grid-template-columns:1fr 1fr}.preselection-add-form .btn{grid-column:1/-1}.login-layout{grid-template-columns:1fr 420px}}@media(max-width:520px){.preselection-add-form{grid-template-columns:1fr}.preselection-add-form .btn{grid-column:auto}.preselection-status-select{min-width:105px}}
.academy-filter-logo{padding:0!important;overflow:hidden;background:#111c2e!important;border-color:rgba(201,164,91,.35)!important}.academy-filter-logo img{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}

/* v1.9 — Preselección: fases correlativas y controles de gestión */
.preselection-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.preselection-head-actions form{margin:0}.preselection-status-select.is-locked{background:#f1f3f6;color:#8a95a5;border-color:#dfe4eb;cursor:not-allowed;background-image:none}.preselection-status-select:disabled{opacity:1}.preselection-lock-note{display:block;margin-top:5px;color:#8a95a5;font-size:8px;font-weight:700;letter-spacing:.01em}.preselection-admin-note{color:#6f7d92}.btn.small{padding:7px 10px;font-size:9px}.preselection-table td:last-child{white-space:nowrap}@media(max-width:850px){.preselection-head-actions{justify-content:flex-start}.preselection-head-actions .btn{width:auto}}

/* v1.10 — ajustes visuales */
.compare-arrows-icon{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:9px;background:#eef3fb;border:1px solid #d9e3f3;color:#2f6dcc;font-size:24px;font-weight:900;line-height:1;box-sizing:border-box}

.academy-tabs{margin-bottom:16px}.academy-archive-card{margin-top:0}

/* PATCH 1.10.2 - visual corrections */
.preselection-alert{display:block;box-sizing:border-box;width:100%;margin:10px 0 0;padding:9px 11px;border:1px solid #d96b6b;border-left:4px solid #b52b2b;border-radius:7px;background:#fff0f0;color:#9b2222;font-size:11px;line-height:1.45;font-weight:500;}
.preselection-list-card .section-row{margin-bottom:0;}
.manual-v2-form-head{margin-bottom:0!important;}
.manual-v2-add-form{margin-top:0!important;}

.manual-v2-add-form{margin-top:0!important;align-items:start!important;}
.manual-v2-form-card .section-row{margin-bottom:0!important;}
.manual-v2-form-card .field{margin:0!important;}
.manual-v2-form-card .field label{display:block!important;margin-bottom:6px!important;}
.manual-v2-form-card .upload-help{display:block!important;margin-top:5px!important;}
@media(min-width:801px){.manual-v2-form-card .manual-v2-add-form{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) minmax(180px,.7fr) auto!important;column-gap:12px!important;row-gap:10px!important;align-items:start!important}.manual-v2-form-card .manual-v2-add-form>div:last-child{padding-top:20px!important}}


/* v1.11.1 — Preselección: botón de guardado sin SVG externo/inline.
   El icono se dibuja únicamente con CSS para evitar cuadros vacíos por renderizado del navegador. */
.preselection-status-form{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    margin:0;
}
.preselection-save-btn{
    width:32px!important;
    min-width:32px!important;
    height:32px!important;
    padding:0!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    border:1px solid #cfd8e5!important;
    border-radius:8px!important;
    background:#f4f7fb!important;
    color:#354b69!important;
    box-sizing:border-box!important;
    vertical-align:middle;
    cursor:pointer;
}
.preselection-save-btn:hover{
    background:#e8eef6!important;
    color:#1f3859!important;
    border-color:#b9c6d7!important;
}
.preselection-save-btn:focus-visible{
    outline:3px solid rgba(47,111,237,.14);
    outline-offset:1px;
}

/* v1.11.2 — icono de guardado como PNG real para máxima compatibilidad. */
.preselection-save-icon-img{display:block!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;object-fit:contain!important;opacity:1!important;visibility:visible!important;filter:none!important;pointer-events:none!important;}


/* v1.12 — Personal: botón de guardado de rango con el mismo icono que Preselección. */
.personal-role-save-btn{width:32px!important;min-width:32px!important;height:32px!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border:1px solid #cfd8e5!important;border-radius:8px!important;background:#f4f7fb!important;color:#354b69!important;box-sizing:border-box!important;vertical-align:middle;cursor:pointer}
.personal-role-save-btn:hover{background:#e8eef6!important;color:#1f3859!important;border-color:#b9c6d7!important}
.personal-role-save-btn:focus-visible{outline:3px solid rgba(47,111,237,.14);outline-offset:1px}

/* v1.13 — Logs administrativos y editor visual */
.nav-icon-logs{font-weight:900;color:#8fa4c2;font-size:16px;line-height:1}

.log-metrics{margin-bottom:16px}.log-filter-card{margin-bottom:16px}.log-filter-grid{display:grid;grid-template-columns:1.15fr 1.35fr .7fr .9fr .85fr .85fr;gap:12px;margin-top:14px;align-items:end}.log-search-field{grid-column:1/-2}.log-filter-actions{display:flex;gap:8px;align-items:end;justify-content:flex-end}.log-feed{display:grid;gap:10px}.log-entry{padding:14px 16px}.log-entry-error{border-color:#edc0c0;background:#fffafa}.log-entry-main{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;align-items:start}.log-entry-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:12px;font-weight:900}.log-entry-copy{min-width:0}.log-entry-topline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.log-entry-topline strong{font-size:12px}.log-category{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:800;letter-spacing:.02em}.log-entry-copy>p{font-size:12px;margin:7px 0 0;color:#435064;line-height:1.45;white-space:normal}.log-entry-meta{display:flex;gap:8px 14px;flex-wrap:wrap;margin-top:8px;color:var(--muted);font-size:9px}.log-entry-meta span{position:relative}.log-entry-meta span+span:before{content:"•";margin-right:8px;color:#b2bcc9}.log-cat-db{background:#e9f1ff;color:#315fae}.log-cat-user{background:#e8f6ee;color:#23734f}.log-cat-action{background:#eef0ff;color:#515db4}.log-cat-content{background:#fff4d9;color:#8a641b}.log-cat-security{background:#fdeaea;color:#9b3838}.log-cat-system{background:#edf1f5;color:#5d6a7b}.log-details{align-self:center;min-width:96px}.log-details summary{list-style:none;cursor:pointer;color:#47627f;background:#edf2f7;border-radius:7px;padding:8px 10px;font-size:10px;font-weight:700;text-align:center}.log-details summary::-webkit-details-marker{display:none}.log-details[open]{grid-column:1/-1}.log-details[open] summary{width:max-content;margin-left:auto}.log-detail-panel{margin-top:12px;padding:14px;border-radius:9px;background:#f7f9fc;border:1px solid #e1e7ef}.log-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.log-detail-grid>div{background:#fff;border:1px solid var(--line);border-radius:7px;padding:9px;min-width:0}.log-detail-grid span,.log-structured>span{display:block;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px}.log-detail-grid strong{display:block;font-size:10px;overflow-wrap:anywhere}.log-structured{margin-top:10px}.log-structured pre{margin:0;max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:#fff;border:1px solid var(--line);border-radius:7px;padding:10px;font:10px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;color:#435064}.log-structured .log-sql{background:#0f1723;color:#d8e3ef;border-color:#24344a}.log-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px}.log-pagination span{font-size:11px;color:var(--muted)}.log-migration-warning{border-color:#efd69d;background:#fffaf0}.log-migration-warning strong{font-size:13px}.log-migration-warning p{margin:7px 0 0;color:#7a6540;font-size:11px}.log-migration-warning code{background:#f5ebd6;padding:2px 5px;border-radius:4px}

.visual-editable-text{position:relative}.visual-edit-pencil{display:inline-grid!important;place-items:center!important;width:23px!important;min-width:23px!important;height:23px!important;padding:0!important;margin-left:7px!important;border:1px solid #cfd8e5!important;border-radius:6px!important;background:#f4f7fb!important;color:#37516f!important;font:800 14px/1 Inter,Arial,sans-serif!important;vertical-align:middle!important;cursor:pointer!important;opacity:.82;transition:.15s ease;transform:translateY(-1px)}.visual-edit-pencil:hover{opacity:1;background:#e7eef8!important;border-color:#aec0d7!important;color:#173a65!important}.visual-edit-pencil:focus-visible{outline:3px solid rgba(47,111,237,.14);outline-offset:1px}.page-head p .visual-edit-pencil,.muted-small .visual-edit-pencil{width:20px!important;min-width:20px!important;height:20px!important;font-size:12px!important;margin-left:6px!important;transform:none}
.visual-editor-modal{position:fixed;inset:0;z-index:9999;display:none}.visual-editor-modal.open{display:block}.visual-editor-backdrop{position:absolute;inset:0;background:rgba(7,13,23,.62);backdrop-filter:blur(2px)}.visual-editor-dialog{position:relative;width:min(620px,calc(100% - 28px));margin:9vh auto 0;background:#fff;border:1px solid #d9e1eb;border-radius:13px;box-shadow:0 30px 80px rgba(0,0,0,.28);padding:20px}.visual-editor-dialog-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:16px}.visual-editor-dialog-head span{display:block;color:var(--gold);font-size:8px;font-weight:900;letter-spacing:.12em;margin-bottom:5px}.visual-editor-dialog-head h2{margin:0;font-size:18px}.visual-editor-close{width:30px;height:30px;border:0;border-radius:7px;background:#eef2f6;color:#526071;font-size:20px;line-height:1;cursor:pointer}.visual-editor-dialog textarea{min-height:120px}.visual-editor-help{margin:8px 0 0;color:var(--muted);font-size:10px;line-height:1.55}.visual-editor-dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:17px}.visual-editor-toast{position:fixed;right:22px;bottom:22px;z-index:10020;max-width:360px;padding:11px 14px;border-radius:8px;color:#fff;font-size:11px;font-weight:700;box-shadow:0 14px 35px rgba(0,0,0,.2);opacity:0;transform:translateY(10px);pointer-events:none;transition:.18s ease}.visual-editor-toast.show{opacity:1;transform:translateY(0)}.visual-editor-toast.success{background:#24714f}.visual-editor-toast.error{background:#a33d3d}

@media(max-width:1100px){.log-filter-grid{grid-template-columns:repeat(3,1fr)}.log-search-field{grid-column:1/3}.log-filter-actions{grid-column:3}.log-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.log-filter-grid{grid-template-columns:1fr 1fr}.log-search-field{grid-column:1/-1}.log-filter-actions{grid-column:1/-1;justify-content:flex-start}.log-entry-main{grid-template-columns:34px minmax(0,1fr)}.log-details{grid-column:1/-1}.log-details summary{width:max-content;margin-left:46px}.log-detail-grid{grid-template-columns:1fr}.visual-editor-dialog-actions{align-items:stretch;flex-direction:column-reverse}.visual-editor-dialog-actions>div{display:flex;gap:8px}.visual-editor-dialog-actions .btn{flex:1;text-align:center}.visual-editor-dialog-actions>button{width:100%}}


/* v1.13.1 — Cabecera y modo claro/oscuro por usuario */
.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}
.theme-toggle{height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 11px;border:1px solid #d8e0ea;border-radius:8px;background:#f6f8fb;color:#40516a;font:700 10px/1 Inter,Arial,sans-serif;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}
.theme-toggle:hover{background:#edf2f7;border-color:#c4cfdd;color:#25384f}
.theme-toggle:active{transform:translateY(1px)}
.theme-toggle:focus-visible{outline:3px solid rgba(47,111,237,.16);outline-offset:2px}
.theme-toggle-icon{display:grid;place-items:center;width:16px;min-width:16px;height:16px;font-size:15px;line-height:1}
.theme-toggle-label{display:inline-block}

html[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0d141d;
  --card:#151f2b;
  --text:#e7edf5;
  --muted:#9aa9ba;
  --line:#2a394a;
  --navy2:#1b2939;
  --blue:#5b8ff5;
  --gold:#d1ad68;
}
html[data-theme="dark"] body{background:var(--bg);color:var(--text)}
html[data-theme="dark"] .topbar{background:#121c27;border-bottom-color:var(--line)}
html[data-theme="dark"] .top-title,
html[data-theme="dark"] .page-head h1,
html[data-theme="dark"] .section-title,
html[data-theme="dark"] .card,
html[data-theme="dark"] .metric .value,
html[data-theme="dark"] .table td,
html[data-theme="dark"] .table strong{color:var(--text)}
html[data-theme="dark"] .status{color:#9eb0c2}
html[data-theme="dark"] .theme-toggle{background:#1a2633;border-color:#34465a;color:#d9e3ed}
html[data-theme="dark"] .theme-toggle:hover{background:#223142;border-color:#43596f;color:#fff}
html[data-theme="dark"] .card,
html[data-theme="dark"] .notice,
html[data-theme="dark"] .profile-history-item,
html[data-theme="dark"] .schedule-item,
html[data-theme="dark"] .calendar-day,
html[data-theme="dark"] .compare-card,
html[data-theme="dark"] .modal-card,
html[data-theme="dark"] .visual-editor-dialog{background:var(--card);border-color:var(--line);box-shadow:none}
html[data-theme="dark"] .table th{background:#1a2633;color:#9fb0c2}
html[data-theme="dark"] .table th,
html[data-theme="dark"] .table td{border-bottom-color:var(--line)}
html[data-theme="dark"] .field label{color:#a9b7c6}
html[data-theme="dark"] .field input,
html[data-theme="dark"] .field select,
html[data-theme="dark"] .field textarea,
html[data-theme="dark"] .filter-form input,
html[data-theme="dark"] .filter-form select,
html[data-theme="dark"] .criterion select,
html[data-theme="dark"] .criterion textarea,
html[data-theme="dark"] .compare-field select,
html[data-theme="dark"] .preselection-status-select{background-color:#101923;color:#e6edf5;border-color:#334456}
html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder{color:#718296}
html[data-theme="dark"] .empty-state,
html[data-theme="dark"] .criterion,
html[data-theme="dark"] .evaluation-average,
html[data-theme="dark"] .status-bars>div,
html[data-theme="dark"] .admin-mini-grid div,
html[data-theme="dark"] .security-note,
html[data-theme="dark"] .compare-heading,
html[data-theme="dark"] .log-detail-panel{background:#111b26;border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .criterion-ooc{background:#19232f;border-color:#364758}
html[data-theme="dark"] .criterion-ooc textarea{background:#101923}
html[data-theme="dark"] .score-pill,
html[data-theme="dark"] .role-card,
html[data-theme="dark"] .role-protected,
html[data-theme="dark"] .role-static,
html[data-theme="dark"] .admin-date,
html[data-theme="dark"] .btn.light,
html[data-theme="dark"] .stats-tabs,
html[data-theme="dark"] .log-details summary,
html[data-theme="dark"] .visual-editor-close{background:#202d3b;color:#cbd6e2;border-color:#334456}
html[data-theme="dark"] .stats-tabs{border-color:#334456}
html[data-theme="dark"] .stats-tabs a{color:#a8b7c7}
html[data-theme="dark"] .stats-tabs a.active{background:#2a3949;color:#fff;box-shadow:none}
html[data-theme="dark"] .calendar-head div{background:#172331;color:#a7b6c6;border-color:var(--line)}
html[data-theme="dark"] .calendar-day.empty{background:#111a24}
html[data-theme="dark"] .calendar-date,
html[data-theme="dark"] .schedule-time,
html[data-theme="dark"] .academy-link{color:#dce6f1}
html[data-theme="dark"] .calendar-event{background:#182a42;color:#dce8f7}
html[data-theme="dark"] .calendar-event span{color:#9eb0c2}
html[data-theme="dark"] .compare-heading{background:linear-gradient(180deg,#151f2b,#111a24)}
html[data-theme="dark"] .compare-arrows-icon{background:#18283d;border-color:#2d4665;color:#78a7ff}
html[data-theme="dark"] .preselection-status-select.is-locked{background:#1c2733;color:#7f90a2;border-color:#33404d}
html[data-theme="dark"] .preselection-save-btn,
html[data-theme="dark"] .personal-role-save-btn,
html[data-theme="dark"] .visual-edit-pencil{background:#202d3b!important;border-color:#3b4c5f!important;color:#dce6f1!important}
html[data-theme="dark"] .preselection-save-btn:hover,
html[data-theme="dark"] .personal-role-save-btn:hover,
html[data-theme="dark"] .visual-edit-pencil:hover{background:#2a3949!important;border-color:#50647a!important;color:#fff!important}
html[data-theme="dark"] .notice p,
html[data-theme="dark"] .criterion-desc,
html[data-theme="dark"] .general-comment p,
html[data-theme="dark"] .profile-history-item .history-note,
html[data-theme="dark"] .log-entry-copy>p,
html[data-theme="dark"] .log-structured pre{color:#b8c5d3}
html[data-theme="dark"] .exam-locked{background:linear-gradient(180deg,#17212c,#121a23);border-color:#344252}
html[data-theme="dark"] .locked-box{background:#1a242f;border-color:#394958;color:#b5c1ce}
html[data-theme="dark"] .prereq span{background:#25303a;color:#c1cbd5}
html[data-theme="dark"] .exam-intro p{color:#aeb9c6}
html[data-theme="dark"] .log-entry-error{background:#25191b;border-color:#68363d}
html[data-theme="dark"] .log-detail-grid>div,
html[data-theme="dark"] .log-structured pre{background:#101923;border-color:var(--line)}
html[data-theme="dark"] .log-structured .log-sql{background:#0b121b;color:#d8e3ef;border-color:#2b3e53}
html[data-theme="dark"] .log-migration-warning{background:#292318;border-color:#66542e}
html[data-theme="dark"] .log-migration-warning p{color:#c7b27e}
html[data-theme="dark"] .log-migration-warning code{background:#382f20;color:#e0ca95}
html[data-theme="dark"] .visual-editor-dialog{border-color:#344456}
html[data-theme="dark"] .visual-editor-help{color:#9aa9ba}
html[data-theme="dark"] .flash.success{background:#163126;color:#8fd0ae}
html[data-theme="dark"] .flash.error{background:#371d20;color:#f0a8ad}
html[data-theme="dark"] .notice-danger{background:#321c1e;border-color:#603438;color:#efa5aa}
html[data-theme="dark"] .upload-error{background:#321c1e;border-color:#603438;color:#efa5aa}
html[data-theme="dark"] .preselection-alert{background:#321c1e;border-color:#7b4549;border-left-color:#c65c65;color:#f2b0b5}
html[data-theme="dark"] .b-gray{background:#25313d;color:#c7d1dc}
html[data-theme="dark"] .b-blue{background:#1c3152;color:#9ec0ff}
html[data-theme="dark"] .b-green{background:#17372a;color:#8fd0ae}
html[data-theme="dark"] .b-red{background:#3a2023;color:#efaaaf}
html[data-theme="dark"] .b-amber{background:#3a301c;color:#e1c17c}
html[data-theme="dark"] .status-en-proceso{background:#3b321c;color:#e5c97d}
html[data-theme="dark"] .status-aprobado{background:#17372a;color:#8fd0ae}
html[data-theme="dark"] .status-rechazado{background:#3a2023;color:#efaaaf}
html[data-theme="dark"] .status-expulsado{background:#30223a;color:#d4acec}
html[data-theme="dark"] .exam-pass{background:#17372a;color:#8fd0ae}
html[data-theme="dark"] .exam-fail{background:#3a2023;color:#efaaaf}
html[data-theme="dark"] .prereq .ok{background:#17372a;color:#8fd0ae}
html[data-theme="dark"] .prereq .bad{background:#3a2023;color:#efaaaf}
html[data-theme="dark"] .log-cat-db{background:#1c3152;color:#9ec0ff}
html[data-theme="dark"] .log-cat-user{background:#17372a;color:#8fd0ae}
html[data-theme="dark"] .log-cat-action{background:#282a52;color:#b8bcff}
html[data-theme="dark"] .log-cat-content{background:#3a301c;color:#e1c17c}
html[data-theme="dark"] .log-cat-security{background:#3a2023;color:#efaaaf}
html[data-theme="dark"] .log-cat-system{background:#25313d;color:#c7d1dc}

@media(max-width:700px){
  .topbar{height:auto;min-height:82px;gap:14px;padding-top:12px;padding-bottom:12px}
  .topbar-actions{gap:8px}
  .theme-toggle{width:34px;padding:0}
  .theme-toggle-label{display:none}
}

/* v1.13.1 — cobertura adicional de componentes en tema oscuro */
html[data-theme="dark"] .inline-role-form select,
html[data-theme="dark"] .stats-filter select,
html[data-theme="dark"] .stats-select-wrap select{background:#101923;color:#e6edf5;border-color:#334456}
html[data-theme="dark"] .admin-action,
html[data-theme="dark"] .subnav-tabs a,
html[data-theme="dark"] .archive-banner,
html[data-theme="dark"] .academy-create-card .academy-name-preview{background:#111b26;border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .admin-action:hover,
html[data-theme="dark"] .subnav-tabs a:hover{background:#182533}
html[data-theme="dark"] .subnav-tabs a.active{background:#253547;border-color:#3b4f64;color:#fff}
html[data-theme="dark"] .subnav-tabs span{background:#263442;color:#c3ceda}
html[data-theme="dark"] .stats-filter{background:linear-gradient(180deg,#151f2b,#111a24);border-color:var(--line)}
html[data-theme="dark"] .stats-filter-icon,
html[data-theme="dark"] .manual-v2-icon{background:#18283d;border-color:#2d4665;color:#9ec0ff}
html[data-theme="dark"] .manual-v2-card,
html[data-theme="dark"] .manual-v2-open,
html[data-theme="dark"] .manual-v2-meta,
html[data-theme="dark"] .manual-modal-panel,
html[data-theme="dark"] .manual-modal-head{background:var(--card);border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .manual-v2-open:hover{background:#1a2633}
html[data-theme="dark"] .manual-modal-close{background:#202d3b;color:#d5dfeb}
html[data-theme="dark"] .manual-modal-frame{background:#101923}
html[data-theme="dark"] .academy-create-card .academy-name-preview strong{color:#e2eaf3}
html[data-theme="dark"] .admin-dot{background:#3a301c;color:#e1c17c}
html[data-theme="dark"] .admin-dot.book{background:#1c3152;color:#9ec0ff}

/* v1.13.2 — versión visible para todos los usuarios en la cabecera */
.app-version{
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:0 10px;
  border:1px solid #d8e0ea;
  border-radius:8px;
  background:#fff;
  color:#718096;
  font:600 9px/1 Inter,Arial,sans-serif;
  white-space:nowrap;
  letter-spacing:.01em;
}
.app-version strong{color:#40516a;font-size:10px;font-weight:800;letter-spacing:.02em}
html[data-theme="dark"] .app-version{background:#1a2633;border-color:#34465a;color:#91a3b6}
html[data-theme="dark"] .app-version strong{color:#d9e3ed}
@media(max-width:700px){
  .app-version{padding:0 8px}
  .app-version-label{display:none}
}


/* v1.13.4 — Primer acceso: requisitos y aviso de seguridad */
.password-requirements{margin:12px 0 0;padding:12px 14px;border:1px solid #dfe5ec;border-radius:8px;background:#f8fafc;color:#3d4b5d}
.password-requirements>strong{display:block;margin:0 0 7px;font-size:11px;color:#243448}
.password-requirements ul{margin:0;padding-left:18px;display:grid;gap:5px}
.password-requirements li{font-size:11px;line-height:1.45;color:#617084}
.password-security-warning{align-self:center;width:100%;padding:16px 17px;border:1px solid #e05252;border-radius:10px;background:rgba(143,29,29,.18);box-shadow:0 16px 34px rgba(0,0,0,.15);color:#ffd4d4}
.password-security-warning strong{display:block;margin-bottom:8px;color:#ff8f8f;font-size:10px;letter-spacing:.12em;font-weight:900}
.password-security-warning p{margin:0;color:#ffd4d4;font-size:12px;line-height:1.65;font-weight:600}
.login-layout.password-change-layout{width:min(1320px,calc(100% - 44px));grid-template-columns:minmax(280px,1fr) 420px minmax(240px,300px);gap:30px}
html[data-theme="dark"] .password-requirements{background:#111b27;border-color:#2a394a;color:#e7edf5}
html[data-theme="dark"] .password-requirements>strong{color:#e7edf5}
html[data-theme="dark"] .password-requirements li{color:#aebdcd}
@media(max-width:1080px){.login-layout.password-change-layout{grid-template-columns:minmax(0,1fr) 420px}.password-security-warning{grid-column:2;max-width:420px;justify-self:end}}
@media(max-width:780px){.login-layout.password-change-layout{grid-template-columns:1fr;width:min(520px,calc(100% - 28px));gap:16px}.password-security-warning{grid-column:1;max-width:none;justify-self:stretch;order:3}}

/* v1.14 — Seguridad, Backups y formularios de acciones sensibles */
.logout-form{margin:0;padding:0}
.logout-form .logout{width:100%;border:0;background:transparent;text-align:left;font:inherit;cursor:pointer}
.inline-action-form{display:inline-flex;margin:0;vertical-align:middle}
.manual-v2-meta .inline-action-form{margin-left:auto}
.nav-icon-backup{font-size:15px;font-weight:800}


.backup-security-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 14px;padding:11px 13px;border-radius:9px;border:1px solid var(--line);font-size:10px;line-height:1.45}
.backup-security-summary strong{font-size:9px;letter-spacing:.08em;white-space:nowrap}
.backup-security-summary span{color:var(--muted)}
.backup-security-summary.is-critical{background:#fff4f5;border-color:#e6b9be}.backup-security-summary.is-critical strong{color:#a33440}
.backup-security-summary.is-warning{background:#fff9eb;border-color:#ead39d}.backup-security-summary.is-warning strong{color:#876019}
.backup-security-summary.is-ok{background:#eef9f3;border-color:#b9dfca}.backup-security-summary.is-ok strong{color:#267653}
html[data-theme="dark"] .backup-security-summary.is-critical{background:#2c1b1e;border-color:#67353b}
html[data-theme="dark"] .backup-security-summary.is-warning{background:#332b1c;border-color:#68562d}
html[data-theme="dark"] .backup-security-summary.is-ok{background:#173027;border-color:#315a48}
.backup-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;border-left:4px solid #c49a45}
.backup-hero>div{display:flex;align-items:center;gap:14px;min-width:0}
.backup-hero p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.55}
.backup-shield{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto;background:#f5ead2;color:#8f671e;font-size:16px}
.backup-top-grid{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:16px;margin-top:16px}
.security-check-list{display:grid;gap:9px;margin-top:14px}
.security-check{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:11px;align-items:start;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#fbfcfe}
.security-check-dot{width:9px;height:9px;border-radius:50%;margin-top:4px;background:#8795a7;box-shadow:0 0 0 3px rgba(135,149,167,.12)}
.security-check strong{display:block;font-size:11px;color:var(--text)}
.security-check small{display:block;margin-top:3px;color:var(--muted);font-size:10px;line-height:1.45}
.security-check-state{font-size:8px;font-weight:900;letter-spacing:.07em;padding:4px 6px;border-radius:999px;background:#eef1f5;color:#68788b}
.security-check-ok .security-check-dot{background:#2d9967;box-shadow:0 0 0 3px rgba(45,153,103,.13)}
.security-check-ok .security-check-state{background:#e7f6ef;color:#267653}
.security-check-warning .security-check-dot{background:#c28b24;box-shadow:0 0 0 3px rgba(194,139,36,.14)}
.security-check-warning .security-check-state{background:#fff3d9;color:#8a641b}
.security-check-critical{border-color:#edc3c7;background:#fff9f9}
.security-check-critical .security-check-dot{background:#c34b56;box-shadow:0 0 0 3px rgba(195,75,86,.14)}
.security-check-critical .security-check-state{background:#fde8ea;color:#9d3440}
.backup-security-list{margin:14px 0 0;padding-left:20px;display:grid;gap:9px;color:var(--muted);font-size:11px;line-height:1.55}

.backup-confidential{margin-top:16px;padding:12px 13px;border:1px solid #e5b4ba;border-left:3px solid #a9313d;border-radius:8px;background:#fff3f4}
.backup-confidential strong{display:block;font-size:10px;color:#922f39;letter-spacing:.025em}
.backup-confidential p{margin:5px 0 0;font-size:10px;color:#765458;line-height:1.55}
.backup-confidential code{font:600 9px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace}
html[data-theme="dark"] .backup-confidential{background:#311a1d;border-color:#74323a}
html[data-theme="dark"] .backup-confidential strong{color:#f2abb1}
html[data-theme="dark"] .backup-confidential p{color:#d2a7ab}
.backup-no-restore{margin-top:16px;padding:12px 13px;border:1px solid #e5c6c9;border-left:3px solid #b94b54;border-radius:8px;background:#fff8f8}
.backup-no-restore strong{display:block;font-size:10px;color:#9b3841}
.backup-no-restore p{margin:5px 0 0;font-size:10px;color:#7c5a5d;line-height:1.5}
.backup-table td{vertical-align:middle}
.backup-table td>small{display:block;margin-top:4px;color:var(--muted);font-size:9px}
.backup-table code,.backup-restore-guide code,.backup-hero code{font:600 10px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace}
.backup-hash{display:inline-block;max-width:130px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.backup-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.backup-actions form{margin:0}
.backup-restore-guide p{margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.6}

html[data-theme="dark"] .security-check{background:#111b26;border-color:var(--line)}
html[data-theme="dark"] .security-check-critical{background:#2c1b1e;border-color:#67353b}
html[data-theme="dark"] .security-check-state{background:#25313d;color:#c7d1dc}
html[data-theme="dark"] .security-check-ok .security-check-state{background:#17372a;color:#8fd0ae}
html[data-theme="dark"] .security-check-warning .security-check-state{background:#3a301c;color:#e1c17c}
html[data-theme="dark"] .security-check-critical .security-check-state{background:#3a2023;color:#efaaaf}
html[data-theme="dark"] .backup-shield{background:#3a301c;color:#e1c17c}
html[data-theme="dark"] .backup-no-restore{background:#2c1b1e;border-color:#67353b}
html[data-theme="dark"] .backup-no-restore strong{color:#f0a8ad}
html[data-theme="dark"] .backup-no-restore p{color:#caa4a8}
html[data-theme="dark"] .backup-table code,
html[data-theme="dark"] .backup-restore-guide code,
html[data-theme="dark"] .backup-hero code{color:#c9d6e4}

@media(max-width:1000px){
  .backup-top-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
  .backup-hero{align-items:stretch;flex-direction:column}
  .backup-hero form .btn{width:100%}
  .security-check{grid-template-columns:12px minmax(0,1fr)}
  .security-check-state{grid-column:2;justify-self:start}
}

@media (max-width:700px){
  .backup-security-summary{align-items:flex-start;flex-direction:column}
}
