:root{--ink:#173a31;--nav:#143c33;--muted:#718179;--line:#dfe4dc;--bg:#f6f7f3;--blue:#3173c7;--green:#2e8562;--yellow:#ba8521;--purple:#7752a5;--lime:#d9e963}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Manrope,Arial}.side{width:256px;position:fixed;inset:0 auto 0 0;background:var(--nav);padding:26px 16px;color:#fff;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;font-size:16px;font-weight:800;line-height:1.05;padding:5px 8px}.brand i{background:var(--lime);border-radius:50%;color:var(--nav);font:italic 22px Georgia;width:32px;height:32px;text-align:center;padding-top:3px}.brand b{font-size:11px;color:var(--lime);letter-spacing:1.2px}.side small{font-size:9px;letter-spacing:1.5px;color:#91a89f;font-weight:800;margin:28px 10px 7px}.side nav button{display:block;width:100%;text-align:left;border:0;background:none;color:#c8d7d1;padding:11px 12px;border-radius:7px;font:700 12px Manrope;cursor:pointer}.side nav button:hover,.side nav .active{background:#295349;color:#fff}.help{margin-top:auto;border-top:1px solid #42665d;padding:15px 10px;font-size:16px}.help span{display:inline-block;font-size:10px}.help em{display:block;font-style:normal;font-size:9px;color:#92aaa1}main{margin-left:256px;padding:25px 43px 65px;max-width:1500px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;font-size:11px;color:var(--muted)}header p{margin:0}.avatar{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#c9e1d4;color:var(--green);margin-left:10px;font-style:normal;font-weight:800}.page{display:none}.page.active{display:block}.hero{background:linear-gradient(125deg,#153d34,#286652);padding:42px 47px;color:#fff;border-radius:17px;display:grid;grid-template-columns:1.35fr .65fr;gap:40px;overflow:hidden}.hero label,.card label{display:inline-block;border-radius:20px;padding:5px 8px;font-size:9px;font-weight:800;letter-spacing:.7px}.hero label{background:#ffffff18;color:#dceea2}.hero small{display:block;font-size:9px;letter-spacing:1.2px;color:#c2d9cf;margin:18px 0 8px}.hero h1,h1,h2,h3{font-family:'Playfair Display',Georgia,serif}.hero h1{font-size:43px;line-height:1.05;margin:0;letter-spacing:-1.5px}.hero h1 em{color:var(--lime)}.hero>div>p{font-size:13px;line-height:1.65;color:#d2e0d9;max-width:600px}.hero article{align-self:center;background:#ffffff12;border:1px solid #ffffff23;padding:20px;border-radius:12px}.hero article small{margin:0;color:#bed6cb}.hero h2{font:700 20px Manrope;margin:8px 0 12px}.progress{height:8px;border-radius:20px;background:#e2e8df;overflow:hidden}.progress i{display:block;height:100%;background:var(--green)}.pale{background:#ffffff32}.pale i{background:var(--lime)}.hero article p{display:flex;justify-content:space-between;font-size:9px}.hero article em{font-size:9px;color:#bfd7cc;font-style:normal}.steps{display:flex;align-items:center;margin-top:20px}.steps b{width:20px;height:20px;border-radius:50%;background:#fff;color:var(--nav);display:grid;place-items:center;font-size:9px}.steps b:first-child{background:var(--lime)}.steps i{height:2px;flex:1;background:#ffffff33}.light,button{border:0;border-radius:7px;padding:11px 15px;background:var(--blue);color:#fff;font:800 11px Manrope;cursor:pointer}.light{background:var(--lime);color:var(--nav)}.intro{margin-top:28px}.intro h2{font:700 24px Manrope;margin:0}.intro p,.sub{font-size:12px;color:var(--muted);margin:5px 0 18px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:19px;box-shadow:0 2px 10px #183b3007}.levels .card{min-height:255px;position:relative}.blue{background:#eaf3ff;color:#2962ac}.green{background:#e8f6ee;color:#277451}.yellow{background:#fff4db;color:#95680f}.purple{background:#f2ecfa;color:#6d4997}.levels h3{font-size:25px;margin:12px 0 6px}.levels p{font-size:11px;color:var(--muted);line-height:1.6;margin:0}.levels aside{font-size:9px;color:#55736a;background:#f3f6f1;padding:8px;margin-top:14px;border-radius:5px}.levels button{position:absolute;left:19px;right:19px;bottom:18px}.stats{margin-top:14px}.stats .card{min-height:120px;display:flex;flex-direction:column}.stats span,.stats small{font-size:10px;color:var(--muted)}.stats strong{font-size:26px;margin:8px 0 auto}.stats strong i{font-size:13px;color:#9ba7a0;font-style:normal}.back{background:none;color:var(--green);padding:0;margin-bottom:12px}.overall{max-width:720px;margin:22px 0}.overall strong{float:right}.overall .progress{margin:12px 0 8px}.overall small{font-size:10px;color:var(--muted)}.resources{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.resources h3{font-size:20px;margin:8px 0}.resources p{font-size:11px;color:var(--muted);line-height:1.6}.resources a{font-size:10px;font-weight:800;color:var(--green)}.quiz{max-width:820px}.quiz h2{font:700 23px Manrope}.quiz>p{font-size:12px;color:var(--muted);line-height:1.7}.option{display:block;width:100%;text-align:left;background:#fff;color:var(--ink);border:1px solid var(--line);margin:6px 0}.option:hover{border-color:var(--blue);background:#f1f6ff}.option.correct{background:#e8f7ed;border-color:var(--green)}.option.wrong{background:#fff0ef;border-color:#d16a5a}.quiz #feed{font-weight:700;color:var(--green)}.measures{max-width:700px;margin-top:20px}.measures h2,.badges h2{font:700 20px Manrope}.measures p{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:12px 0;margin:0;font-size:11px}.measures span{color:var(--muted)}.twocol{display:grid;grid-template-columns:1.1fr .9fr;gap:15px;max-width:860px}.badges>span{display:inline-flex;width:100px;height:100px;margin:5px;border:1px solid var(--line);border-radius:9px;align-items:center;justify-content:center;flex-direction:column;font-size:25px;color:var(--green)}.badges b{font:700 10px Manrope;color:var(--ink);margin-top:7px}.locked{opacity:.35;filter:grayscale(1)}@media(max-width:950px){.grid{grid-template-columns:repeat(2,1fr)}.hero{grid-template-columns:1fr}.resources{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.side{position:static;width:100%;padding:17px}.side nav{display:grid;grid-template-columns:repeat(2,1fr)}.side small,.help{display:none}main{margin-left:0;padding:20px}.grid,.resources,.twocol{grid-template-columns:1fr}.hero{padding:30px 25px}.hero article{display:none}.hero h1{font-size:35px}}
.challenges-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;align-items:start}.challenges-grid .quiz{max-width:none}.quiz .feed{font-weight:700;color:var(--green);margin-top:8px;min-height:18px}.option:disabled{cursor:default}@media(max-width:900px){.challenges-grid{grid-template-columns:1fr}}.resource-link{display:inline-block;border:0;border-radius:7px;padding:11px 15px;background:var(--blue);color:#fff;font:800 11px Manrope;cursor:pointer;text-decoration:none}.lib-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.lib-filter{background:#eef2ee;color:var(--muted);padding:8px 14px;border-radius:20px;font:800 11px Manrope;border:0;cursor:pointer}.lib-filter.active{background:var(--green);color:#fff}.modal-overlay{position:fixed;inset:0;background:rgba(10,20,15,.6);display:flex;align-items:center;justify-content:center;z-index:999}.modal-overlay.hidden{display:none}.modal-card{background:#fff;border-radius:16px;padding:32px 30px;max-width:380px;width:90%;box-shadow:0 20px 60px rgba(0,0,0,.25);text-align:center}.modal-card h2{font:700 20px 'Playfair Display',Georgia,serif;margin:0 0 10px;color:var(--ink)}.modal-card p{font-size:12px;color:var(--muted);margin:0 0 18px;line-height:1.6}.modal-card input{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:9px;font:600 14px Manrope;margin-bottom:14px;box-sizing:border-box}.modal-card input:focus{outline:none;border-color:var(--blue)}.modal-card button{width:100%}.cert-actions{display:flex;gap:10px;margin-top:4px;flex-wrap:wrap}
/* Módulo, nivel y estados */
#leveldata>label,#moduledata>label{display:inline-block;border-radius:20px;padding:5px 10px;font-size:9px;font-weight:800;letter-spacing:.7px}
#leveldata h1,#moduledata h1{font-size:34px;letter-spacing:-1px;margin:12px 0 4px}
.module-card{max-width:820px;padding:28px 30px}
.module-card h2{font:700 17px Manrope;margin:26px 0 6px}
.module-card h2:first-child{margin-top:0}
.module-card>p,.video-resource p{font-size:12px;color:var(--muted);line-height:1.7;margin:0 0 12px}
.video-resource iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;border-radius:10px;background:#0e2a23;margin:10px 0 12px}
.module-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
button.secondary{background:#eef2ee;color:var(--ink)}
button.secondary:hover{background:#e2e8df}
button:disabled{opacity:.5;cursor:not-allowed}
.resource-link:hover,.light:hover,button:not(:disabled):not(.option):not(.secondary):not(.back):not(.lib-filter):hover{filter:brightness(1.08)}
.tiny{font-size:10px;color:var(--muted);margin:0 0 14px}
.levels .card.locked button{opacity:1}
@media(max-width:650px){.module-card{padding:20px}#leveldata h1,#moduledata h1{font-size:28px}}

/* Contenido de módulo */
.module-card .keys{margin:0 0 6px;padding-left:20px;font-size:12px;line-height:1.7;color:#3e5a51}
.module-card .keys li{margin:5px 0}
.module-card .note{border-radius:0 9px 9px 0;padding:13px 16px;margin:18px 0}
.module-card .note b{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;margin-bottom:4px}
.module-card .note p{margin:0;font-size:12px;line-height:1.7}
.module-card .example{background:#f2f7ef;border-left:4px solid var(--lime);color:#31584b}
.module-card .pitfall{background:#fff6e6;border-left:4px solid #e0a53a;color:#7a5613}

/* Manual de usuario */
#manual{max-width:820px}
.manual-quick{background:var(--nav);color:#fff;border:0;margin-bottom:18px}
.manual-quick small{font-size:9px;letter-spacing:1.5px;font-weight:800;color:#c2d9cf}
.manual-quick ol{list-style:none;counter-reset:q;margin:14px 0 0;padding:0}
.manual-quick li{counter-increment:q;display:grid;grid-template-columns:30px 1fr;column-gap:12px;padding:10px 0;border-top:1px solid #ffffff1f}
.manual-quick li:first-child{border-top:0}
.manual-quick li::before{content:counter(q);grid-row:span 2;width:26px;height:26px;border-radius:50%;background:var(--lime);color:var(--nav);display:grid;place-items:center;font:800 11px Manrope}
.manual-quick li b{font-size:13px}
.manual-quick li span{font-size:11px;color:#c8d7d1;line-height:1.5}
.manual-toc{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.manual-toc button{background:#eef2ee;color:var(--green);padding:8px 13px;border-radius:20px}
.manual-toc button:hover{background:#e0eee5}
.manual-sec{margin-bottom:14px;padding:24px 28px;scroll-margin-top:18px}
.manual-sec h2{font:700 20px Manrope;margin:10px 0 8px}
.manual-sec p,.manual-sec li,.manual-sec dd,.manual-sec details p{font-size:12px;line-height:1.75;color:#3e5a51}
.manual-sec p{margin:0 0 10px}
.manual-sec ul,.manual-sec ol{margin:0 0 10px;padding-left:20px}
.manual-sec li{margin:5px 0}
.manual-sec dl{margin:0 0 12px;display:grid;grid-template-columns:200px 1fr;gap:1px 14px}
.manual-sec dt{font-size:12px;font-weight:800;padding:8px 0;border-top:1px solid var(--line)}
.manual-sec dd{margin:0;padding:8px 0;border-top:1px solid var(--line)}
.manual-warn{background:#fff9ec;border-color:#f0dcae}
.manual-sec details{border-top:1px solid var(--line);padding:10px 0}
.manual-sec summary{cursor:pointer;font-size:12px;font-weight:800;color:var(--ink)}
.manual-sec details p{margin:8px 0 0}
@media(max-width:650px){.manual-sec{padding:20px}.manual-sec dl{grid-template-columns:1fr}.manual-sec dt{border-bottom:0;padding-bottom:0}.manual-sec dd{border-top:0;padding-top:2px}}

/* Mi perfil */
.usermenu{background:none;color:inherit;font:inherit;font-size:11px;padding:4px 4px 4px 10px;border-radius:30px;display:inline-flex;align-items:center;gap:0}
.usermenu:hover{background:#e9eee9}
.usermenu:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.usermenu .avatar{margin-left:10px}
.profile-card{text-align:left;max-width:420px}
.profile-card h2{text-align:center}
.profile-card .field{display:block;font-size:11px;font-weight:800;color:var(--ink);margin:0 0 6px}
.profile-msg{min-height:16px;margin:8px 0 0!important;font-size:11px!important;text-align:center}
.profile-msg.ok{color:var(--green)}
.profile-msg.err{color:#b4412f}
.profile-danger{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.profile-danger h3{font:700 15px Manrope;margin:0 0 6px}
.profile-danger p{margin:0 0 12px}
button.danger{background:#b4412f}
.reset-confirm{background:#fff3f1;border:1px solid #f0c9c3;border-radius:10px;padding:14px}
.reset-confirm p{color:#8a2f21;margin:0 0 10px}
.reset-confirm button+button,.close-profile{margin-top:8px}
.close-profile{margin-top:16px}
[hidden]{display:none!important}

.profile-card{max-height:92vh;overflow-y:auto}

/* Ayuda */
.side .help{display:block;width:100%;background:none;border-radius:0;text-align:left;color:#fff;font:inherit;font-size:16px;cursor:pointer}
.side .help:hover{background:#1c473d}
.side .help:focus-visible{outline:2px solid var(--lime);outline-offset:-2px}
.help-intro{text-align:center}
.profile-card select,.profile-card textarea{width:100%;padding:11px 14px;border:1.5px solid var(--line);border-radius:9px;font:600 13px Manrope;margin-bottom:14px;box-sizing:border-box;background:#fff;color:var(--ink)}
.profile-card textarea{resize:vertical;min-height:90px}
.profile-card select:focus,.profile-card textarea:focus{outline:none;border-color:var(--blue)}
#helpModal .secondary{margin-top:8px}
.help-fallback{font-size:11px!important;text-align:center;margin:12px 0 0!important}
.linkbtn{display:inline;width:auto!important;background:none;color:var(--blue);padding:0;font:800 11px Manrope;text-decoration:underline}
@media(max-width:650px){.side .help{display:block;margin-top:12px;padding:12px 10px;border-top:1px solid #42665d}}

/* Proyecto final Champion */
#project{max-width:820px}
#projectdata>label{display:inline-block;border-radius:20px;padding:5px 10px;font-size:9px;font-weight:800;letter-spacing:.7px}
#projectdata h1{font-size:34px;letter-spacing:-1px;margin:12px 0 4px}
.pj-status{margin-bottom:16px}
.pj-status>div:first-child{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.pj-status b{font-size:14px}
.pj-status small{font-size:10px;color:var(--muted)}
.pj-reqs{list-style:none;margin:14px 0 0;padding:0;display:flex;gap:8px;flex-wrap:wrap}
.pj-reqs li{font-size:10px;font-weight:800;padding:6px 10px;border-radius:20px;background:#f3f0e6;color:#8a6a1c}
.pj-reqs li.ok{background:#e8f6ee;color:#277451}
.pj-sec{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 26px;margin-bottom:14px;box-shadow:0 2px 10px #183b3007}
.pj-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.pj-head i{width:26px;height:26px;border-radius:50%;background:var(--nav);color:var(--lime);display:grid;place-items:center;font:800 11px Manrope;font-style:normal;flex:none}
.pj-head h2{font:700 17px Manrope;margin:0;flex:1}
.pj-check{font-size:10px;font-weight:800;color:#a08a55}
.pj-check.done{color:var(--green)}
.pj-field{margin-bottom:14px}
.pj-field>label{display:block;font-size:12px;font-weight:800;margin-bottom:3px}
.pj-field>small{display:block;font-size:11px;color:var(--muted);line-height:1.5;margin-bottom:6px}
.pj-sec input,.pj-sec select,.pj-sec textarea{width:100%;padding:11px 14px;border:1.5px solid var(--line);border-radius:9px;font:600 13px Manrope;box-sizing:border-box;background:#fff;color:var(--ink)}
.pj-sec textarea{resize:vertical;line-height:1.55}
.pj-sec input:focus,.pj-sec select:focus,.pj-sec textarea:focus{outline:none;border-color:var(--blue)}
.pj-hint{font-size:11px;color:var(--muted);line-height:1.6;margin:0 0 12px}
.pj-mrow{display:grid;grid-template-columns:1fr 160px;gap:10px;margin-bottom:10px}
.pj-mhead{margin-bottom:4px}
.pj-mhead span{font-size:11px;font-weight:800}
.pj-submit{margin-top:6px}
.pj-why{font-size:12px;font-weight:700;color:#8a6a1c;margin:0 0 12px}
.pj-why.ok{color:var(--green)}
.pj-note{font-size:11px;color:var(--muted);line-height:1.6;margin:12px 0 0}
.pj-actions{display:flex;gap:10px;flex-wrap:wrap}
.pj-next{margin:18px 0 14px}
.pj-next h2,.pj-summary h2{font:700 18px Manrope;margin:0 0 8px}
.pj-next ol{font-size:12px;line-height:1.8;color:#3e5a51;margin:0 0 14px;padding-left:20px}
.pj-summary{margin-bottom:14px}
.pj-summary dl{margin:0;display:grid;grid-template-columns:170px 1fr;gap:0 16px}
.pj-summary dt{font-size:11px;font-weight:800;padding:10px 0;border-top:1px solid var(--line)}
.pj-summary dd{margin:0;font-size:12px;line-height:1.7;color:#3e5a51;padding:10px 0;border-top:1px solid var(--line)}
.pj-foot{align-items:center}
@media(max-width:650px){#projectdata h1{font-size:28px}.pj-sec{padding:18px}.pj-mrow{grid-template-columns:1fr}.pj-mhead{display:none}.pj-summary dl{grid-template-columns:1fr}.pj-summary dt{border-bottom:0;padding-bottom:0}.pj-summary dd{border-top:0;padding-top:2px}}

.usermenu{white-space:nowrap}
.usermenu .user-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;display:inline-block;vertical-align:bottom;margin-left:4px}
header p{min-width:0}

/* Reporte de Uso */
.side{overflow-y:auto}
#report{max-width:1100px}
.rp{background:var(--nav);border-radius:16px;padding:20px;color:#fff;margin-top:6px}
.rp *{box-sizing:border-box}
.rp-demo{display:flex;gap:12px;align-items:flex-start;background:#ffffff14;border:1px dashed #ffffff40;border-radius:11px;padding:11px 14px;margin-bottom:14px}
.rp-demo b{flex:none;background:var(--lime);color:var(--nav);font-size:9px;letter-spacing:.7px;padding:4px 9px;border-radius:20px}
.rp-demo span{font-size:11px;line-height:1.6;color:#c8d7d1}
.rp-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}
.rp-g2{display:grid;grid-template-columns:1.15fr .85fr;gap:12px;margin-bottom:12px}
.rp-hi{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}
.rp-card{background:#1d4d42;border:1px solid #2c6355;border-radius:12px;padding:15px 16px;min-width:0}
.rp-lbl{font-size:10px;letter-spacing:.7px;font-weight:800;color:#a9c3b9;text-transform:uppercase}
.rp-big{font-size:32px;font-weight:700;line-height:1.1;margin:8px 0 3px;color:#fff;font-family:Manrope,Arial}
.rp-big.rp-sm{font-size:17px;line-height:1.3;margin:10px 0 4px}
.rp-note{font-size:11px;color:#a9c3b9;line-height:1.5}
.rp-up{color:var(--lime);font-weight:800}
.rp-donut{display:flex;align-items:center;gap:12px;margin-top:8px}
.rp-dl div{display:flex;align-items:center;gap:7px;font-size:11px;margin-bottom:5px;color:#dbe8e2}
.rp-dl i{width:9px;height:9px;border-radius:3px;display:inline-block}
.rp-row{display:grid;grid-template-columns:150px 1fr 40px;align-items:center;gap:10px;margin-top:11px}
.rp-row>span:first-child{font-size:12px;color:#dbe8e2}
.rp-track{height:10px;background:var(--nav);border-radius:6px;overflow:hidden}
.rp-track i{display:block;height:100%;border-radius:6px;background:var(--lime)}
.rp-val{font-size:12px;font-weight:800;text-align:right}
.rp-you{font-style:normal;font-size:9px;font-weight:800;background:var(--lime);color:var(--nav);border-radius:10px;padding:2px 7px;margin-left:4px}
.rp-cols{display:flex;align-items:flex-end;gap:9px;height:112px;margin-top:14px}
.rp-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;height:100%}
.rp-col b{font-size:11px;font-weight:800}
.rp-col i{display:block;width:100%;border-radius:5px 5px 0 0;background:#5fbf95}
.rp-col em{font-style:normal;font-size:10px;color:#a9c3b9}
.rp-heat{margin-top:12px}
.rp-hrow{display:grid;grid-template-columns:80px repeat(6,1fr);gap:6px;margin-bottom:6px;align-items:center}
.rp-hrow>span{font-size:11px;color:#dbe8e2}
.rp-cell{height:34px;border-radius:7px;display:grid;place-items:center;font-size:11px;font-weight:800;cursor:default}
.rp-cell.mine{box-shadow:0 0 0 2px #fff inset}
.rp-legend{display:flex;gap:7px;align-items:center;flex-wrap:wrap;font-size:10px;color:#a9c3b9;margin-top:10px}
.rp-legend>i{display:block;width:60px;height:7px;border-radius:4px;background:linear-gradient(90deg,rgba(217,233,99,.15),#d9e963)}
.rp-mine-key{display:inline-flex;align-items:center;gap:6px;margin-left:10px}
.rp-mine-key i{display:block;width:14px;height:14px;border-radius:4px;background:#6d8a2a;box-shadow:0 0 0 2px #fff inset}
.rp-me{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;background:var(--lime);color:var(--nav);border-radius:12px;padding:15px 18px}
.rp-me>div:first-child{flex:1;min-width:240px}
.rp-me b{display:block;font-size:14px;margin-bottom:2px}
.rp-me span{font-size:12px;line-height:1.55}
.rp-bar{flex:1;min-width:200px;max-width:340px;height:12px;background:#143c3333;border-radius:7px;position:relative;overflow:hidden}
.rp-bar i{position:absolute;left:0;top:0;height:100%;background:var(--nav);border-radius:7px}
.rp-band{position:absolute;top:0;height:100%;background:#2e856255;border:1px solid #143c33}
.rp-upd{font-size:10px;color:#a9c3b9;margin:12px 0 0;text-align:right}
@media(max-width:950px){.rp-kpis{grid-template-columns:repeat(2,1fr)}.rp-g2{grid-template-columns:1fr}}
@media(max-width:650px){.rp{padding:14px}.rp-hi{grid-template-columns:1fr}.rp-row{grid-template-columns:110px 1fr 34px}.rp-hrow{grid-template-columns:62px repeat(6,1fr);gap:4px}.rp-demo{flex-direction:column;gap:8px}.rp-big{font-size:26px}}

.rp-donut svg{flex:none}
@media(max-width:650px){.rp-row{grid-template-columns:1fr auto;grid-template-areas:"l v" "t t";gap:5px 10px}.rp-row>span:first-child{grid-area:l}.rp-track{grid-area:t}.rp-val{grid-area:v}.rp-kpis{gap:10px}}

@media(max-width:650px){.rp-kpis .rp-card:nth-child(3){grid-column:1/-1}}

.rp-me>div:first-child{min-width:min(240px,100%)}
.rp-bar{min-width:min(200px,100%)}
@media(max-width:650px){.rp-bar{max-width:none;width:100%;flex-basis:100%}}

/* Sílabo del programa */
#syllabus{max-width:980px}
.ghost{background:transparent;border:1.5px solid #ffffff59;color:#fff;margin-left:8px}
.ghost:hover{background:#ffffff1a}
.sy-hero{background:linear-gradient(125deg,#153d34,#286652);color:#fff;border-radius:16px;padding:28px 30px;margin:6px 0 14px}
.sy-hero h2{font:700 22px Manrope;margin:0 0 8px}
.sy-hero>p{font-size:13px;line-height:1.7;color:#d2e0d9;max-width:680px;margin:0}
.sy-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:20px 0 14px}
.sy-stats div{background:#ffffff14;border:1px solid #ffffff26;border-radius:11px;padding:11px 10px;text-align:center}
.sy-stats b{display:block;font:700 20px Manrope;color:var(--lime)}
.sy-stats span{font-size:10px;color:#c2d9cf}
.sy-hero .sy-pace{font-size:11px;color:#bcd3c8;max-width:none}
.sy-info{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.sy-info h3{font:700 14px Manrope;margin:0 0 6px}
.sy-info p{font-size:12px;line-height:1.65;color:#3e5a51;margin:0}
.sy-level{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:12px;box-shadow:0 2px 10px #183b3007}
.sy-level>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:18px 22px}
.sy-level>summary::-webkit-details-marker{display:none}
.sy-level>summary:focus-visible{outline:2px solid var(--blue);outline-offset:-2px;border-radius:14px}
.sy-level>summary::after{content:"＋";font-size:18px;color:var(--muted);margin-left:2px;flex:none}
.sy-level[open]>summary::after{content:"－"}
.sy-level>summary label{display:inline-block;border-radius:20px;padding:5px 9px;font-size:9px;font-weight:800;letter-spacing:.7px;flex:none}
.sy-sum{flex:1;min-width:0}
.sy-sum h2{font-size:22px;margin:0}
.sy-sum p{font-size:12px;color:var(--muted);line-height:1.55;margin:3px 0 0}
.sy-side{text-align:right;flex:none}
.sy-side small{display:block;font-size:10px;color:var(--muted);margin-top:5px}
.sy-status{display:inline-block;font-size:9px;font-weight:800;letter-spacing:.6px;padding:5px 9px;border-radius:20px;background:#eef0ee;color:#6b7a73}
.sy-status.green{background:#e8f6ee;color:#277451}
.sy-status.blue{background:#eaf3ff;color:#2962ac}
.sy-list{list-style:none;margin:0;padding:0 22px 4px;border-top:1px solid var(--line)}
.sy-mod{display:grid;grid-template-columns:34px 1fr auto;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
.sy-mod:last-child{border-bottom:0}
.sy-num{width:28px;height:28px;border-radius:50%;background:#e8f6ee;color:#277451;display:grid;place-items:center;font:800 11px Manrope;font-style:normal;margin-top:2px}
.sy-num.done{background:var(--green);color:#fff}
.sy-mod.is-locked .sy-num{background:#eef0ee;color:#8a9790}
.sy-body h4{font:700 15px Manrope;margin:0 0 5px}
.sy-body p{margin:0 0 5px;font-size:12px;line-height:1.65;color:#3e5a51}
.sy-body .sy-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.sy-body .sy-prac{font-size:11px;color:var(--muted)}
.sy-body .sy-why{font-size:11px;color:#8a6a1c;font-weight:700}
.sy-mod.is-locked .sy-body h4,.sy-mod.is-locked .sy-out{opacity:.75}
.sy-act{align-self:center}
.sy-lock{font-size:10px;font-weight:800;color:#8a9790;white-space:nowrap}
.sy-eval{margin:0;padding:12px 22px;background:#f6f8f4;border-radius:0 0 14px 14px;font-size:11px;color:#55736a;border-top:1px solid var(--line)}
.sy-cta{margin:18px 0 6px}
.outcome{font-size:11px;line-height:1.6;color:#3e5a51;margin:0 0 6px}
@media(max-width:950px){.sy-stats{grid-template-columns:repeat(3,1fr)}.sy-info{grid-template-columns:1fr}}
@media(max-width:650px){.sy-hero{padding:22px 18px}.sy-stats{grid-template-columns:repeat(2,1fr)}.sy-level>summary{flex-wrap:wrap;padding:16px}.sy-side{order:3;width:100%;text-align:left;display:flex;align-items:center;gap:10px}.sy-side small{margin:0}.sy-list{padding:0 14px 4px}.sy-mod{grid-template-columns:30px 1fr}.sy-act{grid-column:2}.sy-eval{padding:12px 16px}.ghost{margin:8px 0 0}}

@media(max-width:650px){.sy-level>summary{display:grid;grid-template-columns:1fr auto;gap:8px 10px;align-items:center}.sy-level>summary label{grid-area:1/1;justify-self:start}.sy-level>summary::after{grid-area:1/2}.sy-sum{grid-area:2/1/3/3}.sy-side{grid-area:3/1/4/3;order:0}}

/* ───── Retoque visual ───── */

/* Botones «Volver»: verde con texto blanco */
.back{background:var(--green);color:#fff;padding:10px 16px;border-radius:9px;margin-bottom:16px;display:inline-flex;align-items:center;gap:6px;font:800 12px Manrope;box-shadow:0 2px 8px #2e856240;transition:background .15s,transform .15s}
.back:hover{background:#26724f;transform:translateX(-2px)}
.back:focus-visible{outline:3px solid #2e856255;outline-offset:2px}

/* Biblioteca de recursos */
.resources a.resource-link{color:#fff;font-size:12px}
.lib-bar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:6px 0 22px}
.lib-search{position:relative;flex:1 1 260px;max-width:340px}
.lib-search span{position:absolute;left:14px;top:50%;transform:translateY(-52%);color:var(--muted);font-size:16px;pointer-events:none}
.lib-search input{width:100%;padding:11px 14px 11px 38px;border:1.5px solid var(--line);border-radius:30px;font:600 13px Manrope;background:#fff;color:var(--ink)}
.lib-search input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #2e856222}
.lib-bar .lib-filters{margin:0}
.lib-filter{background:#fff;color:var(--ink);border:1.5px solid var(--line);padding:8px 14px;display:inline-flex;gap:7px;align-items:center}
.lib-filter em{font-style:normal;font-size:10px;background:#eef2ee;color:var(--muted);border-radius:10px;padding:1px 7px}
.lib-filter:hover{border-color:var(--green)}
.lib-filter.active{background:var(--green);color:#fff;border-color:var(--green)}
.lib-filter.active em{background:#ffffff33;color:#fff}
.lvl-0{--accent:#3173c7}.lvl-1{--accent:#2e8562}.lvl-2{--accent:#ba8521}.lvl-3{--accent:#7752a5}
.lib-level{grid-column:1/-1;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;padding-bottom:10px;border-bottom:2px solid var(--line)}
.lib-level:first-child{margin-top:0}
.lib-level h2{font:700 20px Manrope;margin:0}
.lib-level p{margin:0;font-size:12px;color:var(--muted);flex:1 1 300px}
.lib-dot{width:12px;height:12px;border-radius:50%;background:var(--accent)}
.lib-card{display:flex;flex-direction:column;border-top:4px solid var(--accent);padding:20px;transition:transform .15s,box-shadow .15s}
.lib-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px #183b3014}
.lib-top{display:flex;align-items:center;gap:8px}
.lib-n{width:34px;height:34px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font:800 12px Manrope}
.lib-lvl{font-size:9px;font-weight:800;letter-spacing:.8px;color:var(--accent)}
.lib-done{margin-left:auto;font-size:9px;font-weight:800;color:#277451;background:#e8f6ee;border-radius:20px;padding:4px 8px}
.resources .lib-card h3{font-size:19px;margin:14px 0 6px;line-height:1.25}
.resources .lib-card p{flex:1;margin:0 0 16px;font-size:12px;line-height:1.65;color:#55736a}
.lib-btn{align-self:flex-start;background:var(--green)}
.lib-btn:hover{background:#26724f}
.lib-btn span{margin-left:4px}
.lib-empty{grid-column:1/-1;text-align:center;padding:40px 20px;background:#fff;border:1px dashed var(--line);border-radius:14px}
.lib-empty p{font-size:12px;color:var(--muted);margin:6px 0 16px}
@media(max-width:650px){.lib-search{max-width:none}}

/* Logo de Agros: aparece solo si el archivo existe en /assets (si no, se mantiene la marca actual) */
.brand .brand-logo{display:none;height:40px;width:auto}
.brand .brand-logo.ok{display:block}
.brand .brand-logo.ok+i{display:none}
.brand .bn{display:block;font-style:normal}
.brand b{display:block}
.brand .brand-logo.ok~span .bn{display:none}
.hero-logo{display:none;height:56px;width:auto;margin-bottom:16px}
.hero-logo.ok{display:block}
.modal-logo{display:none;height:64px;width:auto;margin:0 auto 14px}
.modal-logo.ok{display:block}

.brand .brand-logo{height:54px}
.hero-logo{height:88px;margin-bottom:18px}
.modal-logo{height:96px}
@media(max-width:650px){.hero-logo{height:72px}}

/* Anillo de progreso */
.hero-ring{text-align:center}
.hero-ring small{display:block}
.ring-wrap{position:relative;width:136px;height:136px;margin:14px auto 12px}
.ring{width:100%;height:100%;display:block}
.ring-bg{fill:none;stroke:#ffffff26;stroke-width:9}
.ring-fg{fill:none;stroke:var(--lime);stroke-width:9;stroke-linecap:round;stroke-dasharray:326.73;stroke-dashoffset:326.73;transition:stroke-dashoffset 1.1s cubic-bezier(.22,.8,.3,1)}
.ring-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring-c b{font:700 32px Manrope;color:#fff;line-height:1}
.ring-c span{font-size:10px;color:#c2d9cf;margin-top:4px}
.hero .hero-ring p.ring-now{display:block;font-size:11px;margin:0 0 12px;color:#dceea2}
.hero .hero-ring p.ring-now b{display:block;font-size:9px;letter-spacing:1px;color:#bed6cb;margin-bottom:2px;text-transform:uppercase}
.hero-ring .ring-next{width:100%;white-space:normal;line-height:1.4;padding:12px 14px;font-size:12px}
.hero-ring .steps{margin-top:18px}
.hero .steps b{background:#ffffff2e;color:#fff;font-size:10px}
.hero .steps b.done{background:var(--lime);color:var(--nav)}
.hero .steps b.cur{background:#fff;color:var(--nav);box-shadow:0 0 0 3px #ffffff40}
@media(max-width:650px){.hero article.hero-ring{display:block;margin-top:6px}}

/* Celebraciones */
.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:1100}
.confetti i{position:absolute;top:-24px;border-radius:2px;opacity:.95;animation:cfall linear forwards}
@keyframes cfall{to{transform:translate(var(--x),108vh) rotate(var(--r))}}
.celebrate{z-index:1050;animation:cfade .2s}
.cel-card{text-align:center;max-width:400px;animation:cpop .38s cubic-bezier(.2,1.3,.4,1)}
.cel-icon{font-size:58px;line-height:1;margin-bottom:8px}
.cel-card h2{font:700 25px 'Playfair Display',Georgia,serif;margin:0 0 10px}
.cel-card p{font-size:13px;line-height:1.7}
.cel-stat{display:inline-block;background:#e8f6ee;color:#277451;font-weight:800;font-size:11px;padding:6px 13px;border-radius:20px;margin:0 0 18px}
.cel-card .secondary{margin-top:8px}
@keyframes cfade{from{opacity:0}to{opacity:1}}
@keyframes cpop{from{opacity:0;transform:scale(.85) translateY(14px)}to{opacity:1;transform:none}}
#toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,30px);opacity:0;pointer-events:none;background:var(--nav);color:#fff;border-radius:14px;padding:12px 12px 12px 12px;display:flex;align-items:center;gap:12px;box-shadow:0 12px 34px #0a1f1a55;z-index:1060;width:max-content;max-width:min(92vw,470px);transition:transform .3s,opacity .3s}
#toast.show{transform:translate(-50%,0);opacity:1;pointer-events:auto}
#toast .t-ic{width:30px;height:30px;border-radius:50%;background:var(--lime);color:var(--nav);display:grid;place-items:center;font-weight:800;flex:none}
#toast b{display:block;font-size:13px}
#toast small{display:block;font-size:11px;color:#b9d0c6;margin-top:1px}
#toast button{background:var(--lime);color:var(--nav);padding:9px 12px;font-size:11px;white-space:nowrap}
#toast .t-x{background:none;color:#b9d0c6;padding:4px 6px;font-size:18px;line-height:1}
@media(max-width:650px){#toast{flex-wrap:wrap;bottom:14px}}
@media(prefers-reduced-motion:reduce){.ring-fg,#toast{transition:none}.celebrate,.cel-card{animation:none}}

/* Rachas y logros */
.streak-strip{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 20px;margin-top:14px;box-shadow:0 2px 10px #183b3007}
.ss-flame,.ah-flame{font-size:32px;line-height:1}
.ss-flame.off,.ah-flame.off{filter:grayscale(1);opacity:.4}
.ss-main{flex:1 1 230px;min-width:0}
.ss-main b{display:block;font-size:15px}
.ss-main span{font-size:12px;color:var(--muted);line-height:1.5}
.ss-week{display:flex;gap:7px}
.wd{width:26px;text-align:center}
.wd i{display:grid;place-items:center;width:24px;height:24px;margin:0 auto;border-radius:50%;background:#eef2ee;color:#fff;font-style:normal;font-size:11px;font-weight:800}
.wd.on i{background:var(--green)}
.wd.today i{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--green)}
.wd.fut i{opacity:.5}
.wd em{display:block;font-style:normal;font-size:9px;color:var(--muted);margin-top:4px;font-weight:800}
.ss-ach{text-align:center;padding:0 4px}
.ss-ach b{display:block;font-size:18px}
.ss-ach span{font-size:10px;color:var(--muted)}
#achievements{max-width:980px}
.ach-hero{background:linear-gradient(125deg,#153d34,#286652);color:#fff;border-radius:16px;padding:24px 28px;display:grid;grid-template-columns:auto 1fr auto;gap:8px 20px;align-items:center;margin:6px 0 14px}
.ah-flame{font-size:52px}
.ah-txt h2{font:700 24px Manrope;margin:0 0 4px}
.ah-txt p{margin:0;font-size:12px;line-height:1.6;color:#d2e0d9}
.ah-stats{display:flex;gap:10px}
.ah-stats div{background:#ffffff14;border:1px solid #ffffff26;border-radius:11px;padding:10px 14px;text-align:center;min-width:76px}
.ah-stats b{display:block;font:700 22px Manrope;color:var(--lime)}
.ah-stats span{font-size:10px;color:#c2d9cf}
.ah-week{grid-column:1/-1;justify-content:center;padding-top:8px;border-top:1px solid #ffffff22}
.ah-week .wd i{background:#ffffff26}
.ah-week .wd.on i{background:var(--lime);color:var(--nav)}
.ah-week .wd.today i{box-shadow:0 0 0 2px #286652,0 0 0 4px #fff}
.ah-week .wd em{color:#c2d9cf}
.ach-progress{margin:0 0 16px}
.ach-progress b{font-size:13px}
.ach-progress .progress{margin-top:8px}
.ach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ach-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:6px;transition:transform .15s,box-shadow .15s}
.ach-card.got{border-color:#bfe0cc;background:linear-gradient(180deg,#f3faf5,#fff 60%)}
.ach-card.got:hover{transform:translateY(-3px);box-shadow:0 10px 24px #183b3014}
.ach-ic{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-size:24px;background:#e8f6ee;margin-bottom:4px}
.ach-card.lock .ach-ic{filter:grayscale(1);opacity:.55;background:#eef0ee}
.ach-card h3{font:700 15px Manrope;margin:0}
.ach-card p{margin:0;font-size:12px;line-height:1.6;color:#55736a;flex:1}
.ach-card.lock h3,.ach-card.lock p{opacity:.75}
.ach-date{font-size:10px;font-weight:800;color:#277451}
.ach-prog{font-size:10px;font-weight:700;color:var(--muted)}
.ach-card .progress{height:6px;margin-top:4px}
.ach-foot{font-size:11px;color:var(--muted);line-height:1.7;margin:18px 0 0}
.ach-foot a{color:var(--green);font-weight:800}
#achToast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,30px);opacity:0;pointer-events:none;background:#fff8e1;color:#5c4400;border:1.5px solid #e7c565;border-radius:14px;padding:11px 12px;display:flex;align-items:center;gap:12px;box-shadow:0 12px 34px #5c440033;z-index:1070;width:max-content;max-width:min(92vw,470px);transition:transform .3s,opacity .3s}
#achToast.show{transform:translate(-50%,0);opacity:1;pointer-events:auto}
#achToast .a-ic{width:34px;height:34px;border-radius:50%;background:#ffe9a8;display:grid;place-items:center;font-size:18px;flex:none}
#achToast small{display:block;font-size:9px;font-weight:800;letter-spacing:.9px;color:#9a7411}
#achToast b{display:block;font-size:13px}
#achToast button{background:#5c4400;color:#fff;padding:8px 12px;font-size:11px}
#achToast .t-x{background:none;color:#9a7411;padding:4px 6px;font-size:18px;line-height:1}
body.ach-open #toast{bottom:92px}
@media(max-width:950px){.ach-grid{grid-template-columns:repeat(2,1fr)}.ach-hero{grid-template-columns:auto 1fr}.ah-stats{grid-column:1/-1}}
@media(max-width:650px){.ach-grid{grid-template-columns:1fr}.ach-hero{padding:20px 18px}.ah-stats div{flex:1;min-width:0}.streak-strip{padding:14px 16px}.ss-week{width:100%;justify-content:space-between}.ss-ach{text-align:left}body.ach-open #toast{bottom:104px}}
@media(prefers-reduced-motion:reduce){#achToast,.ach-card{transition:none}}

/* Videos propios en los módulos */
.video-resource video{display:block;width:100%;height:auto;aspect-ratio:16/9;max-height:72vh;object-fit:contain;border-radius:10px;background:#0e2a23;margin:10px 0 12px}
.local-video{margin-top:26px}
.local-video h2{margin-top:0!important}

/* Alternativa cuando YouTube no puede incrustarse (archivo local) */
.yt-thumb{position:relative;display:block;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#0e2a23;margin:10px 0 12px}
.yt-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s,opacity .25s}
.yt-thumb:hover img{transform:scale(1.03);opacity:.9}
.yt-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:68px;height:68px;border-radius:50%;background:#d9e963ee;color:#143c33;display:grid;place-items:center;font-size:26px;padding-left:5px;box-shadow:0 6px 20px #0006;transition:transform .2s}
.yt-thumb:hover .yt-play{transform:translate(-50%,-50%) scale(1.08)}
.yt-thumb:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.video-resource .yt-note{font-size:11px;line-height:1.65;background:#fff6e6;border-left:4px solid #e0a53a;padding:10px 12px;border-radius:0 8px 8px 0;color:#7a5613;margin:0 0 12px}
@media(prefers-reduced-motion:reduce){.yt-thumb img,.yt-play{transition:none}}

/* Crédito al pie del video */
.video-resource .video-credit{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-size:11px;line-height:1.5;color:#3e5a51;margin:-2px 0 12px;padding:8px 12px;background:#f3f7ef;border-left:3px solid var(--lime);border-radius:0 8px 8px 0}
.video-credit span{font-weight:800;color:var(--green);letter-spacing:.2px}

/* Conexión con el servidor y objetivo de formación */
.sync-estado{font-size:11px;line-height:1.6;color:var(--muted);margin:14px 0 0;padding:10px 12px;background:#f3f6f1;border-radius:9px}
.sync-estado.ok{background:#e8f6ee;color:#277451}
.sync-estado.aviso{background:#fff6e6;color:#7a5613}
.obj-ops{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}
.obj-op{display:block;width:100%;text-align:left;background:#fff;color:var(--ink);border:1.5px solid var(--line);border-radius:11px;padding:14px 16px}
.obj-op:hover{border-color:var(--green);background:#f3faf5}
.obj-op b{display:block;font-size:13px;margin-bottom:3px}
.obj-op span{display:block;font-size:11px;line-height:1.55;color:var(--muted);font-weight:600}
