
:root{--burgundy:#61121C;--burgundy-dark:#3e0b12;--copper:#C89B5C;--cream:#f4eee6;--surface:#fffdf9;--ink:#26272b;--muted:#70737a;--line:#e3d9cd;--success:#1f7a4d;--warning:#9a6a16;--danger:#a33a45}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 75% 8%,rgba(200,155,92,.12),transparent 28%),linear-gradient(135deg,#eee8df 0%,#f7f2eb 55%,#e8dfd4 100%);color:var(--ink);min-height:100vh}
.sidebar{background:linear-gradient(180deg,var(--burgundy),var(--burgundy-dark));min-height:100vh;color:#fff;box-shadow:8px 0 30px rgba(50,15,18,.08)}
.logo-box{padding:16px;margin:0 auto 10px;max-width:190px;background:#fff;border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.12)}.logo{width:100%;display:block;background:transparent}.brand-sub{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#ead7bb;text-align:center;line-height:1.35}
.nav-link{color:#f4e9e6!important;border-radius:10px;margin:3px 0;padding:.68rem .8rem;display:flex;align-items:center;gap:.7rem}.nav-link svg{width:19px;height:19px;flex:0 0 19px}.nav-link:hover,.nav-link.active{background:rgba(255,255,255,.10);color:#fff!important}.section-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:#d7bca0;margin:1.1rem .75rem .35rem}.topbar{background:rgba(255,253,249,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.content{min-height:calc(100vh - 70px)}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 26px rgba(60,35,20,.05)}.kpi{font-size:1.9rem;font-weight:800}.accent{color:var(--copper)}.btn-primary{background:var(--burgundy);border-color:var(--burgundy)}.btn-primary:hover{background:#4d0e16;border-color:#4d0e16}.btn-accent{background:var(--copper);border-color:var(--copper);color:#fff}.btn-accent:hover{background:#b58a50;border-color:#b58a50;color:#fff}.badge-soft{background:#f2e6d4;color:#76501d}.progress{height:10px;border-radius:10px;background:#e7e2dc}.progress-bar{background:linear-gradient(90deg,var(--burgundy),var(--copper))}.table>:not(caption)>*>*{padding:.75rem}.brand-mini{font-weight:800;color:var(--burgundy);letter-spacing:-.03em}.status-mastered{color:var(--success)}.status-doubt{color:var(--warning)}.status-not{color:var(--danger)}.btn-icon{display:inline-flex;align-items:center;gap:.45rem}.btn-icon svg{width:17px;height:17px}
.wizard{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.wizard-step{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .65rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:#777;font-size:.78rem}.wizard-step.active{background:var(--burgundy);border-color:var(--burgundy);color:#fff}.wizard-step.done{background:#f2e6d4;color:#76501d;border-color:#dfc7a6}.wizard-arrow{color:#b4a89b}.sticky-actions{position:sticky;bottom:0;background:rgba(255,253,249,.96);border-top:1px solid var(--line);padding:1rem;margin:1rem -1.5rem -1.5rem;border-radius:0 0 16px 16px;z-index:5}.ai-text{white-space:pre-line;line-height:1.65}.empty-state{padding:3rem 1rem;text-align:center;color:var(--muted)}.role-pill{background:#f2e6d4;color:#76501d}.form-label{font-weight:600}.form-control,.form-select{border-color:#d9d2ca}.form-control:focus,.form-select:focus{border-color:var(--copper);box-shadow:0 0 0 .2rem rgba(200,155,92,.16)}
@media(max-width:767px){.sidebar{min-height:auto}.content{padding:1rem!important}.wizard{gap:.3rem}.wizard-arrow{display:none}.wizard-step{font-size:.72rem}.sticky-actions{margin:1rem -1rem -1rem}}

/* 1.3.1: transparent logo */
.logo-wrap,.logo-wrap img,.login-logo{background:transparent!important;box-shadow:none!important}

/* PEMA PRO 1.3.3 - explicit dashboard shell */
html,body{margin:0!important;padding:0!important;min-height:100%;width:100%}
.pema-shell{display:flex!important;flex-direction:row!important;align-items:stretch!important;min-height:100vh!important;width:100%!important}
.pema-sidebar{flex:0 0 260px!important;width:260px!important;min-width:260px!important;min-height:100vh!important;position:sticky!important;top:0!important;align-self:flex-start!important;padding:1rem!important;background:linear-gradient(180deg,var(--burgundy),var(--burgundy-dark))!important;color:#fff!important;box-shadow:8px 0 30px rgba(50,15,18,.08)!important;overflow-y:auto!important}.pema-sidebar .brand-sub{color:#ead7bb!important}.pema-sidebar .section-label{color:#d7bca0!important}.pema-sidebar .nav-link{color:#f4e9e6!important}.pema-sidebar .nav-link:hover,.pema-sidebar .nav-link.active{background:rgba(255,255,255,.10)!important;color:#fff!important}
.pema-main{display:flex!important;flex:1 1 auto!important;flex-direction:column!important;min-width:0!important;width:auto!important;min-height:100vh!important}
.pema-content{display:block!important;flex:1 1 auto!important;width:100%!important;min-width:0!important;padding:1.5rem!important}
.pema-sidebar .logo-box{background:#fff!important}
@media(max-width:767px){.pema-shell{display:block!important}.pema-sidebar{width:100%!important;min-width:0!important;min-height:auto!important;position:relative!important}.pema-main{width:100%!important}}

/* PEMA PRO 2.0 — navegación y tablas pedagógicas; conserva la versión visual estable */
.pema-main{overflow-x:hidden}
.pema-content{overflow-x:hidden}
.diagnostic-matrix{font-size:.9rem}
.diagnostic-matrix th,.diagnostic-matrix td{border-color:var(--line)!important}
@media(max-width:767px){.pema-sidebar{position:relative!important}.pema-content{padding:1rem!important}.diagnostic-matrix .student-col{position:sticky;left:0;z-index:3}.diagnostic-matrix .skill-col{min-width:135px}}
.pema-footer{color:var(--muted);font-size:.82rem}.pema-footer a{color:inherit}.copyright-mark{display:inline-flex;width:24px;height:24px;border:1px solid currentColor;border-radius:50%;align-items:center;justify-content:center;font-weight:700;font-size:.78rem}

/* PEMA PRO 6.0.4 — estructura estable: el footer pertenece al contenido y nunca cubre el menú lateral. */
.pema-shell{display:flex!important;flex-direction:row!important;align-items:stretch!important;min-height:100vh!important;width:100%!important}
.pema-sidebar{flex:0 0 260px!important;width:260px!important;min-width:260px!important;min-height:100vh!important;position:sticky!important;top:0!important;align-self:flex-start!important}
.pema-main{display:flex!important;flex:1 1 auto!important;flex-direction:column!important;min-width:0!important;width:auto!important;min-height:100vh!important;overflow-x:hidden}
.pema-content{display:block!important;flex:1 1 auto!important;width:100%!important;min-width:0!important;padding:1.5rem!important;overflow-x:hidden}
.pema-footer{display:block!important;width:100%!important;flex:0 0 auto!important;position:relative!important;z-index:1!important;border-top:1px solid var(--line)!important;background:rgba(255,253,249,.96)!important;color:var(--muted);font-size:.82rem;padding:1rem 1.5rem!important}
.pema-footer-inner{width:100%!important;max-width:none!important;margin:0 auto!important}
@media(max-width:767px){
 .pema-shell{display:block!important}
 .pema-sidebar{width:100%!important;min-width:0!important;min-height:auto!important;position:relative!important}
 .pema-main{width:100%!important;min-height:auto!important}
 .pema-content{padding:1rem!important}
 .pema-footer{width:100%!important;padding:1rem!important}
}

/* PEMA PRO 6.0.5 — Usuarios y roles: formulario y listado en bloques verticales. */
.users-section-icon{width:46px;height:46px;flex:0 0 46px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:var(--burgundy);color:#fff;font-weight:800;font-size:1.15rem;line-height:1}
.users-section-icon + div h5{font-size:1.25rem}
@media(min-width:992px){.w-lg-auto{width:auto!important}}
@media(max-width:767px){.users-section-icon{width:40px;height:40px;flex-basis:40px}.table-responsive{border:1px solid var(--line);border-radius:10px}.table-responsive .table{min-width:860px}}
