:root{--navy:#09275b;--blue:#0d5fa8;--teal:#07888d;--violet:#743f98;--ink:#16213a;--muted:#5c687b;--bg:#f4f7fb;--card:#fff;--line:#dbe3ef;--shadow:0 18px 50px rgba(17,43,85,.12);--radius:22px;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);line-height:1.55}a{color:inherit}img{display:block;max-width:100%}.container{width:min(var(--max),calc(100% - 32px));margin:auto}.site-header{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.header-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:900;color:var(--navy)}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;color:white;background:linear-gradient(135deg,var(--teal),var(--violet))}.nav{display:flex;gap:20px;align-items:center}.nav a{text-decoration:none;font-weight:700;font-size:.93rem}.nav a:hover{color:var(--teal)}.nav .admin-link{padding:10px 14px;border-radius:12px;background:#eef4fb}.menu-btn{display:none;border:0;background:#eef4fb;padding:10px;border-radius:12px;font-size:1.2rem}.hero{padding:72px 0 50px;background:radial-gradient(circle at 90% 10%,rgba(116,63,152,.16),transparent 30%),radial-gradient(circle at 10% 30%,rgba(7,136,141,.14),transparent 28%)}.hero-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:52px;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:var(--teal);font-size:.82rem}.hero h1{font-size:clamp(2.5rem,6vw,5rem);line-height:.98;margin:14px 0 22px;color:var(--navy);letter-spacing:-.045em}.lead{font-size:1.2rem;color:var(--muted);max-width:760px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;border:0;border-radius:14px;padding:14px 20px;font-weight:850;cursor:pointer}.btn-primary{background:linear-gradient(135deg,var(--teal),var(--blue));color:#fff;box-shadow:var(--shadow)}.btn-secondary{background:#fff;color:var(--navy);border:1px solid var(--line)}.portrait-card{position:relative}.portrait-card img{width:100%;border-radius:32px;aspect-ratio:4/5;object-fit:cover;box-shadow:var(--shadow)}.portrait-note{position:absolute;left:-25px;bottom:28px;background:#fff;padding:16px 18px;border-radius:18px;box-shadow:var(--shadow);font-weight:800}.section{padding:72px 0}.section-white{background:#fff}.section-head{max-width:780px;margin-bottom:32px}.section h2{font-size:clamp(2rem,4vw,3.2rem);line-height:1.06;color:var(--navy);margin:8px 0 14px}.section p{color:var(--muted)}.featured-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:36px;align-items:center}.flyer{border-radius:24px;box-shadow:var(--shadow);border:1px solid var(--line)}.course-info{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow)}.course-info h3{font-size:2rem;color:var(--navy);margin:8px 0 14px}.meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0}.meta{padding:14px;border-radius:14px;background:#f4f8fc}.meta b{display:block;color:var(--navy);font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 8px 30px rgba(17,43,85,.06)}.card h3{color:var(--navy);margin-top:0}.icon{font-size:1.8rem}.about-grid{display:grid;grid-template-columns:.32fr .68fr;gap:34px;align-items:center}.avatar{border-radius:24px;box-shadow:var(--shadow)}.contact-box{background:linear-gradient(135deg,var(--navy),#123f7f);color:#fff;border-radius:28px;padding:38px;display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}.contact-box p{color:#dce8f6}.footer{padding:30px 0;color:#657187;text-align:center}.hidden{display:none!important}
/* Course / classroom */.page-hero{padding:52px 0;background:linear-gradient(135deg,var(--navy),#174d8e);color:#fff}.page-hero h1{font-size:clamp(2.2rem,5vw,4rem);line-height:1;margin:8px 0 16px}.page-hero p{color:#dbe8f7;max-width:800px}.content-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:28px}.panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px}.module-list{display:grid;gap:14px}.module{display:flex;justify-content:space-between;gap:18px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff}.status{font-size:.8rem;font-weight:900;border-radius:999px;padding:6px 10px;background:#e3f8ee;color:#17623e;white-space:nowrap}.status.closed{background:#f1f3f7;color:#697386}
/* Admin */.admin-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:var(--navy);color:#fff;padding:26px;position:sticky;top:0;height:100vh}.sidebar h1{font-size:1.2rem}.sidebar a{display:block;color:#dce8f6;text-decoration:none;padding:10px 0}.admin-main{padding:38px}.admin-main h2{color:var(--navy)}.admin-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;margin-bottom:20px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}.toggle-row:last-child{border-bottom:0}.switch{position:relative;width:52px;height:30px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;inset:0;background:#b8c3d1;border-radius:999px;cursor:pointer;transition:.2s}.slider:before{content:"";position:absolute;width:22px;height:22px;left:4px;top:4px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+.slider{background:var(--teal)}.switch input:checked+.slider:before{transform:translateX(22px)}.notice{padding:14px 16px;border-radius:14px;background:#e9f8f6;color:#145a58;margin:16px 0}.admin-actions{display:flex;flex-wrap:wrap;gap:12px}
@media(max-width:850px){.nav{display:none;position:absolute;top:72px;left:0;right:0;background:#fff;padding:20px 16px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.nav.open{display:flex}.menu-btn{display:block}.hero-grid,.featured-grid,.about-grid,.content-grid,.contact-box{grid-template-columns:1fr}.portrait-card{max-width:470px;margin:auto}.portrait-note{left:12px}.cards{grid-template-columns:1fr}.meta-grid{grid-template-columns:1fr}.admin-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.admin-main{padding:24px 16px}}
/* v3.1 · Identidad Puente */
.brand>span:last-child{display:grid;line-height:1.08}.brand small{font-size:.68rem;font-weight:700;color:var(--muted);margin-top:3px}.bridge-mark{position:relative;overflow:hidden;background:linear-gradient(145deg,var(--navy),var(--teal))}.bridge-mark:before,.bridge-mark:after{content:"";position:absolute;bottom:9px;width:22px;height:16px;border:3px solid white;border-bottom:0;border-radius:24px 24px 0 0}.bridge-mark:before{left:-2px}.bridge-mark:after{right:-2px}.bridge-mark span{position:absolute;left:8px;right:8px;bottom:7px;height:3px;background:#fff;border-radius:5px}.hero{overflow:hidden;position:relative}.hero:after{content:"";position:absolute;width:520px;height:260px;border:1px solid rgba(7,136,141,.18);border-bottom:0;border-radius:520px 520px 0 0;right:-190px;bottom:-205px}.hero-proof{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.hero-proof span,.principles span{border:1px solid var(--line);background:rgba(255,255,255,.76);border-radius:999px;padding:8px 12px;font-size:.82rem;font-weight:800;color:var(--navy)}.portrait-note{display:grid;gap:2px;max-width:240px}.portrait-note strong{font-size:1.1rem;color:var(--navy)}.portrait-note small{font-weight:650;color:var(--muted)}.bridge-section{background:var(--navy);color:white;position:relative;overflow:hidden}.bridge-section:before{content:"";position:absolute;inset:auto -10% -270px -10%;height:420px;border:2px solid rgba(101,217,208,.14);border-bottom:0;border-radius:50% 50% 0 0}.bridge-section h2{color:#fff}.bridge-intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:end}.bridge-quote{font-size:clamp(1.25rem,2.4vw,2rem);line-height:1.35!important;color:#dceaf7!important;margin:0}.bridge-path{display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:16px;margin:55px 0 35px}.bridge-node{position:relative;z-index:2;padding:15px 18px;background:#fff;color:var(--navy);font-weight:900;border-radius:999px;box-shadow:0 12px 30px rgba(0,0,0,.15)}.bridge-node-center{background:#65d9d0}.bridge-line{height:60px;position:relative}.bridge-line:before{content:"";position:absolute;left:0;right:0;bottom:7px;height:45px;border:3px solid #65d9d0;border-bottom:0;border-radius:50% 50% 0 0}.bridge-line span{position:absolute;left:0;right:0;bottom:4px;height:3px;background:#65d9d0}.bridge-copy{max-width:850px;margin:auto;text-align:center;font-size:1.06rem;color:#dce8f6!important}.principles{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}.actors .actor-card{position:relative;padding-top:55px}.actor-number{position:absolute;top:18px;right:21px;color:#b7c4d7;font-size:1.65rem;font-weight:900}.actor-card:nth-child(2){transform:translateY(18px)}.project-card{position:relative;overflow:hidden}.project-bridge{height:34px;margin-bottom:18px;border:3px solid var(--teal);border-bottom:0;border-radius:60px 60px 0 0;opacity:.75}.contact-eyebrow{color:#65d9d0}.contact-box h2{color:white;margin-bottom:8px}
@media(max-width:850px){.bridge-intro{grid-template-columns:1fr;gap:18px}.bridge-path{grid-template-columns:1fr;justify-items:center;gap:0}.bridge-line{width:3px;height:45px;background:#65d9d0}.bridge-line:before,.bridge-line span{display:none}.actor-card:nth-child(2){transform:none}.hero-proof{gap:7px}.hero-proof span{font-size:.75rem}}
.course-objectives{margin-top:22px}.course-objectives h2{font-size:1.5rem}
/* v3.4 · Aula digital centrada en el curso */
:root{--ink:#17243b;--muted:#46566f;--bg:#f3f6fa;--line:#cfd9e6}.nav a{color:#22324c}.course-hero{padding:58px 0 46px;background:linear-gradient(135deg,#eaf4ff 0%,#eef9f7 55%,#f7f4ff 100%);border-bottom:1px solid var(--line)}.course-hero-grid{display:grid;grid-template-columns:1.15fr .55fr;gap:46px;align-items:center}.course-badge{display:inline-flex;padding:8px 12px;border-radius:999px;background:#dcecff;color:#0b4f8a;font-weight:900;font-size:.8rem}.hero-kicker{font-weight:850;color:var(--teal);margin:18px 0 6px}.course-hero h1{font-size:clamp(2.45rem,5.5vw,5rem);line-height:.98;letter-spacing:-.045em;color:var(--navy);margin:8px 0 22px}.course-hero h1 em{display:block;font-style:normal;color:var(--teal)}.course-facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.course-facts span{padding:9px 12px;border-radius:12px;background:#fff;border:1px solid var(--line);font-weight:800;color:#263956}.course-cover img{border-radius:26px;box-shadow:var(--shadow);border:1px solid var(--line)}.compact-section{padding-top:52px;padding-bottom:52px}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.quick-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;text-decoration:none;box-shadow:0 8px 24px rgba(17,43,85,.06);transition:.2s}.quick-card:hover{transform:translateY(-3px);border-color:#87b6cf}.quick-card>span{font-size:1.65rem}.quick-card h3{margin:0 0 4px;color:var(--navy)}.quick-card p{font-size:.86rem;margin:0}.quick-card>b{font-size:1.4rem;color:var(--teal)}.section-tint{background:#eaf1f7}.two-col{display:grid;grid-template-columns:1.2fr .8fr;gap:24px}.welcome-card,.method-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px}.welcome-card blockquote{margin:26px 0 0;border-left:4px solid var(--teal);padding:12px 18px;background:#f2faf9;color:#173b4b;font-weight:750}.method-card h3{color:var(--navy);font-size:1.45rem}.method-card li{margin:9px 0;color:var(--muted)}.unit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.unit-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 8px 26px rgba(17,43,85,.05)}.unit-card.is-locked{background:#f7f9fc}.unit-top{display:flex;justify-content:space-between;gap:12px}.unit-number{font-weight:900;color:var(--teal);font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.unit-card h3{font-size:1.35rem;color:var(--navy);margin:12px 0 5px}.unit-classes{font-weight:800;color:#53627a!important;margin-top:0}.text-link{font-weight:900;color:var(--blue);text-decoration:none}.locked-note{font-size:.88rem;color:#738096}.teacher-grid{display:grid;grid-template-columns:1fr .38fr;gap:42px;align-items:center}.teacher-grid img{border-radius:26px;box-shadow:var(--shadow)}.teacher-role{font-size:1.15rem;font-weight:900;color:var(--teal)!important}.light{color:#79e0d8}.strong-notice{border-left:5px solid var(--teal);font-size:1.05rem}.program-panel{max-width:900px}.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.timeline-item{display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px}.timeline-item>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#e8edf3;color:#5e6c80;font-weight:900}.timeline-item.active{border-color:#59b9b3;background:#f3fbfa}.timeline-item.active>span{background:var(--teal);color:#fff}.timeline-item b{color:var(--navy)}.timeline-item p{font-size:.84rem;margin:3px 0}.classroom-units{display:grid;gap:16px}.unit-accordion{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.unit-accordion summary{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:20px 22px;cursor:pointer;list-style:none}.unit-accordion summary small{display:block;color:var(--muted);margin-top:4px}.unit-accordion.locked summary{cursor:default;background:#f7f9fc}.unit-body{padding:0 22px 22px;border-top:1px solid var(--line)}.unit-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.unit-columns h4,.unit-tools h4{color:var(--navy);margin-bottom:8px}.unit-tools{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;background:#f4f8fb;border-radius:16px;padding:18px;margin-top:18px}.resource-chip{display:inline-block;margin:4px 5px 4px 0;padding:7px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.82rem;font-weight:750}.empty-state{display:flex;gap:18px;align-items:center;background:#f7f9fc;border:1px dashed #aebdce;border-radius:18px;padding:28px}.empty-state>span{font-size:2rem}.empty-state h3{margin:0;color:var(--navy)}.resource-grid,.forum-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.resource-grid article,.forum-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px}.resource-grid b{color:var(--navy)}.forum-grid{grid-template-columns:repeat(2,1fr)}.forum-card>span{font-size:2rem}.forum-card h3{color:var(--navy)}button:disabled{opacity:.65;cursor:not-allowed}
@media(max-width:900px){.course-hero-grid,.two-col,.teacher-grid{grid-template-columns:1fr}.course-cover{max-width:420px;margin:auto}.quick-grid{grid-template-columns:repeat(2,1fr)}.timeline{grid-template-columns:repeat(2,1fr)}.unit-grid{grid-template-columns:1fr}.resource-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.quick-grid,.timeline,.resource-grid,.forum-grid,.unit-columns,.unit-tools{grid-template-columns:1fr}.course-hero{padding-top:38px}.section{padding:52px 0}.quick-card{padding:16px}.course-facts{display:grid}.course-facts span{width:100%}.teacher-grid img{max-width:300px}}
/* v3.6 · Cronograma real, materiales integrados y contraste reforzado */
:root{--navy:#061d48;--blue:#075da8;--teal:#007f83;--violet:#65328b;--ink:#101b31;--muted:#34445e;--bg:#edf2f7;--line:#b8c7d9;--accent:#f2b705;--shadow:0 18px 42px rgba(6,29,72,.16)}
body{background:#edf2f7;color:var(--ink)}
.site-header{background:rgba(255,255,255,.98);border-bottom:2px solid #d1dbe8}
.course-hero{background:linear-gradient(135deg,#d8eaff 0%,#d8f3ef 52%,#eee2f8 100%);border-bottom:2px solid #bdcada}
.course-badge{background:var(--navy);color:#fff;box-shadow:0 8px 22px rgba(6,29,72,.2)}
.course-hero .lead,.section p{color:var(--muted)}
.btn-primary{background:linear-gradient(135deg,var(--teal),var(--blue));box-shadow:0 12px 28px rgba(0,91,147,.26)}
.btn-secondary{border:2px solid #aebed0;color:var(--navy)}
.quick-card,.unit-card,.welcome-card,.method-card,.panel,.timeline-item,.unit-accordion,.resource-grid article,.forum-card{border-color:#afbed0;box-shadow:0 9px 24px rgba(6,29,72,.09)}
.section-tint{background:#dce6f0}
.timeline{grid-template-columns:repeat(2,1fr)}
.timeline-item{align-items:flex-start;padding:20px;background:#fff}
.timeline-item>span{flex:0 0 42px;width:42px;height:42px;background:#dfe7f0;color:#233b5d}
.timeline-item.active{border:2px solid var(--teal);background:#e9fbf7;box-shadow:0 12px 30px rgba(0,127,131,.18)}
.timeline-item.active>span{background:var(--teal)}
.timeline-item h3{margin:5px 0 6px;color:var(--navy);font-size:1rem}
.timeline-unit{display:inline-block;margin:4px 0!important;padding:3px 8px;border-radius:999px;background:#e7edf5;color:#25405f!important;font-size:.72rem!important;font-weight:900}
.unit-accordion summary{background:#fff}
.unit-accordion.locked summary{background:#e9eef4}
.unit-body{background:#fff}
.unit-tools{grid-template-columns:1.5fr .75fr .75fr;background:#e8eef5}
.unit-tool-wide{min-width:0}
.material-list{display:grid;gap:10px}
.material-link{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px 13px;border:1px solid #aebdd0;border-radius:13px;background:#fff;text-decoration:none;color:var(--navy);transition:.18s}
.material-link:hover{transform:translateY(-2px);border-color:var(--teal);box-shadow:0 8px 18px rgba(6,29,72,.1)}
.material-type{font-size:.7rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;padding:5px 8px;border-radius:999px;background:#dce9f5;color:#174871}
.activity-list{padding-left:20px}.activity-list li{margin:8px 0;color:var(--muted)}
.strong-notice{background:#d9f3ee;color:#0c4c4b;border-left:6px solid var(--teal)}
@media(max-width:900px){.timeline{grid-template-columns:1fr}.unit-tools{grid-template-columns:1fr}}

/* v3.9 UX */
.hero{background:linear-gradient(135deg,#0d2b5f,#0f6d8c);color:#fff;}
body{background:#f4f7fb;}

.login-card,.panel-card,.course-card{border-radius:24px;box-shadow:0 20px 60px rgba(0,0,0,.15)} .status-chip{padding:4px 10px;border-radius:999px;font-weight:700}.status-oculta{background:#ddd}.status-disponible{background:#d7f7df;color:#126b2d}.status-finalizada{background:#d8e8ff;color:#124a9c}

.card,.curso,.panel{border-radius:14px;box-shadow:0 8px 20px rgba(0,0,0,.08)}

/* v4.2.1 · Layout Maestro */
.campus-app{min-width:320px;background:var(--bg)}
.campus-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}
.campus-sidebar{position:sticky;top:0;align-self:start;height:100vh;display:flex;flex-direction:column;gap:26px;padding:24px 18px;background:linear-gradient(180deg,var(--navy),#0b346b);color:#fff;box-shadow:10px 0 32px rgba(6,29,72,.12);z-index:50}
.campus-sidebar-brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;min-width:0}
.campus-sidebar-brand>span:last-child{display:grid;min-width:0;line-height:1.16}
.campus-sidebar-brand strong{font-size:1rem;white-space:nowrap}
.campus-sidebar-brand small{margin-top:3px;color:#c8d9ed;font-size:.72rem;font-weight:700}
.campus-sidebar-context{display:grid;gap:4px;padding:16px;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:rgba(255,255,255,.08)}
.campus-sidebar-context strong{font-size:.92rem}
.campus-sidebar-context small{color:#c8d9ed;font-size:.76rem}
.campus-role{width:max-content;padding:4px 8px;border-radius:999px;background:#65d9d0;color:#09275b;font-size:.68rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.campus-sidebar-nav{display:grid;gap:6px}
.campus-sidebar-nav a,.campus-session-link{display:flex;align-items:center;min-height:42px;padding:10px 12px;border-radius:11px;color:#dce8f6;text-decoration:none;font-size:.9rem;font-weight:750;transition:background .18s,color .18s}
.campus-sidebar-nav a:hover,.campus-sidebar-nav a:focus-visible,.campus-session-link:hover,.campus-session-link:focus-visible{background:rgba(255,255,255,.12);color:#fff;outline:none}
.campus-sidebar-nav a.is-active{background:#fff;color:var(--navy);box-shadow:0 8px 22px rgba(0,0,0,.16)}
.campus-session-link{margin-top:auto;border-top:1px solid rgba(255,255,255,.16);border-radius:0;padding-top:18px}
.campus-workspace{min-width:0;min-height:100vh;background:var(--bg)}
.campus-topbar{position:sticky;top:0;z-index:45;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px 28px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);box-shadow:0 5px 18px rgba(6,29,72,.06);backdrop-filter:blur(12px)}
.campus-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:#52617a;font-size:.84rem}
.campus-breadcrumb>*+*:before{content:"/";margin-right:8px;color:#94a1b4;font-weight:500}
.campus-breadcrumb a{color:var(--blue);font-weight:800;text-decoration:none}
.campus-breadcrumb strong{color:var(--navy)}
.campus-user-summary{display:grid;text-align:right;line-height:1.2}
.campus-user-summary strong{color:var(--navy);font-size:.86rem}
.campus-user-summary span{margin-top:3px;color:var(--muted);font-size:.74rem}
.campus-content{min-width:0}
.campus-workspace>.admin-main{min-width:0;min-height:calc(100vh - 64px);padding:38px}
.campus-workspace .site-header{top:64px}
@media(max-width:960px){
  .campus-shell{grid-template-columns:1fr}
  .campus-sidebar{position:relative;height:auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:12px 16px}
  .campus-sidebar-context{display:none}
  .campus-sidebar-nav{display:flex;justify-content:flex-end;gap:6px;min-width:0}
  .campus-sidebar-nav a{min-height:40px;white-space:nowrap}
  .campus-session-link{margin:0;padding:10px 12px;border:0;border-left:1px solid rgba(255,255,255,.16);border-radius:0}
  .campus-sidebar-admin{grid-template-columns:auto 1fr}
  .campus-sidebar-admin .campus-sidebar-nav{overflow-x:auto;justify-content:flex-start;padding-bottom:2px}
  .campus-topbar{position:relative;padding-inline:20px}
  .campus-workspace .site-header{top:0}
}
@media(max-width:640px){
  .campus-sidebar{grid-template-columns:1fr auto;gap:10px 14px}
  .campus-sidebar-brand .brand-mark{width:38px;height:38px;border-radius:12px}
  .campus-sidebar-nav{grid-column:1/-1;order:3;justify-content:flex-start;overflow-x:auto;padding-top:3px}
  .campus-sidebar-nav a{flex:0 0 auto}
  .campus-sidebar-admin{grid-template-columns:1fr}
  .campus-sidebar-admin .campus-sidebar-nav{grid-column:1}
  .campus-topbar{align-items:flex-start;padding:12px 16px}
  .campus-user-summary span{display:none}
  .campus-workspace>.admin-main{padding:24px 16px}
}

/* v4.2.2 · Sidebar */
.campus-sidebar{gap:18px;padding:22px 16px 18px;background:linear-gradient(180deg,#061d48 0%,#0a3268 72%,#0b3a70 100%)}
.campus-sidebar-brand{padding:2px 6px 18px;border-bottom:1px solid rgba(255,255,255,.14)}
.campus-sidebar-brand .brand-mark{flex:0 0 auto;box-shadow:0 8px 20px rgba(0,0,0,.2)}
.campus-sidebar-brand strong{letter-spacing:-.01em}
.campus-sidebar-context{display:flex;align-items:center;gap:11px;padding:13px;background:rgba(255,255,255,.075)}
.campus-profile-mark{flex:0 0 40px;width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.28);border-radius:13px;background:rgba(101,217,208,.16);color:#b9f4ee;font-size:.76rem;font-weight:900;letter-spacing:.04em}
.campus-profile-copy{display:grid;min-width:0;gap:2px;line-height:1.18}
.campus-profile-copy strong,.campus-profile-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.campus-role{margin-bottom:3px;padding:3px 7px;font-size:.61rem}
.campus-sidebar-caption{padding:2px 12px 0;color:#91aac8;font-size:.65rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.campus-sidebar-nav{gap:7px}
.campus-sidebar-nav a,.campus-session-link{position:relative;gap:11px;min-height:46px;padding:9px 11px;border:1px solid transparent;border-radius:12px;color:#d9e6f4}
.campus-nav-icon{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:rgba(255,255,255,.09);color:#b9f4ee;font-size:.9rem;font-weight:900;line-height:1}
.campus-sidebar-nav a:hover,.campus-sidebar-nav a:focus-visible,.campus-session-link:hover,.campus-session-link:focus-visible{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.1)}
.campus-sidebar-nav a:focus-visible,.campus-session-link:focus-visible,.campus-sidebar-brand:focus-visible{outline:3px solid #65d9d0;outline-offset:2px}
.campus-sidebar-nav a.is-active{border-color:rgba(255,255,255,.72);background:#fff;color:var(--navy);box-shadow:0 9px 24px rgba(0,0,0,.18)}
.campus-sidebar-nav a.is-active:before{content:"";position:absolute;left:-7px;width:4px;height:24px;border-radius:0 6px 6px 0;background:#65d9d0}
.campus-sidebar-nav a.is-active .campus-nav-icon{background:#dff7f4;color:#075b61}
.campus-nav-divider{margin-top:10px;padding-top:14px!important;border-top-color:rgba(255,255,255,.14)!important;border-radius:0 0 12px 12px!important}
.campus-session-link{margin-top:auto;border:1px solid rgba(255,255,255,.12);background:rgba(2,14,38,.18)}
.campus-session-link .campus-nav-icon{color:#fff}
@media(max-width:960px){
  .campus-sidebar{gap:14px;padding:12px 16px;background:linear-gradient(105deg,#061d48,#0b3a70)}
  .campus-sidebar-brand{padding:0;border-bottom:0}
  .campus-sidebar-caption{display:none}
  .campus-sidebar-nav{gap:7px}
  .campus-sidebar-nav a,.campus-session-link{min-height:44px;padding:7px 10px}
  .campus-sidebar-nav a.is-active:before{display:none}
  .campus-nav-icon{width:26px;height:26px;flex-basis:26px}
  .campus-nav-divider{margin-top:0;padding-top:7px!important;border-top-color:transparent!important;border-radius:12px!important}
  .campus-session-link{margin:0;padding:7px 10px;border:1px solid rgba(255,255,255,.14);border-radius:12px}
}
@media(max-width:640px){
  .campus-sidebar{gap:10px 14px;padding:11px 14px}
  .campus-sidebar-nav{padding-top:4px;padding-bottom:3px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.28) transparent}
  .campus-sidebar-nav a{min-height:42px}
  .campus-session-link{font-size:.82rem}
  .campus-session-link .campus-nav-icon{display:none}
}

/* v4.2.3 · Header */
.campus-app{--campus-header-height:78px}
.campus-topbar{min-height:var(--campus-header-height);gap:28px;padding:9px 28px}
.campus-page-context{display:grid;min-width:0;gap:4px}
.campus-breadcrumb{gap:7px;color:#68768b;font-size:.69rem;line-height:1.2}
.campus-breadcrumb>*+*:before{margin-right:7px}
.campus-breadcrumb a{color:#315e8e}
.campus-breadcrumb a:hover{text-decoration:underline;text-underline-offset:3px}
.campus-breadcrumb a:focus-visible{border-radius:4px;outline:3px solid rgba(0,127,131,.34);outline-offset:3px}
.campus-breadcrumb [aria-current="page"]{color:#52617a;font-weight:800}
.campus-page-heading{display:flex;align-items:center;min-width:0;gap:10px}
.campus-page-heading>div{display:grid;min-width:0;line-height:1.14}
.campus-page-heading strong{overflow:hidden;color:var(--navy);font-size:1rem;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap}
.campus-page-heading small{margin-top:3px;overflow:hidden;color:#52617a;font-size:.72rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.campus-page-icon{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border:1px solid #bdd1de;border-radius:11px;background:#e8f6f4;color:#075b61;font-size:.86rem;font-weight:900}
.campus-user-summary{display:flex;align-items:center;flex:0 0 auto;gap:10px;padding:7px 10px 7px 7px;border:1px solid #c7d5e4;border-radius:14px;background:#f7fafc;text-align:left;line-height:1.16}
.campus-user-avatar{flex:0 0 36px;width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(145deg,var(--navy),var(--teal));color:#fff;font-size:.7rem;font-weight:900;letter-spacing:.04em}
.campus-user-copy{display:grid;min-width:0}
.campus-user-copy strong{max-width:180px;overflow:hidden;color:var(--navy);font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}
.campus-user-copy small{max-width:180px;margin-top:3px;overflow:hidden;color:#52617a;font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}
.campus-workspace>.admin-main{min-height:calc(100vh - var(--campus-header-height))}
.campus-workspace .site-header{top:var(--campus-header-height)}
@media(max-width:960px){
  .campus-topbar{padding-inline:20px}
  .campus-workspace .site-header{top:0}
}
@media(max-width:640px){
  .campus-topbar{align-items:center;gap:12px;padding:10px 14px}
  .campus-page-heading small{max-width:58vw}
  .campus-user-summary .campus-user-avatar{display:grid}
  .campus-user-summary .campus-user-copy{display:grid}
  .campus-user-copy small{display:none}
}
@media(max-width:480px){
  .campus-breadcrumb>*:not([aria-current="page"]){display:none}
  .campus-breadcrumb>*+*:before{display:none}
  .campus-user-summary{padding:5px}
  .campus-user-copy{display:none!important}
}
@media(max-width:360px){
  .campus-page-heading small{display:none}
}
@media(prefers-reduced-motion:reduce){.campus-sidebar-nav a,.campus-session-link{transition:none}}

/* v4.2.4 · Dashboard */
.dashboard-main{width:min(1280px,100%);margin:0 auto;padding:32px 34px 42px}
.dashboard-welcome{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:34px;padding:30px 32px;border:1px solid #b9ccdf;border-radius:24px;background:linear-gradient(120deg,#fff 0%,#edf7f6 58%,#e8f0fb 100%);box-shadow:0 12px 34px rgba(6,29,72,.08)}
.dashboard-welcome-copy{max-width:680px}
.dashboard-welcome h1{margin:7px 0 10px;color:var(--navy);font-size:clamp(1.8rem,3vw,2.65rem);line-height:1.08;letter-spacing:-.035em}
.dashboard-welcome p{margin:0;color:#46566f;font-size:1rem;line-height:1.58}
.dashboard-overview{display:grid;grid-template-columns:repeat(3,minmax(92px,1fr));flex:0 0 auto;margin:0;overflow:hidden;border:1px solid #c3d3e2;border-radius:17px;background:rgba(255,255,255,.78)}
.dashboard-overview div{display:grid;gap:4px;min-width:105px;padding:15px 17px;text-align:center}
.dashboard-overview div+div{border-left:1px solid #cbd8e5}
.dashboard-overview dt{order:2;color:#53627a;font-size:.69rem;font-weight:800;text-transform:uppercase;letter-spacing:.055em}
.dashboard-overview dd{order:1;margin:0;color:var(--navy);font-size:1.45rem;font-weight:900;line-height:1}
.dashboard-section{margin-bottom:24px}
.dashboard-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}
.dashboard-section-heading h2,.dashboard-card-heading h2{margin:4px 0 0;color:var(--navy);font-size:1.32rem;line-height:1.16}
.dashboard-section-count{padding:6px 10px;border:1px solid #c1d0df;border-radius:999px;background:#fff;color:#52617a;font-size:.72rem;font-weight:850}
.dashboard-course-card{display:grid;grid-template-columns:220px minmax(0,1fr) 220px;gap:0;overflow:hidden;border:1px solid #afc1d3;border-radius:24px;background:#fff;box-shadow:0 12px 34px rgba(6,29,72,.09)}
.dashboard-course-cover{min-height:300px;margin:0;background:#e7edf4}
.dashboard-course-cover img{width:100%;height:100%;object-fit:cover;object-position:center}
.dashboard-course-content{min-width:0;padding:27px 30px}
.dashboard-course-labels{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:13px}
.dashboard-cohort{color:#53627a;font-size:.75rem;font-weight:750}
.dashboard-course-content h3{margin:0;color:var(--navy);font-size:clamp(1.45rem,2.2vw,2rem);line-height:1.08;letter-spacing:-.025em}
.dashboard-course-content h3 span{display:block;margin-top:5px;color:var(--teal);font-size:.76em}
.dashboard-course-content>p{max-width:720px;margin:14px 0 20px;color:#46566f;line-height:1.55}
.dashboard-course-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0}
.dashboard-course-facts div{min-width:0;padding:11px 12px;border:1px solid #d2dce7;border-radius:12px;background:#f7f9fc}
.dashboard-course-facts dt{margin-bottom:4px;color:#607086;font-size:.66rem;font-weight:850;text-transform:uppercase;letter-spacing:.055em}
.dashboard-course-facts dd{margin:0;color:#243754;font-size:.78rem;font-weight:800;line-height:1.35}
.dashboard-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:21px}
.dashboard-actions .btn{padding:11px 16px;border-radius:12px;font-size:.85rem}
.dashboard-course-state{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:26px;border-left:1px solid #c5d4e2;background:linear-gradient(160deg,#eff8f7,#e7f0fa)}
.dashboard-state-label{margin-bottom:12px;color:#446077;font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.075em}
.dashboard-course-state strong{color:var(--navy);font-size:1.3rem}
.dashboard-course-state p{margin:7px 0 22px;color:#46566f;font-size:.84rem;line-height:1.45}
.dashboard-course-state a,.dashboard-text-link{display:inline-flex;align-items:center;gap:5px;color:#075f68;font-size:.82rem;font-weight:900;text-decoration:none}
.dashboard-course-state a:hover,.dashboard-text-link:hover{text-decoration:underline;text-underline-offset:3px}
.dashboard-course-state a:focus-visible,.dashboard-text-link:focus-visible,.dashboard-shortcut-list a:focus-visible,.dashboard-actions .btn:focus-visible{border-radius:7px;outline:3px solid rgba(0,127,131,.38);outline-offset:3px}
.dashboard-lower-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px}
.dashboard-next,.dashboard-shortcuts{padding:24px;border:1px solid #b7c8d9;border-radius:21px;background:#fff;box-shadow:0 9px 26px rgba(6,29,72,.065)}
.dashboard-card-heading{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.dashboard-card-icon{flex:0 0 40px;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#e5f5f3;color:#075f68;font-weight:900}
.dashboard-next-content{display:flex;align-items:center;gap:17px;padding:17px;border:1px solid #cbd8e5;border-radius:16px;background:#f7f9fc}
.dashboard-next-content time{flex:0 0 58px;display:grid;place-items:center;padding:9px 7px;border-radius:12px;background:var(--navy);color:#fff;line-height:1}
.dashboard-next-content time strong{font-size:1.4rem}
.dashboard-next-content time span{margin-top:4px;color:#b9f4ee;font-size:.63rem;font-weight:900;letter-spacing:.08em}
.dashboard-next-content h3{margin:0 0 5px;color:var(--navy);font-size:1rem}
.dashboard-next-content p{margin:0;color:#53627a;font-size:.79rem;line-height:1.4}
.dashboard-text-link{margin-top:18px}
.dashboard-shortcut-list{display:grid;grid-template-columns:1fr;gap:9px}
.dashboard-shortcut-list a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:14px;border:1px solid #cbd8e5;border-radius:14px;background:#f9fbfd;color:var(--navy);text-decoration:none;transition:transform .18s,border-color .18s,background .18s}
.dashboard-shortcut-list a:hover{transform:translateY(-2px);border-color:#69aaa9;background:#f1faf9}
.dashboard-shortcut-list a>span:first-child{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#e5f0f8;color:#214d77;font-size:.72rem;font-weight:900}
.dashboard-shortcut-list a>span:nth-child(2){display:grid;min-width:0}
.dashboard-shortcut-list strong,.dashboard-shortcut-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dashboard-shortcut-list strong{font-size:.82rem}
.dashboard-shortcut-list small{margin-top:3px;color:#607086;font-size:.66rem}
.dashboard-shortcut-list b{color:var(--teal)}
.dashboard-footer{padding:8px 34px 28px;color:#69778a;font-size:.72rem;text-align:center}
@media(max-width:1180px){
  .dashboard-course-card{grid-template-columns:190px minmax(0,1fr)}
  .dashboard-course-state{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:16px 24px;border-top:1px solid #c5d4e2;border-left:0}
  .dashboard-course-state .dashboard-state-label{margin:0}
  .dashboard-course-state p{margin:0}
}
@media(max-width:900px){
  .dashboard-main{padding:26px 22px 36px}
  .dashboard-welcome{align-items:stretch;flex-direction:column;padding:25px}
  .dashboard-overview{align-self:flex-start}
  .dashboard-course-card{grid-template-columns:180px minmax(0,1fr)}
  .dashboard-course-facts{grid-template-columns:1fr}
  .dashboard-lower-grid{grid-template-columns:1fr}
}
@media(max-width:680px){
  .dashboard-main{padding:22px 16px 32px}
  .dashboard-welcome{gap:21px;margin-bottom:28px;padding:22px 20px}
  .dashboard-overview{width:100%;grid-template-columns:repeat(3,1fr)}
  .dashboard-overview div{min-width:0;padding:13px 8px}
  .dashboard-course-card{grid-template-columns:1fr}
  .dashboard-course-cover{min-height:0;max-height:230px}
  .dashboard-course-cover img{aspect-ratio:16/8;object-position:center 32%}
  .dashboard-course-content{padding:23px 20px}
  .dashboard-course-state{grid-template-columns:1fr;align-items:start;padding:19px 20px}
  .dashboard-course-state p{margin:0}
  .dashboard-footer{padding-inline:16px}
}
@media(max-width:400px){
  .dashboard-overview dt{font-size:.58rem}
  .dashboard-course-labels{align-items:flex-start;flex-direction:column}
  .dashboard-actions{display:grid}
  .dashboard-actions .btn{width:100%}
  .dashboard-next-content{align-items:flex-start}
}
@media(prefers-reduced-motion:reduce){.dashboard-shortcut-list a{transition:none}}

/* v4.2.5 · Navegación */
.campus-skip-link{position:fixed;top:10px;left:50%;z-index:1000;padding:11px 16px;border-radius:11px;background:#fff;color:var(--navy);box-shadow:0 10px 30px rgba(6,29,72,.28);font-size:.84rem;font-weight:900;text-decoration:none;transform:translate(-50%,-160%);transition:transform .16s}
.campus-skip-link:focus{outline:3px solid #65d9d0;outline-offset:3px;transform:translate(-50%,0)}
#contenido-principal:focus{outline:none}
.campus-content .site-header .header-inner{position:relative}
.campus-content .site-header .brand:focus-visible,.campus-content .site-header .nav a:focus-visible,.campus-content .site-header .menu-btn:focus-visible{border-radius:7px;outline:3px solid rgba(0,127,131,.42);outline-offset:3px}
.campus-content .site-header .nav a{position:relative;padding:9px 3px;color:#34445e}
.campus-content .site-header .nav a:hover{color:var(--teal)}
.campus-content .site-header .nav a.is-current{color:var(--navy)}
.campus-content .site-header .nav a.is-current:after{content:"";position:absolute;right:3px;bottom:2px;left:3px;height:3px;border-radius:999px;background:var(--teal)}
.campus-content .site-header .menu-btn{min-width:44px;min-height:44px;color:var(--navy);font-weight:900}
.campus-content main [id],.admin-main [id]{scroll-margin-top:176px}
.campus-sidebar-nav a[href^="#"]{scroll-margin-top:18px}
@media(max-width:1280px){
  .campus-content .site-header .nav{display:none;position:absolute;top:calc(100% + 1px);right:0;left:0;z-index:35;max-height:calc(100vh - 88px);overflow-y:auto;padding:13px 16px 17px;border:1px solid var(--line);border-top:0;border-radius:0 0 16px 16px;background:#fff;box-shadow:0 16px 30px rgba(6,29,72,.15);flex-direction:column;align-items:stretch;gap:2px}
  .campus-content .site-header .nav.open{display:flex}
  .campus-content .site-header .nav a{width:100%;padding:11px 12px;border-radius:10px}
  .campus-content .site-header .nav a:hover,.campus-content .site-header .nav a.is-current{background:#eaf6f5}
  .campus-content .site-header .nav a.is-current:after{top:9px;right:auto;bottom:9px;left:3px;width:3px;height:auto}
  .campus-content .site-header .menu-btn{display:block}
}
@media(max-width:960px){.campus-content main [id],.admin-main [id]{scroll-margin-top:96px}}
@media(max-width:520px){
  .campus-content .site-header .brand small{max-width:58vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .campus-content .site-header .nav{top:calc(100% + 1px);right:0;bottom:auto;left:0;max-height:72vh;border:1px solid var(--line);border-radius:0 0 16px 16px}
}
@media(prefers-reduced-motion:reduce){.campus-skip-link{transition:none}}

/* v4.2.6 · UX/UI */
.campus-app{
  --ui-surface:#fff;
  --ui-surface-soft:#f7f9fc;
  --ui-surface-tint:#edf7f6;
  --ui-border:#b9c9da;
  --ui-border-soft:#d3dde8;
  --ui-ring:rgba(0,127,131,.4);
  --ui-shadow-sm:0 8px 22px rgba(6,29,72,.07);
  --ui-shadow-md:0 14px 36px rgba(6,29,72,.1);
  --ui-ease:cubic-bezier(.2,.7,.2,1);
  background:#edf2f7;
}
.campus-app button,.campus-app input,.campus-app select,.campus-app textarea{font:inherit}
.campus-app a,.campus-app button,.campus-app summary,.campus-app label{-webkit-tap-highlight-color:transparent}
.campus-workspace{background:linear-gradient(180deg,#f2f6fa 0%,#eaf1f7 100%)}
.eyebrow{line-height:1.25}
.campus-content .section-head h2{max-width:900px;letter-spacing:-.025em}
.campus-content .section-head p,.campus-content .panel>p,.admin-main>p{max-width:76ch}

.btn{min-height:44px;border:1px solid transparent;box-shadow:none;transition:transform .18s var(--ui-ease),background .18s,border-color .18s,box-shadow .18s,color .18s}
.btn-primary{border-color:#00757a;background:linear-gradient(135deg,#007f83,#075da8);box-shadow:0 9px 20px rgba(0,95,127,.2)}
.btn-secondary{border-color:#aebed0;background:var(--ui-surface);box-shadow:0 3px 10px rgba(6,29,72,.035)}
.btn:hover:not(:disabled){transform:translateY(-2px)}
.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#006f73,#064f90);box-shadow:0 12px 24px rgba(0,95,127,.27)}
.btn-secondary:hover:not(:disabled){border-color:#6e95b8;background:#f4f8fc;color:#041a43;box-shadow:var(--ui-shadow-sm)}
.btn:active:not(:disabled){transform:translateY(0);box-shadow:none}
.btn:focus-visible,.material-link:focus-visible,.text-link:focus-visible,.unit-accordion summary:focus-visible,.admin-actions a:focus-visible,.admin-actions button:focus-visible{outline:3px solid var(--ui-ring);outline-offset:3px}
.btn:disabled{border-color:#c9d2dd;background:#e7ebf0;color:#667386;box-shadow:none}

.dashboard-welcome,.dashboard-course-card,.dashboard-next,.dashboard-shortcuts,.panel,.unit-accordion,.resource-grid article,.forum-card,.admin-card{border-color:var(--ui-border);box-shadow:var(--ui-shadow-sm)}
.dashboard-welcome{box-shadow:var(--ui-shadow-md)}
.dashboard-course-card{box-shadow:var(--ui-shadow-md)}
.dashboard-section-count,.status-chip,.status,.material-type{border:1px solid rgba(6,29,72,.1)}
.status-disponible,.status:not(.closed){background:#d8f3df;color:#0b6928}
.dashboard-course-facts div,.dashboard-next-content,.dashboard-shortcut-list a{border-color:var(--ui-border-soft);background:var(--ui-surface-soft)}
.dashboard-shortcut-list a{transition:transform .18s var(--ui-ease),border-color .18s,background .18s,box-shadow .18s}
.dashboard-shortcut-list a:hover{border-color:#5d9f9f;background:#eef9f7;box-shadow:var(--ui-shadow-sm)}
.dashboard-shortcut-list a:active{transform:translateY(0);box-shadow:none}
.dashboard-course-state a,.dashboard-text-link{text-decoration-thickness:2px;text-underline-offset:3px}
.dashboard-course-state a:hover,.dashboard-text-link:hover{color:#054b54}

.campus-content .site-header{box-shadow:0 6px 18px rgba(6,29,72,.055)}
.campus-content .page-hero{box-shadow:inset 0 -1px rgba(255,255,255,.12)}
.campus-content .strong-notice{border:1px solid #9fd4cc;border-left:6px solid var(--teal);border-radius:15px;box-shadow:0 6px 16px rgba(0,127,131,.07)}
.campus-content .panel,.campus-content .unit-accordion,.campus-content .resource-grid article,.campus-content .forum-card{background:var(--ui-surface)}
.unit-accordion{transition:border-color .18s,box-shadow .18s}
.unit-accordion[open]{border-color:#6baaaa;box-shadow:0 11px 26px rgba(6,29,72,.1)}
.unit-accordion:not(.locked) summary{transition:background .18s,color .18s}
.unit-accordion:not(.locked) summary:hover{background:#f0faf8}
.material-link{transition:transform .18s var(--ui-ease),border-color .18s,background .18s,box-shadow .18s}
.material-link:hover{background:#f5fbfa;box-shadow:var(--ui-shadow-sm)}
.resource-grid article,.forum-card{transition:border-color .18s,box-shadow .18s}
.resource-grid article:hover,.forum-card:hover{border-color:#86aaa9;box-shadow:0 11px 26px rgba(6,29,72,.1)}

.campus-workspace>.admin-main{width:min(1180px,100%);margin-inline:auto}
.admin-main>h2{margin:7px 0 16px;font-size:clamp(1.65rem,2.8vw,2.2rem);letter-spacing:-.025em}
.admin-main>.notice{margin:0 0 20px}
.admin-card{border-radius:22px;padding:26px}
.admin-card h3{margin:0 0 14px;color:var(--navy);font-size:1.18rem}
.admin-card>p{margin-top:-5px;color:#53627a}
.toggle-row{min-height:58px;padding:11px 8px;border-bottom-color:#c9d5e1;border-radius:10px;transition:background .16s}
.toggle-row:hover{background:#f4f8fb}
.switch{flex:0 0 52px}
.slider{box-shadow:inset 0 0 0 1px rgba(6,29,72,.12)}
.switch input:focus-visible+.slider{outline:3px solid var(--ui-ring);outline-offset:3px}
.notice{border:1px solid #afd9d4;border-left:5px solid var(--teal);box-shadow:0 5px 14px rgba(6,29,72,.04)}
.admin-actions{padding-top:4px}

@media(max-width:680px){
  .campus-content .section{padding-block:48px}
  .campus-content .compact-section{padding-block:34px}
  .campus-content .section-head{margin-bottom:25px}
  .campus-content .section-head h2{font-size:clamp(1.75rem,9vw,2.45rem);line-height:1.08}
  .admin-card{padding:20px 16px}
  .toggle-row{padding-inline:5px}
}
@media(prefers-reduced-motion:reduce){
  .btn,.dashboard-shortcut-list a,.unit-accordion,.unit-accordion summary,.material-link,.resource-grid article,.forum-card,.toggle-row{transition:none}
}

/* v4.2.7 · Responsive */
.campus-app{min-width:0}
.campus-sidebar>*{min-width:0}

@media(max-width:1180px){
  .campus-shell{grid-template-columns:1fr}
  .campus-sidebar{position:relative;top:auto;height:auto;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 16px;background:linear-gradient(105deg,#061d48,#0b3a70)}
  .campus-sidebar-brand{padding:0;border-bottom:0}
  .campus-sidebar-context,.campus-sidebar-caption{display:none}
  .campus-sidebar-nav{display:flex;justify-content:flex-end;gap:7px;min-width:0}
  .campus-sidebar-nav a,.campus-session-link{min-height:44px;padding:7px 10px;white-space:nowrap}
  .campus-sidebar-nav a.is-active:before{display:none}
  .campus-nav-icon{width:26px;height:26px;flex-basis:26px}
  .campus-nav-divider{margin-top:0;padding-top:7px!important;border-top-color:transparent!important;border-radius:12px!important}
  .campus-session-link{margin:0;padding:7px 10px;border:1px solid rgba(255,255,255,.14);border-radius:12px}
  .campus-sidebar-admin{grid-template-columns:auto minmax(0,1fr)}
  .campus-sidebar-admin .campus-sidebar-nav{overflow-x:auto;justify-content:flex-start;padding-bottom:3px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.28) transparent}
  .campus-topbar{position:relative;padding-inline:20px}
  .campus-workspace .site-header{top:0}
}

@media(max-width:640px){
  .campus-sidebar{grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;padding:11px 14px}
  .campus-sidebar-brand .brand-mark{width:38px;height:38px;border-radius:12px}
  .campus-sidebar-brand small{max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .campus-sidebar-nav{grid-column:1/-1;order:3;justify-content:flex-start;overflow-x:auto;padding-top:4px;padding-bottom:3px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.28) transparent}
  .campus-sidebar-nav a{flex:0 0 auto;min-height:44px}
  .campus-sidebar-admin{grid-template-columns:1fr}
  .campus-sidebar-admin .campus-sidebar-nav{grid-column:1/-1}
  .campus-session-link{font-size:.82rem}
  .campus-session-link .campus-nav-icon{display:none}
  .campus-topbar{align-items:center;gap:12px;padding:10px 14px}
}

@media(min-width:641px) and (max-width:1180px){
  .campus-sidebar-admin .campus-sidebar-nav{flex-wrap:wrap;overflow-x:visible}
}

@media(max-width:480px){
  .campus-content .actions,.admin-actions{display:grid;grid-template-columns:1fr}
  .campus-content .actions .btn,.admin-actions .btn{width:100%}
  .unit-accordion summary{align-items:flex-start;flex-direction:column;gap:10px}
  .unit-accordion summary .status{align-self:flex-start}
  .material-link{grid-template-columns:minmax(0,1fr) auto;align-items:start}
  .material-link .material-type{grid-column:1;grid-row:1;justify-self:start;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.material-link .material-title{grid-column:1/-1;grid-row:2;min-width:0;overflow-wrap:anywhere}
  .material-link>span:last-child{grid-column:2;grid-row:1}
  .dashboard-shortcut-list strong,.dashboard-shortcut-list small{overflow:visible;text-overflow:clip;white-space:normal}
  .empty-state{align-items:flex-start;padding:22px 18px}
}

@media(max-width:360px){
  .campus-sidebar{gap:8px 10px;padding-inline:12px}
  .campus-sidebar-brand{gap:9px}
  .campus-sidebar-brand strong{font-size:.92rem}
  .campus-sidebar-brand small,.campus-page-heading small{display:none}
  .campus-session-link{padding-inline:8px;font-size:.76rem}
  .campus-content .site-header .brand small{display:none}
  .campus-content .site-header .brand{gap:9px}
  .campus-content .site-header .brand-mark{width:38px;height:38px}
  .campus-content .site-header .header-inner{gap:10px}
}

@media(max-width:300px){
  .campus-sidebar{grid-template-columns:1fr}
  .campus-session-link{justify-self:start}
  .campus-sidebar-nav{grid-column:1}
  .dashboard-overview{grid-template-columns:1fr}
  .dashboard-overview div+div{border-top:1px solid #cbd8e5;border-left:0}
  .dashboard-next-content{align-items:flex-start;flex-direction:column}
}

@media(min-width:1181px) and (max-height:640px){
  .campus-sidebar{overflow-y:auto}
}

/* v4.2.8 · Accesibilidad */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.campus-app{--ui-ring:#006d71}
.campus-breadcrumb a:focus-visible,.dashboard-course-state a:focus-visible,.dashboard-text-link:focus-visible,.dashboard-shortcut-list a:focus-visible,.dashboard-actions .btn:focus-visible,.campus-content .site-header .brand:focus-visible,.campus-content .site-header .nav a:focus-visible,.campus-content .site-header .menu-btn:focus-visible{outline-color:var(--ui-ring)}
.campus-content .site-header .menu-btn:focus-visible{outline:3px solid var(--ui-ring)!important;outline-offset:3px}
.campus-skip-link:focus{outline-color:#006d71}
#contenido-principal:focus{outline:3px solid var(--ui-ring);outline-offset:-3px}
.campus-content .section-tint .eyebrow{color:#005f63}
.status.closed{color:#566173}
.unit-columns h3,.unit-tools h3{margin-bottom:8px;color:var(--navy);font-size:1rem}
.admin-main>h1{margin:7px 0 16px;color:var(--navy);font-size:clamp(1.65rem,2.8vw,2.2rem);letter-spacing:-.025em}
.admin-card h2{margin:0 0 14px;color:var(--navy);font-size:1.18rem}

.login-page{display:grid;min-height:100vh;margin:0;padding:24px;place-items:center;background:linear-gradient(135deg,#09275b,#0d5fa8)}
.login-card{width:min(420px,100%);padding:2rem;background:#fff}
.login-card h1{margin:0;color:var(--navy)}
.login-card>p{margin:4px 0 22px;color:var(--muted)}
.login-form{display:grid;gap:16px}
.login-field{display:grid;gap:6px}
.login-field label{color:var(--navy);font-size:.9rem;font-weight:800}
.login-field input{width:100%;min-height:46px;padding:11px 12px;border:1px solid #8799ad;border-radius:11px;background:#fff;color:var(--ink);font:inherit}
.login-form button{min-height:46px;border:1px solid #07568f;border-radius:12px;background:#0d5fa8;color:#fff;font:inherit;font-weight:850;cursor:pointer}
.login-field input:focus-visible,.login-form button:focus-visible{outline:3px solid #006d71;outline-offset:3px}
.login-form button:hover{background:#084f8e}

/* v4.3.1 · Autenticación */
html[data-aeos-protected] body{visibility:hidden}
html[data-aeos-protected].aeos-authenticated body{visibility:visible}
.login-status{min-height:1.4em;margin:0;color:#44546a;font-size:.88rem;font-weight:700;line-height:1.45}
.login-status:empty{display:none}
.login-status.is-error{color:#9b1c1c}
.login-status.is-success{color:#176b35}
.login-status.is-info{color:#234f7d}
.login-form button:disabled{cursor:wait;opacity:.72}

/* v4.3.2 · Gestión de participantes */
.participant-manager{scroll-margin-top:96px}
.participant-manager-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px}
.participant-manager-head h2{margin-bottom:5px}
.participant-manager-head p{margin:0;color:#53627a}
.participant-summary{margin-bottom:14px;color:#42516a;font-size:.88rem;font-weight:800}
.participant-result:empty{display:none}
.participant-feedback{margin:0 0 16px;padding:14px 16px;border:1px solid #a8d2bd;border-radius:14px;background:#edf9f3;color:#155c37}
.participant-feedback.is-error{border-color:#e5aaaa;background:#fff3f3;color:#8b1e1e}
.participant-feedback p{margin:0;color:inherit;font-weight:750}
.temporary-credential{display:grid;gap:5px;margin-top:12px;padding:12px;border:1px solid #a9c2d8;border-radius:12px;background:#fff;color:var(--ink)}
.temporary-credential span{color:#40526a;font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.temporary-credential code{width:max-content;max-width:100%;overflow-wrap:anywhere;color:var(--navy);font-size:1.08rem;font-weight:900}
.temporary-credential small{color:#53627a}
.participant-list{display:grid;gap:12px}
.participant-item{display:grid;grid-template-columns:minmax(190px,1.1fr) minmax(170px,.8fr) minmax(300px,1.45fr);align-items:center;gap:18px;padding:16px;border:1px solid #c5d3e0;border-radius:16px;background:#fff}
.participant-item.is-inactive{background:#f7f8fa}
.participant-identity{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}
.participant-identity h3{margin:0;color:var(--navy);font-size:1rem;overflow-wrap:anywhere}
.participant-identity p{margin:3px 0 0;color:#53627a;font-size:.82rem;overflow-wrap:anywhere}
.participant-status{flex:0 0 auto;padding:4px 8px;border-radius:999px;font-size:.72rem;font-weight:900}
.participant-status.is-active{background:#dff5e8;color:#176534}
.participant-status.is-inactive{background:#e8ebef;color:#525e6f}
.participant-meta{display:grid;grid-template-columns:auto 1fr;gap:3px 8px;margin:0;font-size:.8rem}
.participant-meta dt{color:#58677d;font-weight:700}
.participant-meta dd{min-width:0;margin:0;color:#233a58;font-weight:800;overflow-wrap:anywhere}
.participant-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}
.btn-compact{min-height:40px;padding:9px 12px;border-radius:11px;font-size:.78rem}
.btn-caution{border-color:#d39d93;background:#fff7f5;color:#8b2d1e}
.btn-activate{border-color:#9fcdb3;background:#effaf4;color:#176534}
.participant-empty{margin:0;padding:20px;border:1px dashed #a9bacb;border-radius:14px;color:#53627a;text-align:center}

.admin-dialog{width:min(680px,calc(100% - 32px));max-height:calc(100vh - 32px);padding:0;border:0;border-radius:22px;background:#fff;color:var(--ink);box-shadow:0 24px 70px rgba(9,39,91,.28);overflow:auto}
.admin-dialog::backdrop{background:rgba(6,23,50,.58);backdrop-filter:blur(2px)}
.admin-dialog form{padding:24px}
.admin-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}
.admin-dialog-head h2{margin:4px 0 0;color:var(--navy);font-size:1.45rem}
.dialog-close{flex:0 0 42px;width:42px;height:42px;border:1px solid #bdcbd9;border-radius:12px;background:#f6f8fa;color:var(--navy);font:700 1.45rem/1 system-ui;cursor:pointer}
.dialog-close:hover{background:#eaf0f5}
.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.admin-field{display:grid;align-content:start;gap:6px;color:var(--navy);font-size:.86rem;font-weight:850}
.admin-field-wide{grid-column:1/-1}
.admin-field input{width:100%;min-height:46px;padding:10px 12px;border:1px solid #8295aa;border-radius:11px;background:#fff;color:var(--ink);font:inherit;font-weight:500}
.admin-field small,.admin-field-help{margin:0;color:#53627a;font-size:.76rem;font-weight:600;line-height:1.4}
.admin-password-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.admin-password-fields[hidden]{display:none!important}
.admin-password-fields .admin-field-help{grid-column:1/-1}
.admin-form-status{min-height:1.4em;margin:14px 0 0;color:#9b1c1c;font-size:.84rem;font-weight:800}
.admin-form-status:empty{display:none}
.admin-dialog-context{margin:-7px 0 18px;color:#53627a;font-weight:750}
.admin-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid #d4dee8}
.admin-field input:focus-visible,.dialog-close:focus-visible,.participant-actions button:focus-visible,.participant-manager-head button:focus-visible{outline:3px solid var(--ui-ring);outline-offset:3px}
.participant-actions button:disabled,.admin-dialog button:disabled{cursor:wait;opacity:.68}

@media(max-width:900px){
  .participant-item{grid-template-columns:1fr 1fr}
  .participant-actions{grid-column:1/-1;justify-content:flex-start;padding-top:12px;border-top:1px solid #d4dee8}
}

@media(max-width:600px){
  .participant-manager-head{align-items:stretch;flex-direction:column;gap:14px}
  .participant-manager-head .btn{width:100%}
  .participant-item{grid-template-columns:1fr;gap:12px;padding:14px}
  .participant-actions{grid-column:auto;display:grid;grid-template-columns:1fr;padding-top:12px}
  .participant-actions .btn{width:100%}
  .admin-dialog{width:calc(100% - 20px);max-height:calc(100vh - 20px);border-radius:16px}
  .admin-dialog form{padding:18px 15px}
  .admin-form-grid,.admin-password-fields{grid-template-columns:1fr}
  .admin-field-wide,.admin-password-fields .admin-field-help{grid-column:auto}
  .admin-dialog-actions{display:grid;grid-template-columns:1fr}
  .admin-dialog-actions .btn{width:100%}
}

/* v4.3.3 · Control de accesos */
.access-control{scroll-margin-top:96px}
.access-control-head{margin-bottom:18px}
.access-control-head h2{margin-bottom:5px}
.access-control-head p{max-width:76ch;margin:0;color:#53627a;line-height:1.5}
.access-table-wrap{overflow-x:auto;border:1px solid #c5d3e0;border-radius:16px;background:#fff}
.access-table-wrap:focus-visible{outline:3px solid var(--ui-ring);outline-offset:3px}
.access-table{width:100%;min-width:620px;border-collapse:collapse;color:var(--ink)}
.access-table th,.access-table td{padding:13px 15px;border-bottom:1px solid #d7e0e9;text-align:left;vertical-align:middle}
.access-table thead th{background:#edf3f8;color:#29425f;font-size:.76rem;font-weight:900;letter-spacing:.025em}
.access-table thead tr:first-child th[colspan]{text-align:center}
.access-table thead tr:first-child th{border-bottom-color:#c2d0de}
.access-table tbody tr:last-child td{border-bottom:0}
.access-table tbody tr:hover{background:#f7fafc}
.access-user{display:grid;gap:3px;min-width:0}
.access-user strong{color:var(--navy);font-size:.9rem;overflow-wrap:anywhere}
.access-user small{color:#53627a;font-size:.77rem;overflow-wrap:anywhere}
.access-date,.access-time{font-size:.84rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.access-empty{color:#68768a;font-size:.82rem;font-style:italic}
.access-state{display:inline-flex;width:max-content;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:900}
.access-state.is-active{background:#dff5e8;color:#176534}
.access-state.is-inactive{background:#e8ebef;color:#525e6f}

@media(max-width:700px){
  .access-table-wrap{overflow:visible;border:0;background:transparent}
  .access-table{min-width:0}
  .access-table thead{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .access-table,.access-table tbody,.access-table tr,.access-table td{display:block;width:100%}
  .access-table tbody{display:grid;gap:12px}
  .access-table tbody tr{padding:5px 14px;border:1px solid #c5d3e0;border-radius:14px;background:#fff}
  .access-table th,.access-table td{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:10px 0;border-bottom:1px solid #d7e0e9}
  .access-table td::before{content:attr(data-label);color:#58677d;font-size:.75rem;font-weight:850}
  .access-table td:first-child{display:block;padding-top:12px}
  .access-table td:first-child::before{display:none}
  .access-table tbody tr:last-child td{border-bottom:1px solid #d7e0e9}
  .access-table tbody td:last-child{border-bottom:0}
  .access-table tbody tr:last-child td:last-child{border-bottom:0}
  .access-user{text-align:left}
  .access-state{justify-self:end}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* v4.3.4 · Gestión de unidades */
.unit-manager{scroll-margin-top:96px}
.unit-state-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}
.unit-state-legend>span{display:grid;align-content:start;gap:7px;padding:12px;border:1px solid #cad6e2;border-radius:13px;background:#f8fafc}
.unit-state-legend small{color:#53627a;font-size:.76rem;line-height:1.4}
.unit-state-chip{display:inline-flex;width:max-content;max-width:100%;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:900;line-height:1.2}
.unit-state-chip.is-hidden{background:#e8ebef;color:#525e6f}
.unit-state-chip.is-available{background:#dff5e8;color:#176534}
.unit-state-chip.is-finished{background:#dfeaff;color:#234f8d}
.unit-state-summary{margin:0 0 12px!important;color:#42516a!important;font-size:.86rem;font-weight:850}
.unit-state-list{display:grid;gap:10px}
.unit-state-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px 18px;padding:15px 16px;border:1px solid #c5d3e0;border-radius:15px;background:#fff}
.unit-state-row[data-state="hidden"]{background:#f7f8fa}
.unit-state-row[data-state="finished"]{border-color:#b8cae5;background:#f6f9ff}
.unit-state-copy{display:grid;gap:4px;min-width:0}
.unit-state-copy strong{color:var(--navy);font-size:.94rem;overflow-wrap:anywhere}
.unit-state-copy small{color:#53627a;font-size:.78rem;overflow-wrap:anywhere}
.unit-state-control{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.unit-state-control select{min-width:142px;min-height:44px;padding:9px 34px 9px 11px;border:1px solid #8295aa;border-radius:11px;background:#fff;color:var(--ink);font-weight:800;cursor:pointer}
.unit-state-control select:focus-visible{outline:3px solid var(--ui-ring);outline-offset:3px}
.unit-state-help{grid-column:1/-1;margin:0;color:#5a687c;font-size:.75rem}
.status.finalized{border-color:#b8cae5;background:#dfeaff;color:#234f8d}
.unit-card.is-finished,.unit-accordion.is-finished{border-color:#b8cae5;background:#f8faff}
.unit-accordion.is-finished summary{background:#f1f6ff}
.unit-accordion.is-finished summary:hover{background:#e9f1ff}

@media(max-width:700px){
  .unit-state-legend{grid-template-columns:1fr}
  .unit-state-row{grid-template-columns:1fr;align-items:start}
  .unit-state-control{justify-content:space-between}
  .unit-state-help{grid-column:auto}
}

@media(max-width:420px){
  .unit-state-control{align-items:stretch;flex-direction:column}
  .unit-state-control select{width:100%}
}

/* v4.3.5 · Gestión de recursos */
.resource-manager{scroll-margin-top:96px}
.resource-state-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}
.resource-state-legend>span{display:grid;align-content:start;gap:7px;padding:12px;border:1px solid #cad6e2;border-radius:13px;background:#f8fafc}
.resource-state-legend small{color:#53627a;font-size:.76rem;line-height:1.4}
.resource-state-chip{display:inline-flex;width:max-content;max-width:100%;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:900;line-height:1.2}
.resource-state-chip.is-hidden{background:#e8ebef;color:#525e6f}
.resource-state-chip.is-visible{background:#dff5e8;color:#176534}
.resource-state-chip.is-highlighted{background:#fff0bd;color:#704500}
.resource-state-summary{margin:0 0 12px!important;color:#42516a!important;font-size:.86rem;font-weight:850}
.resource-state-groups{display:grid;gap:14px}
.resource-unit-group{padding:16px;border:1px solid #c5d3e0;border-radius:16px;background:#f8fafc}
.resource-unit-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.resource-unit-heading h3{margin:0 0 3px;font-size:1rem}
.resource-unit-heading small{color:#53627a;font-size:.77rem;font-weight:750}
.resource-state-list{display:grid;gap:9px}
.resource-state-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px 18px;padding:13px 14px;border:1px solid #c5d3e0;border-radius:13px;background:#fff}
.resource-state-row[data-state="hidden"]{background:#f3f5f7}
.resource-state-row[data-state="highlighted"]{border-color:#dfbf63;background:#fffaf0}
.resource-state-copy{display:grid;gap:4px;min-width:0}
.resource-state-copy strong{color:var(--navy);font-size:.9rem;overflow-wrap:anywhere}
.resource-state-copy small{color:#53627a;font-size:.76rem;overflow-wrap:anywhere}
.resource-state-control{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.resource-state-control select{min-width:136px;min-height:44px;padding:9px 34px 9px 11px;border:1px solid #8295aa;border-radius:11px;background:#fff;color:var(--ink);font-weight:800;cursor:pointer}
.resource-state-control select:focus-visible{outline:3px solid var(--ui-ring);outline-offset:3px}
.resource-state-help{grid-column:1/-1;margin:0;color:#5a687c;font-size:.75rem}
.resource-empty{margin:0;color:#53627a;font-size:.84rem}
.material-title{display:grid;gap:4px;min-width:0}
.material-title b{min-width:0;overflow-wrap:anywhere}
.material-link.is-highlighted{border-color:#d2a62b;background:#fffaf0;box-shadow:0 8px 20px rgba(117,76,0,.12)}
.material-link.is-highlighted:hover{border-color:#a87900;background:#fff5d8}
.resource-highlight{display:inline-flex;width:max-content;padding:3px 7px;border-radius:999px;background:#fff0bd;color:#704500;font-size:.66rem;font-weight:900;line-height:1.2;text-transform:uppercase;letter-spacing:.035em}

@media(max-width:700px){
  .resource-state-legend{grid-template-columns:1fr}
  .resource-state-row{grid-template-columns:1fr;align-items:start}
  .resource-state-control{justify-content:space-between}
  .resource-state-help{grid-column:auto}
}

@media(max-width:420px){
  .resource-unit-heading{align-items:stretch;flex-direction:column;gap:9px}
  .resource-state-control{align-items:stretch;flex-direction:column}
  .resource-state-control select{width:100%}
}

/* v4.3.7 · Panel del Administrador */
.campus-workspace>.admin-main{width:min(1240px,100%);padding-bottom:56px}
.admin-command-center{scroll-margin-top:96px;margin-bottom:16px;padding:28px;border:1px solid #aebfd2;border-radius:25px;background:linear-gradient(120deg,#fff 0%,#eef8f6 58%,#e9f1fb 100%);box-shadow:var(--ui-shadow-md)}
.admin-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:30px}
.admin-intro>div{max-width:780px}
.admin-intro h1{margin:7px 0 10px;color:var(--navy);font-size:clamp(1.85rem,3.2vw,2.65rem);line-height:1.08;letter-spacing:-.035em}
.admin-intro p{margin:0;color:#42516a;font-size:.98rem;line-height:1.55}
.admin-campus-state{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:8px 11px;border:1px solid #9dcbb2;border-radius:999px;background:#e5f7ed;color:#165e34;font-size:.73rem;font-weight:900;line-height:1.2}
.admin-campus-state::before{content:"";width:8px;height:8px;border-radius:50%;background:#238a4b;box-shadow:0 0 0 3px rgba(35,138,75,.14)}
.admin-campus-state.is-pending{border-color:#d7b45c;background:#fff6d8;color:#6c4800}
.admin-campus-state.is-pending::before{background:#b97800;box-shadow:0 0 0 3px rgba(185,120,0,.14)}
.admin-storage-notice{margin:21px 0!important;padding-block:12px;font-size:.82rem}
.admin-overview-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:12px}
.admin-overview-head h2{margin:0;color:var(--navy);font-size:1.08rem}
.admin-overview-head p{margin:0;color:#5c6a7e;font-size:.76rem}
.admin-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0}
.admin-metric{display:grid;grid-template-rows:auto 1fr auto;min-width:0;padding:15px 16px;border:1px solid #c2d0de;border-radius:16px;background:rgba(255,255,255,.9)}
.admin-metric dt{color:#56667c;font-size:.68rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.admin-metric dd{display:grid;align-content:center;gap:4px;margin:12px 0}
.admin-metric dd strong{color:var(--navy);font-size:1.55rem;line-height:1;font-variant-numeric:tabular-nums}
.admin-metric dd span{color:#53627a;font-size:.73rem;font-weight:750}
.admin-metric a{width:max-content;max-width:100%;color:#075f68;font-size:.73rem;font-weight:900;text-decoration:none}
.admin-metric a:hover{text-decoration:underline;text-underline-offset:3px}
.admin-metric a:focus-visible{border-radius:5px;outline:3px solid var(--ui-ring);outline-offset:3px}

.admin-section-nav{display:flex;align-items:center;gap:6px;margin:0 0 16px;padding:7px;overflow-x:auto;border:1px solid #bccbd9;border-radius:16px;background:#fff;box-shadow:var(--ui-shadow-sm);scrollbar-width:thin}
.admin-section-nav a{flex:1 0 auto;min-height:40px;display:inline-flex;align-items:center;justify-content:center;padding:9px 12px;border-radius:10px;color:#40516a;font-size:.76rem;font-weight:850;text-decoration:none;white-space:nowrap}
.admin-section-nav a:hover{background:#edf6f5;color:#075b61}
.admin-section-nav a.is-current,.admin-section-nav a.is-section-active{background:var(--navy);color:#fff}
.admin-section-nav a:focus-visible{outline:3px solid var(--ui-ring);outline-offset:2px}
.campus-sidebar-nav a.is-section-active{border-color:rgba(255,255,255,.26);background:rgba(255,255,255,.13);color:#fff}
.campus-sidebar-nav a.is-active.is-section-active{border-color:rgba(255,255,255,.72);background:#fff;color:var(--navy)}

.admin-action-bar{position:sticky;top:calc(var(--campus-header-height) + 12px);z-index:34;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:11px 13px;border:1px solid #aebfd0;border-radius:17px;background:rgba(255,255,255,.96);box-shadow:0 10px 28px rgba(6,29,72,.13);backdrop-filter:blur(12px)}
.admin-save-state{display:flex;align-items:center;gap:10px;min-width:0}
.admin-save-state>span:first-child{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#dff5e8;color:#176534;font-weight:950}
.admin-main[data-pending-changes="true"] .admin-save-state>span:first-child{background:#fff0bd;color:#704500}
.admin-save-state>span:last-child{display:grid;min-width:0;line-height:1.2}
.admin-save-state strong{color:var(--navy);font-size:.78rem}
.admin-save-state small{margin-top:3px;color:#5b697c;font-size:.68rem}
.admin-action-bar .admin-actions{display:flex;flex:0 0 auto;gap:8px;padding:0}
.admin-action-bar .btn{min-height:44px;padding:9px 13px;border-radius:11px;font-size:.75rem}
#result:empty{display:none}
#result>.notice{margin:0 0 18px}
.admin-group-label{display:flex;align-items:center;gap:12px;margin:28px 3px 10px!important;color:#425b75!important;font-size:.68rem;font-weight:950;letter-spacing:.11em;text-transform:uppercase}
.admin-group-label::after{content:"";height:1px;flex:1;background:#bdcbd9}
.admin-card{scroll-margin-top:176px}

.resource-unit-group{padding:0;overflow:hidden}
.resource-unit-group[open]{background:#f8fafc}
.resource-unit-heading{margin:0;padding:15px 16px;cursor:pointer;list-style:none;background:#f8fafc}
.resource-unit-heading::-webkit-details-marker{display:none}
.resource-unit-heading>span:first-child{display:grid;min-width:0;gap:3px}
.resource-unit-heading strong{color:var(--navy);font-size:1rem;overflow-wrap:anywhere}
.resource-unit-summary-state{display:flex;align-items:center;gap:10px}
.resource-unit-chevron{width:10px;height:10px;border-right:2px solid #31516e;border-bottom:2px solid #31516e;transform:rotate(45deg);transition:transform .18s}
.resource-unit-group[open] .resource-unit-chevron{transform:rotate(225deg)}
.resource-unit-heading:hover{background:#eef6f5}
.resource-unit-heading:focus-visible{outline:3px solid var(--ui-ring);outline-offset:-3px}
.resource-unit-group .resource-state-list{padding:2px 15px 15px;border-top:1px solid #d4dee8}
.resource-unit-group .resource-state-row:first-child{margin-top:12px}

@media(max-width:980px){
  .admin-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-action-bar{top:12px;align-items:stretch;flex-direction:column}
  .admin-action-bar .admin-actions{justify-content:flex-start}
}

@media(max-width:700px){
  .campus-workspace>.admin-main{padding-bottom:36px}
  .admin-command-center{padding:21px 17px;border-radius:20px}
  .admin-intro{flex-direction:column;gap:15px}
  .admin-overview-head{align-items:flex-start;flex-direction:column;gap:3px}
  .admin-section-nav{justify-content:flex-start}
  .admin-action-bar{position:relative;top:auto;padding:13px}
  .admin-action-bar .admin-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .admin-action-bar .admin-actions .btn{width:100%}
  .admin-action-bar .admin-actions .btn:last-child{grid-column:1/-1}
  .admin-card{scroll-margin-top:100px}
}

@media(max-width:480px){
  .admin-overview-grid{grid-template-columns:1fr}
  .admin-action-bar .admin-actions{grid-template-columns:1fr}
  .admin-action-bar .admin-actions .btn:last-child{grid-column:auto}
  .resource-unit-summary-state{align-self:flex-start}
}

@media(prefers-reduced-motion:reduce){
  .resource-unit-chevron{transition:none}
}
