
:root {
  --verde: #1a7a2e; --verde-claro: #4caf50;
  --naranja: #e85c1a; --naranja-claro: #ff7b3a;
  --verde-bg: #b8ddb5; --blanco: #fff; --negro: #111; --gris: #f2f2f0;
  --magenta: #c2185b; --cyan: #0077a8;
}
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Barlow',sans-serif; background:var(--gris); color:var(--negro); }

/* ── CAREER SWITCHER ── */
.career-switcher {
  position:fixed; top:0; left:0; right:0; z-index:1001;
  background:#0a0a0a; display:flex; align-items:stretch; height:46px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.career-option {
  flex:1; display:flex; align-items:center; justify-content:center; gap:10px;
  cursor:pointer; font-family:'Barlow Condensed',sans-serif;
  font-weight:700; font-size:.92rem; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.35); transition:color .2s,background .2s;
  border-bottom:3px solid transparent; user-select:none;
}
.career-option:hover { color:rgba(255,255,255,.7); background:rgba(255,255,255,.04); }
.career-option.active-cp   { color:var(--verde-claro);   border-bottom-color:var(--verde-claro);   background:rgba(26,122,46,.1); }
.career-option.active-comu { color:var(--naranja-claro); border-bottom-color:var(--naranja-claro); background:rgba(232,92,26,.1); }
.career-option.active-rt   { color:#c0504d;              border-bottom-color:#c0504d;              background:rgba(139,26,26,.1); }
.career-pill {
  font-size:.6rem; padding:2px 8px; border-radius:20px; font-weight:800;
  background:rgba(255,255,255,.1); color:rgba(255,255,255,.45);
}
.career-option.active-cp   .career-pill { background:var(--verde);   color:#fff; }
.career-option.active-comu .career-pill { background:var(--naranja); color:#fff; }
.career-option.active-rt   .career-pill { background:#8b1a1a;        color:#fff; }
.career-divider { width:1px; background:rgba(255,255,255,.08); margin:8px 0; }

/* ── SHARED NAV (used by CP, re-styled for comu via class) ── */
nav {
  position:sticky; top:46px; z-index:900;
  background:rgba(255,255,255,.97); backdrop-filter:blur(8px);
  border-bottom:3px solid var(--verde);
  display:flex; align-items:center; justify-content:space-between; padding:0 24px; height:56px;
  transition:border-color .3s;
}
nav.comu-nav { border-bottom-color:var(--naranja); }

/* Nav logo & links – GLOBAL (el <nav> está fuera de #career-cp) */
.nav-logo {
  font-family:'Bebas Neue',sans-serif; font-size:1.6rem;
  color:var(--verde); letter-spacing:.06em; cursor:pointer;
}
.nav-logo span { color:var(--naranja); }
nav.comu-nav .nav-logo { color:var(--naranja); }
nav.comu-nav .nav-logo span { color:var(--verde); }

.nav-links { display:flex; gap:24px; list-style:none; }
.nav-links a {
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.95rem; text-transform:uppercase; letter-spacing:.06em;
  color:var(--negro); text-decoration:none; transition:color .15s;
}
.nav-links a:hover { color:var(--naranja); }
nav.comu-nav .nav-links a:hover { color:var(--naranja); }

/* Badge de carrera en nav (mobile) */
.nav-carrera-badge {
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.75rem; letter-spacing:.1em; text-transform:uppercase;
  padding:3px 10px; border-radius:20px; display:none;
  background:var(--verde); color:#fff;
}
nav.comu-nav .nav-carrera-badge { background:var(--naranja); }
@media(max-width:768px) { .nav-carrera-badge { display:inline-block; } }

/* ── SHARED FAB ── */
.fab-drive {
  position:fixed; bottom:28px; right:28px; z-index:500;
  background:var(--verde); color:#fff; border:none; cursor:pointer;
  border-radius:56px; display:flex; align-items:center; gap:10px;
  padding:14px 22px; font-family:'Barlow Condensed',sans-serif;
  font-weight:700; font-size:1rem; letter-spacing:.06em; text-transform:uppercase;
  text-decoration:none; box-shadow:0 6px 24px rgba(26,122,46,.4);
  transition:transform .2s, box-shadow .2s, background .3s;
}
.fab-drive.comu { background:var(--naranja); box-shadow:0 6px 24px rgba(232,92,26,.4); }
.fab-drive:hover { transform:translateY(-4px) scale(1.03); }
@media(max-width:480px){ .fab-label { display:none; } }
.fab-whatsapp {
  position:fixed; bottom:100px; right:28px; z-index:500;
  background:#25D366; color:#fff; border:none; cursor:pointer;
  border-radius:56px; display:flex; align-items:center; gap:10px;
  padding:14px 22px; font-family:'Barlow Condensed',sans-serif;
  font-weight:700; font-size:1rem; letter-spacing:.06em; text-transform:uppercase;
  text-decoration:none; box-shadow:0 6px 24px rgba(37,211,102,.4);
  transition:transform .2s, box-shadow .2s;
}
.fab-whatsapp:hover { transform:translateY(-4px) scale(1.03); box-shadow:0 10px 32px rgba(37,211,102,.5); }
.fab-whatsapp svg { width:22px; height:22px; flex-shrink:0; }
@media(max-width:480px){ .fab-whatsapp .fab-label { display:none; } .fab-whatsapp { padding:14px; border-radius:50%; } }
.fab-pdf {
  position:fixed; bottom:172px; right:28px; z-index:500;
  background:var(--verde); color:#fff; border:none; cursor:pointer;
  border-radius:56px; display:flex; align-items:center; gap:10px;
  padding:14px 22px; font-family:'Barlow Condensed',sans-serif;
  font-weight:700; font-size:1rem; letter-spacing:.06em; text-transform:uppercase;
  box-shadow:0 6px 24px rgba(26,122,46,.4);
  transition:transform .2s, box-shadow .2s, background .3s;
}
.fab-pdf.comu { background:var(--naranja); box-shadow:0 6px 24px rgba(232,92,26,.4); }
.fab-pdf:hover { transform:translateY(-4px) scale(1.03); }
@media(max-width:480px){ .fab-pdf .fab-label { display:none; } .fab-pdf { padding:14px; border-radius:50%; } }

/* ── SHARED FOOTER ── */
footer {
  background:#0a0a0a; padding:64px 24px; text-align:center;
  border-top:3px solid var(--verde); transition:border-color .3s;
}
footer.comu { border-top-color:var(--naranja); }
footer .logo-text {
  font-family:'Bebas Neue',sans-serif; font-size:3.5rem; letter-spacing:.06em;
  color:var(--verde-claro); transition:color .3s;
}
footer.comu .logo-text { color:var(--naranja-claro); }
footer .logo-sub {
  font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:1rem;
  letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.35);
  margin-bottom:16px;
}
footer p { color:rgba(255,255,255,.6); font-size:.9rem; line-height:1.7; }
footer .footer-logo-img {
  margin:24px auto 0;
  display:block;
  max-width:180px;
  width:100%;
  height:auto;
}

/* ── TRANSITION OVERLAY ── */
.transition-overlay {
  position:fixed; inset:0; z-index:800;
  pointer-events:none; opacity:0; transition:opacity .25s; background:#0a0a0a;
}
.transition-overlay.flash { opacity:.3; }

/* ════════════════════════════════════
   COMU – all styles completely fresh
   ════════════════════════════════════ */
#career-comu {
  font-family: 'Montserrat', sans-serif;
}

/* COMU hero */
#career-comu .comu-hero {
  position:relative; overflow:hidden; background:#0d0d0d;
  padding:100px 24px 80px; min-height:420px;
  display:flex; align-items:center;
}
#career-comu .hero-blob {
  position:absolute; border-radius:50%; filter:blur(80px); opacity:.55;
  animation:blobFloat 9s ease-in-out infinite;
}
#career-comu .hero-blob.b1 { width:500px;height:500px;background:var(--naranja);top:-120px;right:-80px;animation-delay:0s; }
#career-comu .hero-blob.b2 { width:400px;height:400px;background:var(--verde);bottom:-80px;left:-60px;animation-delay:-3s; }
#career-comu .hero-blob.b3 { width:300px;height:300px;background:var(--magenta);top:40%;right:40%;animation-delay:-5s; }
@keyframes blobFloat { 0%,100%{transform:translate(0,0) scale(1)} 33%{transform:translate(20px,-20px) scale(1.05)} 66%{transform:translate(-15px,15px) scale(.97)} }

#career-comu .hero-inner {
  position:relative; z-index:1; max-width:860px; margin:0 auto; width:100%;
  text-align:center;
}
#career-comu .comu-badge {
  display:inline-block; font-family:'Barlow Condensed',sans-serif;
  font-weight:700; font-size:.85rem; letter-spacing:.15em; text-transform:uppercase;
  padding:6px 16px; border-radius:30px; margin-bottom:20px;
  background:rgba(232,92,26,.2); color:var(--naranja-claro);
  border:1px solid rgba(232,92,26,.35);
}
#career-comu .hero-inner h1 {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(4rem,12vw,9rem); line-height:.88; color:#fff; margin-bottom:16px;
}
#career-comu .hero-inner h1 span { color:var(--naranja-claro); }
#career-comu .hero-sub {
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:1.1rem; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(255,255,255,.5); margin-bottom:16px;
}
#career-comu .hero-copy {
  font-size:1.05rem; line-height:1.7; color:rgba(255,255,255,.7);
  max-width:560px; margin:0 auto 32px; font-weight:400;
}
#career-comu .hero-cta {
  display:inline-block; padding:14px 28px; background:var(--naranja); color:#fff;
  font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:1.05rem;
  letter-spacing:.1em; text-transform:uppercase; border:none; border-radius:8px;
  cursor:pointer; box-shadow:0 6px 20px rgba(232,92,26,.4);
  transition:transform .15s, box-shadow .15s;
}
#career-comu .hero-cta:hover { transform:translateY(-3px); box-shadow:0 10px 28px rgba(232,92,26,.5); }

/* COMU intro */
#career-comu .comu-intro {
  background:#0f3318; color:#fff; padding:64px 24px; text-align:center;
}
#career-comu .comu-intro h2 {
  font-family:'Bebas Neue',sans-serif; font-size:clamp(2rem,5vw,3.5rem);
  color:var(--naranja-claro); margin-bottom:16px;
}
#career-comu .comu-intro p {
  max-width:680px; margin:0 auto; font-size:1.05rem; line-height:1.75; opacity:.85;
}

/* COMU stats */
#career-comu .comu-stats {
  display:flex; flex-wrap:wrap; background:#0a0a0a;
  border-top:3px solid var(--naranja);
}
#career-comu .comu-stat {
  flex:1 1 120px; padding:24px 16px; text-align:center;
  border-right:1px solid rgba(255,255,255,.07);
}
#career-comu .comu-stat:last-child { border-right:none; }
#career-comu .comu-stat-num {
  font-family:'Bebas Neue',sans-serif; font-size:3.5rem;
  color:var(--naranja-claro); line-height:1;
}
#career-comu .comu-stat-label {
  font-family:'Barlow Condensed',sans-serif; font-weight:600;
  font-size:.75rem; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.35); margin-top:4px;
}

/* COMU section */
#career-comu .comu-sec {
  max-width:1100px; margin:0 auto; padding:64px 24px;
}
#career-comu .comu-sec-title {
  font-family:'Bebas Neue',sans-serif; font-size:clamp(2rem,6vw,3.5rem);
  color:var(--negro); line-height:1; margin-bottom:8px;
}
#career-comu .comu-sec-title span { color:var(--naranja); }
#career-comu .comu-sec-div {
  width:60px; height:4px; background:var(--naranja);
  border-radius:2px; margin-bottom:36px;
}

/* COMU area badge */
#career-comu .area-badge {
  display:inline-flex; align-items:center; gap:8px;
  font-family:'Barlow Condensed',sans-serif; font-weight:800;
  font-size:.75rem; letter-spacing:.12em; text-transform:uppercase;
  padding:6px 14px; border-radius:20px; margin-bottom:16px; margin-top:4px;
}
#career-comu .area-verde   { background:#e8f5e9; color:var(--verde);   border:1px solid #c8e6c9; }
#career-comu .area-naranja { background:#fff3e0; color:var(--naranja); border:1px solid #ffe0b2; }
#career-comu .area-cyan    { background:#e3f2fd; color:var(--cyan);    border:1px solid #bbdefb; }
#career-comu .area-magenta { background:#fce4ec; color:var(--magenta); border:1px solid #f8bbd0; }

/* COMU materias grid */
#career-comu .materias-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:16px; margin-bottom:40px;
}
#career-comu .materia-card {
  background:#fff; border-radius:10px; padding:20px;
  cursor:pointer; border-left:4px solid var(--naranja);
  box-shadow:0 2px 8px rgba(0,0,0,.06);
  transition:transform .2s, box-shadow .2s;
}
#career-comu .materia-card:hover { transform:translateY(-5px); box-shadow:0 12px 32px rgba(0,0,0,.12); }
#career-comu .materia-card.verde   { border-left-color:var(--verde); }
#career-comu .materia-card.naranja { border-left-color:var(--naranja); }
#career-comu .materia-card.cyan    { border-left-color:var(--cyan); }
#career-comu .materia-card.magenta { border-left-color:var(--magenta); }

#career-comu .mc-nombre {
  font-family:'Montserrat',sans-serif; font-weight:800;
  font-size:.98rem; color:var(--negro); line-height:1.3; margin-bottom:6px;
}
#career-comu .mc-catedras { font-size:.78rem; color:#888; font-weight:500; margin-bottom:8px; }
#career-comu .mc-desc {
  font-size:.82rem; color:#555; line-height:1.5;
  display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
#career-comu .mc-footer {
  display:flex; align-items:center; justify-content:space-between;
  margin-top:12px; padding-top:10px; border-top:1px solid #f0f0f0;
}
#career-comu .mc-horas {
  font-size:.72rem; color:#bbb; font-family:'Barlow Condensed',sans-serif;
  font-weight:600; letter-spacing:.04em; text-transform:uppercase;
}
#career-comu .mc-arrow { font-size:.9rem; color:#ddd; transition:color .15s, transform .15s; }
#career-comu .materia-card:hover .mc-arrow { color:var(--naranja); transform:translateX(3px); }

/* COMU materia page */
#career-comu .comu-mp-hero {
  padding:80px 24px 48px; background:linear-gradient(135deg,#e85c1a,#8a2c00);
  color:#fff; border-left:8px solid rgba(255,255,255,.3);
}
#career-comu .comu-mp-hero.verde   { background:linear-gradient(135deg,#1a7a2e,#0f4d1e); }
#career-comu .comu-mp-hero.naranja { background:linear-gradient(135deg,#e85c1a,#8a2c00); }
#career-comu .comu-mp-hero.cyan    { background:linear-gradient(135deg,#0077a8,#003f5e); }
#career-comu .comu-mp-hero.magenta { background:linear-gradient(135deg,#c2185b,#6a0f34); }
#career-comu .comu-mp-inner { max-width:860px; margin:0 auto; }
#career-comu .comu-mp-back {
  display:inline-flex; align-items:center; gap:6px;
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.9rem; letter-spacing:.08em; text-transform:uppercase;
  color:rgba(255,255,255,.65); background:rgba(255,255,255,.12);
  border:none; border-radius:6px; padding:8px 14px; cursor:pointer;
  margin-bottom:24px; transition:color .15s, background .15s;
}
#career-comu .comu-mp-back:hover { color:#fff; background:rgba(255,255,255,.2); }
#career-comu .comu-mp-title {
  font-family:'Montserrat',sans-serif; font-weight:900;
  font-size:clamp(1.6rem,4vw,2.6rem); line-height:1.15; margin-bottom:16px;
}
#career-comu .comu-mp-meta {
  display:flex; flex-wrap:wrap; gap:16px; opacity:.8;
  align-items:center;
  font-family:'Barlow Condensed',sans-serif; font-weight:600;
  font-size:.9rem; letter-spacing:.05em;
}

#career-comu .comu-mp-body {
  max-width:860px; margin:0 auto; padding:48px 24px;
}
#career-comu .comu-mp-sec { margin-bottom:40px; }
#career-comu .comu-mp-sec-title {
  font-family:'Montserrat',sans-serif; font-weight:800; font-size:1rem;
  color:var(--negro); margin-bottom:12px; padding-left:14px;
  border-left:4px solid var(--naranja); line-height:1.3;
}
#career-comu .comu-mp-sec-body {
  font-size:.97rem; line-height:1.8; color:#444;
}
#career-comu .comu-mp-sec-body p { margin-bottom:12px; }
#career-comu .comu-mp-sec-body p:last-child { margin-bottom:0; }

/* COMU prev/next nav */
#career-comu .comu-mp-nav {
  display:grid; grid-template-columns:1fr 1fr;
  gap:12px; max-width:860px; margin:40px auto 0; padding:0 24px 48px;
}
#career-comu .comu-mp-nav-btn {
  background:var(--verde-oscuro,#1a5c2a); color:#fff;
  border:none; border-radius:10px; padding:16px 20px; cursor:pointer;
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:1.05rem; text-transform:uppercase; letter-spacing:.06em;
  transition:background .15s,transform .15s; text-align:left;
}
#career-comu .comu-mp-nav-btn:hover { background:#0f4d1e; transform:translateY(-2px); }
#career-comu .comu-mp-nav-btn.next { background:var(--naranja); text-align:right; }
#career-comu .comu-mp-nav-btn.next:hover { background:#d94f0d; }
#career-comu .comu-mp-nav-btn small {
  display:block; font-size:.75rem; opacity:.75;
  font-weight:400; text-transform:none; letter-spacing:0; margin-bottom:2px;
}

/* COMU orientados */
#career-comu .orientados-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:16px; margin-top:4px;
}
#career-comu .orientado-card {
  background:#fff; border-radius:10px; padding:22px;
  border-top:4px solid var(--naranja); box-shadow:0 2px 8px rgba(0,0,0,.06);
}
#career-comu .orientado-title {
  font-family:'Montserrat',sans-serif; font-weight:900; font-size:1rem;
  color:var(--naranja); margin-bottom:12px; text-transform:uppercase;
}
#career-comu .orientado-section-label {
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.68rem; letter-spacing:.12em; text-transform:uppercase;
  color:#bbb; margin-bottom:5px;
}
#career-comu .orientado-list { list-style:none; padding:0; }
#career-comu .orientado-list li {
  font-size:.8rem; color:#555; padding:3px 0;
  border-bottom:1px solid #f5f5f5; line-height:1.4;
}
#career-comu .orientado-list li:last-child { border-bottom:none; }

/* ══ CP CSS (scoped under #career-cp so it cannot bleed into Comu) ══ */

  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { font-family: 'Barlow', sans-serif; background: var(--blanco); color: var(--negro); overflow-x: hidden; }

  
/* ── NAV ── */
#career-cp nav {
    position: sticky; top: 0; z-index: 200;
    background: rgba(255,255,255,.97);
    backdrop-filter: blur(8px);
    border-bottom: 3px solid var(--verde);
    padding: 0 24px;
    display: flex; align-items: center; justify-content: space-between;
    height: 56px; gap: 16px;
  }
  
#career-cp .nav-logo{
    font-family: 'Bebas Neue', sans-serif; font-size: 1.6rem;
    color: var(--verde); letter-spacing: .06em; cursor: pointer;
  }
  
#career-cp .nav-logo span{ color: var(--naranja); }
  
#career-cp .nav-links{ display: flex; gap: 24px; list-style: none; }
  
#career-cp .nav-links a{
    font-family: 'Barlow Condensed', sans-serif; font-weight: 700;
    font-size: .95rem; text-transform: uppercase; letter-spacing: .06em;
    color: var(--negro); text-decoration: none; transition: color .15s;
  }
  
#career-cp .nav-links a:hover{ color: var(--naranja); }
  @media(max-width:620px){ .nav-links { display: none; } }

  
/* ── VIEWS ── */
.view{ display: none; }
.view.active{ display: block; }

  
/* ══════════ CP HOME PAGE ══════════ */

#career-cp .hero{
    position:relative; overflow:hidden; background:#0d0d0d;
    padding:100px 24px 80px; min-height:100vh;
    display:flex; align-items:center; justify-content:center;
  }
#career-cp .hero-blob{ position:absolute; border-radius:50%; filter:blur(80px); opacity:.55; animation:blobFloat 9s ease-in-out infinite; }
#career-cp .hero-blob.b1{ width:500px;height:500px;background:var(--verde);top:-120px;right:-80px;animation-delay:0s; }
#career-cp .hero-blob.b2{ width:400px;height:400px;background:var(--verde-claro,#4ade80);bottom:-80px;left:-60px;animation-delay:-3s; }
#career-cp .hero-blob.b3{ width:300px;height:300px;background:var(--naranja);top:40%;right:40%;animation-delay:-5s; }
  @keyframes blobFloat { 0%,100%{transform:translate(0,0) scale(1)} 33%{transform:translate(20px,-20px) scale(1.05)} 66%{transform:translate(-15px,15px) scale(.97)} }
  @keyframes fadeUp { from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)} }
  @keyframes drift1 { 0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(20px,-25px) scale(1.06)} }
  @keyframes drift2 { 0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-15px,20px) scale(1.08)} }

#career-cp .hero-inner{ position:relative; z-index:1; text-align:center; padding:40px 24px; max-width:860px; margin:0 auto; width:100%; }
#career-cp .badge{
    display:inline-block; font-family:'Barlow Condensed',sans-serif;
    font-weight:700; font-size:.85rem; letter-spacing:.15em; text-transform:uppercase;
    padding:6px 16px; border-radius:30px; margin-bottom:20px;
    background:rgba(26,122,46,.25); color:#6ee89a;
    border:1px solid rgba(26,122,46,.45);
  }
#career-cp .hero h1{
    font-family:'Bebas Neue',sans-serif;
    font-size:clamp(4rem,12vw,9rem); line-height:.88; color:#fff; margin-bottom:16px;
  }
#career-cp .hero h1 span{ color:#6ee89a; }
#career-cp .hero-sub{
    font-family:'Barlow Condensed',sans-serif; font-weight:700;
    font-size:1.1rem; letter-spacing:.2em; text-transform:uppercase;
    color:rgba(255,255,255,.5); margin-bottom:16px;
  }
#career-cp .hero-logo-img,
#career-comu .hero-logo-img,
.comu-hero .hero-logo-img,
.rt-hero .hero-logo-img {
    display:block;
    margin:0 auto 24px;
    max-width:260px;
    width:100%;
    height:auto;
  }
#career-cp .hero-copy{
    font-size:1.05rem; line-height:1.7; color:rgba(255,255,255,.7);
    max-width:560px; margin:0 auto 32px; font-weight:400;
  }
#career-cp .hero-cta{
    display:inline-block; padding:14px 28px; background:var(--verde); color:#fff;
    font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:1.05rem;
    letter-spacing:.1em; text-transform:uppercase; border:none; border-radius:8px;
    cursor:pointer; box-shadow:0 6px 20px rgba(26,122,46,.45);
    transition:transform .15s, box-shadow .15s;
  }
#career-cp .hero-cta:hover{ transform:translateY(-3px); box-shadow:0 10px 28px rgba(26,122,46,.6); }

/* Descriptor SEO debajo del H1 */
#career-cp .hero-descriptor {
  font-family:'Barlow',sans-serif; font-weight:600;
  font-size:1.05rem; color:rgba(255,255,255,.7);
  max-width:480px; margin:0 auto 12px;
  letter-spacing:.01em; line-height:1.4;
}

/* Noscript: contenido estático para crawlers, invisible al usuario */
.noscript-materias {
  position:absolute; left:-9999px; width:1px; height:1px;
  overflow:hidden; visibility:hidden;
}

#career-cp .intro{ background:#0f3318; color:#fff; padding:64px 24px; text-align:center; }
#career-cp .intro h2{ font-family:'Bebas Neue',sans-serif;font-size:clamp(2rem,5vw,3.5rem);color:#6ee89a;margin-bottom:16px; }
#career-cp .intro p{ max-width:680px;margin:0 auto;font-size:1.05rem;line-height:1.75;opacity:.85; }

#career-cp .stats{
    display:flex; flex-wrap:wrap; background:#0a0a0a;
    border-top:3px solid var(--verde);
  }
#career-cp .stat{ flex:1 1 120px;padding:24px 16px;text-align:center;border-right:1px solid rgba(255,255,255,.07); }
#career-cp .stat:last-child{ border-right:none; }
#career-cp .stat-num{ font-family:'Bebas Neue',sans-serif;font-size:3.5rem;color:#6ee89a;line-height:1; }
#career-cp .stat-label{ font-family:'Barlow Condensed',sans-serif;font-weight:600;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-top:4px; }

  
/* MATERIAS GRID */
#career-cp .sec { padding: 80px 24px; max-width: 1100px; margin: 0 auto; }
  
#career-cp .sec-title{ font-family:'Bebas Neue',sans-serif;font-size:clamp(2.4rem,5vw,4rem);color:var(--verde);margin-bottom:8px; }
  
#career-cp .sec-title span{ color: var(--naranja); }
  
#career-cp .sec-div{ width:60px;height:5px;background:var(--naranja);border-radius:4px;margin-bottom:40px; }

  
#career-cp .materias-grid{ display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px; }

  
#career-cp .materia-card{
    background: var(--gris); border-radius: 12px; padding: 24px;
    border-left: 5px solid var(--verde);
    transition: transform .2s, box-shadow .2s;
    cursor: pointer; position: relative; overflow: hidden;
  }
  
#career-cp .materia-card::before{
    content:'';position:absolute;inset:0;
    background:linear-gradient(135deg,rgba(76,175,80,.08),transparent);
    opacity:0;transition:opacity .2s;
  }
  
#career-cp .materia-card:hover{ transform:translateY(-5px);box-shadow:0 12px 32px rgba(0,0,0,.12); }
  
#career-cp .materia-card:hover::before{ opacity:1; }
  
#career-cp .materia-card.naranja{ border-left-color: var(--naranja); }
  
#career-cp .materia-card.magenta{ border-left-color: var(--magenta); }
  
#career-cp .materia-card.cyan{ border-left-color: var(--cyan); }

  
#career-cp .materia-nombre{ font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.25rem;color:var(--negro);margin-bottom:8px;line-height:1.2; }
  
#career-cp .materia-meta{ font-size:.85rem;color:#666;margin-bottom:10px; }
  
#career-cp .materia-meta strong{ color: var(--verde); }
  
#career-cp .tag-catedras{
    display:inline-block;font-size:.78rem;background:var(--verde);
    color:var(--blanco);padding:3px 10px;border-radius:20px;
    font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.04em;margin-top:6px;
  }
  
#career-cp .materia-card.naranja .tag-catedras{ background:var(--naranja); }
  
#career-cp .materia-card.magenta .tag-catedras{ background:var(--magenta); }
  
#career-cp .materia-card.cyan    .tag-catedras{ background:var(--cyan); }
  
#career-cp .leer-mas{
    display:inline-block;margin-top:12px;font-family:'Barlow Condensed',sans-serif;
    font-weight:700;font-size:.9rem;color:var(--verde);letter-spacing:.05em;
    text-transform:uppercase;
  }
  
#career-cp .materia-card.naranja .leer-mas{ color:var(--naranja); }
  
#career-cp .materia-card.magenta .leer-mas{ color:var(--magenta); }
  
#career-cp .materia-card.cyan    .leer-mas{ color:var(--cyan); }

  
/* orientaciones */
#career-cp .ori-bg { background:var(--verde);padding:80px 24px;color:var(--blanco); }
  
#career-cp .ori-inner{ max-width:1000px;margin:0 auto; }
  
#career-cp .ori-inner .sec-title{ color:var(--blanco); }
  
#career-cp .ori-grid{ display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-top:8px; }
  
#career-cp .ori-card{
    background:rgba(255,255,255,.12);border:2px solid rgba(255,255,255,.25);
    border-radius:10px;padding:20px 16px;text-align:center;
    transition:background .2s,transform .2s;
  }
  
#career-cp .ori-card:hover{ background:rgba(255,255,255,.22);transform:translateY(-4px); }
  
#career-cp .ori-icon{ font-size:2rem;margin-bottom:8px; }
  
#career-cp .ori-name{ font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.05rem;text-transform:uppercase;letter-spacing:.04em; }

#career-cp .ori-card{ cursor:pointer; position:relative; }
#career-cp .ori-card .ori-hint{ font-size:.72rem;opacity:.65;margin-top:6px;font-family:'Barlow',sans-serif;font-weight:500;letter-spacing:.02em; }
#career-cp .ori-card .ori-chevron{ display:block;margin-top:8px;font-size:.8rem;transition:transform .3s; }
#career-cp .ori-card.open .ori-chevron{ transform:rotate(180deg); }
#career-cp .ori-card.open{ background:rgba(255,255,255,.28); }
#career-cp .ori-panel{ display:none;grid-column:1/-1;background:rgba(255,255,255,.1);border:2px solid rgba(255,255,255,.3);border-radius:12px;padding:24px 28px;margin-top:4px;animation:fadeInPanel .25s ease; }
#career-cp .ori-panel.visible{ display:block; }
@keyframes fadeInPanel{ from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:translateY(0)} }
#career-cp .ori-panel-title{ font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.1rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px;opacity:.7;border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:8px; }
#career-cp .ori-section-label{ font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;opacity:.55;margin:14px 0 6px; }
#career-cp .ori-materia-item{ font-size:.9rem;font-family:'Barlow',sans-serif;font-weight:500;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.12);line-height:1.4; }
#career-cp .ori-materia-item:last-child{ border-bottom:none; }
#career-cp .ori-taller-item{ font-size:.9rem;font-family:'Barlow',sans-serif;font-weight:600;padding:5px 0;color:rgba(255,255,255,.9); }
#career-cp .ori-materia-item a, #career-cp .ori-taller-item a{ color:rgba(255,255,255,.75);text-decoration:underline;text-underline-offset:2px; }
#career-cp .ori-materia-item a:hover, #career-cp .ori-taller-item a:hover{ color:#fff; }

/* Programas de cátedra */
#career-cp .mp-programas{ background:var(--blanco);border-radius:12px;padding:24px 28px;margin-bottom:24px;box-shadow:0 2px 10px rgba(0,0,0,.06);border-top:4px solid var(--verde); }
#career-cp .mp-programas h3{ font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.1rem;text-transform:uppercase;letter-spacing:.06em;color:var(--verde);margin-bottom:14px; }
#career-cp .mp-prog-item{ display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #f0f0f0;gap:12px; }
#career-cp .mp-prog-item:last-child{ border-bottom:none; }
#career-cp .mp-prog-catedra{ font-size:.95rem;font-weight:600;color:var(--negro); }
#career-cp .mp-prog-link{ display:inline-flex;align-items:center;gap:5px;font-size:.82rem;font-weight:700;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.06em;color:var(--verde);text-decoration:none;border:2px solid var(--verde);border-radius:6px;padding:4px 10px;transition:background .15s,color .15s;white-space:nowrap; }
#career-cp .mp-prog-link:hover{ background:var(--verde);color:#fff; }

/* Programas comu */
#career-comu .mc-prog-link{ display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:700;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.05em;color:var(--naranja);text-decoration:none;border:2px solid var(--naranja);border-radius:6px;padding:3px 8px;transition:background .15s,color .15s;white-space:nowrap;margin-top:4px; }
#career-comu .mc-prog-link:hover{ background:var(--naranja);color:#fff; }

  
/* ══ CÓMO FUNCIONA ══ */
#career-cp .como-sec {
    background: var(--gris);
    padding: 80px 24px;
  }
  
#career-cp .como-inner{ max-width: 900px; margin: 0 auto; }

  
#career-cp /* timeline */
  .timeline{
    position: relative;
    margin-top: 40px;
    padding-left: 0;
  }
  
#career-cp .timeline::before{
    content: '';
    position: absolute;
    left: 36px;
    top: 0; bottom: 0;
    width: 4px;
    background: linear-gradient(to bottom, var(--verde), var(--naranja), var(--magenta), var(--cyan), var(--verde));
    border-radius: 4px;
  }

  
#career-cp .tl-item{
    display: flex;
    gap: 28px;
    margin-bottom: 0;
    position: relative;
  }
  
#career-cp .tl-dot-wrap{
    flex-shrink: 0;
    width: 76px;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  
#career-cp .tl-dot{
    width: 52px; height: 52px;
    border-radius: 50%;
    background: var(--verde);
    color: var(--blanco);
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.5rem;
    display: flex; align-items: center; justify-content: center;
    position: relative; z-index: 1;
    border: 4px solid var(--gris);
    box-shadow: 0 0 0 3px var(--verde);
    flex-shrink: 0;
  }
  
#career-cp .tl-item:nth-child(2) .tl-dot{ background: var(--naranja); box-shadow: 0 0 0 3px var(--naranja); }
  
#career-cp .tl-item:nth-child(3) .tl-dot{ background: var(--magenta); box-shadow: 0 0 0 3px var(--magenta); }
  
#career-cp .tl-item:nth-child(4) .tl-dot{ background: var(--cyan);    box-shadow: 0 0 0 3px var(--cyan); }
  
#career-cp .tl-item:nth-child(5) .tl-dot{ background: var(--verde);   box-shadow: 0 0 0 3px var(--verde); }
  
#career-cp .tl-item:nth-child(6) .tl-dot{ background: var(--naranja); box-shadow: 0 0 0 3px var(--naranja); }

  
#career-cp .tl-line{
    flex: 1;
    width: 4px;
    background: transparent;
    min-height: 32px;
  }
  
#career-cp .tl-last .tl-line{ display: none; }

  
#career-cp .tl-body{
    flex: 1;
    background: var(--blanco);
    border-radius: 14px;
    padding: 24px 26px;
    margin-bottom: 24px;
    box-shadow: 0 3px 14px rgba(0,0,0,.07);
    transition: transform .2s, box-shadow .2s;
  }
  
#career-cp .tl-body:hover{ transform: translateX(4px); box-shadow: 0 6px 20px rgba(0,0,0,.11); }

  
#career-cp .tl-etapa{
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700; font-size: .8rem;
    text-transform: uppercase; letter-spacing: .1em;
    color: var(--verde); margin-bottom: 4px;
  }
  
#career-cp .tl-item:nth-child(2) .tl-etapa{ color: var(--naranja); }
  
#career-cp .tl-item:nth-child(3) .tl-etapa{ color: var(--magenta); }
  
#career-cp .tl-item:nth-child(4) .tl-etapa{ color: var(--cyan); }
  
#career-cp .tl-item:nth-child(6) .tl-etapa{ color: var(--naranja); }

  
#career-cp .tl-titulo{
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700; font-size: 1.35rem;
    color: var(--negro); margin-bottom: 10px;
  }
  
#career-cp .tl-body p{ font-size: .95rem; color: #444; line-height: 1.7; }
  
#career-cp .tl-body p + p{ margin-top: 8px; }

  
#career-cp .tl-chips{
    display: flex; flex-wrap: wrap; gap: 8px;
    margin-top: 14px;
  }
  
#career-cp .tl-chip{
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 600; font-size: .82rem;
    padding: 4px 12px; border-radius: 20px;
    background: #eef6ee; color: var(--verde);
    letter-spacing: .03em;
  }
  
#career-cp .tl-item:nth-child(2) .tl-chip{ background: #fff0ea; color: var(--naranja); }
  
#career-cp .tl-item:nth-child(3) .tl-chip{ background: #fce4f0; color: var(--magenta); }
  
#career-cp .tl-item:nth-child(4) .tl-chip{ background: #e0f4fa; color: var(--cyan); }
  
#career-cp .tl-item:nth-child(6) .tl-chip{ background: #fff0ea; color: var(--naranja); }

  
/* estructura de la cursada */
#career-cp .cursada-boxes {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 16px;
    margin-top: 32px;
  }
  
#career-cp .cursada-box{
    background: var(--blanco);
    border-radius: 12px;
    padding: 22px 18px;
    border-bottom: 4px solid var(--verde);
    box-shadow: 0 3px 12px rgba(0,0,0,.07);
    text-align: center;
  }
  
#career-cp .cursada-box.naranja{ border-bottom-color: var(--naranja); }
  
#career-cp .cursada-box.magenta{ border-bottom-color: var(--magenta); }
  
#career-cp .cursada-box .cb-icon{ font-size: 1.8rem; margin-bottom: 8px; }
  
#career-cp .cursada-box .cb-titulo{
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700; font-size: 1rem;
    text-transform: uppercase; letter-spacing: .05em;
    color: var(--negro); margin-bottom: 6px;
  }
  
#career-cp .cursada-box p{ font-size: .85rem; color: #555; line-height: 1.5; }

  
/* ══ CONSEJOS ══ */
#career-cp .consejos-sec {
    background: #fffbf5;
    padding: 80px 24px;
    border-top: 4px solid var(--naranja);
  }
  
#career-cp .consejos-inner{ max-width: 1000px; margin: 0 auto; }

  
#career-cp .consejos-grid{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 20px;
    margin-bottom: 48px;
  }
  
#career-cp .consejo-card{
    background: var(--blanco);
    border-radius: 14px;
    padding: 28px 24px;
    box-shadow: 0 4px 20px rgba(0,0,0,.07);
    border-top: 4px solid var(--naranja);
    transition: transform .2s, box-shadow .2s;
  }
  
#career-cp .consejo-card:hover{ transform: translateY(-4px); box-shadow: 0 10px 28px rgba(0,0,0,.12); }
  
#career-cp .consejo-card.verde{ border-top-color: var(--verde); }
  
#career-cp .consejo-card.magenta{ border-top-color: var(--magenta); }
  
#career-cp .consejo-card.cyan{ border-top-color: var(--cyan); }

  
#career-cp .consejo-icon{ font-size: 2.2rem; margin-bottom: 10px; }
  
#career-cp .consejo-titulo{
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700; font-size: 1.15rem;
    color: var(--negro); margin-bottom: 8px;
  }
  
#career-cp .consejo-card p{ font-size: .93rem; color: #444; line-height: 1.65; }

  
/* lista de tips con bullets especiales */
#career-cp .tips-lista {
    background: var(--blanco);
    border-radius: 14px;
    padding: 32px;
    box-shadow: 0 4px 20px rgba(0,0,0,.07);
    margin-top: 8px;
  }
  
#career-cp .tips-lista h3{
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.8rem; color: var(--naranja);
    margin-bottom: 20px;
  }
  
#career-cp .tip-item{
    display: flex; gap: 14px; align-items: flex-start;
    padding: 12px 0;
    border-bottom: 1px solid #f0f0f0;
  }
  
#career-cp .tip-item:last-child{ border: none; }
  
#career-cp .tip-num{
    flex-shrink: 0;
    width: 32px; height: 32px;
    background: var(--naranja);
    color: var(--blanco);
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.1rem;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    margin-top: 2px;
  }
  
#career-cp .tip-item p{ font-size: .95rem; color: #333; line-height: 1.65; }
  
#career-cp .tip-item strong{ color: var(--verde); }

  
/* ══ LINKS ÚTILES ══ */
#career-cp .links-sec {
    background: var(--negro);
    padding: 80px 24px;
  }
  
#career-cp .links-inner{ max-width: 1000px; margin: 0 auto; }
  
#career-cp .links-inner .sec-title{ color: var(--blanco); }
  
#career-cp .links-inner .sec-title span{ color: var(--naranja); }
  
#career-cp .links-inner .sec-div{ background: var(--naranja); }
  
#career-cp .links-inner > p{ color: rgba(255,255,255,.7); margin-bottom: 36px; font-size: 1rem; line-height: 1.6; }

  
#career-cp .links-grid{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
    margin-bottom: 48px;
  }
  
#career-cp .link-card{
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 12px;
    padding: 22px 20px;
    text-decoration: none;
    color: var(--blanco);
    transition: background .2s, transform .2s, border-color .2s;
    display: block;
  }
  
#career-cp .link-card:hover{
    background: rgba(255,255,255,.13);
    transform: translateY(-4px);
    border-color: rgba(255,255,255,.3);
  }
  
#career-cp .link-card-icon{ font-size: 2rem; margin-bottom: 10px; }
  
#career-cp .link-card-titulo{
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700; font-size: 1.1rem;
    margin-bottom: 6px;
  }
  
#career-cp .link-card p{ font-size: .85rem; color: rgba(255,255,255,.6); line-height: 1.5; }
  
#career-cp .link-card .link-url{
    display: inline-block; margin-top: 10px;
    font-size: .78rem; color: var(--naranja-claro);
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 600; letter-spacing: .04em;
  }

  
#career-cp .links-categoria{
    margin-bottom: 12px;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700; font-size: 1rem;
    text-transform: uppercase; letter-spacing: .1em;
    color: rgba(255,255,255,.45);
    padding-bottom: 6px;
    border-bottom: 1px solid rgba(255,255,255,.1);
  }

  
#career-cp footer{
    background: #0a0a0a;color:rgba(255,255,255,.75);
    text-align:center;padding:48px 24px;
    border-top: 3px solid var(--verde);
  }
  
#career-cp footer .logo-text{ font-family:'Bebas Neue',sans-serif;font-size:3rem;color:var(--verde-claro);letter-spacing:.06em; }
  
#career-cp footer .logo-sub{ font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:16px; }
  
#career-cp footer p{ font-size:.9rem;line-height:1.7; }
  
#career-cp .social-handle{ display:inline-block;margin-top:16px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.1rem;color:var(--verde-claro);letter-spacing:.06em; }

  
/* ══════════ MATERIA PAGE ══════════ */
#view-materia { background: var(--gris); min-height: 100vh; }

  
#career-cp .mp-hero{
    padding: 60px 24px 40px;
    position: relative; overflow: hidden;
  }
  
#career-cp .mp-hero::before{
    content:''; position:absolute; inset:0;
    background: linear-gradient(135deg, var(--verde) 0%, #0f4d1e 100%);
  }
  
#career-cp .mp-hero-inner{ position:relative;z-index:1;max-width:860px;margin:0 auto; }
  
#career-cp .mp-back{
    display:inline-flex;align-items:center;gap:8px;
    font-family:'Barlow Condensed',sans-serif;font-weight:700;
    font-size:1rem;text-transform:uppercase;letter-spacing:.08em;
    color:rgba(255,255,255,.75);cursor:pointer;
    background:rgba(255,255,255,.12);border:none;
    padding:8px 16px;border-radius:6px;margin-bottom:28px;
    transition:background .15s;
  }
  
#career-cp .mp-back:hover{ background:rgba(255,255,255,.22);color:#fff; }
  
#career-cp .mp-titulo{
    font-family:'Bebas Neue',sans-serif;
    font-size:clamp(2.8rem,8vw,6rem);
    color:var(--blanco);line-height:.9;margin-bottom:16px;
  }
  
#career-cp .mp-meta-bar{
    display:flex;flex-wrap:wrap;gap:12px;margin-top:20px;
  }
  
#career-cp .mp-chip{
    font-family:'Barlow Condensed',sans-serif;font-weight:700;
    font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;
    padding:6px 14px;border-radius:30px;
    background:rgba(255,255,255,.18);color:var(--blanco);
  }
  
#career-cp .mp-chip.naranja{ background:var(--naranja); }

#career-cp .mp-chip.resumen,
#career-comu .mc-prog-link.resumen,
#career-rt .mc-prog-link.resumen {
    background: linear-gradient(135deg, #1a7a2e 0%, #28a745 100%);
    color: #ffffff;
    box-shadow: 0 16px 30px rgba(26, 122, 46, 0.24);
    border: 1px solid rgba(255,255,255,0.15);
    text-transform: none;
    font-size: 1rem;
    padding: 10px 18px;
    border-radius: 999px;
}

#career-cp .mp-chip.resumen:hover,
#career-comu .mc-prog-link.resumen:hover,
#career-rt .mc-prog-link.resumen:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px rgba(26, 122, 46, 0.34);
}

#career-cp .mp-chip.resumen:focus-visible,
#career-comu .mc-prog-link.resumen:focus-visible,
#career-rt .mc-prog-link.resumen:focus-visible {
    outline: 3px solid rgba(40, 167, 69, 0.24);
    outline-offset: 3px;
}

  
#career-cp .mp-body{ max-width: 860px; margin: 0 auto; padding: 40px 24px 80px; }

  
#career-cp .mp-ficha{
    background: var(--blanco); border-radius: 12px;
    padding: 28px; margin-bottom: 32px;
    border-left: 5px solid var(--naranja);
    box-shadow: 0 4px 16px rgba(0,0,0,.07);
  }
  
#career-cp .mp-ficha h3{
    font-family:'Barlow Condensed',sans-serif;font-weight:700;
    font-size:1.1rem;text-transform:uppercase;letter-spacing:.08em;
    color:var(--naranja);margin-bottom:12px;
  }
  
#career-cp .mp-ficha-grid{ display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px; }
  
#career-cp .mp-ficha-item label{ font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#888;display:block;margin-bottom:2px; }
  
#career-cp .mp-ficha-item span{ font-size:.95rem;color:var(--negro);font-weight:500; }
#career-cp .mp-ficha-item .ori-link{ color:var(--verde);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px;background:none;border:none;padding:0;font-size:.95rem;font-family:inherit; }
#career-cp .mp-ficha-item .ori-link:hover{ color:var(--verde-claro); }

  
#career-cp .mp-section{ background:var(--blanco);border-radius:12px;padding:28px;margin-bottom:24px;box-shadow:0 2px 10px rgba(0,0,0,.06); }
  
#career-cp .mp-section h2{
    font-family:'Bebas Neue',sans-serif;font-size:1.8rem;color:var(--verde);
    margin-bottom:12px;
  }
  
#career-cp .mp-section p{ font-size:1rem;line-height:1.75;color:#333;margin-bottom:12px; }
  
#career-cp .mp-section p:last-child{ margin-bottom:0; }
  
#career-cp .mp-section ul{ padding-left:20px;margin-top:8px; }
  
#career-cp .mp-section li{ font-size:1rem;line-height:1.7;color:#333;margin-bottom:6px; }

  
#career-cp .mp-section.consejos{ border-top: 4px solid var(--naranja-claro); }
  
#career-cp .mp-section.consejos h2{ color:var(--naranja); }

  
#career-cp .mp-nav{
    display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
    margin-top:40px;
  }
  
#career-cp .mp-nav-btn{
    flex:1 1 200px;background:var(--verde);color:var(--blanco);
    border:none;border-radius:10px;padding:16px 20px;cursor:pointer;
    font-family:'Barlow Condensed',sans-serif;font-weight:700;
    font-size:1.05rem;text-transform:uppercase;letter-spacing:.06em;
    transition:background .15s,transform .15s;text-align:left;
  }
  
#career-cp .mp-nav-btn:hover{ background:#0f5520;transform:translateY(-2px); }
  
#career-cp .mp-nav-btn.next{ background:var(--naranja);text-align:right; }
  
#career-cp .mp-nav-btn.next:hover{ background:var(--naranja-claro); }
  
#career-cp .mp-nav-btn small{ display:block;font-size:.75rem;opacity:.75;font-weight:400;text-transform:none;letter-spacing:0;margin-bottom:2px; }

  
/* ══ BUSCADOR ══ */
#career-cp .search-wrap {
    margin-bottom: 32px;
    position: relative;
  }
  
#career-cp .search-input{
    width: 100%;
    padding: 16px 20px 16px 52px;
    font-family: 'Barlow', sans-serif;
    font-size: 1.05rem;
    border: 2px solid #e0e0e0;
    border-radius: 12px;
    outline: none;
    background: var(--blanco);
    color: var(--negro);
    transition: border-color .2s, box-shadow .2s;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
  }
  
#career-cp .search-input:focus{
    border-color: var(--verde);
    box-shadow: 0 4px 16px rgba(26,122,46,.15);
  }
  
#career-cp .search-input::placeholder{ color: #aaa; }
  
#career-cp .search-icon{
    position: absolute; left: 18px; top: 50%;
    transform: translateY(-50%);
    font-size: 1.1rem; pointer-events: none; opacity: .5;
  }
  
#career-cp .search-clear{
    position: absolute; right: 16px; top: 50%;
    transform: translateY(-50%);
    background: none; border: none; cursor: pointer;
    font-size: 1.2rem; color: #aaa; padding: 4px;
    display: none;
    line-height: 1;
  }
  
#career-cp .search-clear.visible{ display: block; }
  
#career-cp .search-clear:hover{ color: var(--naranja); }
  
#career-cp .no-results{
    text-align: center; padding: 60px 20px;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.2rem; color: #888; display: none;
  }
  
#career-cp .no-results span{ font-size: 2rem; display: block; margin-bottom: 8px; }

  
/* ══ BOTÓN FLOTANTE DRIVE ══ */
#career-cp .fab-drive {
    position: fixed;
    bottom: 28px; right: 28px;
    z-index: 500;
    background: var(--verde);
    color: var(--blanco);
    border: none; cursor: pointer;
    border-radius: 56px;
    display: flex; align-items: center; gap: 10px;
    padding: 14px 22px;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700; font-size: 1rem;
    letter-spacing: .06em; text-transform: uppercase;
    text-decoration: none;
    box-shadow: 0 6px 24px rgba(26,122,46,.4);
    transition: transform .2s, box-shadow .2s, background .2s;
    animation: fadeUp .6s .5s ease both;
  }
  
#career-cp .fab-drive:hover{
    transform: translateY(-4px) scale(1.04);
    box-shadow: 0 10px 32px rgba(26,122,46,.5);
    background: #15661f;
  }
  
#career-cp .fab-drive .fab-icon{ font-size: 1.3rem; }
  
#career-cp .fab-drive .fab-label{ white-space: nowrap; }
  @media(max-width:480px){
    .fab-drive .fab-label { display: none; }
    .fab-drive { padding: 16px; border-radius: 50%; }
  }

  
/* ══ MODAL CORRELATIVIDADES ══ */
  .modal-overlay{
    display: none;
    position: fixed; inset: 0; z-index: 900;
    background: rgba(0,0,0,.6);
    backdrop-filter: blur(4px);
    align-items: flex-start; justify-content: center;
    padding: 20px 20px 40px;
    overflow-y: auto;
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
    min-height: 100vh;
  }
  
.modal-overlay.open{ display: flex; }
  
/* Modal box – global (used outside #career-cp) */
.modal-box {
  background: var(--blanco);
  border-radius: 16px;
  max-width: 1100px; width: 100%;
  max-height: 90vh;
  overflow: hidden;
  display: flex; flex-direction: column;
  box-shadow: 0 24px 64px rgba(0,0,0,.3);
  animation: modalIn .25s ease both;
  touch-action: pan-y;
}
@keyframes modalIn { from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)} }

.modal-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 28px;
  border-bottom: 2px solid #f0f0f0;
  background: var(--verde);
  color: var(--blanco);
  flex-shrink: 0;
}
.modal-header h2 {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1.8rem; letter-spacing: .04em;
  color: var(--blanco); margin: 0;
}
.modal-header h2 span { color: var(--naranja-claro); }

.modal-close {
  background: rgba(255,255,255,.18); border: none;
  color: var(--blanco); cursor: pointer;
  width: 36px; height: 36px; border-radius: 50%;
  font-size: 1.3rem; display: flex;
  align-items: center; justify-content: center;
  transition: background .15s;
  flex-shrink: 0;
}
.modal-close:hover { background: rgba(255,255,255,.32); }

.modal-body {
  overflow-y: auto;
  padding: 24px 28px;
  flex: 1;
}

/* Modal tabs */
.modal-tabs {
  display: flex; gap: 4px;
  margin-bottom: 20px;
  border-bottom: 2px solid #eee;
}
.modal-tab {
  background: none; border: none;
  border-bottom: 3px solid transparent;
  font-family: 'Montserrat', sans-serif;
  font-size: .88rem; font-weight: 700;
  color: #888; padding: 8px 18px;
  cursor: pointer; margin-bottom: -2px;
  transition: color .15s, border-color .15s;
}
.modal-tab.active { color: var(--verde); border-bottom-color: var(--verde); }
.tab-panel { display: none; }
.tab-panel.active { display: block; }
  
#career-cp .modal-header{
    display: flex; align-items: center; justify-content: space-between;
    padding: 20px 28px;
    border-bottom: 2px solid #f0f0f0;
    background: var(--verde);
    color: var(--blanco);
    flex-shrink: 0;
  }
  
#career-cp .modal-header h2{
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.8rem; letter-spacing: .04em;
    color: var(--blanco); margin: 0;
  }
  
#career-cp .modal-header h2 span{ color: var(--naranja-claro); }
  
#career-cp .modal-close{
    background: rgba(255,255,255,.18); border: none;
    color: var(--blanco); cursor: pointer;
    width: 36px; height: 36px; border-radius: 50%;
    font-size: 1.3rem; display: flex;
    align-items: center; justify-content: center;
    transition: background .15s;
    flex-shrink: 0;
  }
  
#career-cp .modal-close:hover{ background: rgba(255,255,255,.32); }
  
#career-cp .modal-body{
    overflow-y: auto;
    padding: 24px 28px;
    flex: 1;
  }

  
/* ══ MAPA DE CORRELATIVIDADES ══ */
#career-cp .mapa-legend {
    display: flex; flex-wrap: wrap; gap: 12px;
    margin-bottom: 24px;
  }
  
#career-cp .legend-item{
    display: flex; align-items: center; gap: 6px;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 600; font-size: .88rem;
    text-transform: uppercase; letter-spacing: .05em;
  }
  
#career-cp .legend-dot{
    width: 14px; height: 14px; border-radius: 3px;
  }
  
#career-cp .mapa-flow{
    display: flex;
    gap: 0;
    overflow-x: auto;
    padding-bottom: 12px;
  }
  
#career-cp .mapa-col{
    flex-shrink: 0;
    min-width: 180px;
    display: flex; flex-direction: column;
    padding: 0 8px;
  }
  
#career-cp .mapa-col-title{
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700; font-size: .78rem;
    text-transform: uppercase; letter-spacing: .1em;
    color: #999; padding: 0 0 12px 0;
    text-align: center; border-bottom: 2px solid #f0f0f0;
    margin-bottom: 12px;
  }
  
#career-cp .mapa-node{
    background: var(--blanco);
    border: 2px solid var(--verde);
    border-radius: 10px;
    padding: 10px 12px;
    margin-bottom: 10px;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700; font-size: .88rem;
    color: var(--negro);
    line-height: 1.3;
    cursor: pointer;
    transition: all .2s;
    position: relative;
  }
  
#career-cp .mapa-node:hover{
    border-color: var(--naranja);
    background: #fff8f5;
    transform: scale(1.03);
    box-shadow: 0 4px 14px rgba(0,0,0,.12);
    z-index: 2;
  }
  
#career-cp .mapa-node.color-verde{ border-color: var(--verde); }
  
#career-cp .mapa-node.color-naranja{ border-color: var(--naranja); background: #fff9f6; }
  
#career-cp .mapa-node.color-magenta{ border-color: var(--magenta); background: #fff5f9; }
  
#career-cp .mapa-node.color-cyan{ border-color: var(--cyan); background: #f0f8fc; }
  
#career-cp .mapa-node.color-gray{ border-color: #aaa; background: #f8f8f8; color: #555; }
  
#career-cp .mapa-node .node-alias{
    display: block;
    font-size: .72rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .06em;
    opacity: .6; margin-bottom: 2px;
  }
  
#career-cp .mapa-node .node-horas{
    display: block; font-size: .7rem;
    font-weight: 400; opacity: .5; margin-top: 3px;
  }
  
#career-cp .mapa-node .node-arrow{
    position: absolute; right: -20px; top: 50%;
    transform: translateY(-50%);
    color: #ccc; font-size: .8rem;
    pointer-events: none;
  }
  
#career-cp .mapa-sep{
    display: flex; align-items: center; justify-content: center;
    padding: 0 4px; color: #ddd; font-size: 1.2rem;
    align-self: center;
  }
  
#career-cp .mapa-cbc{
    background: #f0f0f0; border: 2px dashed #bbb;
    border-radius: 10px; padding: 10px 12px;
    text-align: center;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700; font-size: .9rem; color: #777;
    margin-bottom: 10px;
  }
  
#career-cp .mapa-note{
    font-size: .82rem; color: #888;
    margin-top: 16px; font-style: italic;
    text-align: center;
  }

  
/* Correlatividades: tabla alternativa para mobile */
#career-cp .corr-table-wrap { overflow-x: auto; }
  
#career-cp .corr-table{
    width: 100%; border-collapse: collapse;
    font-size: .9rem;
  }
  
#career-cp .corr-table th{
    background: var(--verde); color: var(--blanco);
    padding: 10px 14px;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700; font-size: .85rem;
    text-transform: uppercase; letter-spacing: .06em;
    text-align: left;
  }
  
#career-cp .corr-table td{
    padding: 9px 14px; border-bottom: 1px solid #f0f0f0;
    vertical-align: top; line-height: 1.5;
  }
  
#career-cp .corr-table tr:hover td{ background: #f9f9f9; }
  
#career-cp .corr-table .materia-link{
    color: var(--verde); font-weight: 600;
    cursor: pointer; text-decoration: underline;
    text-decoration-color: transparent;
    transition: text-decoration-color .15s;
  }
  
#career-cp .corr-table .materia-link:hover{
    text-decoration-color: var(--verde);
  }
  
#career-cp .corr-badge{
    display: inline-block; font-size: .72rem;
    background: #eee; color: #555;
    border-radius: 20px; padding: 2px 8px;
    margin: 2px 2px 2px 0;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 600; letter-spacing: .03em;
  }
  
#career-cp .corr-badge.verde{ background: #e8f5e9; color: var(--verde); }
  
#career-cp .corr-badge.naranja{ background: #fff3e0; color: var(--naranja); }

  
/* tabs en el modal */
#career-cp .modal-tabs {
    display: flex; gap: 0;
    border-bottom: 2px solid #f0f0f0;
    margin-bottom: 24px;
  }
  
#career-cp .modal-tab{
    padding: 10px 20px;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700; font-size: .95rem;
    text-transform: uppercase; letter-spacing: .06em;
    cursor: pointer; border: none; background: none;
    color: #888; border-bottom: 3px solid transparent;
    margin-bottom: -2px; transition: color .15s, border-color .15s;
  }
  
#career-cp .modal-tab.active{ color: var(--verde); border-bottom-color: var(--verde); }
  
#career-cp .modal-tab:hover:not(.active){ color: var(--naranja); }
  
#career-cp .tab-panel{ display: none; }
  
#career-cp .tab-panel.active{ display: block; }

  
/* Botón en la sección de materias */
#career-cp .sec-actions {
    display: flex; flex-wrap: wrap;
    align-items: center; justify-content: space-between;
    gap: 12px; margin-bottom: 24px;
  }
  
#career-cp .btn-correlatividades{
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--verde); color: var(--blanco);
    border: none; cursor: pointer;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700; font-size: .95rem;
    letter-spacing: .06em; text-transform: uppercase;
    padding: 10px 20px; border-radius: 8px;
    transition: background .15s, transform .15s;
    white-space: nowrap;
  }
  
#career-cp .btn-correlatividades:hover{
    background: #15661f; transform: translateY(-2px);
  }



/* ── COMU SEARCH BAR ── */
#career-comu .comu-search-bar {
  position:relative; margin-bottom:28px; max-width:520px;
}
#career-comu .comu-search-input {
  width:100%; padding:14px 44px 14px 48px;
  font-family:'Montserrat',sans-serif; font-size:1rem;
  border:2px solid #e0e0e0; border-radius:10px;
  outline:none; background:#fff; color:var(--negro);
  transition:border-color .2s, box-shadow .2s;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
}
#career-comu .comu-search-input:focus {
  border-color:var(--naranja); box-shadow:0 4px 16px rgba(232,92,26,.15);
}
#career-comu .comu-search-input::placeholder{ color:#aaa; }
#career-comu .comu-search-icon {
  position:absolute; left:16px; top:50%;
  transform:translateY(-50%); font-size:1.05rem; pointer-events:none; opacity:.45;
}
#career-comu .comu-search-clear {
  position:absolute; right:14px; top:50%; transform:translateY(-50%);
  background:none; border:none; cursor:pointer; font-size:1.1rem;
  color:#aaa; padding:4px; display:none; line-height:1;
}
#career-comu .comu-search-clear.visible{ display:block; }
#career-comu .comu-search-clear:hover{ color:var(--naranja); }
#career-comu .comu-no-results {
  text-align:center; padding:40px 20px;
  font-family:'Barlow Condensed',sans-serif; font-size:1.15rem;
  color:#888; display:none;
}
#career-comu .comu-no-results span{ font-size:1.8rem; display:block; margin-bottom:8px; }

/* ── COMU CONSEJOS ── */
#career-comu .comu-consejos-sec { background:#fffbf5; border-top:4px solid var(--naranja); }
#career-comu .comu-consejos-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:20px; margin-bottom:40px;
}
#career-comu .comu-consejo-card {
  background:#fff; border-radius:14px; padding:24px 20px;
  box-shadow:0 4px 20px rgba(0,0,0,.07); border-top:4px solid var(--naranja);
  transition:transform .2s, box-shadow .2s;
}
#career-comu .comu-consejo-card:hover{ transform:translateY(-4px); box-shadow:0 10px 28px rgba(0,0,0,.12); }
#career-comu .comu-consejo-card.naranja{ border-top-color:var(--naranja); }
#career-comu .comu-consejo-card.magenta{ border-top-color:var(--magenta); }
#career-comu .comu-consejo-card.cyan{ border-top-color:var(--cyan); }
#career-comu .comu-consejo-icon{ font-size:2rem; margin-bottom:8px; }
#career-comu .comu-consejo-titulo{ font-family:'Montserrat',sans-serif; font-weight:700; font-size:1rem; color:var(--negro); margin-bottom:8px; }
#career-comu .comu-consejo-card p{ font-size:.9rem; color:#444; line-height:1.6; }
#career-comu .comu-tips-lista {
  background:#fff; border-radius:14px; padding:28px 28px;
  box-shadow:0 4px 20px rgba(0,0,0,.07); margin-top:8px;
}
#career-comu .comu-tips-lista h3{ font-family:'Bebas Neue',sans-serif; font-size:1.8rem; color:var(--naranja); margin-bottom:16px; }
#career-comu .comu-tip-item{ display:flex; gap:14px; align-items:flex-start; padding:10px 0; border-bottom:1px solid #f0f0f0; }
#career-comu .comu-tip-item:last-child{ border:none; }
#career-comu .comu-tip-num{ flex-shrink:0; width:30px; height:30px; background:var(--naranja); color:#fff; font-family:'Bebas Neue',sans-serif; font-size:1rem; border-radius:50%; display:flex; align-items:center; justify-content:center; margin-top:2px; }
#career-comu .comu-tip-item p{ font-size:.92rem; color:#333; line-height:1.6; }
#career-comu .comu-tip-item strong{ color:var(--verde); }

/* ── COMU LINKS ── */
#career-comu .comu-links-sec{ background:#0a0a0a; }
#career-comu .comu-links-categoria{ margin-bottom:12px; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:1rem; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.4); padding-bottom:6px; border-bottom:1px solid rgba(255,255,255,.08); }
#career-comu .comu-links-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:14px; margin-bottom:8px; }
#career-comu .comu-link-card{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:12px; padding:18px 16px; text-decoration:none; color:#fff; display:block; transition:background .2s,transform .2s,border-color .2s; }
#career-comu .comu-link-card:hover{ background:rgba(255,255,255,.12); transform:translateY(-3px); border-color:rgba(255,255,255,.25); }
#career-comu .comu-link-icon{ font-size:1.6rem; margin-bottom:8px; }
#career-comu .comu-link-titulo{ font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:1rem; margin-bottom:4px; }
#career-comu .comu-link-card p{ font-size:.82rem; color:rgba(255,255,255,.55); line-height:1.4; }
#career-comu .comu-link-url{ display:inline-block; margin-top:8px; font-size:.75rem; color:var(--naranja-claro); font-family:'Barlow Condensed',sans-serif; font-weight:600; letter-spacing:.04em; }


/* ══ COMU PLAN DE ESTUDIOS ══ */
#career-comu .comu-plan-sec { background:#f8f4ef; border-top:4px solid var(--naranja); }
#career-comu .comu-plan-intro {
  font-size:1.05rem; color:#444; line-height:1.7; max-width:700px; margin-bottom:40px;
}
#career-comu .comu-plan-tramos { display:flex; flex-direction:column; gap:24px; margin-bottom:48px; }

#career-comu .comu-plan-tramo {
  background:#fff; border-radius:16px; overflow:hidden;
  box-shadow:0 4px 20px rgba(0,0,0,.07);
}
#career-comu .comu-plan-tramo-header {
  display:flex; align-items:center; gap:20px; padding:20px 24px;
}
#career-comu .comu-plan-tramo-header.cbc { background:#4a5568; }
#career-comu .comu-plan-tramo-header.ci  { background:var(--naranja); }
#career-comu .comu-plan-tramo-header.co  { background:#1a3a5c; }
#career-comu .comu-plan-num {
  flex-shrink:0; width:48px; height:48px; background:rgba(255,255,255,.2);
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-family:'Bebas Neue',sans-serif; font-size:1.6rem; color:#fff;
}
#career-comu .comu-plan-tramo-nombre {
  font-family:'Bebas Neue',sans-serif; font-size:1.5rem; color:#fff; letter-spacing:.04em;
}
#career-comu .comu-plan-tramo-sub {
  font-family:'Barlow Condensed',sans-serif; font-size:.85rem;
  color:rgba(255,255,255,.75); letter-spacing:.04em; margin-top:2px;
}
#career-comu .comu-plan-tramo-desc {
  padding:16px 24px 0; font-size:.95rem; color:#555; line-height:1.6;
}

/* Areas grid */
#career-comu .comu-plan-areas {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:12px; padding:16px 24px;
}
#career-comu .comu-plan-area {
  border-radius:10px; padding:16px; border-left:4px solid;
}
#career-comu .comu-plan-area.naranja { background:#fff5f0; border-color:var(--naranja); }
#career-comu .comu-plan-area.verde   { background:#f0fff4; border-color:var(--verde); }
#career-comu .comu-plan-area.cyan    { background:#e6fffe; border-color:var(--cyan); }
#career-comu .comu-plan-area.magenta { background:#fff0f8; border-color:var(--magenta); }
#career-comu .comu-plan-area-titulo {
  font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:1rem;
  margin-bottom:6px; color:#222;
}
#career-comu .comu-plan-area-detalle { font-size:.85rem; color:#555; line-height:1.55; }

/* PPP badge */
#career-comu .comu-plan-practica {
  margin:0 24px 20px; padding:12px 16px;
  background:#fffbf0; border:1px dashed var(--naranja); border-radius:8px;
  display:flex; align-items:flex-start; gap:12px; font-size:.88rem; color:#555; line-height:1.5;
}
#career-comu .comu-plan-practica-icon { font-size:1.2rem; flex-shrink:0; margin-top:1px; }
#career-comu .comu-plan-practica strong { color:var(--naranja); }

/* Orientaciones */
#career-comu .comu-plan-orientaciones {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:12px; padding:16px 24px 8px;
}
#career-comu .comu-plan-ori {
  background:#f0f4ff; border-radius:10px; padding:16px;
  border-top:3px solid #4a6fa5;
}
#career-comu .comu-plan-ori-titulo {
  font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:1rem;
  margin-bottom:6px; color:#1a3a5c;
}
#career-comu .comu-plan-ori p { font-size:.83rem; color:#555; line-height:1.5; }

/* CO step structure */
#career-comu .comu-plan-estructura-co {
  display:flex; align-items:center; flex-wrap:wrap; gap:4px;
  padding:8px 24px 16px;
}
#career-comu .comu-plan-co-paso {
  background:#1a3a5c; color:#fff; border-radius:8px;
  padding:10px 16px; font-size:.85rem; line-height:1.4;
  display:flex; align-items:center; gap:10px;
}
#career-comu .comu-plan-co-paso span {
  background:rgba(255,255,255,.2); border-radius:50%;
  width:28px; height:28px; display:flex; align-items:center; justify-content:center;
  font-family:'Bebas Neue',sans-serif; font-size:1rem; flex-shrink:0;
}
#career-comu .comu-plan-co-paso.tif { background:var(--naranja); }
#career-comu .comu-plan-co-paso em { font-style:normal; opacity:.7; font-size:.78rem; }
#career-comu .comu-plan-co-arrow { font-size:1.2rem; color:#aaa; padding:0 4px; }
#career-comu .comu-plan-tif-nota {
  margin:0 24px 20px; font-size:.85rem; color:#666; line-height:1.5;
  padding:10px 14px; background:#f8f8f8; border-radius:8px; border-left:3px solid var(--naranja);
}

/* Resumen final */
#career-comu .comu-plan-resumen {
  background:#0d0d0d; border-radius:16px; padding:28px 32px;
  margin-top:8px;
}
#career-comu .comu-plan-resumen-titulo {
  font-family:'Bebas Neue',sans-serif; font-size:1.5rem; color:#fff;
  margin-bottom:16px; letter-spacing:.04em;
}
#career-comu .comu-plan-resumen-items {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:10px;
}
#career-comu .comu-plan-resumen-item {
  display:flex; align-items:center; gap:10px;
  background:rgba(255,255,255,.07); border-radius:8px;
  padding:10px 14px; font-size:.9rem; color:rgba(255,255,255,.8);
}
#career-comu .comu-plan-resumen-item span { font-size:1.1rem; }


/* ── COMU CORRELATIVIDADES BUTTON ── */
#career-comu .comu-sec-actions {
  display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:28px;
}
#career-comu .comu-btn-correlatividades {
  flex-shrink:0; padding:12px 20px; background:var(--naranja); color:#fff;
  font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:1rem;
  letter-spacing:.06em; text-transform:uppercase; border:none; border-radius:8px;
  cursor:pointer; box-shadow:0 4px 14px rgba(232,92,26,.35);
  transition:transform .15s, box-shadow .15s;
}
#career-comu .comu-btn-correlatividades:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(232,92,26,.45); }

/* ── COMU MODAL ── */
.comu-modal-overlay {
  display:none; position:fixed; inset:0; z-index:900;
  background:rgba(0,0,0,.65); backdrop-filter:blur(4px);
  align-items:flex-start; justify-content:center; padding:20px 20px 40px;
  overflow-y: auto;
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
  min-height: 100vh;
}
.comu-modal-overlay.open { display:flex; }
.comu-modal-box {
  background:#fff; border-radius:16px; max-width:1100px; width:100%;
  max-height:90vh; overflow:hidden; display:flex; flex-direction:column;
  box-shadow:0 24px 64px rgba(0,0,0,.3);
  animation:modalIn .25s ease both;
  touch-action: pan-y;
}
.comu-modal-header {
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 28px; border-bottom:2px solid #f0f0f0;
  background:var(--naranja); color:#fff; flex-shrink:0;
}
.comu-modal-header h2 {
  font-family:'Bebas Neue',sans-serif; font-size:1.8rem; letter-spacing:.04em;
  color:#fff; margin:0;
}
.comu-modal-header h2 span { color:#ffe0cc; }
.comu-modal-close {
  background:rgba(255,255,255,.18); border:none; color:#fff; cursor:pointer;
  width:36px; height:36px; border-radius:50%; font-size:1.3rem;
  display:flex; align-items:center; justify-content:center; transition:background .15s;
}
.comu-modal-close:hover { background:rgba(255,255,255,.32); }
.comu-modal-body { overflow-y:auto; padding:24px 28px; flex:1; }
.comu-modal-tabs { display:flex; gap:8px; margin-bottom:20px; }
.comu-modal-tab {
  padding:8px 20px; border-radius:6px; border:2px solid #e0e0e0;
  background:#fff; color:#555; font-family:'Barlow Condensed',sans-serif;
  font-weight:700; font-size:.95rem; cursor:pointer; transition:all .15s;
}
.comu-modal-tab.active {
  background:var(--naranja); border-color:var(--naranja); color:#fff;
}
.comu-tab-panel { display:none; }
.comu-tab-panel.active { display:block; }

/* mapa legend */
.comu-mapa-legend {
  display:flex; flex-wrap:wrap; gap:16px; margin-bottom:16px;
  padding:12px 16px; background:#f8f8f8; border-radius:8px;
}
.comu-mapa-flow {
  display:flex; align-items:flex-start; gap:0;
  overflow-x:auto; padding:16px 0; min-height:200px;
}
.comu-mapa-note {
  margin-top:12px; font-size:.85rem; color:#888;
}

/* mapa nodes - reuse existing .mapa-col, .mapa-node styles but scoped */
.comu-mapa-col {
  display:flex; flex-direction:column; gap:8px; min-width:140px;
}
.comu-mapa-col-title {
  font-family:'Barlow Condensed',sans-serif; font-size:.75rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.1em; color:#aaa; margin-bottom:4px; text-align:center;
}
.comu-mapa-cbc {
  background:#555; color:#fff; border-radius:8px; padding:10px 14px;
  font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.9rem;
  text-align:center;
}
.comu-mapa-node {
  border-radius:8px; padding:8px 12px; font-size:.78rem; line-height:1.3;
  cursor:pointer; transition:transform .15s, box-shadow .15s; color:#fff;
  box-shadow:0 2px 6px rgba(0,0,0,.15);
}
.comu-mapa-node:hover { transform:translateY(-2px); box-shadow:0 5px 14px rgba(0,0,0,.22); }
.comu-mapa-node .node-alias {
  display:block; font-family:'Bebas Neue',sans-serif; font-size:1rem;
  letter-spacing:.03em; margin-bottom:2px;
}
.comu-mapa-node .node-horas {
  display:block; opacity:.7; font-size:.7rem; margin-top:3px;
}
.comu-mapa-node.c-naranja { background:var(--naranja); }
.comu-mapa-node.c-verde   { background:var(--verde); }
.comu-mapa-node.c-cyan    { background:var(--cyan); color:#1a4a4a; }
.comu-mapa-node.c-magenta { background:var(--magenta); }
.comu-mapa-node.c-purple  { background:#7c5cbf; }
.comu-mapa-sep {
  display:flex; align-items:center; padding:0 6px;
  color:#ccc; font-size:1.2rem; align-self:center; flex-shrink:0;
}

/* tabla */
.comu-corr-table-wrap { overflow-x:auto; }
.comu-corr-table {
  width:100%; border-collapse:collapse; font-size:.9rem;
}
.comu-corr-table th {
  background:var(--naranja); color:#fff; padding:10px 14px;
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.95rem; letter-spacing:.04em; text-align:left;
}
.comu-corr-table td {
  padding:10px 14px; border-bottom:1px solid #f0f0f0; vertical-align:top;
}
.comu-corr-table tr:hover td { background:#fffbf5; }
.comu-corr-badge {
  display:inline-block; padding:2px 8px; border-radius:4px;
  font-size:.78rem; font-weight:600; margin:2px; background:#eee; color:#333;
}
.comu-corr-badge.naranja { background:#fff0e8; color:var(--naranja); }
.comu-corr-badge.verde   { background:#e8f5ec; color:var(--verde); }
.comu-corr-badge.link { cursor:pointer; text-decoration:underline; }
.comu-corr-badge.link:hover { opacity:.75; }

/* ════════════════════════════════════
   HAMBURGER MENU – MOBILE NAVIGATION
   ════════════════════════════════════ */
.hamburger {
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:none;
  cursor:pointer;
  padding:8px;
  z-index:1000;
}
.hamburger span {
  display:block;
  width:24px;
  height:2.5px;
  background:var(--negro);
  border-radius:2px;
  transition:transform .3s ease, opacity .3s ease;
}
.hamburger.open span:nth-child(1) {
  transform:translateY(7.5px) rotate(45deg);
}
.hamburger.open span:nth-child(2) {
  opacity:0;
}
.hamburger.open span:nth-child(3) {
  transform:translateY(-7.5px) rotate(-45deg);
}

@media(max-width:768px) {
  .hamburger { display:flex; }

  #career-cp .nav-links,
  .nav-links {
    display:none !important;
    position:fixed;
    top:102px; /* career-switcher (46px) + nav (56px) */
    left:0; right:0;
    background:rgba(255,255,255,.98);
    backdrop-filter:blur(12px);
    flex-direction:column;
    padding:16px 24px 24px;
    gap:0;
    box-shadow:0 12px 40px rgba(0,0,0,.15);
    border-bottom:3px solid var(--verde);
    z-index:899;
    animation:slideDown .25s ease;
  }
  .nav-links.mobile-open {
    display:flex !important;
  }
  .nav-links li {
    border-bottom:1px solid #f0f0f0;
  }
  .nav-links li:last-child { border-bottom:none; }
  .nav-links a,
  #career-cp .nav-links a {
    display:block;
    padding:14px 0;
    font-size:1.1rem !important;
    color:var(--negro) !important;
  }
  .nav-links a:hover,
  #career-cp .nav-links a:hover {
    color:var(--verde) !important;
  }
  nav.comu-nav + .hamburger span,
  .comu-nav .hamburger span { background:var(--naranja); }
}

@keyframes slideDown {
  from { opacity:0; transform:translateY(-12px); }
  to   { opacity:1; transform:translateY(0); }
}

/* ════════════════════════════════════
   CALCULADORA – ¿Cuánto me falta?
   ════════════════════════════════════ */

/* Botón trigger (CP y Comu) */
#career-cp .btn-calculadora,
.comu-btn-calculadora {
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.85rem; letter-spacing:.08em; text-transform:uppercase;
  padding:10px 22px; border-radius:999px; border:1px solid rgba(255,255,255,.18);
  cursor:pointer; color:#fff; transition:transform .15s, box-shadow .15s, background .15s;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
}
#career-cp .btn-calculadora {
  background:#1f7b39;
  border-color:rgba(31,123,57,.28);
}
.comu-btn-calculadora {
  background:#d96a16;
  border-color:rgba(217,106,22,.28);
}
#career-cp .btn-calculadora:hover,
.comu-btn-calculadora:hover {
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(0,0,0,.12);
}
#career-cp .btn-calculadora:hover { background:#238142; }
.comu-btn-calculadora:hover { background:#e37d26; }

/* Modal box override para la calculadora */
.calc-modal-box {
  max-width:920px;
  width:100%;
  border-radius:14px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  max-height:90vh;
  background:#fff;
  box-shadow:0 24px 64px rgba(0,0,0,.3);
  animation:modalIn .25s ease both;
}

/* Header del modal */
.calc-modal-header {
  display:flex; justify-content:space-between; align-items:flex-start;
  padding:28px 32px 24px;
  background:linear-gradient(135deg, #0d1f12 0%, #1a0a2e 100%);
  color:#fff;
  flex-shrink:0;
}
.calc-modal-header h2 {
  font-family:'Bebas Neue',sans-serif; font-size:2.4rem; color:#fff; line-height:1;
}
.calc-modal-header h2 span { color:#6ee89a; }
.calc-modal-sub {
  font-family:'Barlow Condensed',sans-serif; font-size:.78rem;
  letter-spacing:.12em; text-transform:uppercase; opacity:.45; margin-top:6px;
}

/* Layout del body: dos columnas */
.calc-modal-body {
  display:grid;
  grid-template-columns:1fr 1.3fr;
  flex:1;
  overflow:hidden;
}
@media(max-width:680px) {
  .calc-modal-body { grid-template-columns:1fr; overflow:visible; }
  .calc-modal-box  { max-height:none; }
}

/* Panel izquierdo: checkboxes */
.calc-checks-panel {
  padding:20px 20px 16px;
  background:#f7f8f6;
  border-right:1px solid #e8e8e8;
  overflow-y:auto;
  max-height:68vh;
}

/* CBC row */
.calc-cbc-row {
  display:flex; align-items:center; gap:10px;
  padding:12px 14px; background:#0f3318; border-radius:8px;
  cursor:pointer; margin-bottom:16px; user-select:none;
}
.calc-cbc-row .calc-check-custom { display:none; }
.calc-cbc-text {
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.95rem; letter-spacing:.04em; color:#6ee89a;
}

/* Grupos de materias */
.calc-group { margin-bottom:16px; }
.calc-group-title {
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  padding:5px 10px; border-radius:4px; margin-bottom:8px;
  display:inline-block;
}
.calc-verde   { background:#e8f5e9; color:#1a7a2e; }
.calc-naranja { background:#fff3e0; color:#e85c1a; }
.calc-magenta { background:#fce4ec; color:#c2185b; }
.calc-cyan    { background:#e3f2fd; color:#0077a8; }

.calc-group-items { display:flex; flex-direction:column; gap:4px; min-width:0; }

/* Checkbox items */
.calc-check-item {
  display:flex; align-items:center; gap:10px;
  cursor:pointer; padding:7px 10px; border-radius:6px;
  transition:background .1s; user-select:none;
  min-width:0;
}
.calc-check-item:hover { background:rgba(26,122,46,.07); }

.calc-check-item input[type="checkbox"] { position:absolute; opacity:0; width:0; height:0; }

.calc-check-custom {
  width:18px; height:18px; border-radius:4px; flex-shrink:0;
  border:2px solid #ccc; background:#fff;
  display:flex; align-items:center; justify-content:center;
  transition:background .15s, border-color .15s;
}
.calc-check-item input:checked ~ .calc-check-custom {
  background:var(--verde); border-color:var(--verde);
}
.calc-check-item input:checked ~ .calc-check-custom::after {
  content:'✓'; color:#fff; font-size:.75rem; font-weight:900; line-height:1;
}
.calc-check-label {
  font-size:.88rem; color:#333; line-height:1.3;
  transition:color .1s;
  flex:1 1 auto;
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.calc-check-item input:checked ~ .calc-check-label {
  color:#888; text-decoration:line-through;
}

/* Botón reiniciar */
.calc-reset-btn {
  margin-top:16px; width:100%;
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.82rem; letter-spacing:.06em; text-transform:uppercase;
  color:#aaa; background:transparent; border:1px dashed #ddd;
  border-radius:6px; padding:9px; cursor:pointer;
  transition:color .15s, border-color .15s;
}
.calc-reset-btn:hover { color:#e85c1a; border-color:#e85c1a; }

/* Panel derecho: resultados */
.calc-results-panel {
  padding:24px 24px 20px;
  overflow-y:auto;
  max-height:68vh;
  display:flex; flex-direction:column; gap:16px;
}
@media(max-width:680px) {
  .calc-results-panel, .calc-checks-panel { max-height:none; }
}

/* Tarjeta de progreso */
.calc-progress-card {
  background:#fff; border-radius:10px; padding:18px 20px;
  box-shadow:0 2px 10px rgba(0,0,0,.07);
}
.calc-progress-top {
  display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;
}
.calc-progress-label {
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:#888;
}
.calc-percent-badge {
  font-family:'Bebas Neue',sans-serif; font-size:1.8rem;
  background:linear-gradient(135deg, var(--verde), var(--naranja));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text;
}
.calc-progress-track {
  height:12px; background:#eee; border-radius:8px; overflow:hidden;
}
.calc-progress-fill {
  height:100%; border-radius:8px; width:0%;
  background:linear-gradient(90deg, var(--verde), #6ee89a 40%, var(--naranja));
  transition:width .5s cubic-bezier(.4,0,.2,1);
}

/* Stats: aprobadas / restantes · cuatrimestres */
.calc-stats-row {
  display:flex; align-items:center; justify-content:center;
  gap:8px; text-align:center;
  background:#fff; border-radius:10px; padding:16px 12px;
  box-shadow:0 2px 10px rgba(0,0,0,.07);
}
.calc-stat-item { flex:1; }
.calc-stat-num {
  font-family:'Bebas Neue',sans-serif; font-size:2.2rem; line-height:1;
  transition:all .3s;
}
.calc-stat-num.verde   { color:var(--verde); }
.calc-stat-num.naranja { color:var(--naranja); }
.calc-stat-num.magenta { color:var(--magenta); }
.calc-stat-lbl {
  font-family:'Barlow Condensed',sans-serif; font-size:.7rem;
  letter-spacing:.08em; text-transform:uppercase; color:#aaa; margin-top:2px;
}
.calc-stat-sep { font-size:1.4rem; color:#ddd; flex-shrink:0; }

/* Podés cursar ahora */
.calc-cantake-card {
  background:#fff; border-radius:10px; padding:16px 18px;
  box-shadow:0 2px 10px rgba(0,0,0,.07);
}
.calc-cantake-title {
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.78rem; letter-spacing:.1em; text-transform:uppercase;
  color:#555; margin-bottom:10px;
}
.calc-cantake-pills { display:flex; flex-wrap:wrap; gap:7px; }
.calc-empty-hint {
  font-size:.85rem; color:#aaa; font-style:italic;
}

/* Pills de materias desbloqueadas */
.calc-pill {
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
  font-size:.8rem; letter-spacing:.04em;
  padding:5px 12px; border-radius:20px;
  transition:transform .12s, box-shadow .12s;
}
.calc-pill-verde   { background:#e8f5e9; color:#1a7a2e; border:1px solid #c8e6c9; }
.calc-pill-naranja { background:#fff3e0; color:#e85c1a; border:1px solid #ffe0b2; }
.calc-pill-magenta { background:#fce4ec; color:#c2185b; border:1px solid #f8bbd0; }
.calc-pill-cyan    { background:#e3f2fd; color:#0077a8; border:1px solid #bbdefb; }
.calc-pill.clickable { cursor:pointer; }
.calc-pill.clickable:hover { transform:translateY(-2px); box-shadow:0 4px 12px rgba(0,0,0,.14); }

/* Mensaje motivacional */
.calc-motivation {
  background:linear-gradient(135deg, #0d1f12, #1a0a2e);
  color:rgba(255,255,255,.8); border-radius:10px;
  padding:14px 18px; font-size:.9rem; line-height:1.6;
  font-style:italic;
  transition:opacity .3s;
}

/* Nota al pie */
.calc-note {
  font-size:.75rem; color:#bbb; line-height:1.5;
  border-top:1px solid #eee; padding-top:10px;
}

/* ── RT calc: variantes burdó ── */
.calc-rt-header {
  background:linear-gradient(135deg, #1a0808 0%, #4a1010 100%) !important;
}
.calc-rt-header h2 span { color:#e57373 !important; }

/* ── Comu calc: variantes naranja ── */
.calc-comu-header {
  background:linear-gradient(135deg, #2e1204 0%, #6b2000 100%) !important;
}
.calc-comu-header h2 span { color:var(--naranja) !important; }

.comu-fill {
  background:linear-gradient(90deg, #e85c1a, #ffaa5a 50%, #e85c1a) !important;
}
.comu-pct {
  background:linear-gradient(135deg, var(--naranja), #ffaa5a) !important;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.comu-motivation {
  background:linear-gradient(135deg, #2e1204, #6b2000) !important;
}
.calc-check-item input:checked ~ .calc-check-custom.comu-check {
  background:var(--naranja) !important; border-color:var(--naranja) !important;
}
.calc-group-note {
  font-size:.78rem; color:#888; font-style:italic;
  margin:-4px 0 8px 10px; line-height:1.4;
}
.calc-stat-num.cyan { color:var(--cyan); }

/* ── Estilos globales del mapa de correlatividades (dentro de modal-overlay) ── */
.modal-overlay .mapa-legend {
  display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px;
}
.modal-overlay .legend-item {
  display: flex; align-items: center; gap: 6px;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600; font-size: .88rem;
  text-transform: uppercase; letter-spacing: .05em;
}
.modal-overlay .legend-dot { width: 14px; height: 14px; border-radius: 3px; }
.modal-overlay .mapa-flow { display: flex; gap: 0; overflow-x: auto; padding-bottom: 12px; }
.modal-overlay .mapa-col {
  flex-shrink: 0; min-width: 180px;
  display: flex; flex-direction: column; padding: 0 8px;
}
.modal-overlay .mapa-col-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700; font-size: .78rem;
  text-transform: uppercase; letter-spacing: .1em;
  color: #999; padding: 0 0 12px 0;
  text-align: center; border-bottom: 2px solid #f0f0f0; margin-bottom: 12px;
}
.modal-overlay .mapa-node {
  background: var(--blanco); border: 2px solid var(--verde);
  border-radius: 10px; padding: 10px 12px; margin-bottom: 10px;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700; font-size: .88rem; color: var(--negro);
  line-height: 1.3; cursor: pointer; transition: all .2s; position: relative;
}
.modal-overlay .mapa-node:hover {
  border-color: var(--naranja); background: #fff8f5;
  transform: scale(1.03); box-shadow: 0 4px 14px rgba(0,0,0,.12); z-index: 2;
}
.modal-overlay .mapa-node.color-verde { border-color: var(--verde); }
.modal-overlay .mapa-node.color-naranja { border-color: var(--naranja); background: #fff9f6; }
.modal-overlay .mapa-node.color-magenta { border-color: var(--magenta); background: #fff5f9; }
.modal-overlay .mapa-node.color-cyan { border-color: var(--cyan); background: #f0f8fc; }
.modal-overlay .mapa-node.color-gray { border-color: #aaa; background: #f8f8f8; color: #555; }
.modal-overlay .mapa-node .node-alias {
  display: block; font-size: .72rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .06em; opacity: .6; margin-bottom: 2px;
}
.modal-overlay .mapa-node .node-horas { display: block; font-size: .7rem; font-weight: 400; opacity: .5; margin-top: 3px; }
.modal-overlay .mapa-node .node-arrow {
  position: absolute; right: -20px; top: 50%; transform: translateY(-50%);
  color: #ccc; font-size: .8rem; pointer-events: none;
}
.modal-overlay .mapa-sep {
  display: flex; align-items: center; justify-content: center;
  padding: 0 4px; color: #ddd; font-size: 1.2rem; align-self: center;
}
.modal-overlay .mapa-cbc {
  background: #f0f0f0; border: 2px dashed #bbb; border-radius: 10px;
  padding: 10px 12px; text-align: center;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700; font-size: .9rem; color: #777; margin-bottom: 10px;
}
.modal-overlay .mapa-note { font-size: .82rem; color: #888; margin-top: 16px; font-style: italic; text-align: center; }

/* Tabla de correlatividades global */
.modal-overlay .corr-table-wrap { overflow-x: auto; }
.modal-overlay .corr-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.modal-overlay .corr-table th {
  background: var(--verde); color: var(--blanco); padding: 10px 14px;
  font-family: 'Barlow Condensed', sans-serif; font-weight: 700; font-size: .85rem;
  text-transform: uppercase; letter-spacing: .06em; text-align: left;
}
.modal-overlay .corr-table td { padding: 9px 14px; border-bottom: 1px solid #f0f0f0; vertical-align: top; line-height: 1.5; }
.modal-overlay .corr-table tr:hover td { background: #f9f9f9; }
.modal-overlay .corr-table .materia-link { color: var(--verde); font-weight: 600; cursor: pointer; text-decoration: underline; text-decoration-color: transparent; transition: text-decoration-color .15s; }
.modal-overlay .corr-table .materia-link:hover { text-decoration-color: var(--verde); }
.modal-overlay .corr-badge { display: inline-block; font-size: .72rem; background: #eee; color: #555; border-radius: 20px; padding: 2px 8px; margin: 2px 2px 2px 0; font-family: 'Barlow Condensed', sans-serif; font-weight: 600; letter-spacing: .03em; }
.modal-overlay .corr-badge.verde { background: #e8f5e9; color: var(--verde); }
.modal-overlay .corr-badge.naranja { background: #fff3e0; color: var(--naranja); }

.cuatri-tag { font-size: 0.75rem; background: rgba(0,0,0,0.06); padding: 2px 6px; border-radius: 4px; font-weight: 600; color: #555; white-space: nowrap; margin-left: 4px; display: inline-block; vertical-align: middle; }
.dark-mode .cuatri-tag { background: rgba(255,255,255,0.1); color: #ccc; }

.comu-oferta-box { background: rgba(0,0,0, 0.03); border-left: 4px solid var(--comu-verde, #1a7a2e); border-radius: 8px; padding: 16px; margin-bottom: 24px; font-family: 'Barlow', sans-serif; }
.comu-oferta-box h4 { margin: 0 0 12px 0; color: var(--comu-verde, #1a7a2e); font-size: 1.1rem; display: flex; align-items: center; gap: 8px; font-family: 'Bebas Neue', sans-serif; letter-spacing: 0.5px; }
.comu-oferta-box ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.comu-oferta-box li { display: flex; justify-content: space-between; align-items: center; font-size: 0.95rem; padding-bottom: 8px; border-bottom: 1px solid rgba(0,0,0,0.06); }
.comu-oferta-box li:last-child { border-bottom: none; padding-bottom: 0; }
.comu-oferta-box .oferta-catedra { font-weight: 600; color: #333; }
.comu-oferta-box .oferta-cuatri { background: white; border: 1px solid rgba(0,0,0,0.1); padding: 4px 8px; border-radius: 6px; font-size: 0.85rem; font-weight: 700; color: #555; box-shadow: 0 1px 3px rgba(0,0,0,0.05); }
.dark-mode .comu-oferta-box { background: rgba(255,255,255, 0.04); }
.dark-mode .comu-oferta-box li { border-bottom-color: rgba(255,255,255,0.05); }
.dark-mode .comu-oferta-box .oferta-catedra { color: #eee; }
.dark-mode .comu-oferta-box .oferta-cuatri { background: rgba(255,255,255,0.1); border-color: transparent; color: #ddd; box-shadow: none; }

.comu-filter-cuatris { display: flex; gap: 8px; margin-bottom: 24px; flex-wrap: wrap; }
.comu-filter-cuatris button { background: rgba(0,0,0,0.04); border: 1px solid rgba(0,0,0,0.08); padding: 8px 16px; border-radius: 20px; font-family: 'Barlow', sans-serif; font-size: 0.9rem; font-weight: 600; color: #444; cursor: pointer; transition: all 0.2s ease; }
.comu-filter-cuatris button:hover { background: rgba(0,0,0,0.08); }
.comu-filter-cuatris button.active { background: var(--comu-verde, #1a7a2e); color: white; border-color: var(--comu-verde, #1a7a2e); box-shadow: 0 2px 6px rgba(26,122,46,0.3); }
.dark-mode .comu-filter-cuatris button { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.1); color: #ccc; }
.dark-mode .comu-filter-cuatris button:hover { background: rgba(255,255,255,0.1); }
.dark-mode .comu-filter-cuatris button.active { background: var(--comu-verde, #1a7a2e); color: white; }





/* ==========================================
   APARTADO DE PREGUNTAS FRECUENTES (FAQs)
   ========================================== */

.faq-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 10, 10, 0.45);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  padding: 16px;
}

.faq-modal-overlay.active {
  opacity: 1;
  pointer-events: auto;
}

.faq-modal-box {
  background: rgba(255, 255, 255, 0.98);
  width: 100%;
  max-width: 760px;
  height: 90vh;
  max-height: 720px;
  border-radius: 16px;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.15);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: scale(0.95);
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  border: 1px solid rgba(255, 255, 255, 0.6);
}

.faq-modal-overlay.active .faq-modal-box {
  transform: scale(1);
}

.faq-modal-header {
  padding: 24px;
  border-bottom: 3px solid var(--faq-theme-color, #1a7a2e);
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #fafafa;
  position: relative;
  z-index: 2;
  transition: border-color 0.3s ease;
}

.faq-modal-header h2 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 1.8rem;
  color: #111;
  margin: 0;
}

.faq-modal-close {
  background: rgba(0, 0, 0, 0.05);
  border: none;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-size: 1rem;
  font-weight: bold;
  color: #444;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.faq-modal-close:hover {
  background: #ff3b30;
  color: #fff;
  transform: rotate(90deg);
}

.faq-modal-body {
  flex: 1;
  padding: 24px;
  overflow-y: auto;
  display: flex; 
  flex-direction: column;
  gap: 20px;
  background: #ffffff;
}

.faq-search-container {
  display: flex;
  position: relative;
  background: #f5f5f5;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 10px;
  align-items: center;
  padding: 2px 8px;
}

.faq-search-icon {
  font-size: 1rem;
  padding: 0 8px;
  opacity: 0.6;
}

.faq-search-input {
  flex: 1;
  padding: 12px 8px;
  border: none;
  background: transparent;
  outline: none;
  font-family: 'Barlow', sans-serif;
  font-size: 0.95rem;
  color: #333;
}

.faq-search-clear {
  background: transparent;
  border: none;
  font-size: 0.9rem;
  color: #888;
  cursor: pointer;
  padding: 4px 8px;
}

.faq-search-clear:hover {
  color: #333;
}

.faq-category-sec {
  margin-bottom: 12px;
}

.faq-category-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  font-size: 1.15rem;
  margin-bottom: 12px;
  color: #222;
  border-bottom: 2px solid rgba(0, 0, 0, 0.05);
  padding-bottom: 6px;
}

.faq-items-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.faq-item {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 10px;
  overflow: hidden;
  transition: all 0.3s ease;
}

.faq-item:hover {
  border-color: rgba(0, 0, 0, 0.15);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}

.faq-item.active {
  border-color: var(--faq-theme-color, #1a7a2e);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

.faq-question-btn {
  width: 100%;
  padding: 16px 20px;
  border: none;
  background: transparent;
  outline: none;
  text-align: left;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  transition: background 0.2s ease;
}

.faq-question-btn:hover {
  background: rgba(0, 0, 0, 0.01);
}

.faq-question-text {
  flex: 1;
  font-size: 0.98rem;
  font-weight: 700;
  color: #222;
  margin-right: 12px;
}

.faq-icon-arrow {
  font-size: 0.8rem;
  color: #888;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-item.active .faq-icon-arrow {
  transform: rotate(180deg);
  color: var(--faq-theme-color, #1a7a2e);
}

.faq-answer-panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-answer-content {
  padding: 0 20px 20px 20px;
  line-height: 1.6;
  font-family: 'Barlow', sans-serif;
  font-size: 0.95rem;
  color: #444;
}

.faq-answer-content p {
  margin: 0 0 10px 0;
}

.faq-answer-content p:last-child {
  margin-bottom: 0;
}

.faq-answer-content ul {
  padding-left: 20px;
  margin: 0 0 10px 0;
}

.faq-tip-box {
  margin-top: 14px;
  background: var(--faq-bg-color, rgba(26, 122, 46, 0.06));
  border-left: 4px solid var(--faq-theme-color, #1a7a2e);
  border-radius: 4px 8px 8px 4px;
  padding: 12px 16px;
  font-size: 0.9rem;
  line-height: 1.5;
  color: #222;
  transition: background 0.3s ease, border-color 0.3s ease;
}

.faq-tip-title {
  font-weight: 700;
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--faq-theme-color, #1a7a2e);
  transition: color 0.3s ease;
}

.faq-no-results {
  text-align: center;
  padding: 48px 24px;
  color: #666;
  font-size: 1rem;
}

.faq-modal-overlay.faq-theme-cp {
  --faq-theme-color: #1a7a2e;
  --faq-bg-color: rgba(26, 122, 46, 0.06);
}

.faq-modal-overlay.faq-theme-comu {
  --faq-theme-color: #e85c1a;
  --faq-bg-color: rgba(232, 92, 26, 0.06);
}

.faq-modal-overlay.faq-theme-rt {
  --faq-theme-color: #8b1a1a;
  --faq-bg-color: rgba(139, 26, 26, 0.06);
}

@media(max-width: 600px) {
  .faq-modal-box {
    height: 100%;
    max-height: 100%;
    border-radius: 0;
    border: none;
  }
  .faq-modal-overlay {
    padding: 0;
  }
  .faq-modal-header {
    padding: 16px;
  }
  .faq-modal-header h2 {
    font-size: 1.5rem;
  }
  .faq-modal-body {
    padding: 16px;
  }
  .faq-question-btn {
    padding: 14px 16px;
  }
  .faq-question-text {
    font-size: 0.92rem;
  }
  .faq-answer-content {
    padding: 0 16px 16px 16px;
    font-size: 0.9rem;
  }
}

/* ==========================================
   URBANA! SCHEDULER & COMISIONES STYLES
   ========================================== */

/* 1. Placeholder container inside card */
.card-comisiones-placeholder {
  margin-top: 10px;
  border-top: 1px dashed rgba(0, 0, 0, 0.1);
  padding-top: 8px;
}

/* Trigger button */
.card-comisiones-trigger {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 6px;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.8rem;
  color: #555;
  background: rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.07);
  border-radius: 7px;
  padding: 7px 12px;
  cursor: pointer;
  text-align: left;
  transition: background 0.2s, color 0.2s;
  user-select: none;
}
.card-comisiones-trigger:hover {
  background: rgba(0, 0, 0, 0.09);
  color: #111;
}
.trigger-count {
  background: rgba(0,0,0,0.08);
  border-radius: 20px;
  padding: 0 6px;
  font-size: 0.7rem;
  font-weight: 800;
  margin-left: 2px;
}
.trigger-chevron {
  margin-left: auto;
  font-size: 0.7rem;
  transition: transform 0.25s ease;
  flex-shrink: 0;
}
.card-comisiones-trigger.expanded .trigger-chevron {
  transform: rotate(180deg);
}

/* Accordion list - closed by default, animated with max-height */
.card-comisiones-list {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.3s ease;
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding-right: 2px;
  margin-top: 0;
}
.card-comisiones-list.open {
  max-height: 250px;
  overflow-y: auto;
  margin-top: 6px;
}

/* Scrollbar */
.card-comisiones-list::-webkit-scrollbar,
.schedule-selected-list::-webkit-scrollbar,
.schedule-sidebar-body::-webkit-scrollbar { width: 4px; }
.card-comisiones-list::-webkit-scrollbar-track,
.schedule-selected-list::-webkit-scrollbar-track,
.schedule-sidebar-body::-webkit-scrollbar-track { background: transparent; }
.card-comisiones-list::-webkit-scrollbar-thumb,
.schedule-selected-list::-webkit-scrollbar-thumb,
.schedule-sidebar-body::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.12); border-radius: 4px; }

/* Commission row */
.comision-row-card {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.07);
  border-radius: 7px;
  padding: 7px 10px;
  font-size: 0.74rem;
  transition: border-color 0.2s, background 0.2s;
}
.comision-row-card:hover {
  border-color: rgba(0, 0, 0, 0.14);
  background: #fafafa;
}
.comision-row-card.added {
  background: #f0faf2;
  border-color: #a5d6a7;
}

.com-row-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  line-height: 1.35;
  flex: 1;
  min-width: 0;
}
.com-row-top {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}
.com-badge-tipo {
  display: inline-block;
  font-size: 0.6rem;
  font-weight: 800;
  padding: 1px 5px;
  border-radius: 3px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  flex-shrink: 0;
}
.com-badge-tipo.teo {
  background: #dbeafe;
  color: #1d4ed8;
}
.com-badge-tipo.tp {
  background: #ede9fe;
  color: #6d28d9;
}
.com-code {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  color: #222;
}
.com-catedra {
  color: #777;
  font-size: 0.7rem;
  font-weight: 500;
}
.com-horario {
  color: #333;
  font-size: 0.72rem;
  font-weight: 600;
}
.com-aula {
  color: #888;
  font-size: 0.68rem;
}

/* Add / Remove button */
.com-btn-action {
  background: transparent;
  border: 1px solid rgba(0,0,0,0.1);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-left: 8px;
  margin-top: 2px;
  transition: all 0.2s ease;
  color: #555;
}
.com-btn-action.add {
  border-color: rgba(76, 175, 80, 0.3);
  color: #2e7d32;
}
.com-btn-action.add:hover {
  background: rgba(76, 175, 80, 0.12);
  border-color: #4caf50;
  transform: scale(1.1);
}
.com-btn-action.remove {
  border-color: rgba(239, 68, 68, 0.3);
  color: #c62828;
}
.com-btn-action.remove:hover {
  background: rgba(239, 68, 68, 0.12);
  border-color: #ef4444;
  transform: scale(1.1);
}

/* 2. Sidebar Drawer (Mi Horario) */
.schedule-sidebar {
  position: fixed;
  top: 0;
  right: -440px;
  width: 420px;
  max-width: 100vw;
  height: 100vh;
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: -8px 0 40px rgba(0, 0, 0, 0.13);
  z-index: 1500;
  transition: right 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  border-left: 1px solid rgba(0, 0, 0, 0.06);
}
.schedule-sidebar.active { right: 0; }

#schedule-sidebar-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  z-index: 1400;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}
#schedule-sidebar-overlay.active {
  opacity: 1;
  pointer-events: auto;
}

.schedule-sidebar-header {
  padding: 18px 22px;
  border-bottom: 2px solid #1a7a2e;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(255,255,255,0.5);
  flex-shrink: 0;
}
.schedule-sidebar-header h2 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 1.2rem;
  color: #111;
  margin: 0;
}
.schedule-sidebar-header h2 span { color: #1a7a2e; }
.schedule-sidebar-close {
  background: rgba(0,0,0,0.05);
  border: none;
  width: 28px; height: 28px;
  border-radius: 50%;
  font-size: 0.85rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}
.schedule-sidebar-close:hover {
  background: #ff3b30;
  color: #fff;
  transform: rotate(90deg);
}

.schedule-sidebar-body {
  flex: 1;
  overflow-y: auto;
  padding: 18px 22px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.schedule-section-title {
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  font-size: 0.88rem;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  color: #666;
  border-bottom: 1px solid rgba(0,0,0,0.07);
  padding-bottom: 5px;
  margin-top: 6px;
}

/* 3. Weekly Calendar Mini-Grid */
.schedule-calendar-wrapper {
  background: #fff;
  border: 1px solid rgba(0,0,0,0.07);
  border-radius: 10px;
  overflow: hidden;
}
.schedule-calendar-grid { display: flex; flex-direction: column; }
.schedule-cal-header-row {
  display: flex;
  background: #f8f9fa;
  border-bottom: 1px solid rgba(0,0,0,0.06);
}
.schedule-hour-col-header {
  width: 44px;
  font-size: 0.6rem;
  font-weight: 800;
  color: #888;
  display: flex;
  align-items: center;
  justify-content: center;
  border-right: 1px solid rgba(0,0,0,0.06);
  text-transform: uppercase;
  padding: 7px 0;
}
.schedule-day-col-header {
  flex: 1;
  padding: 7px 0;
  text-align: center;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 0.75rem;
  text-transform: uppercase;
  color: #444;
}
.schedule-cal-body {
  display: flex;
  position: relative;
  height: 704px;
  background: #fff;
}
.schedule-hours-col {
  width: 44px;
  border-right: 1px solid rgba(0,0,0,0.06);
  display: flex;
  flex-direction: column;
  background: #f8f9fa;
  z-index: 2;
}
.schedule-hour-tick {
  height: 44px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  font-size: 0.58rem;
  font-weight: 600;
  color: #aaa;
  padding-top: 3px;
  border-bottom: 1px dashed rgba(0,0,0,0.05);
  box-sizing: border-box;
}
.schedule-days-container {
  flex: 1;
  display: flex;
  position: relative;
  height: 100%;
}
.schedule-grid-lines {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  pointer-events: none;
  z-index: 0;
}
.schedule-grid-line {
  height: 44px;
  border-bottom: 1px solid rgba(0,0,0,0.04);
  box-sizing: border-box;
}
.schedule-day-col {
  flex: 1;
  height: 100%;
  position: relative;
  border-right: 1px solid rgba(0,0,0,0.04);
  z-index: 1;
}
.schedule-day-col:last-child { border-right: none; }

/* Calendar blocks */
.schedule-cal-block {
  position: absolute;
  left: 2px; right: 2px;
  background: rgba(26, 122, 46, 0.12);
  border-left: 3px solid #1a7a2e;
  border-radius: 4px;
  padding: 3px 5px;
  box-sizing: border-box;
  overflow: hidden;
  transition: all 0.15s;
  cursor: default;
}
.schedule-cal-block:hover {
  background: rgba(26, 122, 46, 0.22);
  z-index: 10;
}
.cal-block-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.cal-block-materia {
  font-weight: 800;
  font-size: 0.6rem;
  color: #111;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}
.cal-block-com { font-size: 0.55rem; color: #555; font-weight: 700; }
.cal-block-time { font-size: 0.5rem; color: #777; }

.schedule-cal-block.cal-conflict-critical {
  background: rgba(220, 38, 38, 0.13) !important;
  border-left-color: #dc2626 !important;
  animation: pulse-conflict 2.5s infinite;
}
@keyframes pulse-conflict {
  0%   { box-shadow: 0 0 0 0 rgba(220,38,38,0.4); }
  70%  { box-shadow: 0 0 0 5px rgba(220,38,38,0); }
  100% { box-shadow: 0 0 0 0 rgba(220,38,38,0); }
}
.schedule-cal-block.cal-conflict-warning {
  background: rgba(245, 158, 11, 0.13) !important;
  border-left-color: #f59e0b !important;
}

/* 4. Alerts */
.schedule-alert {
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 0.78rem;
  line-height: 1.5;
  font-family: 'Barlow', sans-serif;
}
.schedule-alert.critical {
  background: #fef2f2;
  border-left: 3px solid #dc2626;
  color: #7f1d1d;
}
.schedule-alert.warning {
  background: #fffbeb;
  border-left: 3px solid #f59e0b;
  color: #78350f;
}

/* 5. Selected list */
.schedule-selected-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 230px;
  overflow-y: auto;
}
.schedule-empty-msg {
  text-align: center;
  padding: 20px 12px;
  color: #888;
  font-size: 0.82rem;
  line-height: 1.55;
  background: rgba(0,0,0,0.02);
  border-radius: 8px;
  border: 1px dashed rgba(0,0,0,0.07);
}
.schedule-selected-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  background: #fff;
  border: 1px solid rgba(0,0,0,0.07);
  border-radius: 8px;
  padding: 9px 12px;
}
.sel-item-details { display: flex; flex-direction: column; gap: 2px; max-width: 88%; }
.sel-item-materia {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.82rem;
  color: #111;
}
.sel-item-meta { font-size: 0.7rem; color: #666; display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.sel-item-time { font-size: 0.7rem; color: #333; font-weight: 600; }
.sel-item-remove {
  background: transparent;
  border: none;
  color: #bbb;
  cursor: pointer;
  font-size: 0.85rem;
  padding: 2px;
  border-radius: 50%;
  width: 22px; height: 22px;
  display: flex; align-items: center; justify-content: center;
  transition: all 0.2s;
  flex-shrink: 0;
  margin-left: 6px;
}
.sel-item-remove:hover { background: rgba(239,68,68,0.1); color: #ef4444; }

.schedule-actions-row { margin-top: auto; padding-top: 8px; }
.btn-copy-siu {
  width: 100%;
  background: #1a7a2e;
  color: #fff;
  border: none;
  padding: 11px;
  border-radius: 8px;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.88rem;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 3px 10px rgba(26,122,46,0.2);
}
.btn-copy-siu:hover {
  background: #155724;
  transform: translateY(-1px);
  box-shadow: 0 5px 14px rgba(26,122,46,0.28);
}
.btn-download-pdf {
  width: 100%;
  background: #2b3a4a;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 3px 10px rgba(43,58,74,0.2);
}
.btn-download-pdf:hover {
  background: #1e2936;
  transform: translateY(-1px);
  box-shadow: 0 5px 14px rgba(43,58,74,0.3);
}
.dark-mode .btn-download-pdf {
  background: #3e4f62;
  box-shadow: 0 3px 10px rgba(0,0,0,0.3);
}
.dark-mode .btn-download-pdf:hover {
  background: #4a5c72;
}


/* 6. Navbar Schedule Badge */
#nav-schedule-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 20px;
  font-size: 0.68rem;
  font-weight: 800;
  padding: 1px 6px;
  margin-left: 4px;
  transition: all 0.2s ease;
  min-width: 18px;
}
#nav-schedule-badge.badge-zero {
  background: rgba(0,0,0,0.06);
  color: #888;
}
#nav-schedule-badge.badge-active {
  background: #1a7a2e;
  color: #fff;
  box-shadow: 0 2px 6px rgba(26,122,46,0.3);
}
.pop-anim { animation: pop-badge 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
@keyframes pop-badge {
  0%   { transform: scale(0.6); }
  100% { transform: scale(1); }
}
#nav-schedule-link {
  display: inline-flex;
  align-items: center;
}

/* 7. Dark Mode */
.dark-mode .card-comisiones-placeholder { border-top-color: rgba(255,255,255,0.08); }
.dark-mode .card-comisiones-trigger { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.08); color: #ccc; }
.dark-mode .card-comisiones-trigger:hover { background: rgba(255,255,255,0.09); color: #fff; }
.dark-mode .comision-row-card { background: rgba(255,255,255,0.03); border-color: rgba(255,255,255,0.07); }
.dark-mode .comision-row-card:hover { background: rgba(255,255,255,0.05); }
.dark-mode .comision-row-card.added { background: rgba(46,125,50,0.15); border-color: #2e7d32; }
.dark-mode .com-code { color: #eee; }
.dark-mode .com-catedra { color: #aaa; }
.dark-mode .com-horario { color: #ddd; }
.dark-mode .com-aula { color: #999; }
.dark-mode .schedule-sidebar { background: rgba(18,18,18,0.97); border-left-color: rgba(255,255,255,0.07); }
.dark-mode .schedule-sidebar-header { background: rgba(18,18,18,0.5); }
.dark-mode .schedule-sidebar-header h2 { color: #fff; }
.dark-mode .schedule-section-title { color: #aaa; border-bottom-color: rgba(255,255,255,0.07); }
.dark-mode .schedule-calendar-wrapper { background: #1e1e1e; border-color: rgba(255,255,255,0.07); }
.dark-mode .schedule-cal-header-row { background: #161616; }
.dark-mode .schedule-hours-col { background: #161616; }
.dark-mode .schedule-hour-tick { color: #666; }
.dark-mode .schedule-day-col-header { color: #bbb; }
.dark-mode .schedule-cal-body { background: #1a1a1a; }
.dark-mode .schedule-selected-item { background: rgba(255,255,255,0.02); border-color: rgba(255,255,255,0.07); }
.dark-mode .sel-item-materia { color: #eee; }
.dark-mode .sel-item-time { color: #ccc; }
.dark-mode .schedule-empty-msg { background: rgba(255,255,255,0.01); border-color: rgba(255,255,255,0.06); color: #999; }
.dark-mode #nav-schedule-badge.badge-zero { background: rgba(255,255,255,0.08); color: #bbb; }

/* 8. Mobile */
@media (max-width: 500px) {
  .schedule-sidebar { width: 100%; right: -100%; }
}


/* ─── Comisiones Detail Table (inside subject page) ─── */
.mp-comisiones {
  margin-top: 8px;
}
.comisiones-loading {
  font-size: 0.8rem;
  color: #aaa;
  font-style: italic;
  padding: 6px 0;
}
.com-detail-table-wrap {
  overflow-x: auto;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,0.07);
  margin-top: 12px;
}

/* Hint mobile: swipe + cómo agregar — solo visible en pantallas chicas */
.com-mobile-hint {
  display: none;
}
@media (max-width: 600px) {
  .com-mobile-hint {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px 12px;
    background: linear-gradient(90deg, #f0f7ff, #f7f0ff);
    border-radius: 8px;
    margin-top: 10px;
    margin-bottom: 4px;
    border: 1px solid rgba(100,120,200,0.15);
  }
  .com-hint-swipe {
    font-size: 0.75rem;
    color: #5c6bc0;
    font-weight: 600;
    font-family: 'Barlow Condensed', sans-serif;
    letter-spacing: 0.03em;
    text-align: center;
  }
  .com-hint-add {
    font-size: 0.72rem;
    color: #666;
    text-align: center;
    font-family: 'Barlow', sans-serif;
  }
  .com-hint-add strong {
    color: #1a7a2e;
    background: #e8f5e9;
    padding: 0 5px;
    border-radius: 4px;
    font-size: 0.85rem;
  }
}

.com-detail-table {
  width: 100%;
  border-collapse: collapse;
  font-family: 'Barlow', sans-serif;
  font-size: 0.82rem;
}
.com-detail-table thead tr {
  background: #f5f5f5;
}
.com-detail-table th {
  padding: 8px 12px;
  text-align: left;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #777;
  border-bottom: 1px solid rgba(0,0,0,0.08);
  white-space: nowrap;
}
.com-detail-table td {
  padding: 8px 12px;
  border-bottom: 1px solid rgba(0,0,0,0.04);
  color: #333;
  vertical-align: middle;
}
.com-detail-table tbody tr:last-child td {
  border-bottom: none;
}
.com-detail-table tbody tr:hover td {
  background: rgba(0,0,0,0.015);
}
.com-detail-row.added td {
  background: #f0faf2 !important;
}
.com-detail-comision {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 0.88rem;
  color: #111;
}
.com-detail-catedra {
  color: #555;
  max-width: 160px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.com-detail-horario strong {
  color: #111;
}
.com-detail-aula {
  color: #888;
  font-size: 0.78rem;
}
.dark-mode .com-detail-table-wrap { border-color: rgba(255,255,255,0.07); }
.dark-mode .com-detail-table thead tr { background: #1e1e1e; }
.dark-mode .com-detail-table th { color: #888; border-bottom-color: rgba(255,255,255,0.07); }
.dark-mode .com-detail-table td { border-bottom-color: rgba(255,255,255,0.04); color: #ccc; }
.dark-mode .com-detail-table tbody tr:hover td { background: rgba(255,255,255,0.02); }
.dark-mode .com-detail-row.added td { background: rgba(46,125,50,0.12) !important; }
.dark-mode .com-detail-comision { color: #eee; }
.dark-mode .com-detail-catedra { color: #aaa; }
.dark-mode .com-detail-horario strong { color: #ddd; }

/* ─── Comisiones Accordion ─── */
.comisiones-accordion-header {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--faq-bg-color, rgba(26, 122, 46, 0.04));
  border: 1px solid var(--faq-theme-color, #1a7a2e);
  border-radius: 8px;
  padding: 12px 18px;
  cursor: pointer;
  user-select: none;
  transition: all 0.2s ease;
  margin-top: 16px;
}

.comisiones-accordion-header:hover {
  background: var(--faq-bg-color-hover, rgba(26, 122, 46, 0.08));
  box-shadow: 0 4px 12px rgba(0,0,0,0.03);
}

.comisiones-accordion-header.expanded {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  background: var(--faq-bg-color-hover, rgba(26, 122, 46, 0.06));
}

.comisiones-accordion-header .acc-clock {
  font-size: 1.1rem;
}

.comisiones-accordion-header .acc-text {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.95rem;
  color: #222;
  flex: 1;
}

.comisiones-accordion-header .acc-count-badge {
  background: var(--faq-theme-color, #1a7a2e);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 800;
  padding: 2px 8px;
  border-radius: 12px;
  font-family: 'Barlow', sans-serif;
}

.comisiones-accordion-header .acc-arrow {
  font-size: 0.75rem;
  color: #666;
  transition: transform 0.3s ease;
}

.comisiones-accordion-header.expanded .acc-arrow {
  transform: rotate(180deg);
}

.comisiones-accordion-content {
  border: 1px solid var(--faq-theme-color, #1a7a2e);
  border-top: none;
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
  background: #ffffff;
}

/* Theme overrides for each career modal/accordion */
.mp-comisiones.theme-cp {
  --faq-theme-color: #1a7a2e;
  --faq-bg-color: rgba(26, 122, 46, 0.04);
  --faq-bg-color-hover: rgba(26, 122, 46, 0.08);
}
.mp-comisiones.theme-comu {
  --faq-theme-color: #e85c1a;
  --faq-bg-color: rgba(232, 92, 26, 0.04);
  --faq-bg-color-hover: rgba(232, 92, 26, 0.08);
}
.mp-comisiones.theme-rt {
  --faq-theme-color: #8b1a1a;
  --faq-bg-color: rgba(139, 26, 26, 0.04);
  --faq-bg-color-hover: rgba(139, 26, 26, 0.08);
}

.dark-mode .comisiones-accordion-content {
  background: #121212;
}
.dark-mode .comisiones-accordion-header .acc-text {
  color: #eee;
}

/* ─── RT Subject Detail Modal (Popup) ─── */
.rt-materia-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1200; /* Higher than visual map modal which is 900 */
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(5px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: rtFadeIn 0.2s ease;
}

.rt-materia-modal-box {
  background: #ffffff;
  border-radius: 16px;
  max-width: 760px;
  width: 100%;
  box-shadow: 0 24px 64px rgba(0,0,0,0.3);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  animation: rtModalScaleIn 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
  border: 1px solid rgba(139, 26, 26, 0.1);
}

.rt-materia-modal-header {
  background: var(--rt-bordo, #8b1a1a);
  color: #ffffff;
  padding: 20px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.rt-materia-modal-title-wrap {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.rt-materia-modal-code {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
}

.rt-materia-modal-title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 1.25rem;
  color: #ffffff;
  margin: 0;
}

.rt-materia-modal-close {
  background: rgba(255, 255, 255, 0.15);
  border: none;
  color: #ffffff;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-size: 1.2rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.rt-materia-modal-close:hover {
  background: #ff3b30;
  color: #ffffff;
}

.rt-materia-modal-body {
  padding: 28px;
  overflow-y: auto;
  max-height: 75vh;
}

.rt-materia-modal-info {
  background: var(--rt-bordo-bg, rgba(139, 26, 26, 0.04));
  border-left: 4px solid var(--rt-bordo, #8b1a1a);
  padding: 16px 20px;
  border-radius: 0 10px 10px 0;
  margin-bottom: 24px;
  font-family: 'Barlow', sans-serif;
  font-size: 0.95rem;
  color: #444;
}

.rt-materia-modal-info p {
  margin: 6px 0;
}

.rt-materia-modal-info strong {
  color: var(--rt-dark, #222);
}

@keyframes rtFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes rtModalScaleIn {
  from { transform: scale(0.92); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}

.dark-mode .rt-materia-modal-box {
  background: #121212;
  border-color: rgba(255,255,255,0.08);
}
.dark-mode .rt-materia-modal-info {
  background: rgba(139, 26, 26, 0.08);
}
.dark-mode .rt-materia-modal-info p {
  color: #ccc;
}
.dark-mode .rt-materia-modal-info strong {
  color: #eee;
}

/* ─── WIDGET DE AGENDA EN DASHBOARD ─── */
.agenda-dashboard-container {
  max-width: 1200px;
  margin: 0 auto 32px auto;
  padding: 0 20px;
  animation: rtFadeIn 0.5s ease-out;
}

.agenda-dashboard-widget {
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 18px;
  padding: 24px;
  backdrop-filter: blur(12px) saturate(180%);
  -webkit-backdrop-filter: blur(12px) saturate(180%);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.03);
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.agenda-dashboard-widget:hover {
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.06);
  transform: translateY(-2px);
}

/* Temas dinámicos de carrera */
.agenda-dashboard-widget.theme-cp {
  border-left: 6px solid #1a7a2e;
}
.agenda-dashboard-widget.theme-comu {
  border-left: 6px solid #e85c1a;
}
.agenda-dashboard-widget.theme-rt {
  border-left: 6px solid #8b1a1a;
}

/* Header del Widget */
.agenda-widget-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  padding-bottom: 14px;
}

.agenda-widget-title-area {
  display: flex;
  align-items: center;
  gap: 10px;
}

.agenda-widget-icon {
  font-size: 1.5rem;
}

.agenda-widget-title-area h3 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 1.15rem;
  margin: 0;
  color: #111;
  letter-spacing: -0.02em;
}

.agenda-widget-title-area h3 span {
  font-weight: 500;
  color: #666;
}

.agenda-widget-badge {
  font-family: 'Outfit', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  transition: all 0.25s ease;
}

.theme-cp .agenda-widget-badge { background: #e2f0d9; color: #1a7a2e; }
.theme-comu .agenda-widget-badge { background: #ffece2; color: #e85c1a; }
.theme-rt .agenda-widget-badge { background: #fdf3f3; color: #8b1a1a; }

/* Cuerpo del Widget */
.agenda-widget-body {
  display: flex;
  gap: 24px;
  align-items: flex-start;
}

@media (max-width: 900px) {
  .agenda-widget-body {
    flex-direction: column;
    align-items: stretch;
  }
}

/* Estado Vacío */
.agenda-widget-empty {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 8px 0;
}

.agenda-widget-empty p {
  margin: 0;
  font-family: 'Barlow', sans-serif;
  font-size: 0.95rem;
  color: #444;
  font-weight: 600;
}

.agenda-widget-empty .agenda-widget-help {
  font-weight: 400;
  color: #666;
  font-size: 0.85rem;
  line-height: 1.5;
}

.agenda-widget-empty .agenda-widget-help strong {
  color: #111;
}

/* Lista de Materias Seleccionadas */
.agenda-widget-list {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 12px;
  width: 100%;
}

.agenda-widget-item {
  background: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(0, 0, 0, 0.04);
  border-radius: 12px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.01);
  transition: all 0.25s ease;
}

.agenda-widget-item:hover {
  background: rgba(255, 255, 255, 0.9);
  border-color: rgba(0, 0, 0, 0.08);
  box-shadow: 0 4px 16px rgba(0,0,0,0.03);
  transform: translateY(-1px);
}

.agenda-item-materia {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 0.88rem;
  color: #222;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.agenda-item-details {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.agenda-item-com {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  color: #555;
}

.agenda-item-time {
  font-family: 'Barlow', sans-serif;
  font-size: 0.78rem;
  color: #666;
  font-weight: 500;
}

/* Panel Lateral de Acciones */
.agenda-widget-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 240px;
}

@media (max-width: 900px) {
  .agenda-widget-actions {
    min-width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
  }
  .agenda-widget-actions button {
    flex: 1;
    min-width: 140px;
  }
}

.agenda-widget-btn-pdf {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 12px 18px;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0,0,0,0.1);
  transition: all 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.theme-cp .agenda-widget-btn-pdf {
  background: linear-gradient(135deg, #2e7d32, #1b5e20);
}
.theme-comu .agenda-widget-btn-pdf {
  background: linear-gradient(135deg, #e85c1a, #bd450c);
}
.theme-rt .agenda-widget-btn-pdf {
  background: linear-gradient(135deg, #8b1a1a, #5c0f0f);
}

.agenda-widget-btn-pdf:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.15);
  filter: brightness(1.08);
}

.agenda-widget-btn-pdf:active {
  transform: translateY(1px);
  filter: brightness(0.95);
}

.agenda-widget-btn-side, .agenda-widget-btn-siu {
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 0.8rem;
  color: #444;
  background: rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 10px;
  padding: 11px 18px;
  cursor: pointer;
  transition: all 0.25s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.agenda-widget-btn-side:hover, .agenda-widget-btn-siu:hover {
  background: rgba(0, 0, 0, 0.08);
  color: #111;
}

/* Modo Oscuro para el Widget */
.dark-mode .agenda-dashboard-widget {
  background: rgba(18, 18, 18, 0.65);
  border-color: rgba(255, 255, 255, 0.06);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}

.dark-mode .agenda-dashboard-widget:hover {
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.28);
}

.dark-mode .agenda-widget-header {
  border-bottom-color: rgba(255, 255, 255, 0.05);
}

.dark-mode .agenda-widget-title-area h3 {
  color: #fff;
}

.dark-mode .agenda-widget-title-area h3 span {
  color: #888;
}

.dark-mode .agenda-widget-empty p {
  color: #eee;
}

.dark-mode .agenda-widget-empty .agenda-widget-help {
  color: #aaa;
}

.dark-mode .agenda-widget-empty .agenda-widget-help strong {
  color: #fff;
}

.dark-mode .agenda-widget-item {
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(255, 255, 255, 0.04);
  box-shadow: none;
}

.dark-mode .agenda-widget-item:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.08);
}

.dark-mode .agenda-item-materia {
  color: #eee;
}

.dark-mode .agenda-item-com {
  color: #ccc;
}

.dark-mode .agenda-item-time {
  color: #aaa;
}

.dark-mode .agenda-widget-btn-side, .dark-mode .agenda-widget-btn-siu {
  color: #ccc;
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.07);
}

.dark-mode .agenda-widget-btn-side:hover, .dark-mode .agenda-widget-btn-siu:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.dark-mode .theme-cp .agenda-widget-badge { background: rgba(46, 125, 50, 0.2); color: #81c784; }
.dark-mode .theme-comu .agenda-widget-badge { background: rgba(232, 92, 26, 0.2); color: #ffb74d; }
.dark-mode .theme-rt .agenda-widget-badge { background: rgba(139, 26, 26, 0.25); color: #e57373; }




/* ══ MODAL AGENDA GLOBAL ══ */
.agenda-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 10, 10, 0.45);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 2500;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.agenda-modal-overlay.active {
  opacity: 1;
  pointer-events: auto;
}
.agenda-modal-box {
  background: #fff;
  width: 100%;
  max-width: 650px;
  max-height: 85vh;
  border-radius: 12px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.2);
  display: flex;
  flex-direction: column;
  transform: scale(0.95) translateY(10px);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;
}
.agenda-modal-overlay.active .agenda-modal-box {
  transform: scale(1) translateY(0);
}
.agenda-modal-header {
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 2px solid #eee;
  background: #fafafa;
}
.agenda-modal-body::-webkit-scrollbar {
  width: 6px;
}
.agenda-modal-body::-webkit-scrollbar-track {
  background: #f1f1f1;
}
.agenda-modal-body::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 4px;
}
.agenda-remove-btn:hover {
  color: #d32f2f !important;
  background: #ffebee !important;
}
@media (max-width: 600px) {
  .agenda-modal-box {
    max-height: 100vh;
    height: 100vh;
    border-radius: 0;
  }
}


/* ════════════════════════════════════════════════════
   PLANIFICÁ TU CUATRIMESTRE
   ════════════════════════════════════════════════════ */

/* ── Botón trigger ── */
.btn-planificador {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: .85rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 10px 22px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  cursor: pointer;
  background: #1f7b39;
  color: #fff;
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
  transition: transform .15s, box-shadow .15s, background .15s;
  white-space: nowrap;
}
.btn-planificador:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(0,0,0,.12);
  background: #238142;
}
/* Variante COMU (naranja sólido) */
.btn-planificador.comu-planif {
  background: #d96a16;
  border-color: rgba(217,106,22,.28);
}
.btn-planificador.comu-planif:hover {
  background: #e37d26;
  box-shadow: 0 12px 28px rgba(0,0,0,.12);
}
/* Variante RT (bordó sólido) */
.btn-planificador.rt-planif {
  background: #7f2222;
  border-color: rgba(127,34,34,.28);
}
.btn-planificador.rt-planif:hover {
  background: #8f3131;
  box-shadow: 0 12px 28px rgba(0,0,0,.12);
}

/* ── Banner entre materias y orientaciones ── */
.planif-banner {
  background: linear-gradient(135deg, #0d1f12 0%, #1a1040 100%);
  padding: 0 24px;
}
.planif-banner-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 22px 0;
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}
.planif-banner-ico {
  font-size: 2rem;
  flex-shrink: 0;
}
.planif-banner-texto {
  flex: 1;
  min-width: 200px;
}
.planif-banner-texto strong {
  display: block;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: .03em;
  margin-bottom: 3px;
}
.planif-banner-texto span {
  font-size: .88rem;
  color: rgba(255,255,255,.6);
}
.planif-banner-btn {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: .9rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 12px 24px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.22);
  background: #1f7b39;
  color: #fff;
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s, border-color .15s, transform .15s, box-shadow .15s;
  backdrop-filter: blur(4px);
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
}
.planif-banner-btn:hover {
  background: #24803f;
  border-color: rgba(255,255,255,.55);
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(0,0,0,.12);
}

/* ── Modal overlay y box ── */
.planif-modal-overlay {
  /* reutiliza .modal-overlay pero con z-index propio */
  z-index: 1200;
}
.planif-modal-box {
  background: #fff;
  border-radius: 16px;
  max-width: 1140px;
  width: 100%;
  max-height: 92vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 32px 80px rgba(0,0,0,.35);
  animation: modalIn .25s ease both;
}

/* ── Header del modal ── */
.planif-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 26px 32px 22px;
  background: linear-gradient(135deg, #0d1f12 0%, #1a1040 100%);
  color: #fff;
  flex-shrink: 0;
}
.planif-modal-header h2 {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 2.2rem;
  color: #fff;
  line-height: 1;
  margin: 0;
}
.planif-modal-header h2 span { color: #7dd3fc; }
.planif-modal-sub {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: .76rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .45;
  margin-top: 6px;
}

/* ── Body: dos columnas ── */
.planif-modal-body {
  display: grid;
  grid-template-columns: 320px 1fr;
  flex: 1;
  overflow: hidden;
  min-height: 0;
}
@media (max-width: 760px) {
  .planif-modal-body {
    grid-template-columns: 1fr;
    overflow: visible;
  }
  .planif-modal-box { max-height: none; border-radius: 0; }
  .planif-modal-overlay { align-items: flex-start; padding: 0; }
}

/* ── Panel izquierdo: lista ── */
.planif-lista-panel {
  border-right: 1px solid #eee;
  overflow-y: auto;
  padding: 20px 18px;
  background: #f8f9f7;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 0;
}
.planif-lista-titulo {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #888;
  margin: 10px 0 6px;
}
.planif-lista-titulo:first-child { margin-top: 0; }
.planif-lista-empty {
  font-size: .85rem;
  color: #aaa;
  font-style: italic;
  line-height: 1.5;
  padding: 8px 0;
}
.planif-lista-loading {
  font-size: .85rem;
  color: #aaa;
  font-style: italic;
}

/* Fila de materia seleccionada */
.planif-materia-item {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 8px 10px;
  background: #fff;
  border-radius: 8px;
  border: 1px solid rgba(0,0,0,.06);
}
.planif-materia-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 4px;
}
.planif-materia-info { flex: 1; min-width: 0; }
.planif-materia-nombre {
  font-size: .83rem;
  font-weight: 700;
  color: #222;
  line-height: 1.3;
  margin-bottom: 4px;
}
.planif-com-fila {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 3px;
}
.planif-com-tipo {
  font-size: .68rem;
  font-weight: 700;
  background: #eee;
  color: #555;
  padding: 1px 5px;
  border-radius: 3px;
  flex-shrink: 0;
}
.planif-com-horario {
  font-size: .78rem;
  color: #555;
  flex: 1;
}
.planif-com-remove {
  background: transparent;
  border: none;
  color: #ccc;
  font-size: 1rem;
  cursor: pointer;
  padding: 0 2px;
  line-height: 1;
  transition: color .12s;
}
.planif-com-remove:hover { color: #e53935; }

/* Botón vaciar */
.planif-vaciar-btn {
  margin-top: 10px;
  width: 100%;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #bbb;
  background: transparent;
  border: 1px dashed #ddd;
  border-radius: 6px;
  padding: 8px;
  cursor: pointer;
  transition: color .15s, border-color .15s;
}
.planif-vaciar-btn:hover { color: #e53935; border-color: #e53935; }

/* ── Sección buscador ── */
.planif-buscador-sec {
  margin-top: 6px;
  padding-top: 14px;
  border-top: 1px solid #eee;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.planif-search-wrap {
  position: relative;
}
.planif-search-input {
  width: 100%;
  padding: 9px 32px 9px 12px;
  border: 1px solid #ddd;
  border-radius: 7px;
  font-size: .85rem;
  font-family: 'Barlow', sans-serif;
  outline: none;
  box-sizing: border-box;
  transition: border-color .15s;
}
.planif-search-input:focus { border-color: #3949ab; }
.planif-search-clear {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  color: #aaa;
  font-size: 1rem;
  cursor: pointer;
  padding: 0;
}
.planif-search-results {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 7px;
  overflow-y: auto;
  max-height: 160px;
  box-shadow: 0 4px 14px rgba(0,0,0,.08);
}
.planif-result-item {
  display: block;
  width: 100%;
  text-align: left;
  background: transparent;
  border: none;
  border-bottom: 1px solid #f5f5f5;
  padding: 9px 12px;
  font-size: .82rem;
  font-family: 'Barlow', sans-serif;
  color: #333;
  cursor: pointer;
  transition: background .1s;
}
.planif-result-item:hover  { background: #f5f5f5; }
.planif-result-item.active { background: #e8eaf6; color: #3949ab; font-weight: 700; }
.planif-result-item:last-child { border-bottom: none; }
.planif-search-empty {
  padding: 10px 12px;
  font-size: .82rem;
  color: #aaa;
  text-align: center;
}

/* Detalle de comisiones de la materia elegida */
.planif-detail-box {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 12px;
}
.planif-detail-nombre {
  font-size: .82rem;
  font-weight: 700;
  color: #333;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  gap: 8px;
}
.planif-detail-close {
  background: transparent;
  border: none;
  color: #aaa;
  cursor: pointer;
  font-size: .85rem;
  flex-shrink: 0;
  transition: color .12s;
}
.planif-detail-close:hover { color: #333; }
.planif-opt-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid #f5f5f5;
}
.planif-opt-row:last-child { border-bottom: none; }
.planif-opt-info {
  flex: 1;
  font-size: .8rem;
  color: #444;
  line-height: 1.45;
}
.planif-opt-info small { color: #888; }
.planif-opt-btn {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: none;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform .12s, background .12s;
}
.planif-opt-btn.add    { background: #e8f5e9; color: #1a7a2e; }
.planif-opt-btn.remove { background: #ffebee; color: #c62828; }
.planif-opt-btn:hover  { transform: scale(1.12); }

/* ── Panel derecho: grilla ── */
.planif-grilla-panel {
  overflow: auto;
  padding: 16px;
  background: #fff;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.planif-grilla-empty {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #ccc;
  gap: 12px;
  text-align: center;
}
.planif-grilla-empty span { font-size: 3rem; }
.planif-grilla-empty p { font-size: .9rem; max-width: 260px; line-height: 1.5; }

.planif-grilla-scroll {
  flex: 1;
  overflow: auto;
  min-height: 0;
}
.planif-grilla {
  display: flex;
  min-width: 400px;
  user-select: none;
}

/* Columna de horas */
.planif-horas-col {
  width: 44px;
  flex-shrink: 0;
  position: relative;
  padding-top: 36px; /* altura del header de día */
}
.planif-horas-header { height: 36px; }
.planif-hora-label {
  position: absolute;
  left: 0;
  right: 0;
  font-size: .65rem;
  color: #bbb;
  text-align: right;
  padding-right: 6px;
  transform: translateY(-50%);
  font-family: 'Barlow Condensed', sans-serif;
  white-space: nowrap;
}

/* Columna de día */
.planif-dia-col {
  flex: 1;
  min-width: 80px;
  display: flex;
  flex-direction: column;
  border-left: 1px solid #f0f0f0;
}
.planif-dia-header {
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .08em;
  color: #888;
  background: #f9f9f9;
  border-bottom: 1px solid #eee;
  flex-shrink: 0;
}
.planif-dia-bloques {
  flex: 1;
  position: relative;
  min-height: 300px;
}
.planif-hora-line {
  position: absolute;
  left: 0; right: 0;
  height: 1px;
  background: #f0f0f0;
  pointer-events: none;
}

/* Bloque de comisión en la grilla */
.planif-bloque {
  position: absolute;
  left: 2px; right: 2px;
  border-radius: 6px;
  padding: 4px 6px;
  display: flex;
  flex-direction: column;
  gap: 1px;
  overflow: hidden;
  cursor: default;
  transition: opacity .15s;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
}
.planif-bloque:hover { opacity: .88; }
.planif-bloque-tipo {
  font-size: .6rem;
  font-weight: 700;
  opacity: .8;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.planif-bloque-nombre {
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.2;
  font-family: 'Barlow Condensed', sans-serif;
  letter-spacing: .02em;
}
.planif-bloque-hora {
  font-size: .65rem;
  opacity: .8;
  margin-top: auto;
}
.planif-bloque-remove {
  position: absolute;
  top: 3px; right: 3px;
  background: rgba(0,0,0,.25);
  border: none;
  color: #fff;
  font-size: .75rem;
  width: 16px; height: 16px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  transition: opacity .15s;
  padding: 0;
  line-height: 1;
}
.planif-bloque:hover .planif-bloque-remove { opacity: 1; }
.planif-bloque-remove:hover { background: rgba(200,0,0,.7); }

/* ── Footer del modal ── */
.planif-modal-footer {
  padding: 12px 20px;
  background: #f8f8f8;
  border-top: 1px solid #eee;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  flex-shrink: 0;
}
.planif-export-btn {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: .85rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 9px 20px;
  border-radius: 7px;
  border: none;
  cursor: pointer;
  background: linear-gradient(135deg, #1a7a2e, #00838f);
  color: #fff;
  box-shadow: 0 3px 12px rgba(26,122,46,.35);
  transition: transform .15s, box-shadow .15s;
}
.planif-export-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(26,122,46,.45);
}
