:root{--navy:#102f42;--navy2:#1c4a63;--lime:#d8f51f;--paper:#f4f6f2;--line:#d7dfda;--blue:#dcecff;--text:#122c3b;--muted:#647782;--orange:#a4522c}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--text);font:16px system-ui,-apple-system,Segoe UI,sans-serif}
button,input,select,textarea{font:inherit}
h1,h2,h3{letter-spacing:-.01em}

/* --- Auth --- */
.auth{min-height:100vh;display:grid;place-items:center;padding:20px}
.login-card{width:min(430px,100%);background:#fff;padding:30px 28px;border-radius:20px;box-shadow:0 20px 55px #10203818}
.brand{display:grid;place-items:center;background:var(--lime);color:var(--navy);width:58px;height:58px;font-weight:900;border-radius:14px;font-size:19px}
.login-card p{color:var(--muted);margin-top:2px}
label{display:grid;gap:7px;font-weight:700;margin:14px 0}
input,select,textarea{width:100%;padding:13px;border:1px solid var(--line);border-radius:10px;background:#fff}
.primary{background:var(--lime);color:var(--navy);border:0;padding:13px 18px;border-radius:11px;font-weight:900;cursor:pointer;width:100%}
.auth-link{width:100%;border:0;background:transparent;color:var(--navy);padding:12px 6px 0;font-weight:800;cursor:pointer;text-decoration:underline}
.tabs{display:flex;gap:8px;margin:20px 0}
.tabs button{border:1px solid var(--line);background:#fff;padding:10px;border-radius:9px;font-weight:700;flex:1;cursor:pointer}
.tabs .active{background:var(--navy);color:#fff;border-color:var(--navy)}
.message{min-height:24px;color:var(--orange);font-weight:600}

/* --- App shell --- */
header{position:sticky;top:0;z-index:5;background:var(--navy);color:#fff;padding:12px max(16px,calc((100% - 1100px)/2));display:flex;justify-content:space-between;align-items:center}
header small{display:block;color:#c8d7df}
.brand-menu-toggle{background:none;border:0;color:#fff;font:inherit;padding:0;margin:0;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.brand-menu-toggle .chevron{display:none;font-size:11px;transition:transform .18s ease}
.header-actions{display:flex;gap:8px;align-items:center}
.header-actions button{border:1px solid #ffffff40;background:transparent;color:#fff;padding:9px 12px;border-radius:9px;font-weight:700;cursor:pointer}
.header-actions button#installApp{background:var(--lime);color:var(--navy);border:0}
main{max-width:1100px;margin:auto;padding:22px 16px 100px}
.page{display:none}
.page.active{display:block}
nav{position:fixed;bottom:0;left:0;right:0;z-index:6;display:flex;gap:5px;background:#fff;border-top:1px solid var(--line);padding:9px;overflow:auto}
nav button{border:0;background:transparent;color:var(--text);padding:9px 12px;border-radius:9px;font-weight:800;font-size:13px;white-space:nowrap;cursor:pointer}
nav button.active{background:var(--navy);color:#fff}
nav button.locked{color:var(--muted);opacity:.72}
nav button.locked::after{content:' 🔒';font-size:10px}
nav button.locked.active{color:#fff;opacity:1}
@media(max-width:680px){
  main{padding-bottom:30px}
  .brand-menu-toggle .chevron{display:inline-block}
  .brand-menu-toggle.open .chevron{transform:rotate(180deg)}
  nav{top:var(--header-h,58px);bottom:auto;left:12px;right:12px;flex-direction:column;align-items:stretch;gap:2px;padding:8px;border-radius:14px;box-shadow:0 22px 50px -16px #10203866;max-height:calc(100vh - 90px);overflow-y:auto;transform-origin:top center;transform:scaleY(.92) translateY(-6px);opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease}
  nav.open{opacity:1;transform:scaleY(1) translateY(0);pointer-events:auto}
  nav button{font-size:14px;padding:13px 14px;text-align:left;border-radius:9px;white-space:normal}
}

/* --- Shared building blocks --- */
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
.grid.thirds{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{background:#fff;border:1px solid var(--line);padding:18px;border-radius:16px}
.card h3{margin-top:0}
.chip{display:inline-block;background:var(--blue);color:#235b91;padding:5px 10px;border-radius:999px;font-size:12.5px;font-weight:800}
.chip.lime{background:var(--lime);color:var(--navy)}
.chip.orange{background:#fbe3d6;color:var(--orange)}
.muted{color:var(--muted)}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:6px}
.section-heading h2{margin:0}
.section-heading p{margin:4px 0 0}
@media(max-width:680px){.grid,.grid.thirds{grid-template-columns:1fr}}

/* --- Hero / stats (Inicio) --- */
.hero{background:linear-gradient(135deg,var(--navy),var(--navy2) 70%,#2b6f66);color:#fff;padding:28px 26px;border-radius:22px;position:relative;overflow:hidden}
.hero::after{content:'';position:absolute;right:-40px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,#d8f51f33,transparent 70%)}
.hero small{color:var(--lime);font-weight:900;letter-spacing:.12em;text-transform:uppercase;font-size:11px}
.hero h1{margin:6px 0 2px;font-size:26px}
.hero p{margin:0;color:#d7e6ea;max-width:520px}
.stat-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:20px}
.stat-tile{background:#ffffff14;border:1px solid #ffffff26;border-radius:14px;padding:14px 12px}
.stat-tile b{display:block;font-size:24px;line-height:1.1}
.stat-tile span{display:block;color:#c8d7df;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-top:3px}
@media(max-width:680px){.hero{padding:22px}.stat-tiles{grid-template-columns:repeat(2,1fr)}}
.schedule-list{display:grid;gap:10px;margin-top:10px}
.schedule-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff}
.schedule-row b{display:block}
.schedule-row small{color:var(--muted)}

/* --- Skill bars (Evolución / Mi grupo) --- */
.skillbar{margin:14px 0}
.skillbar-head{display:flex;justify-content:space-between;font-weight:800;font-size:13.5px;margin-bottom:6px}
.skillbar-track{position:relative;height:10px;border-radius:99px;background:#e7efeb;overflow:hidden}
.skillbar-fill{position:absolute;inset:0;width:0;border-radius:99px;background:var(--lime)}
.skillbar-fill.compare{background:#9db6c2;opacity:.55}
.skillbar-legend{display:flex;gap:16px;margin-top:4px;font-size:12px;color:var(--muted)}
.skillbar-legend span{display:inline-flex;align-items:center;gap:6px}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.dot.lime{background:var(--lime)}
.dot.gray{background:#9db6c2}
.report-feed{display:grid;gap:12px;margin-top:10px}
.report-item{border-left:4px solid var(--lime);background:#f4f8e4;border-radius:0 12px 12px 0;padding:13px 15px}
.report-item small{color:var(--muted);font-weight:800}
.report-item p{margin:6px 0 0;line-height:1.5}

/* --- Locked (plan estándar) --- */
.locked-card{position:relative;text-align:center;padding:34px 22px;border:1px dashed #b9c6c0}
.lock-badge{display:inline-block;background:var(--navy);color:var(--lime);padding:6px 12px;border-radius:999px;font-weight:900;font-size:12px;margin-bottom:10px}
.locked-card h3{margin:4px 0}

/* --- Autoevaluación --- */
.slider-row{margin:16px 0}
.slider-row .slider-head{display:flex;justify-content:space-between;font-weight:800}
input[type=range]{accent-color:var(--navy);padding:0}
.history-list{display:grid;gap:8px;margin-top:16px}
.history-row{display:flex;justify-content:space-between;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:#fff}

/* --- Programación --- */
.focus-card{background:var(--navy);color:#fff;border-radius:16px;padding:18px}
.focus-card small{color:var(--lime);font-weight:900;text-transform:uppercase;font-size:11px}
.focus-card h3{margin:6px 0}
.program-card{display:flex;flex-direction:column;gap:8px}
.program-card button{align-self:flex-start;border:1px solid var(--line);background:#fff;padding:9px 14px;border-radius:9px;font-weight:800;cursor:pointer;color:var(--navy)}

/* --- Retos --- */
.challenge-card{display:grid;gap:8px}
.challenge-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.progress-track{height:9px;border-radius:99px;background:#e7efeb;overflow:hidden}
.progress-fill{height:100%;background:var(--lime)}
.challenge-actions{display:flex;justify-content:space-between;align-items:center;margin-top:4px}
.leaderboard{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.leaderboard-row{display:flex;align-items:center;gap:12px;padding:12px 15px;border-bottom:1px solid var(--line)}
.leaderboard-row:last-child{border-bottom:0}
.leaderboard-pos{width:26px;height:26px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:900;font-size:12.5px;flex:0 0 auto}
.leaderboard-row b{flex:1}

/* --- Cursos --- */
.course-card{display:flex;flex-direction:column;gap:8px}
.course-card a{align-self:flex-start;text-decoration:none;border:0;background:var(--lime);color:var(--navy);padding:10px 16px;border-radius:9px;font-weight:900}

/* --- Equipo --- */
.team-block{margin-bottom:26px}
.team-block:last-child{margin-bottom:0}
.fixture-card{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff}
.fixture-card.mine{border-color:var(--lime);background:#fbfde6}
.fixture-card div{display:grid;gap:3px}
.fixture-card small{color:var(--muted)}

/* --- Perfil --- */
.profile-hero{display:flex;align-items:center;gap:14px}
.profile-photo{width:56px;height:56px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:900;font-size:18px}
.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.info-grid .info{display:grid;gap:4px}
.info-grid small{color:var(--muted);font-weight:800;font-size:11px;text-transform:uppercase}
@media(max-width:680px){.info-grid{grid-template-columns:1fr}}

/* --- Banner de marca: publicidad de las entidades vinculadas, visible al final de cada pantalla --- */
#brandFooter{margin-top:8px}
.brand-footer{background:var(--navy);color:#fff;border-radius:20px;margin-top:24px;border-top:6px solid var(--lime)}
.brand-footer-inner{padding:32px 20px}
.brand-footer-head{text-align:center;margin-bottom:24px}
.brand-footer-head span{display:block;color:var(--lime);font-size:12px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.brand-footer-head h2{margin:7px 0 0;font-size:21px}
.brand-logos{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #ffffff24;border-radius:14px;overflow:hidden}
.brand-link{min-height:150px;padding:20px 12px;background:#ffffff08;color:#fff;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;text-align:center;border-right:1px solid #ffffff24;transition:background .2s ease}
.brand-link:last-child{border-right:0}
.brand-link:hover,.brand-link:focus-visible{background:#ffffff16;outline:2px solid var(--lime);outline-offset:-2px}
.brand-link img{width:auto;max-width:150px;max-height:78px;object-fit:contain;background:#fff;border-radius:7px;padding:8px}
.brand-link.violeta img{max-width:96px;max-height:88px}
.brand-link.imcler img{max-width:145px}
.brand-link small{color:#a9bec9;font-size:10.5px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.brand-footer-note{text-align:center;color:#a9bec9;font-size:12px;margin:18px 0 0}
.brand-footer-note a{color:#fff}
@media(max-width:650px){.brand-logos{grid-template-columns:1fr 1fr}.brand-link{min-height:130px}.brand-link:nth-child(2){border-right:0}.brand-link:nth-child(-n+2){border-bottom:1px solid #ffffff24}}
@media(max-width:390px){.brand-logos{grid-template-columns:1fr}.brand-link{border-right:0!important;border-bottom:1px solid #ffffff24}.brand-link:last-child{border-bottom:0}}

/* Versión reducida del banner: pestañas de contenido denso (evolución, autoevaluación, programación, mi grupo, retos, cursos) */
.brand-footer.compact{border-radius:13px;margin-top:16px;border-top-width:4px}
.brand-footer.compact .brand-footer-inner{padding:14px 12px}
.brand-footer.compact .brand-footer-head{margin-bottom:10px}
.brand-footer.compact .brand-footer-head span{font-size:9px}
.brand-footer.compact .brand-footer-head h2{font-size:13px}
.brand-footer.compact .brand-link{min-height:70px;padding:8px 6px;gap:5px}
.brand-footer.compact .brand-link img{max-width:60px;max-height:30px;padding:3px;border-radius:4px}
.brand-footer.compact .brand-link.violeta img{max-width:38px;max-height:34px}
.brand-footer.compact .brand-link small{font-size:8px}
.brand-footer.compact .brand-footer-note{font-size:9.5px;margin:8px 0 0}

*[hidden]{display:none!important}
