*{margin:0;padding:0;box-sizing:border-box}

/* ======= ICONOS LUCIDE ======= */
.icon-sm { width: 16px; height: 16px; display: inline-block; vertical-align: middle; }
.icon-md { width: 22px; height: 22px; display: inline-block; vertical-align: middle; }
.icon-lg { width: 28px; height: 28px; display: inline-block; vertical-align: middle; }
.icon-xl { width: 48px; height: 48px; display: inline-block; vertical-align: middle; }

/* ======= TEMAS DE COLORES (PREMIUM DARK MODE) ======= */
:root, [data-theme="nebula"] {
  --bg:#0A0A0E;--s1:#12121C;--s2:#1A1A2A;--bd:rgba(255,255,255,0.08);
  --c1:#7C3AED;--c1-rgb:124,58,237; /* Púrpura Premium */
  --c2:#06B6D4;--c2-rgb:6,182,212;   /* Cian Brillante */
  --c3:#F59E0B;--c3-rgb:245,158,11;
  --c4:#EC4899;--c4-rgb:236,72,153;
  --c5:#3B82F6;--c5-rgb:59,130,246;
  --c6:#8B5CF6;--c6-rgb:139,92,246;
  --c7:#14B8A6;--c7-rgb:20,184,166;
  --c8:#84CC16;--c8-rgb:132,204,22;
  --c9:#F43F5E;--c9-rgb:244,63,94;
  --tx:#F8FAFC;--mt:#94A3B8;--mo:'Space Mono',monospace;--fn:'Inter',sans-serif;--display:'Outfit',sans-serif;
}

[data-theme="aurora"] {
  --bg:#040F16;--s1:#081924;--s2:#0D2536;--bd:rgba(255,255,255,0.08);
  --c1:#0EA5E9;--c1-rgb:14,165,233;
  --c2:#10B981;--c2-rgb:16,185,129;
  --c3:#FBBF24;--c3-rgb:251,191,36;
  --c4:#F472B6;--c4-rgb:244,114,182;
  --c5:#818CF8;--c5-rgb:129,140,248;
  --c6:#A78BFA;--c6-rgb:167,139,250;
  --c7:#2DD4BF;--c7-rgb:45,212,191;
  --c8:#A3E635;--c8-rgb:163,230,53;
  --c9:#FB923C;--c9-rgb:251,146,60;
  --tx:#F8FAFC;--mt:#94A3B8;
}

[data-theme="cyberpunk"] {
  --bg:#050505;--s1:#111111;--s2:#1A1A1A;--bd:rgba(255,255,255,0.1);
  --c1:#FACC15;--c1-rgb:250,204,21;
  --c2:#4ADE80;--c2-rgb:74,222,128;
  --c3:#FB923C;--c3-rgb:251,146,60;
  --c4:#F87171;--c4-rgb:248,113,113;
  --c5:#60A5FA;--c5-rgb:96,165,250;
  --c6:#C084FC;--c6-rgb:192,132,252;
  --c7:#22D3A5;--c7-rgb:34,211,165;
  --c8:#BEF264;--c8-rgb:190,242,100;
  --c9:#FB7185;--c9-rgb:251,113,133;
  --tx:#FFFFFF;--mt:#A3A3A3;
}

body{background:var(--bg);color:var(--tx);font-family:var(--fn);font-size:14px;line-height:1.6;overflow-x:hidden;transition:background 0.3s, color 0.3s}
#cvs{position:fixed;inset:0;z-index:0;opacity:.75;pointer-events:none}

/* NAV */
nav{position:sticky;top:0;z-index:300;height:56px;background:rgba(10,10,14,.75);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--bd);display:flex;align-items:center;padding:0 20px;gap:10px}
.logo{font-family:var(--display);font-size:16px;font-weight:800;background:linear-gradient(90deg,var(--c1),var(--c2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:0.02em}
.nav-r{margin-left:auto;display:flex;align-items:center;gap:6px}
.nb{padding:5px 12px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--mt);cursor:pointer;font-size:12px;font-family:var(--fn);transition:all .2s;font-weight:500}
.nb:hover{color:#ffffff;border-color:var(--bd)}
.nb.on{background:rgba(139,124,255,.15);border-color:rgba(139,124,255,.35);color:var(--c1)}
.theme-select{background:rgba(255,255,255,0.03);border:1px solid var(--bd);color:var(--tx);padding:5px 8px;border-radius:8px;cursor:pointer;font-size:11px;outline:none;font-family:var(--fn);transition:all .2s}
.theme-select:hover{border-color:var(--c1);background:rgba(255,255,255,0.08)}
.theme-select option{background:var(--s2);color:var(--tx)}
.xpb{background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.35);color:#fbbf24;border-radius:20px;padding:3px 11px;font-size:11px;font-weight:700;font-family:var(--mo);transition:transform .3s}
.xpb.pop{transform:scale(1.3)}
.sfx-btn{background:rgba(255,255,255,0.03);border:1px solid var(--bd);color:var(--tx);padding:5px 8px;border-radius:8px;cursor:pointer;font-size:12px;transition:all .2s}
.sfx-btn:hover{border-color:var(--c1);background:rgba(255,255,255,0.08)}

/* ======= HERO LANDING PAGE ======= */
.hero-page{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;position:relative;z-index:10;text-align:center;overflow:hidden}
.hero-bg-video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:0.75;pointer-events:none}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(10,10,14,0.5) 0%, var(--bg) 100%);z-index:1;pointer-events:none}
.hero-content{max-width:800px;background:rgba(10,10,14,0.4);border:1px solid var(--bd);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:40px;border-radius:24px;box-shadow:0 20px 60px rgba(0,0,0,0.5), inset 0 1px 1px rgba(255,255,255,0.05);animation:fadein 0.8s ease;position:relative;z-index:2}
.hero-title{font-family:var(--display);font-size:42px;font-weight:800;margin-bottom:16px;background:linear-gradient(90deg,var(--tx),var(--c1));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2;letter-spacing:-0.02em}
.hero-sub{font-size:16px;color:var(--mt);margin-bottom:30px;line-height:1.8}
.hero-actions{display:flex;gap:15px;justify-content:center;margin-bottom:35px;flex-wrap:wrap}
.terminal{background:#030308;border:1px solid var(--bd);border-radius:12px;padding:20px;font-family:var(--mo);font-size:13px;text-align:left;color:#e2e8f0;max-width:550px;margin:0 auto 20px;box-shadow:inset 0 2px 10px rgba(0,0,0,0.5);overflow-x:auto}
.term-header{display:flex;gap:6px;margin-bottom:12px}
.term-dot{width:10px;height:10px;border-radius:50%}
.term-red{background:#ef4444}.term-yellow{background:#fbbf24}.term-green{background:#10b981}
.term-body{min-height:90px;white-space:pre-wrap}

/* ======= APP LAYOUT (SPA) ======= */
.app-container{display:none}
.layout{display:grid;grid-template-columns:250px 1fr;min-height:calc(100vh - 56px);position:relative;z-index:1}

/* SIDEBAR */
.sb{background:rgba(18,18,28,.4);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-right:1px solid var(--bd);padding:15px 0;overflow-y:auto;position:sticky;top:56px;height:calc(100vh - 56px)}
.slbl{padding:7px 15px 3px;font-size:10px;font-family:var(--mo);letter-spacing:.1em;color:var(--mt);text-transform:uppercase}
.mbtn{width:100%;display:flex;align-items:center;gap:9px;padding:10px 15px;border:none;background:transparent;color:var(--mt);cursor:pointer;font-size:13px;font-family:var(--fn);text-align:left;transition:all .2s;position:relative}
.mbtn::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:0 2px 2px 0;background:var(--mc);transform:scaleY(0);transition:transform .22s}
.mbtn.on{color:#ffffff;background:rgba(255,255,255,.05);font-weight:600}
.mbtn.on::before{transform:scaleY(1)}
.mbtn:hover:not(.on){color:#ffffff;background:rgba(255,255,255,.025)}
.mico{width:29px;height:29px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:11px;font-family:var(--mo);font-weight:700;flex-shrink:0;border:1px solid}
.minfo .t{font-size:13px;font-weight:600;line-height:1.2;color:var(--tx)}
.minfo .s{font-size:11px;color:var(--mt)}
.mck{font-size:12px;margin-left:auto;font-weight:700}
.sdiv{height:1px;background:var(--bd);margin:7px 13px}

/* MAIN PANEL */
.main{padding:24px 28px;overflow-y:auto;height:calc(100vh - 56px)}
.page{display:none}
.page.on{display:block;animation:fadein .3s ease}
@keyframes fadein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* DASHBOARD */
.dash-welcome{background:linear-gradient(135deg,rgba(var(--c1-rgb),.15),rgba(var(--c2-rgb),.05));border:1px solid var(--bd);border-radius:16px;padding:24px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px;position:relative;overflow:hidden;box-shadow:inset 0 1px 1px rgba(255,255,255,0.05)}
.dash-welcome::after{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,rgba(var(--c1-rgb),0.5),transparent);}
.welcome-info h2{font-family:var(--display);font-size:26px;font-weight:700;margin-bottom:4px;letter-spacing:-0.01em}
.welcome-info p{color:var(--mt);font-size:13.5px}

.rpg-widget{background:var(--s2);border:1px solid var(--bd);border-radius:14px;padding:18px;margin-bottom:20px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.rpg-avatar-box{position:relative;cursor:pointer}
.rpg-avatar{width:56px;height:56px;border-radius:50%;border:2px solid var(--c1);object-fit:cover;transition:transform 0.2s}
.rpg-avatar:hover{transform:scale(1.05)}
.avatar-menu{display:none;position:absolute;top:65px;left:0;background:var(--s1);border:1px solid var(--bd);border-radius:8px;padding:8px;grid-template-columns:repeat(4,1fr);gap:6px;z-index:200;box-shadow:0 8px 24px rgba(0,0,0,0.5)}
.avatar-menu.active{display:grid}
.avatar-menu img{width:36px;height:36px;border-radius:50%;cursor:pointer;border:1px solid transparent;transition:all 0.15s}
.avatar-menu img:hover{border-color:var(--c1);transform:scale(1.1)}
.avatar-upload-row{grid-column:1/-1;margin-top:4px}
.avatar-upload-btn{display:block;width:100%;text-align:center;background:rgba(var(--c1-rgb),0.1);border:1px solid rgba(var(--c1-rgb),0.35);color:var(--c1);border-radius:6px;padding:6px 0;font-size:11px;font-weight:700;cursor:pointer;font-family:var(--mo);transition:all .2s}
.avatar-upload-btn:hover{background:rgba(var(--c1-rgb),0.22);border-color:var(--c1)}
.rpg-info{flex:1;min-width:200px}
.rpg-rank-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.rpg-rank{font-size:11px;font-family:var(--mo);font-weight:700;padding:3px 9px;border-radius:6px;border:1px solid}
.rpg-xp-lbl{font-size:12px;color:var(--mt);font-weight:500}
.rpg-bar-container{height:8px;background:var(--bd);border-radius:4px;overflow:hidden;margin-bottom:4px}
.rpg-bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--c1),var(--c2));width:0%;transition:width 0.8s cubic-bezier(0.4,0,0.2,1)}
.widget-streak{display:flex;align-items:center;gap:8px;background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.3);border-radius:10px;padding:6px 14px;font-family:var(--mo);font-weight:700;color:var(--c3)}

/* DAILY CHALLENGE WIDGET */
.daily-widget {background:linear-gradient(135deg,rgba(var(--c4-rgb),0.05),rgba(var(--c5-rgb),0.1)); border:1px solid rgba(var(--c4-rgb),0.3); border-radius:14px; padding:20px; margin-bottom:20px; position:relative; overflow:hidden;}
.daily-widget::before {content:''; position:absolute; top:0; left:0; width:100%; height:4px; background:linear-gradient(90deg,var(--c4),var(--c5));}
.dw-head {display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:12px; flex-wrap:wrap; gap:10px;}
.dw-title {font-size:16px; font-weight:800; color:var(--tx); display:flex; align-items:center; gap:8px;}
.dw-timer {font-family:var(--mo); font-size:12px; color:var(--mt); background:rgba(0,0,0,0.3); padding:4px 10px; border-radius:6px;}
.dw-body {background:var(--s1); border:1px solid var(--bd); border-radius:10px; padding:16px;}
.dw-cat {font-size:10px; font-family:var(--mo); font-weight:700; padding:3px 8px; border-radius:4px; background:rgba(var(--c4-rgb),0.1); color:var(--c4); border:1px solid rgba(var(--c4-rgb),0.3); display:inline-block; margin-bottom:8px;}
.dw-desc {font-size:14px; color:#e2e8f0; line-height:1.5; margin-bottom:15px;}
.dw-foot {display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;}
.dw-streak-box {display:flex; gap:4px; align-items:center;}
.dw-s-day {width:16px; height:16px; border-radius:4px; border:1px solid var(--bd); background:rgba(255,255,255,0.05);}
.dw-s-day.done {background:var(--c4); border-color:var(--c4); box-shadow:0 0 10px rgba(var(--c4-rgb),0.4);}
.dw-s-lbl {font-size:11px; color:var(--mt); margin-left:6px; font-family:var(--mo);}

.stc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:20px}
.stc-card{background:var(--s2);border:1px solid var(--bd);border-radius:12px;padding:16px;text-align:center;transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s ease;box-shadow:0 4px 6px rgba(0,0,0,0.1)}
.stc-card:hover{transform:translateY(-4px);border-color:var(--c1);box-shadow:0 12px 24px rgba(0,0,0,0.2), 0 0 15px rgba(var(--c1-rgb),0.1)}
.stc-num{font-family:var(--display);font-size:28px;font-weight:800;margin-bottom:2px}
.stc-lbl{font-size:11px;color:var(--mt);text-transform:uppercase;letter-spacing:0.04em}

.mascot-box{background:var(--s2);border:1px solid var(--bd);border-radius:14px;padding:18px;display:flex;align-items:center;gap:16px;margin-bottom:20px;position:relative;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,0.1)}
.mascot-bubble{background:var(--s1);border:1px solid var(--bd);border-radius:12px;padding:12px 16px;position:relative;flex:1;font-size:13.5px;color:var(--tx)}
.mascot-bubble::before{content:'';position:absolute;left:-8px;top:20px;border-width:8px 8px 8px 0;border-style:solid;border-color:transparent var(--bd) transparent transparent}
.mascot-bubble::after{content:'';position:absolute;left:-7px;top:20px;border-width:8px 8px 8px 0;border-style:solid;border-color:transparent var(--s1) transparent transparent}
.mascot-geri{width:56px;height:56px;background:linear-gradient(135deg,var(--c3),#f97316);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;box-shadow:0 4px 15px rgba(245,158,11,0.25)}

/* ROADMAP */
.roadmap-container{background:var(--s2);border:1px solid var(--bd);border-radius:16px;padding:32px 20px;margin-bottom:25px;position:relative;overflow:hidden}
.roadmap-title{font-size:11px;font-family:var(--mo);color:var(--mt);letter-spacing:0.1em;text-transform:uppercase;margin-bottom:24px;text-align:center}
.roadmap-path{display:flex;flex-direction:column;align-items:center;gap:35px;position:relative;max-width:500px;margin:0 auto}
.roadmap-path::before{content:'';position:absolute;top:30px;bottom:30px;width:4px;background:var(--bd);z-index:0}
.roadmap-node{display:flex;align-items:center;gap:16px;z-index:1;position:relative;width:100%;transition:all 0.2s}
.roadmap-node:nth-child(even){flex-direction:row-reverse;text-align:right}
.node-circle{width:56px;height:56px;border-radius:50%;background:var(--s1);border:3px solid var(--bd);display:flex;align-items:center;justify-content:center;font-size:20px;cursor:pointer;transition:all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);box-shadow:0 4px 15px rgba(0,0,0,0.3)}
.node-circle:hover{transform:scale(1.1)}
.node-info{flex:1;background:var(--s1);border:1px solid var(--bd);border-radius:12px;padding:12px 18px;max-width:240px;box-shadow:0 4px 12px rgba(0,0,0,0.15)}
.node-title{font-size:13px;font-weight:700;margin-bottom:2px}
.node-desc{font-size:11px;color:var(--mt)}
.node-circle.locked{border-color:#3f3f46!important;color:#71717a!important;background:#18181b!important;cursor:not-allowed}
.node-circle.locked:hover{transform:none}
.node-circle.available{border-color:var(--theme-col);box-shadow:0 0 16px rgba(var(--theme-col-rgb),0.3);animation:pulse 2s infinite}
.node-circle.completed{border-color:var(--c2);background:rgba(16,185,129,.1);color:var(--c2);box-shadow:0 0 20px rgba(16,185,129,.2)}
@keyframes pulse {
  0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(var(--theme-col-rgb), 0.4); }
  70% { transform: scale(1.05); box-shadow: 0 0 0 12px rgba(var(--theme-col-rgb), 0); }
  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(var(--theme-col-rgb), 0); }
}

/* MODULE TABS & CONTENT */
.modhead{margin-bottom:20px;border-bottom:1px solid var(--bd);padding-bottom:16px}
.modhead h2{font-family:var(--display);font-size:28px;font-weight:700;margin-bottom:4px;letter-spacing:-0.01em}
.modhead p{color:var(--mt);font-size:13.5px}
.modmeta{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.metab{font-size:10px;font-family:var(--mo);padding:3px 9px;border-radius:4px;border:1px solid;font-weight:700}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--bd);margin-bottom:20px;overflow-x:auto}
.tabbtn{padding:10px 18px;border:none;background:transparent;color:var(--mt);cursor:pointer;font-size:13px;font-family:var(--fn);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all 0.2s;border-radius:6px 6px 0 0;white-space:nowrap}
.tabbtn:hover{color:#ffffff;background:rgba(255,255,255,.03)}
.tabbtn.on{color:#ffffff;border-bottom-color:var(--c1)}

/* DOCS TAB */
.dcard{background:var(--s2);border:1px solid var(--bd);border-radius:13px;padding:20px;margin-bottom:15px;transition:all 0.2s;box-shadow:0 4px 12px rgba(0,0,0,0.12)}
.dcard:hover{border-color:rgba(139,124,255,.3);box-shadow:0 6px 20px rgba(139,124,255,.06)}
.dcard h3{font-size:14.5px;font-weight:700;margin-bottom:10px;color:var(--c1)}
.dcard .body{font-size:13.5px;color:#cbd5e1;line-height:1.8;margin-bottom:10px}
.codeblk{background:#030308;border:1px solid var(--bd);border-radius:8px;padding:16px;margin:12px 0;font-family:var(--mo);font-size:12.5px;line-height:1.7;overflow-x:auto;white-space:pre;color:#e2e8f0}
.tipbox{background:rgba(16,185,129,.08);border-left:3px solid var(--c2);padding:10px 14px;margin:10px 0;font-size:13px;color:#34d399;border-radius:0 7px 7px 0}
.wrnbox{background:rgba(245,158,11,.08);border-left:3px solid var(--c3);padding:10px 14px;margin:10px 0;font-size:13px;color:#fbbf24;border-radius:0 7px 7px 0}

/* VIDEOS TAB */
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.vcard{background:var(--s2);border:1px solid var(--bd);border-radius:12px;overflow:hidden;cursor:pointer;transition:all 0.22s;box-shadow:0 4px 10px rgba(0,0,0,0.1)}
.vcard:hover{transform:translateY(-3px);border-color:var(--c2);box-shadow:0 8px 25px rgba(16,185,129,.15)}
.vthumb{height:115px;background:linear-gradient(135deg,#0a0a18,#18082a);display:flex;align-items:center;justify-content:center;position:relative}
.vthumb::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(139,124,255,.1),rgba(16,185,129,.05))}
.playbtn{width:42px;height:42px;background:linear-gradient(135deg,var(--c1),var(--c2));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;position:relative;z-index:1;transition:transform 0.2s}
.vcard:hover .playbtn{transform:scale(1.1)}
.vdur{position:absolute;bottom:7px;right:9px;background:rgba(0,0,0,.8);color:#fbbf24;font-size:10px;padding:2px 6px;border-radius:4px;font-family:var(--mo);z-index:1}
.vinfo{padding:12px}
.chtag{font-size:10px;font-family:var(--mo);font-weight:700;padding:2px 7px;border-radius:4px;background:rgba(16,185,129,.1);color:var(--c2);border:1px solid rgba(16,185,129,.25);margin-bottom:6px;display:inline-block}
.vtitle{font-size:12px;font-weight:600;line-height:1.4;color:var(--tx)}

/* PLAYGROUND / EXERCISES TAB */
.excard{background:var(--s2);border:1px solid var(--bd);border-radius:13px;padding:20px;margin-bottom:15px;transition:all 0.2s}
.excard:hover{border-color:rgba(56,189,248,.25)}
.extop{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}
.extitle{font-size:14.5px;font-weight:700;color:var(--c5);margin-bottom:3px}
.exdesc{font-size:13.5px;color:#cbd5e1;line-height:1.6}
.diffb{font-size:10px;font-family:var(--mo);font-weight:700;padding:3px 9px;border-radius:4px;flex-shrink:0;border:1px solid}
.de{color:var(--c2);border-color:rgba(16,185,129,.35);background:rgba(16,185,129,.1)}
.dm{color:var(--c3);border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.1)}
.dh{color:var(--c4);border-color:rgba(236,72,153,.35);background:rgba(236,72,153,.1)}
.ceditor{width:100%;background:#030308;border:1px solid var(--bd);border-radius:8px;padding:14px;font-family:var(--mo);font-size:12.5px;line-height:1.7;min-height:130px;resize:vertical;color:#e2e8f0;outline:none;transition:border-color 0.2s}
.ceditor:focus{border-color:var(--c1)}
.exactions{display:flex;gap:7px;margin-top:12px;flex-wrap:wrap}

/* COLLAPSIBLES */
.hintbox{margin-top:8px;background:rgba(245,158,11,.08);border-left:3px solid var(--c3);border-radius:0 7px 7px 0;padding:10px 13px;font-size:13px;color:#fde68a;display:none}
.solbox{margin-top:8px;background:#030308;border:1px solid rgba(168,85,247,.35);border-radius:8px;padding:12px;font-family:var(--mo);font-size:12.5px;color:#e2e8f0;display:none;white-space:pre-wrap;word-break:break-word}
.okbox{margin-top:8px;padding:10px 13px;border-radius:7px;font-size:13.5px;display:none;font-weight:600}
.okbox.ok{background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.3);color:#34d399}

/* BUTTONS */
.btn{padding:8px 16px;border-radius:8px;cursor:pointer;font-size:12px;font-family:var(--fn);font-weight:600;letter-spacing:0.02em;border:1px solid transparent;transition:all 0.2s cubic-bezier(0.4, 0, 0.2, 1);display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.btn:hover{transform:translateY(-2px);box-shadow:0 6px 12px rgba(0,0,0,0.2)}
.btn:active{transform:translateY(0) scale(.98)}
.bg{background:linear-gradient(135deg,var(--c1),var(--c2));color:#ffffff;border:none;box-shadow:inset 0 1px 1px rgba(255,255,255,0.2)}
.bg:hover{box-shadow:0 6px 20px rgba(var(--c1-rgb),0.3), inset 0 1px 1px rgba(255,255,255,0.2)}
.by{background:transparent;color:var(--c3);border-color:rgba(245,158,11,.45)}
.by:hover{background:rgba(245,158,11,.1);border-color:var(--c3)}
.bp{background:transparent;color:var(--c4);border-color:rgba(236,72,153,.45)}
.bp:hover{background:rgba(236,72,153,.1);border-color:var(--c4)}
.bb{background:transparent;color:var(--c5);border-color:rgba(56,189,248,.45)}
.bb:hover{background:rgba(56,189,248,.1);border-color:var(--c5)}
.bgh{background:transparent;color:var(--tx);border-color:var(--bd)}
.bgh:hover{color:#ffffff;border-color:rgba(255,255,255,.25)}

/* REAL-WORLD PROJECTS TAB */
.projcard{background:var(--s2);border:1px solid var(--bd);border-radius:14px;padding:24px;margin-bottom:15px;display:grid;grid-template-columns:1fr 200px;gap:20px;align-items:center;transition:all 0.2s}
@media(max-width:768px){.projcard{grid-template-columns:1fr}}
.projcard:hover{border-color:var(--c4);box-shadow:0 8px 24px rgba(236,72,153,.08)}
.proj-title{font-size:16px;font-weight:700;color:var(--c4);margin-bottom:6px}
.proj-desc{font-size:13.5px;color:#cbd5e1;line-height:1.6;margin-bottom:12px}
.proj-preview{height:120px;border-radius:8px;border:1px solid var(--bd);background:linear-gradient(135deg,#0a0a20,#181030);display:flex;align-items:center;justify-content:center;font-size:32px;color:rgba(255,255,255,0.25);position:relative;overflow:hidden}
.proj-preview::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,0.6) 0%,transparent 100%)}
.proj-preview-badge{position:absolute;bottom:8px;left:8px;font-size:10px;font-family:var(--mo);background:rgba(0,0,0,0.7);color:#fff;padding:2px 6px;border-radius:4px;font-weight:700}
.proj-check{margin-top:12px;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:600;font-size:13px;user-select:none;color:var(--mt)}
.proj-check input{accent-color:var(--c4);width:16px;height:16px}
.proj-check.done{color:var(--c4)}

/* EXAM */
.examintro{background:var(--s2);border:1px solid var(--bd);border-radius:14px;padding:28px;text-align:center;margin-bottom:16px}
.examintro h3{font-size:18px;font-weight:700;margin-bottom:6px;background:linear-gradient(90deg,var(--c1),var(--c4));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.examintro p{color:var(--mt);font-size:13px;margin-bottom:18px}
.examstats{display:flex;gap:11px;justify-content:center;margin-bottom:20px;flex-wrap:wrap}
.estat{background:rgba(255,255,255,.03);border:1px solid var(--bd);border-radius:8px;padding:10px 16px;text-align:center}
.estat .ev{font-size:19px;font-weight:700;font-family:var(--mo);background:linear-gradient(135deg,var(--c1),var(--c2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.estat .el{font-size:10px;color:var(--mt);margin-top:1px}

.qcard{background:var(--s2);border:1px solid var(--bd);border-radius:12px;padding:19px;margin-bottom:11px;transition:border-color .2s}
.qcard:hover{border-color:rgba(139,124,255,.22)}
.qnum{font-size:10px;font-family:var(--mo);color:var(--c1);margin-bottom:6px;letter-spacing:.1em}
.qtext{font-size:14px;font-weight:500;margin-bottom:13px;line-height:1.55;color:var(--tx)}
.opts{display:flex;flex-direction:column;gap:7px}
.opt{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid var(--bd);border-radius:8px;cursor:pointer;font-size:13.5px;transition:all .18s;user-select:none;color:#cbd5e1;background:rgba(255,255,255,0.01)}
.opt:hover:not(.oc):not(.ow){border-color:var(--c1);background:rgba(139,124,255,.1);color:#ffffff}
.opt.os{border-color:var(--c1);background:rgba(139,124,255,.18);color:#ffffff}
.opt.oc{border-color:var(--c2)!important;background:rgba(16,185,129,.12)!important;color:#34d399!important;cursor:default;font-weight:600}
.opt.ow{border-color:var(--c4)!important;background:rgba(236,72,153,.12)!important;color:#f472b6!important;cursor:default}
.odot{width:15px;height:15px;border-radius:50%;border:1.5px solid var(--bd);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;transition:all .18s}
.examfooter{display:flex;justify-content:space-between;align-items:center;margin-top:17px;padding-top:14px;border-top:1px solid var(--bd);flex-wrap:wrap;gap:9px}

.scorecard{background:var(--s2);border:1px solid var(--bd);border-radius:14px;padding:30px;text-align:center;margin-bottom:16px;display:none;position:relative;overflow:hidden}
.scorenum{font-size:50px;font-weight:700;font-family:var(--mo);margin-bottom:6px}
.scoremsg{font-size:14px;color:var(--mt);margin-bottom:18px;line-height:1.6}
.scorebtns{display:flex;gap:9px;justify-content:center;flex-wrap:wrap}

/* DIPLOMA CERTIFICADO */
.cert-window{background:var(--s2);border:1px solid var(--bd);border-radius:18px;padding:35px 25px;text-align:center;max-width:700px;margin:20px auto;position:relative;overflow:hidden;box-shadow:0 15px 45px rgba(0,0,0,0.5)}
.cert-hologram{position:absolute;top:-100px;right:-100px;width:250px;height:250px;border-radius:50%;background:radial-gradient(circle,rgba(251,191,36,0.15) 0%,rgba(16,185,129,0) 70%);pointer-events:none}
.cert-border{border:4px double var(--c3);border-radius:12px;padding:30px 20px;position:relative}
.cert-title{font-family:var(--display);font-size:32px;font-weight:800;color:var(--c3);margin-bottom:8px;letter-spacing:-0.02em}
.cert-subtitle{font-size:12px;color:var(--mt);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:20px}
.cert-body{font-size:14.5px;color:#cbd5e1;line-height:1.8;margin-bottom:25px}
.cert-name{font-size:36px;font-weight:800;color:#fff;margin:15px 0;font-family:var(--display);letter-spacing:-0.01em}
.cert-footer{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center;margin-top:35px;border-top:1px solid var(--bd);padding-top:20px}
.cert-signature{font-family:'Space Mono',monospace;font-style:italic;color:var(--mt);font-size:13px}
.cert-qr{display:inline-block;padding:8px;background:#fff;border-radius:6px;width:70px;height:70px;margin:0 auto}
.cert-stamp{position:absolute;bottom:60px;left:50%;transform:translateX(-50%);font-size:64px;opacity:0.08;pointer-events:none}

/* TOAST & CONFETTI */
.toast{position:fixed;bottom:18px;right:18px;padding:11px 16px;border-radius:9px;font-size:13px;font-weight:700;font-family:var(--mo);z-index:999;transform:translateY(80px) scale(.92);opacity:0;transition:all .38s cubic-bezier(.34,1.56,.64,1);pointer-events:none;max-width:250px;color:#07070f}
.toast.show{transform:translateY(0) scale(1);opacity:1}
@keyframes cfanim{0%{transform:translateY(-20px) rotate(0);opacity:1}100%{transform:translateY(220px) rotate(720deg);opacity:0}}
.cfp{position:fixed;width:7px;height:7px;border-radius:2px;animation:cfanim 1.6s ease forwards;pointer-events:none;z-index:997}

/* RESPONSIVE OVERLAYS */
.menu-toggle{display:none;background:rgba(255,255,255,0.02);border:1px solid var(--bd);color:var(--tx);font-size:16px;padding:5px 10px;border-radius:6px;cursor:pointer;font-family:var(--mo);transition:all .2s;margin-right:8px}
.menu-toggle:hover{background:rgba(255,255,255,0.06);border-color:var(--c1)}
.sb-overlay{display:none;position:fixed;inset:0;background:rgba(3,3,8,0.7);backdrop-filter:blur(4px);z-index:399;transition:opacity 0.25s ease}
@media(max-width:660px){
  .layout{grid-template-columns:1fr}
  .sb{display:none;position:fixed;top:56px;left:0;width:250px;height:calc(100vh - 56px);z-index:400;box-shadow:8px 0 24px rgba(0,0,0,0.5);border-right:1px solid var(--bd);background:#0c0c1c}
  .sb.active{display:block;animation:slideIn 0.25s cubic-bezier(0.4,0,0.2,1) forwards}
  .sb-overlay.active{display:block}
  .menu-toggle{display:block}
  .main{padding:14px}
}
@keyframes slideIn{
  from{transform:translateX(-100%)}
  to{transform:translateX(0)}
}

/* ======= MODULE NAVIGATION BAR ======= */
.mod-nav{display:flex;align-items:center;justify-content:space-between;background:rgba(8,8,22,0.6);border:1px solid var(--bd);border-radius:12px;padding:10px 16px;margin-bottom:16px;gap:12px;backdrop-filter:blur(8px);position:sticky;top:0;z-index:50}
.mod-nav-btn{background:rgba(255,255,255,0.05);border:1px solid var(--bd);color:var(--mt);padding:6px 14px;border-radius:8px;cursor:pointer;font-size:12px;font-family:var(--mo);font-weight:700;transition:all .2s;white-space:nowrap}
.mod-nav-btn:hover{color:#fff;border-color:var(--c1);background:rgba(var(--c1-rgb),0.12)}
.mod-nav-top{color:var(--c2);border-color:rgba(var(--c2-rgb),0.35)}
.mod-nav-top:hover{background:rgba(var(--c2-rgb),0.12);border-color:var(--c2)}
.mod-nav-crumb{flex:1;text-align:center;font-family:var(--mo);font-size:12px;color:var(--mt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mod-nav-crumb span{color:var(--c1);font-weight:700}

/* ======= ANIMATIONS — TAB CONTENT ENTRY ======= */
@keyframes slideInCard{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes expandIn{from{opacity:0;transform:scale(0.97)}to{opacity:1;transform:scale(1)}}
.card-enter{animation:slideInCard 0.3s cubic-bezier(0.22,1,0.36,1) both}
.dcard,.excard,.projcard,.qcard,.vcard{animation:expandIn 0.25s ease both}

/* ======= VIDEO THUMBNAILS — MEJORADAS ======= */
.vthumb{height:140px;border-radius:0;background:linear-gradient(135deg,#0a0a18,#18082a);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.vthumb-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,0.78) 0%,transparent 55%);pointer-events:none}
.vthumb-title{position:absolute;bottom:0;left:0;right:0;padding:8px 10px;font-family:var(--display);font-size:12px;font-weight:700;color:#fff;line-height:1.3;z-index:2}
.playbtn{width:52px;height:52px;background:linear-gradient(135deg,var(--c1),var(--c2));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;color:#fff;position:relative;z-index:1;transition:transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s;box-shadow:0 0 24px rgba(var(--c1-rgb),0.4)}
.vcard:hover .playbtn{transform:scale(1.15) translateY(-2px);box-shadow:0 8px 36px rgba(var(--c1-rgb),0.6)}
.vdur{position:absolute;bottom:10px;right:10px;background:rgba(0,0,0,.85);color:#fbbf24;font-size:10px;padding:3px 7px;border-radius:5px;font-family:var(--mo);z-index:3;font-weight:700;backdrop-filter:blur(4px)}
.vchannel-tag{position:absolute;top:8px;right:8px;background:rgba(0,0,0,0.75);border:1px solid rgba(255,255,255,0.12);color:#fff;font-size:9px;padding:2px 6px;border-radius:4px;font-family:var(--mo);z-index:3;font-weight:700;backdrop-filter:blur(4px)}

/* ======= OPTION SELECTION — VISUAL FEEDBACK ======= */
.opt{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid var(--bd);border-radius:8px;cursor:pointer;font-size:13.5px;transition:all .18s;user-select:none;color:#cbd5e1;background:rgba(255,255,255,0.01)}
.opt:hover:not(.oc):not(.ow){border-color:var(--c1);background:rgba(139,124,255,.1);color:#ffffff}
.opt.os{border-color:var(--c1);background:rgba(139,124,255,.15);color:#ffffff;border-left:3px solid var(--c1)}
.opt.oc{border-color:var(--c2)!important;background:rgba(16,185,129,.12)!important;color:#34d399!important;cursor:default;font-weight:600}
.opt.ow{border-color:var(--c4)!important;background:rgba(236,72,153,.12)!important;color:#f472b6!important;cursor:default}
.odot{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--bd);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;transition:all .18s;background:rgba(255,255,255,0.03)}
.opt.os .odot{background:var(--c1);border-color:var(--c1);color:#07070f}
.opt.oc .odot{background:var(--c2);border-color:var(--c2);color:#07070f}
.opt.ow .odot{background:var(--c4);border-color:var(--c4);color:#fff}

/* ======= INLINE MESSAGES & CONFIRMATIONS ======= */
.inline-msg{display:none;padding:10px 14px;border-radius:8px;font-size:13px;font-weight:600;font-family:var(--mo);margin-top:10px;animation:expandIn 0.22s ease both}
.inline-msg.warn{background:rgba(245,158,11,0.12);border:1px solid rgba(245,158,11,0.4);color:#fbbf24}
.inline-msg.ok{background:rgba(16,185,129,0.12);border:1px solid rgba(16,185,129,0.4);color:#34d399}
.inline-msg.err{background:rgba(236,72,153,0.12);border:1px solid rgba(236,72,153,0.4);color:#f472b6}
.inline-msg.show{display:block}

/* ======= EXAM UNANSWERED HIGHLIGHT ======= */
.qcard.unanswered{border-color:rgba(236,72,153,0.5);box-shadow:0 0 0 2px rgba(236,72,153,0.15);animation:expandIn 0.25s ease both}
.qcard .unanswered-tag{display:none;font-size:10px;font-family:var(--mo);font-weight:700;color:var(--c4);margin-bottom:6px;padding:2px 7px;border-radius:4px;background:rgba(236,72,153,0.1);border:1px solid rgba(236,72,153,0.3);width:fit-content}
.qcard.unanswered .unanswered-tag{display:inline-block}

/* ======= PERFORMANCE OPTIMIZATIONS ======= */
body{scroll-behavior:smooth}
.main{overscroll-behavior:contain;contain:layout style}
.dcard,.excard,.vcard,.projcard,.qcard{will-change:transform}
