@import url('https://fonts.googleapis.com/css2?family=Dela+Gothic+One&family=DM+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&display=swap');
*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --primary:#f7b731;--pmid:#d4a017;--plight:#f0c040;--ppale:rgba(247,183,49,.08);
  --accent:#f7b731;--accent-light:rgba(247,183,49,.12);
  --green:#00c9a7;--gbg:rgba(0,201,167,.1);
  --yellow:#f7b731;--ybg:rgba(247,183,49,.1);
  --red:#e74c3c;--rbg:rgba(231,76,60,.1);
  --blue:#60a5fa;--bbg:rgba(96,165,250,.1);
  --bg:#0a0c1a;--text:#e8e6f0;--tl:#9a8fb0;--tll:#6b6080;--border:#2a2540;
  --card:#12152b;--card-hover:#1e2240;--bar-bg:#1a1e3a;
}
[data-theme="light"]{
  --primary:#6B1035;--pmid:#8B1A4A;--plight:#A82862;--ppale:#fdf2f8;
  --accent:#C93B6E;--accent-light:#fce7f3;
  --green:#22c55e;--gbg:#f0fdf4;
  --yellow:#eab308;--ybg:#fefce8;
  --red:#ef4444;--rbg:#fef2f2;
  --blue:#3b82f6;--bbg:#eff6ff;
  --bg:#faf5f7;--text:#1e1018;--tl:#6b5060;--tll:#9a8090;--border:#e8d8e0;
  --card:#ffffff;--card-hover:#fdf2f8;--bar-bg:#f1e8ec;
}
[data-theme="light"] .topnav{background:#6B1035;border-bottom-color:rgba(201,59,110,.3);}
[data-theme="light"] .nav-av{background:#f9a8c9;color:#6B1035;}
[data-theme="light"] .role-screen{background:linear-gradient(135deg,#1a0a14 0%,#4a0e2a 40%,#6B1035 100%);}
[data-theme="light"] .role-card.selected{background:rgba(168,40,98,.3);border-color:#f9a8c9;}
[data-theme="light"] .card{background:var(--card);}
[data-theme="light"] .stat{background:var(--card);}
[data-theme="light"] .gc{background:var(--card);}
[data-theme="light"] .gc:hover{border-color:var(--accent);box-shadow:0 4px 16px rgba(107,16,53,.1);}
[data-theme="light"] .obj{background:var(--card);}
[data-theme="light"] .ins{background:linear-gradient(135deg,#fdf2f8,#fce7f3);border-color:rgba(201,59,110,.25);}
[data-theme="light"] .plan-result{background:linear-gradient(135deg,#fdf2f8,#fff);border-color:rgba(201,59,110,.25);}
[data-theme="light"] .gami-bar{background:linear-gradient(135deg,#fdf2f8,#fff);border-color:var(--border);}
[data-theme="light"] .obs-card{background:linear-gradient(135deg,#eff6ff,#fff);border-color:rgba(59,130,246,.25);color:#3b82f6;}
[data-theme="light"] .parent-msg{background:linear-gradient(135deg,#EFF6FF,#F0F9FF);border-color:#93c5fd;color:#1e40af;}
[data-theme="light"] .login-wrap{background:linear-gradient(135deg,#1a0a14 0%,#4a0e2a 40%,#6B1035 70%,#8B1A4A 100%);}
[data-theme="light"] .sb{background:var(--bar-bg);}
[data-theme="light"] .tb{background:var(--bar-bg);}
[data-theme="light"] .obj-bar{background:var(--bar-bg);}
[data-theme="light"] .bbg{background:var(--bar-bg);}
[data-theme="light"] .stt tr:hover td{background:var(--card-hover);}
[data-theme="light"] .stt td{border-color:#f0e8ec;}
[data-theme="light"] .reddit-post{background:var(--card);}
[data-theme="light"] .reddit-votes{background:#faf5f7;}
[data-theme="light"] .chat-box{background:var(--card);}
[data-theme="light"] .chat-in{background:#f5f0f5;border-color:#e0d0e0;}
[data-theme="light"] .chat-in:focus{background:#fff;border-color:var(--accent);}
[data-theme="light"] .chat-input{background:var(--card);border-top-color:var(--border);}
[data-theme="light"] .v8-overlay{background:var(--bg);}
[data-theme="light"] .v8-ctn{background:var(--bg);}
[data-theme="light"] #comNewPostForm{background:#faf5f7;border-color:var(--border);}
[data-theme="light"] .comment-box{background:#faf5f7;}
[data-theme="light"] .lms-sidebar{background:#fff;border-color:#e8d8e0;}
[data-theme="light"] .lms-sh h3{color:#1e1018;}
[data-theme="light"] .lms-sh p{color:#6b5060;}
[data-theme="light"] .lms-section-title{color:#6b5060;}
[data-theme="light"] .lms-si{color:#1e1018;}
[data-theme="light"] .lms-si:hover{background:rgba(107,16,53,.05);color:#6B1035;}
[data-theme="light"] .lms-si.active{background:rgba(107,16,53,.08);color:#6B1035;}
[data-theme="light"] .lms-si-icon{background:rgba(0,0,0,.04);}
[data-theme="light"] .lms-si-dur{color:#9a8090;}
[data-theme="light"] .lms-progress{background:#e8d8e0;}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;}
.topnav{background:var(--card);color:#fff;height:56px;display:flex;align-items:center;padding:0 24px;gap:16px;box-shadow:0 2px 12px rgba(0,0,0,.4);position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(247,183,49,.1);}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;letter-spacing:-.5px;cursor:pointer;font-family:'Dela Gothic One',cursive;flex-shrink:0;}.logo span{color:var(--accent);}
.logo-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.logo-icon img{width:100%;height:100%;object-fit:contain;}
.logo-text{display:flex;flex-direction:column;justify-content:center;line-height:1.2;}
.logo-sub{font-size:9px;font-weight:500;letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.5);margin-top:1px;line-height:1;font-family:'DM Sans',sans-serif;}
.nsep{width:1px;height:28px;background:rgba(255,255,255,.15);}
.bc{display:flex;align-items:center;gap:6px;font-size:13px;color:rgba(255,255,255,.6);}.bc span{cursor:pointer;transition:color .15s;}.bc span:hover{color:#fff;}.bc .cur{color:#fff;font-weight:600;}.bc .sep{opacity:.4;cursor:default;}
.nr{margin-left:auto;display:flex;align-items:center;gap:14px;}
.rbtn{background:none;border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.5);padding:4px 10px;border-radius:6px;font-size:11px;cursor:pointer;font-family:"DM Sans",sans-serif;transition:all .2s;}.rbtn:hover{border-color:rgba(255,255,255,.4);color:rgba(255,255,255,.8);}
.nbadge{background:rgba(255,255,255,.1);padding:5px 12px;border-radius:16px;font-size:12px;display:flex;align-items:center;gap:6px;}.nbadge .dot{width:7px;height:7px;background:var(--green);border-radius:50%;}
.nav-av{width:32px;height:32px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#0a0c1a;line-height:1;flex-shrink:0;}
.ctn{max-width:1200px;margin:0 auto;padding:24px;}
.pg{display:none;}.pg.active{display:block;}
.card{background:var(--card);border-radius:12px;border:1px solid var(--border);padding:20px;margin-bottom:16px;}
.card h2{font-size:18px;font-weight:700;margin-bottom:4px;font-family:'Dela Gothic One',cursive;}.card h3{font-size:15px;font-weight:600;margin-bottom:4px;}
.sub{font-size:13px;color:var(--tl);}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;}
.stat{background:var(--card);border-radius:10px;padding:16px;border:1px solid var(--border);}
.stat-action{cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s;}
.stat-action:hover,.stat-action:focus-visible{border-color:var(--accent);box-shadow:0 4px 16px rgba(247,183,49,.12);outline:none;transform:translateY(-1px);}
.sl{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--tll);margin-bottom:4px;}
.sv{font-size:28px;font-weight:800;color:var(--accent);}.ss{font-size:11px;color:var(--tl);margin-top:2px;}
.gg{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;}
.gc{background:var(--card);border-radius:12px;border:1px solid var(--border);padding:24px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden;}
.gc:hover{border-color:var(--accent);box-shadow:0 4px 16px rgba(247,183,49,.1);transform:translateY(-2px);}
.gch{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}.gcn{font-size:20px;font-weight:800;color:var(--accent);font-family:'Dela Gothic One',cursive;}
.gcb{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;}
.gct{font-size:13px;color:var(--tl);margin-bottom:16px;}
.gcs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;}
.gcsl{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--tll);}.gcsv{font-size:22px;font-weight:800;color:var(--text);}
.gcsem{display:flex;gap:3px;height:8px;border-radius:4px;overflow:hidden;}.gcsb{height:100%;}
.gca{position:absolute;right:20px;bottom:20px;font-size:20px;color:var(--tll);transition:transform .2s;}.gc:hover .gca{transform:translateX(4px);color:var(--primary);}
.sr{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.sd{width:12px;height:12px;border-radius:50%;flex-shrink:0;}.sd.g{background:var(--green);}.sd.y{background:var(--yellow);}.sd.r{background:var(--red);}
.slb{font-size:12px;min-width:90px;}.sb{flex:1;height:8px;background:var(--bar-bg);border-radius:4px;overflow:hidden;}
.sf{height:100%;border-radius:4px;}.sf.g{background:var(--green);}.sf.y{background:var(--yellow);}.sf.r{background:var(--red);}
.sc{font-size:12px;font-weight:600;min-width:30px;text-align:right;}
.stt{width:100%;border-collapse:separate;border-spacing:0;}
.stt th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--tll);padding:8px 12px;border-bottom:2px solid var(--border);font-weight:600;color:var(--tll);}
.stt td{padding:10px 12px;border-bottom:1px solid #f8fafc;font-size:13px;vertical-align:middle;}
.stt tr{cursor:pointer;transition:background .1s;}.stt tr:hover td{background:var(--card-hover);}
.av{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0;line-height:1;}
.nc{display:flex;align-items:center;gap:10px;}.nm{font-weight:600;}
.sem{display:inline-block;width:10px;height:10px;border-radius:50%;}.sem.g{background:var(--green);}.sem.y{background:var(--yellow);}.sem.r{background:var(--red);}
.bbg{width:80px;height:6px;background:var(--bar-bg);border-radius:3px;overflow:hidden;display:inline-block;vertical-align:middle;margin-right:6px;}.bf{height:100%;border-radius:3px;}
.tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500;}
.tag.a{background:var(--rbg);color:var(--red);}.tag.w{background:var(--ybg);color:var(--accent);}.tag.o{background:var(--gbg);color:var(--green);}
.ph{display:flex;align-items:center;gap:20px;margin-bottom:24px;}
.pav{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;color:#fff;line-height:1;}
.pi h2{font-size:22px;font-weight:800;margin-bottom:2px;font-family:'Dela Gothic One',cursive;}
.pbs{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap;}
.pb{padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500;}
.tr{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #f8fafc;}.tr:last-child{border-bottom:none;}
.tn{font-size:12px;min-width:160px;}.tb{flex:1;height:6px;background:var(--bar-bg);border-radius:3px;overflow:hidden;}.tf{height:100%;border-radius:3px;}.tp{font-size:12px;font-weight:600;min-width:36px;text-align:right;}
/* Objectives */
.obj-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.obj{background:var(--card);border-radius:10px;border:1px solid var(--border);padding:14px;display:flex;gap:12px;align-items:flex-start;}
.obj-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;line-height:1;}
.obj-info{flex:1;}.obj-name{font-size:13px;font-weight:600;margin-bottom:3px;line-height:1.3;}
.obj-level{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;}
.obj-bar{height:4px;background:var(--bar-bg);border-radius:2px;margin-top:6px;overflow:hidden;}.obj-fill{height:100%;border-radius:2px;}
.obj-detail{font-size:11px;color:var(--tl);margin-top:4px;}
.lvl-L{background:var(--gbg);color:var(--green);}.lvl-D{background:var(--ybg);color:var(--accent);}.lvl-I{background:var(--rbg);color:var(--red);}
.ico-L{background:var(--gbg);}.ico-D{background:var(--ybg);}.ico-I{background:var(--rbg);}
.tli{display:flex;align-items:flex-start;gap:12px;padding:8px 0;font-size:13px;border-bottom:1px solid #f8fafc;}.tli:last-child{border-bottom:none;}
.tld{width:10px;height:10px;border-radius:50%;margin-top:4px;flex-shrink:0;}.tld.g{background:var(--green);}.tld.y{background:var(--yellow);}.tld.r{background:var(--red);}.tld.b{background:var(--blue);}
.tlt{font-family:monospace;color:var(--tll);min-width:75px;font-size:12px;}
.ins{background:linear-gradient(135deg,#1a1e3a,#2a2540);border:1px solid rgba(247,183,49,.25);border-radius:12px;padding:20px;margin-bottom:16px;}
.ins h4{font-size:14px;font-weight:700;color:var(--accent);margin-bottom:8px;}
.ins p,.ins li{font-size:13px;color:#d4a017;line-height:1.7;}.ins ul{list-style:none;padding:0;margin:8px 0 0;}.ins li::before{content:"→ ";font-weight:700;color:#d97706;}
.alc{background:var(--rbg);border:1px solid rgba(231,76,60,.25);border-radius:10px;padding:14px 18px;margin-bottom:10px;display:flex;align-items:center;gap:12px;font-size:13px;color:#e74c3c;}
.obs-card{background:linear-gradient(135deg,#101a2e,#12152b);border:1px solid rgba(96,165,250,.25);border-radius:10px;padding:14px 18px;margin-bottom:10px;display:flex;align-items:flex-start;gap:12px;font-size:13px;color:#60a5fa;}
.bk{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--plight);cursor:pointer;margin-bottom:16px;font-weight:500;padding:6px 12px;border-radius:6px;transition:background .15s;}.bk:hover{background:var(--ppale);}
.cg{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
/* Student enter button */
.enter-btn{background:linear-gradient(135deg,var(--accent),#d4a017);color:#0a0c1a;border:none;padding:12px 24px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;font-family:"DM Sans",sans-serif;display:inline-flex;align-items:center;gap:8px;transition:all .2s;margin-top:12px;}
.enter-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(247,183,49,.25);}
/* LOGIN PAGE */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#050714 0%,#0a0c1a 40%,#12152b 70%,#1a1e3a 100%);padding:20px;}
.login-card{background:var(--card);border-radius:20px;padding:40px;width:100%;max-width:420px;box-shadow:0 20px 60px rgba(0,0,0,.5);border:1px solid var(--border);}
.login-logo{text-align:center;margin-bottom:28px;display:flex;flex-direction:column;align-items:center;}.login-logo .li{width:64px;height:64px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;}
.login-logo h2{font-size:22px;font-weight:800;color:var(--accent);font-family:"Dela Gothic One",cursive;text-align:center;}.login-logo p{font-size:13px;color:var(--tl);margin-top:4px;text-align:center;}
.login-field{margin-bottom:16px;}.login-field label{display:block;font-size:12px;font-weight:600;color:var(--tl);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px;}
.login-field select,.login-field input{width:100%;padding:12px 14px;border:2px solid var(--border);border-radius:10px;font-size:14px;font-family:"DM Sans",sans-serif;transition:border-color .2s;background:var(--card);color:var(--text);}
.login-field select:focus,.login-field input:focus{outline:none;border-color:var(--plight);}
.login-btn{width:100%;padding:14px;background:linear-gradient(135deg,var(--accent),#d4a017);color:#0a0c1a;border:none;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;font-family:"DM Sans",sans-serif;transition:all .2s;margin-top:8px;}
.login-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(247,183,49,.4);}
.login-err{background:var(--rbg);color:var(--red);padding:10px 14px;border-radius:8px;font-size:13px;margin-top:12px;display:none;}
.login-back{text-align:center;margin-top:16px;}.login-back a{font-size:13px;color:var(--plight);cursor:pointer;text-decoration:none;}.login-back a:hover{text-decoration:underline;}
/* FULL LMS PAGE */
.lms-layout{display:flex;height:calc(100vh - 56px);overflow:hidden;}
.lms-sidebar{width:260px;background:#141828;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0;}
.lms-sh{padding:16px 18px;border-bottom:1px solid var(--border);}
.lms-sh h3{font-size:14px;font-weight:700;color:#fff;}.lms-sh p{font-size:12px;color:#9a8fb0;margin-top:4px;}
.lms-progress{height:4px;background:#2a2540;border-radius:2px;margin-top:10px;}.lms-progress-fill{height:100%;background:var(--green);border-radius:2px;width:0%;transition:width .5s;}
.lms-section-title{padding:12px 18px 6px;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#9a8fb0;font-weight:700;}
.lms-si{display:flex;align-items:center;gap:10px;padding:10px 18px;cursor:pointer;font-size:13px;transition:background .15s;position:relative;color:#d0cce0;}
.lms-si:hover{background:rgba(247,183,49,.08);color:#fff;}
.lms-si.active{background:rgba(247,183,49,.12);color:#f7b731;font-weight:600;}
.lms-si.active::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);border-radius:0 2px 2px 0;}
.lms-si-icon{width:26px;height:26px;border-radius:6px;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;line-height:1;}
.lms-si-label{flex:1;}.lms-si-dur{font-size:11px;color:#9a8fb0;}
.lms-main{flex:1;overflow-y:auto;padding:24px;background:var(--bg);}
.lms-video-wrap{background:#000;border-radius:12px;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;margin-bottom:16px;overflow:hidden;position:relative;}
.lms-video-wrap video{width:100%;height:100%;object-fit:contain;}
.lms-vloader{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;color:#fff;gap:10px;cursor:pointer;background:#050714;}
.lms-vloader:hover .lvl-btn{background:var(--accent);color:#0a0c1a;}
.lvl-btn{background:rgba(255,255,255,.15);padding:8px 18px;border-radius:8px;font-size:13px;font-weight:600;transition:all .2s;}
.lms-info-bar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap;}
.lms-pill{padding:4px 12px;background:rgba(247,183,49,.1);border-radius:16px;font-size:12px;font-weight:500;color:var(--primary);}
.lms-rec{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--tl);margin-left:auto;}
.lms-rec-dot{width:8px;height:8px;background:var(--red);border-radius:50%;animation:pulse 1.5s infinite;}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.lms-ctabs{display:flex;border-bottom:2px solid var(--border);margin-bottom:16px;gap:4px;}
.lms-ctab{padding:8px 14px;font-size:13px;font-weight:500;color:var(--tl);cursor:pointer;border:0;border-bottom:2px solid transparent;background:none;font-family:inherit;margin-bottom:-2px;transition:all .15s;}
.lms-ctab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600;}
.lms-ctab .badge{background:var(--accent);color:#0a0c1a;padding:1px 7px;border-radius:10px;font-size:11px;font-weight:700;margin-left:4px;}
.lms-panel{display:none;}.lms-panel.active{display:block;}
/* Tracking panel */
.tp{background:var(--card);border-radius:10px;border:1px solid var(--border);overflow:hidden;margin-bottom:16px;}
.tp-head{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:600;}
.tp-body{max-height:200px;overflow-y:auto;padding:8px 16px;}
.tp-empty{padding:20px;text-align:center;color:var(--tll);font-size:13px;}
.tp-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid #f8fafc;font-size:13px;}
.tp-row:last-child{border-bottom:none;}.tp-time{font-family:monospace;color:var(--tll);min-width:55px;font-size:12px;}
.tp-tag{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;}
.tp-tag.pause{background:var(--rbg);color:var(--red);}.tp-tag.play{background:var(--gbg);color:var(--green);}.tp-tag.seek{background:var(--bbg);color:var(--blue);}.tp-tag.speed{background:var(--ybg);color:var(--accent);}
.dash-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
.dash-card{background:var(--card);border-radius:10px;border:1px solid var(--border);padding:16px;text-align:center;display:flex;flex-direction:column;align-items:center;}.dash-card h4{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--tll);margin-bottom:4px;}.dash-card .dv{font-size:26px;font-weight:800;color:var(--accent);}.dash-card .ds{font-size:11px;color:var(--tl);margin-top:4px;}
/* Exercise in LMS */
.ex-question{font-size:15px;font-weight:500;margin-bottom:16px;line-height:1.6;}
.ex-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.ex-opt{padding:12px 16px;border:2px solid var(--border);border-radius:10px;background:var(--card);cursor:pointer;font-size:14px;font-weight:500;text-align:center;transition:all .2s;font-family:"DM Sans",sans-serif;color:var(--text);}
.ex-opt:hover{border-color:var(--accent);background:var(--bar-bg);}
.ex-opt.correct{border-color:var(--green);background:var(--gbg);color:var(--green);}
.ex-opt.wrong{border-color:var(--red);background:var(--rbg);color:var(--red);}
.ex-opt.disabled{pointer-events:none;opacity:.6;}
.ex-fb{padding:12px 16px;border-radius:8px;font-size:13px;margin-top:12px;}
.ex-fb.ok{background:var(--gbg);color:var(--green);border:1px solid rgba(0,201,167,.25);}.ex-fb.no{background:var(--rbg);color:#dc2626;border:1px solid rgba(231,76,60,.25);}
.ex-next{background:var(--accent);color:#0a0c1a;border:none;padding:8px 20px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;margin-top:10px;font-family:"DM Sans",sans-serif;}
/* Tutor chat */
.chat-box{background:var(--card);border-radius:12px;border:1px solid var(--border);display:flex;flex-direction:column;height:420px;}
.chat-head{padding:12px 16px;border-bottom:1px solid var(--border);font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px;}
.chat-msgs{flex:1;overflow-y:auto;padding:16px;}
.msg{margin-bottom:14px;}.msg-who{font-size:11px;font-weight:600;color:var(--tl);margin-bottom:4px;}
.msg-bubble{padding:10px 14px;border-radius:10px;font-size:13px;line-height:1.6;max-width:85%;}
.msg.tutor .msg-bubble{background:var(--bar-bg);color:var(--accent);border:1px solid var(--border);}.msg.student .msg-bubble{background:#0d2a24;color:var(--green);margin-left:auto;}
.msg-sem{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;margin-bottom:4px;}
.msg-sem.g{background:var(--gbg);color:var(--green);}.msg-sem.r{background:var(--rbg);color:#dc2626;}.msg-sem.y{background:var(--ybg);color:var(--accent);}
.chat-input{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border);background:var(--card);}
.chat-in{flex:1;padding:10px 14px;border:1.5px solid var(--border);border-radius:8px;font-size:13px;font-family:"DM Sans",sans-serif;background:var(--bar-bg);color:var(--text);}.chat-in:focus{outline:none;border-color:var(--accent);background:var(--bg);}
.chat-in::placeholder{color:var(--tll);}
.chat-send{background:var(--accent);color:#0a0c1a;border:none;padding:10px 18px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:"DM Sans",sans-serif;}
/* Side panel in tutor */
.tutor-grid{display:grid;grid-template-columns:1fr 280px;gap:16px;}
.sp-card{background:var(--card);border-radius:10px;border:1px solid var(--border);padding:14px;margin-bottom:10px;}
.sp-card h4{font-size:12px;font-weight:700;color:var(--accent);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px;}
.sp-row{display:flex;justify-content:space-between;font-size:13px;padding:4px 0;border-bottom:1px solid #f8fafc;}.sp-row:last-child{border-bottom:none;}
.sp-l{color:var(--tl);}.sp-v{font-weight:600;}
.weak-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;background:var(--rbg);color:var(--red);margin:2px;}
.strong-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;background:var(--gbg);color:var(--green);margin:2px;}
.hidden{display:none!important;}
/* ═══ MAP PAGE ═══ */
.map-wrap{display:flex;gap:24px;align-items:flex-start;}
.map-container{flex:1;position:relative;background:var(--card);border-radius:16px;border:1px solid var(--border);overflow:hidden;min-height:520px;}
#olMap{width:100%;height:520px;}
#olMap .ol-control button{background:var(--primary);color:#fff;font-size:16px;} #olMap .ol-control button:hover{background:var(--plight);}
#olMap .ol-zoom{top:auto;bottom:10px;left:10px;}
#olMap .ol-attribution{font-size:10px;}
.ol-popup{position:absolute;background:var(--card);border-radius:12px;padding:14px 18px;box-shadow:0 4px 20px rgba(247,183,49,.2);border:2px solid var(--accent);min-width:200px;transform:translate(-50%,-100%);margin-top:-16px;pointer-events:auto;z-index:20;}
.ol-popup::after{content:'';position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid var(--accent);}
.ol-popup .pop-name{font-size:13px;font-weight:700;color:var(--accent);margin-bottom:3px;}
.ol-popup .pop-addr{font-size:11px;color:var(--tl);margin-bottom:6px;}
.ol-popup .pop-stats{display:flex;gap:10px;font-size:11px;color:var(--tl);margin-bottom:8px;}
.ol-popup .pop-btn{background:linear-gradient(135deg,var(--accent),#d4a017);color:#0a0c1a;border:none;padding:6px 14px;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;font-family:"DM Sans",sans-serif;width:100%;}
.ol-popup .pop-btn:hover{opacity:.9;}
.map-sidebar{width:340px;flex-shrink:0;}
.map-school-card{background:var(--card);border-radius:12px;border:2px solid var(--border);padding:18px;margin-bottom:12px;cursor:pointer;transition:all .25s;}
.map-school-card:hover{border-color:var(--accent);box-shadow:0 4px 16px rgba(247,183,49,.1);transform:translateY(-2px);}
.map-school-card.active{border-color:var(--accent);box-shadow:0 4px 20px rgba(247,183,49,.15);}
.map-school-card .msc-name{font-size:14px;font-weight:700;color:var(--accent);margin-bottom:4px;}
.map-school-card .msc-addr{font-size:11px;color:var(--tl);margin-bottom:8px;}
.map-school-card .msc-stats{display:flex;gap:12px;}
.map-school-card .msc-stat{font-size:11px;color:var(--tl);}.msc-stat strong{color:var(--text);font-weight:700;}
.map-school-card .msc-enter{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,var(--accent),#d4a017);color:#0a0c1a;border:none;padding:8px 16px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;font-family:"DM Sans",sans-serif;margin-top:10px;transition:all .2s;opacity:0;max-height:0;overflow:hidden;transition:all .3s;}
.map-school-card.active .msc-enter{opacity:1;max-height:40px;margin-top:10px;}
.map-header-card{background:linear-gradient(135deg,var(--accent),#d4a017);color:#0a0c1a;border-radius:14px;padding:20px;margin-bottom:16px;border:none;}
.map-header-card h2{font-size:18px;font-weight:800;margin-bottom:4px;font-family:'Dela Gothic One',cursive;}
.map-header-card p{font-size:12px;opacity:.8;}
.map-legend{display:flex;gap:16px;padding:10px 14px;background:rgba(18,21,43,.95);border:1px solid var(--border);border-radius:10px;font-size:11px;position:absolute;top:10px;right:10px;z-index:5;box-shadow:0 2px 12px rgba(0,0,0,.3);color:#fff;font-weight:500;}
.map-legend-item{display:flex;align-items:center;gap:5px;}
.map-legend-dot{width:10px;height:10px;border-radius:50%;}
.map-total{display:flex;gap:16px;margin-bottom:16px;}
.map-total-card{flex:1;background:var(--card);border-radius:10px;border:1px solid var(--border);padding:14px;text-align:center;display:flex;flex-direction:column;align-items:center;}
.map-total-card .mtv{font-size:24px;font-weight:800;color:var(--accent);}.map-total-card .mtl{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--tll);}
.map-total-card .mti{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:6px;line-height:1;background:rgba(247,183,49,.08);border:1px solid rgba(247,183,49,.12);}
@media(max-width:768px){.stats,.obj-grid{grid-template-columns:1fr 1fr;}.gg,.cg{grid-template-columns:1fr;}.map-wrap{flex-direction:column;}.map-sidebar{width:100%;}}
/* ═══ SISTEMA DE ROLES ═══ */
.role-screen{position:fixed;inset:0;z-index:999;background:linear-gradient(135deg,#050714 0%,#0a0c1a 30%,#12152b 60%,#1a1e3a 100%);display:flex;align-items:center;justify-content:center;padding:20px;}
.role-container{max-width:800px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;}
.role-container h1{font-size:28px;font-weight:800;color:#fff;margin-bottom:4px;font-family:'Dela Gothic One',cursive;line-height:1.3;}
.role-container .role-sub{font-size:13px;color:rgba(255,255,255,.5);margin-bottom:32px;text-align:center;}
.role-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:24px;}
.role-card{background:rgba(247,183,49,.04);border:2px solid rgba(247,183,49,.12);border-radius:16px;padding:24px 12px;cursor:pointer;transition:all .3s;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.role-card:hover{background:rgba(247,183,49,.1);border-color:rgba(247,183,49,.3);transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.4);}
.role-card:focus-visible{outline:3px solid var(--accent);outline-offset:4px;border-color:var(--accent);}
.role-card.selected{background:rgba(247,183,49,.15);border-color:var(--accent);box-shadow:0 0 20px rgba(247,183,49,.15);}
.role-icon{font-size:48px;margin-bottom:10px;display:flex;align-items:center;justify-content:center;width:64px;height:64px;line-height:1;}
.role-label{font-size:14px;font-weight:700;color:#fff;margin-bottom:4px;text-align:center;width:100%;}
.role-desc{font-size:11px;color:rgba(255,255,255,.4);line-height:1.4;text-align:center;}
.role-login{margin-top:20px;display:none;}
.role-login.show{display:block;}
.role-login input{width:100%;max-width:320px;padding:12px 16px;border:2px solid rgba(247,183,49,.2);border-radius:10px;background:rgba(247,183,49,.06);color:#fff;font-size:14px;font-family:inherit;text-align:center;margin-bottom:12px;}
.role-login input::placeholder{color:rgba(255,255,255,.3);}
.role-login input:focus{outline:none;border-color:var(--accent);}
.role-enter{background:linear-gradient(135deg,var(--accent),#d4a017);color:#0a0c1a;border:none;padding:14px 40px;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .2s;display:inline-flex;align-items:center;gap:8px;}
.role-enter:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(247,183,49,.4);}
.role-enter:disabled{opacity:.4;cursor:not-allowed;transform:none;}
.role-badge{display:none!important;}
@media(max-width:768px){.role-screen{width:100%;max-width:100vw;overflow-x:hidden;overflow-y:auto;align-items:flex-start;}.role-container{width:100%;max-width:100%;min-width:0;}.role-container h1,.role-container .role-sub{max-width:100%;overflow-wrap:anywhere;}.role-grid{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}.role-card{min-width:0;padding:16px 8px;border-radius:12px;}.role-icon{width:48px;height:48px;font-size:36px;}.role-grid .role-card:nth-child(4),.role-grid .role-card:nth-child(5){grid-column:span 1;}}

.v8-overlay{display:none;position:fixed;inset:0;z-index:200;background:var(--bg);overflow-y:auto;}
.v8-overlay.active{display:block;}
.v8-ctn{max-width:1100px;margin:0 auto;padding:24px;box-sizing:border-box;}
.v8-close{display:block;margin-left:auto;margin-bottom:12px;width:fit-content;z-index:210;background:var(--accent);color:#0a0c1a;border:none;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:"DM Sans",sans-serif;box-shadow:0 4px 12px rgba(247,183,49,.3);position:sticky;top:68px;}
.v8-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:2px solid var(--border);padding-bottom:0;}
.v8-tab{padding:10px 18px;font-size:13px;font-weight:500;cursor:pointer;color:var(--tl);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;background:none;border-top:none;border-left:none;border-right:none;font-family:inherit;color:var(--muted,var(--tl));}
.v8-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:700;}
.v8-page{display:none;}.v8-page.active{display:block;}
.upload-zone{border:2px dashed var(--border);border-radius:12px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .2s;background:#0e1025;margin-bottom:16px;}
.upload-zone:hover{border-color:var(--accent);background:var(--bar-bg);}
.source-card{background:var(--card);border-radius:12px;border:1px solid var(--border);padding:16px;display:flex;gap:14px;align-items:flex-start;margin-bottom:10px;cursor:pointer;transition:all .2s;}
.source-card:hover{border-color:var(--accent);box-shadow:0 4px 12px rgba(247,183,49,.08);transform:translateY(-1px);}
.source-card:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-color:var(--accent);}
.source-icon{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0;line-height:1;}
.source-info{flex:1;}.source-info h4{font-size:14px;font-weight:700;margin-bottom:2px;color:var(--text);}.source-info p{font-size:12px;color:var(--tl);line-height:1.5;}
.source-url{font-size:11px;color:#3b82f6;margin-top:4px;}
.chunk{background:var(--bar-bg);border-radius:8px;padding:12px;margin-bottom:8px;font-size:13px;line-height:1.6;border-left:3px solid var(--accent);}
.chunk-meta{font-size:11px;color:var(--tll);margin-top:4px;}
.arch-flow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:16px 0;}
.arch-box{background:var(--card);border:2px solid var(--border);border-radius:10px;padding:12px 16px;text-align:center;min-width:110px;}
.arch-box.hl{border-color:var(--accent);background:var(--ppale);}
.arch-box h4{font-size:12px;font-weight:700;color:var(--accent);margin-bottom:2px;}.arch-box p{font-size:11px;color:var(--tl);}
.arch-arrow{font-size:20px;color:var(--tll);}
.code-block{background:#050714;color:#e2e8f0;padding:16px;border-radius:8px;font-family:monospace;font-size:12px;line-height:1.8;max-height:320px;overflow-y:auto;white-space:pre-wrap;}
/* V8: Planeación + Creación */
.plan-card{background:var(--card);color:var(--text);border-radius:12px;border:1px solid var(--border);padding:20px;margin-bottom:12px;transition:all .2s;font-family:"DM Sans",sans-serif;width:100%;text-align:left;}
.plan-card:hover,.plan-card:focus-visible{box-shadow:0 4px 16px rgba(247,183,49,.12);border-color:var(--accent);outline:none;}
.plan-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;}
.plan-badge{padding:4px 12px;border-radius:20px;font-size:11px;font-weight:600;}
.plan-field{margin-bottom:14px;}
.plan-field label{display:block;font-size:12px;font-weight:600;color:var(--tl);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px;}
.plan-field select,.plan-field input,.plan-field textarea{width:100%;padding:10px 14px;border:2px solid var(--border);border-radius:8px;font-size:13px;font-family:"DM Sans",sans-serif;transition:border-color .2s;background:var(--card);color:var(--text);resize:vertical;}
.plan-field select:focus,.plan-field input:focus,.plan-field textarea:focus{outline:none;border-color:var(--plight);}
.plan-result{background:linear-gradient(135deg,#1a1e3a,#2a2540);border:2px solid rgba(247,183,49,.25);border-radius:12px;padding:20px;margin-top:16px;}
.plan-result h3{color:var(--primary);font-size:16px;margin-bottom:12px;}
.plan-section{background:var(--card);border-radius:8px;padding:14px;margin-bottom:10px;border-left:3px solid var(--accent);}
.plan-section h4{font-size:13px;font-weight:700;color:var(--accent);margin-bottom:6px;}
.plan-section p,.plan-section li{font-size:13px;line-height:1.7;color:var(--text);}
.plan-section ul{padding-left:18px;margin:0;}
.plan-closure-warning{border:1px solid rgba(247,183,49,.35);background:rgba(247,183,49,.1);border-radius:10px;padding:10px 12px;margin:10px 0 12px;color:var(--text);font-size:12px;line-height:1.55;overflow-wrap:anywhere;}
.plan-closure-warning strong{color:var(--accent);}
.plan-source-summary{border:1px solid rgba(16,185,129,.28);background:rgba(16,185,129,.08);border-radius:10px;padding:10px 12px;margin:0 0 12px;color:var(--text);font-size:12px;line-height:1.55;overflow-wrap:anywhere;}
.plan-source-summary strong{color:#047857;}
.plan-checklist-items{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px;}
.plan-checklist-items li{display:flex;gap:8px;align-items:flex-start;border-radius:8px;padding:6px 8px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);}
.plan-checklist-items .is-ready{border-color:rgba(16,185,129,.28);background:rgba(16,185,129,.07);}
.plan-checklist-items .is-pending{border-color:rgba(247,183,49,.32);background:rgba(247,183,49,.08);}
.plan-checklist-state{flex:0 0 auto;min-width:68px;font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.02em;color:var(--text);}
.plan-checklist-text{min-width:0;}
.plan-checklist-counts{display:inline-flex;gap:6px;align-items:center;margin-left:8px;font-size:11px;font-weight:800;color:var(--tl);vertical-align:middle;}
.plan-checklist-counts span{border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:2px 7px;background:rgba(255,255,255,.05);}
.plan-checklist-header{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.plan-checklist-actions{margin-left:auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.plan-checklist-action{border:1px solid rgba(247,183,49,.38);border-radius:999px;background:rgba(247,183,49,.12);color:var(--accent);font-size:11px;font-weight:800;padding:4px 9px;cursor:pointer;}
.plan-checklist-action:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.plan-checklist-action:disabled{opacity:.62;cursor:default;}
.plan-checklist-status{display:block;margin-top:6px;color:var(--tl);font-size:11px;line-height:1.4;}
.plan-closure-brief-editor-wrap{display:block;margin-top:8px;}
.plan-closure-brief-editor{width:100%;min-height:72px;resize:vertical;border:1px solid rgba(247,183,49,.28);border-radius:8px;background:rgba(255,255,255,.06);color:var(--text);font:inherit;font-size:12px;line-height:1.45;padding:8px;box-sizing:border-box;}
.plan-closure-brief-editor:focus{outline:2px solid var(--accent);outline-offset:2px;}
.plan-checklist-summary.show-pending-only .plan-checklist-items .is-ready{display:none;}
.planning-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;}
.planning-workspace>*{min-width:0;}
.tmpl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;}
.tmpl-card{background:var(--card);color:var(--text);border-radius:12px;border:2px solid var(--border);padding:18px;cursor:pointer;transition:all .2s;text-align:center;font-family:"DM Sans",sans-serif;width:100%;}
.tmpl-card:hover,.tmpl-card:focus-visible{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 16px rgba(247,183,49,.1);outline:none;}
.tmpl-card.selected{border-color:var(--accent);background:rgba(247,183,49,.08);}
.tmpl-card .tmpl-icon{font-size:36px;margin-bottom:8px;}
.tmpl-card h4{font-size:14px;font-weight:700;color:var(--accent);font-family:'Dela Gothic One',cursive;margin-bottom:4px;}
.tmpl-card p{font-size:12px;color:var(--tl);line-height:1.5;}
.tmpl-preview{margin-top:4px;padding:12px;border:1px solid rgba(247,183,49,.35);border-radius:8px;background:rgba(247,183,49,.08);}
.tmpl-preview-title{font-size:12px;font-weight:800;color:var(--accent);margin-bottom:8px;}
.tmpl-preview-context{font-size:12px;color:var(--text);line-height:1.4;margin-bottom:8px;padding:6px 8px;border-radius:6px;background:var(--bar-bg);border:1px solid var(--border);overflow-wrap:anywhere;}
.tmpl-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:8px;}
.tmpl-preview-item{font-size:11px;color:var(--tl);line-height:1.35;overflow-wrap:anywhere;}
.tmpl-preview-item strong{display:block;color:var(--text);font-size:12px;}
.tmpl-preview-note{font-size:12px;color:var(--tl);line-height:1.45;margin:0;overflow-wrap:anywhere;}
.tmpl-preview-note + .tmpl-preview-note{padding-top:6px;}
.tmpl-preview-note strong{color:var(--text);}
.plan-contrast-title{display:block;color:var(--accent);font-weight:800;margin:2px 0 4px;}
.plan-contrast-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:5px;}
.plan-contrast-step{display:flex;gap:7px;align-items:flex-start;border:1px solid rgba(247,183,49,.25);border-radius:7px;background:rgba(247,183,49,.07);padding:5px 7px;color:var(--tl);}
.plan-contrast-index{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;background:rgba(247,183,49,.18);color:var(--accent);font-size:10px;font-weight:900;line-height:1;}
.plan-contrast-text{min-width:0;overflow-wrap:anywhere;}
.axis-hint .plan-contrast-list{margin-top:5px;}
.tmpl-preview-details{margin:6px 0;border:1px solid var(--border);border-radius:6px;background:rgba(255,255,255,.03);padding:6px 8px;overflow-wrap:anywhere;}
.tmpl-preview-details summary{cursor:pointer;font-size:12px;font-weight:800;color:var(--text);}
.tmpl-preview-details summary::after{content:'Mostrar';float:right;font-size:11px;color:var(--tl);font-weight:700;}
.tmpl-preview-details[open] summary::after{content:'Ocultar';}
.gen-btn{background:linear-gradient(135deg,var(--accent),#d4a017);color:#0a0c1a;border:none;padding:14px 28px;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;font-family:"DM Sans",sans-serif;display:inline-flex;align-items:center;gap:8px;transition:all .2s;margin-top:8px;}
.gen-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(247,183,49,.3);}
.gen-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;}
.tipo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:16px;}
.tipo-card{background:var(--card);color:var(--text);border-radius:10px;border:2px solid var(--border);padding:14px;cursor:pointer;transition:all .2s;text-align:center;font-family:"DM Sans",sans-serif;}
.tipo-card:hover,.tipo-card:focus-visible{border-color:var(--accent);outline:none;}
.tipo-card.selected{border-color:var(--accent);background:rgba(247,183,49,.08);}
.tipo-card .tipo-icon{font-size:28px;margin-bottom:6px;}
.tipo-card h4{font-size:12px;font-weight:700;color:var(--accent);}
.tipo-card p{font-size:11px;color:var(--tl);margin-top:2px;}
.class-assist{border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:16px;background:rgba(247,183,49,.05);}
.class-assist-title{font-size:12px;font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;}
.class-preset-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.class-preset{border:2px solid var(--border);background:var(--card);color:var(--text);border-radius:8px;padding:10px;text-align:left;cursor:pointer;font-family:"DM Sans",sans-serif;transition:all .15s;min-height:74px;}
.class-preset:hover,.class-preset:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 4px 12px rgba(247,183,49,.12);}
.class-preset[aria-pressed="true"]{border-color:var(--accent);background:rgba(247,183,49,.1);}
.class-preset strong{display:block;font-size:12px;color:var(--accent);margin-bottom:3px;}
.class-preset span{display:block;font-size:11px;color:var(--tl);line-height:1.35;}
.nem-note{border:1px solid rgba(34,197,94,.28);background:rgba(34,197,94,.08);border-radius:10px;padding:10px 12px;margin:0 0 14px;font-size:12px;color:var(--text);line-height:1.55;}
.nem-note strong{color:#22c55e;}
.nem-note span{display:inline-block;margin:4px 6px 0 0;padding:2px 8px;border-radius:999px;background:rgba(34,197,94,.12);color:#86efac;font-size:11px;font-weight:600;}
.axis-hint{margin-top:6px;font-size:11px;line-height:1.45;color:var(--tl);background:var(--bar-bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px;}
.axis-hint strong{color:var(--accent);}
.crear-result-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 12px;font-size:12px;line-height:1.25;color:var(--tl);}
.crear-result-chip{display:inline-flex;align-items:center;max-width:100%;padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--bar-bg);color:var(--tl);font-weight:700;overflow-wrap:anywhere;}
.crear-result-chip strong{color:var(--accent);font-weight:800;}
.axis-guide{margin-top:8px;border:1px solid var(--border);border-radius:8px;background:var(--card);padding:8px 10px;font-size:11px;color:var(--tl);}
.axis-guide summary{cursor:pointer;font-weight:700;color:var(--accent);}
.axis-guide ul{margin:8px 0 0;padding-left:18px;line-height:1.55;}
.axis-guide li{margin-bottom:4px;}
.mini-action{margin:8px 0;border:1px solid var(--border);background:var(--card);color:var(--accent);border-radius:6px;padding:6px 10px;font-size:11px;font-weight:700;font-family:"DM Sans",sans-serif;cursor:pointer;transition:all .15s;}
.mini-action:hover,.mini-action:focus-visible{border-color:var(--accent);box-shadow:0 3px 10px rgba(247,183,49,.1);outline:none;}
.mini-action.plan-mode-mismatch{border-color:var(--accent);background:rgba(247,183,49,.1);box-shadow:0 0 0 3px rgba(247,183,49,.12);}
.mini-status{display:inline-block;margin-left:8px;font-size:11px;color:var(--tl);}
.plan-resolution-focus-cue{outline:2px solid var(--accent)!important;outline-offset:2px;border-color:var(--accent)!important;box-shadow:0 0 0 4px rgba(247,183,49,.16)!important;}
@media(max-width:768px){html,body{max-width:100%;overflow-x:hidden;}.topnav{max-width:100%;min-width:0;padding:0 12px;gap:8px;overflow:hidden;}.topnav>.nsep,.bc{display:none;}.nr{min-width:0;max-width:100%;overflow-x:auto;gap:8px;margin-left:0;flex:1;scrollbar-width:none;}.nr::-webkit-scrollbar{display:none;}.rbtn{white-space:nowrap;}.ctn,.pg{min-width:0;max-width:100%;}.map-legend{position:static;max-width:100%;flex-wrap:wrap;margin:8px 0 0;}.planning-workspace,.crear-main-grid{grid-template-columns:1fr!important;}.class-preset-grid,.tmpl-preview-grid{grid-template-columns:1fr 1fr;}.class-preset{min-height:66px;}}
@media(max-width:768px){#v8-creacion .crear-main-grid>*{min-width:0;max-width:100%;box-sizing:border-box;}#v8-creacion .card,#v8-creacion .plan-result{width:100%;max-width:100%;box-sizing:border-box;}#v8-creacion .tmpl-grid{grid-template-columns:minmax(0,1fr)!important;}#v8-creacion .tmpl-card{min-width:0;box-sizing:border-box;}}
@media(max-width:480px){.v8-close{position:static;margin:8px 12px 12px auto;padding:7px 10px;font-size:12px;}.tmpl-preview-grid{grid-template-columns:1fr;}.tmpl-preview{padding:10px;}.tmpl-preview-note{font-size:11.5px;line-height:1.5;}}
/* ═══ GAMIFICACIÓN ═══ */
.gami-bar{background:linear-gradient(135deg,#1a1e3a,#1e1a2e);border:1px solid var(--border);border-radius:12px;padding:14px 20px;display:flex;align-items:center;gap:16px;margin-bottom:16px;}
.gami-avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#d4a017);display:flex;align-items:center;justify-content:center;font-size:26px;box-shadow:0 4px 12px rgba(247,183,49,.3);flex-shrink:0;line-height:1;}
.gami-info{flex:1;}
.gami-name{font-size:15px;font-weight:700;color:var(--accent);}
.gami-level{font-size:11px;color:var(--tl);margin-top:1px;}
.gami-xp-bar{height:8px;background:#2a2540;border-radius:4px;margin-top:6px;overflow:hidden;width:100%;}
.gami-xp-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--accent),#d4a017);transition:width .8s;}
.gami-xp-label{font-size:10px;color:var(--tll);margin-top:2px;}
.gami-stats{display:flex;gap:12px;flex-shrink:0;}
.gami-stat{text-align:center;min-width:50px;}
.gami-stat .gv{font-size:20px;font-weight:800;color:var(--accent);}
.gami-stat .gl{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--tll);}
.gami-badges{display:flex;gap:6px;flex-shrink:0;}
.gami-badge{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;background:var(--card);border:2px solid var(--border);box-shadow:0 2px 6px rgba(0,0,0,.2);cursor:pointer;transition:transform .2s;line-height:1;}
.gami-badge:hover{transform:scale(1.2);}
.gami-badge.locked{opacity:.3;filter:grayscale(1);}
/* ═══ VOZ ═══ */
.voice-btn{background:none;border:2px solid var(--border);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;transition:all .2s;flex-shrink:0;}
.voice-btn:hover{border-color:var(--plight);background:var(--ppale);}
.voice-btn.recording{border-color:var(--red);background:var(--rbg);animation:voicePulse 1s infinite;}
@keyframes voicePulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.4);}50%{box-shadow:0 0 0 10px rgba(239,68,68,0);}}
/* ═══ PORTAL PADRES ═══ */
.parent-wrap{min-height:100vh;color:var(--text);background:linear-gradient(135deg,#0a0c1a 0%,#0d2a24 40%,#101a2e 100%);padding:24px;}
.parent-header{text-align:center;margin-bottom:28px;}
.parent-card{background:var(--card);border-radius:14px;border:1px solid var(--border);color:var(--text);padding:20px;margin-bottom:14px;max-width:700px;margin-left:auto;margin-right:auto;}
.parent-progress{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin:16px 0;}
.parent-stat{text-align:center;padding:14px;background:var(--card);border:1px solid var(--border);border-radius:10px;}
.parent-stat .pv{font-size:24px;font-weight:800;color:var(--accent);}
.parent-stat .pl{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--tll);margin-top:2px;}
.parent-obj{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #f8fafc;}
.parent-obj:last-child{border-bottom:none;}
.parent-obj-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;}
.parent-obj-name{flex:1;font-size:13px;}
.parent-obj-level{font-size:12px;font-weight:600;padding:2px 10px;border-radius:10px;}
.parent-msg{background:linear-gradient(135deg,#101a2e,#12152b);border:1px solid rgba(96,165,250,.25);border-radius:10px;padding:14px;font-size:13px;color:#60a5fa;line-height:1.7;margin-top:12px;}
/* ═══ COMUNIDAD ═══ */
.reddit-post{background:var(--card);border-radius:12px;border:1px solid var(--border);margin-bottom:12px;display:flex;overflow:hidden;transition:border-color .2s;}
.reddit-post:hover{border-color:var(--plight);}
.reddit-votes{width:48px;background:#0e1025;display:flex;flex-direction:column;align-items:center;padding:10px 4px;gap:2px;flex-shrink:0;}
.reddit-votes button{background:none;border:none;font-size:18px;cursor:pointer;padding:2px;border-radius:4px;transition:all .15s;opacity:.4;}
.reddit-votes button:hover{opacity:1;background:var(--ppale);}
.reddit-votes button.voted-up{opacity:1;color:#22c55e;}.reddit-votes button.voted-down{opacity:1;color:#ef4444;}
.reddit-score{font-size:14px;font-weight:800;color:var(--accent);}
.reddit-body{flex:1;padding:12px 16px;}
.reddit-meta{font-size:11px;color:var(--tll);margin-bottom:6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.reddit-meta .campo-tag{padding:2px 8px;border-radius:4px;font-weight:600;font-size:10px;}
.reddit-title{font-size:15px;font-weight:700;color:var(--accent);margin-bottom:4px;cursor:pointer;}
.reddit-title:hover{color:var(--plight);}
.reddit-desc{font-size:13px;color:var(--tl);line-height:1.5;margin-bottom:8px;}
.community-context-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;font-size:11px;line-height:1.25;}
.community-context-chip{display:inline-flex;align-items:center;flex-wrap:wrap;column-gap:3px;row-gap:1px;max-width:100%;min-width:0;padding:3px 8px;border:1px solid var(--border);border-radius:999px;background:var(--bar-bg);color:var(--tl);font-weight:700;white-space:normal;overflow-wrap:anywhere;word-break:break-word;}
.community-context-chip strong{color:var(--accent);font-weight:800;}
.community-filter-summary{margin:-6px 0 12px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bar-bg);color:var(--tl);font-size:12px;line-height:1.4;overflow-wrap:anywhere;}
.community-filter-summary strong{color:var(--accent);}
.reddit-actions{display:flex;gap:14px;font-size:12px;color:var(--tll);}
.reddit-actions span,.reddit-actions button{cursor:pointer;display:flex;align-items:center;gap:4px;padding:3px 6px;border-radius:4px;transition:background .15s;}
.reddit-actions button{border:0;background:none;color:inherit;font:inherit;}
.reddit-actions span:hover,.reddit-actions button:hover{background:var(--bar-bg);color:var(--primary);}
.reddit-title:focus-visible,.reddit-actions button:focus-visible{outline:2px solid var(--primary);outline-offset:2px;}
.reddit-filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;align-items:center;}
.reddit-filter{padding:6px 14px;border-radius:20px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--border);background:var(--card);font-family:inherit;transition:all .15s;color:var(--tl);}
.reddit-filter:hover{border-color:var(--accent);color:var(--primary);}
.reddit-filter.active{background:var(--accent);color:#0a0c1a;border-color:var(--primary);}
.comment-box{background:var(--bar-bg);border-radius:8px;padding:10px 12px;margin-top:8px;font-size:12px;line-height:1.6;border-left:3px solid var(--border);}
.comment-box .cm-author{font-weight:600;color:var(--primary);}
.comment-box .cm-time{color:var(--tll);font-size:11px;margin-left:6px;}

.theme-toggle{background:none;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:16px;transition:all .2s;color:#fff;}
.theme-toggle:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.4);}

/* ═══ SPRINT 5: ACCESIBILIDAD + MULTILINGÜE + NEE ═══ */

/* Fuente para dislexia */
@import url('https://fonts.googleapis.com/css2?family=Lexend:wght@400;500;600;700&display=swap');

/* Modos de accesibilidad */
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
body.acc-font-lg { font-size: 16px !important; }
body.acc-font-xl { font-size: 19px !important; }
body.acc-font-lg *:not(.logo,.gami-badge,.sem,.stt) { font-size: 1.1em !important; }
body.acc-font-xl *:not(.logo,.gami-badge,.sem,.stt) { font-size: 1.25em !important; }
body.acc-dyslexia * { font-family: 'Lexend', sans-serif !important; letter-spacing: .04em; word-spacing: .12em; line-height: 1.85 !important; }
body.acc-contrast { filter: contrast(1.4) saturate(0.7); }
body.acc-contrast .topnav { background: #000 !important; }
body.acc-contrast .card, body.acc-contrast .gc { background: #111 !important; border-color: #fff !important; }
body.acc-nodistract .gami-badge, body.acc-nodistract .dot, body.acc-nodistract [class*="pulse"] { display:none !important; }
body.acc-nodistract * { animation: none !important; transition: none !important; }
body.acc-highcursor * { cursor: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"><circle cx="16" cy="16" r="14" fill="%23f7b731" opacity=".6"/></svg>') 16 16, auto !important; }

/* Panel flotante de accesibilidad */
.acc-fab { position:fixed; bottom:24px; right:80px; z-index:9999; }
.acc-fab-btn { width:48px; height:48px; box-sizing:border-box; padding:0; border-radius:50%; background:var(--primary); color:#0a0c1a; border:none; font-size:22px; cursor:pointer; box-shadow:0 4px 16px rgba(0,0,0,.4); display:flex; align-items:center; justify-content:center; transition:all .2s; }
.acc-fab-btn:hover { transform:scale(1.1); }
.acc-fab-btn:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.acc-panel { position:absolute; bottom:60px; right:0; width:280px; background:var(--card); border:1px solid var(--border); border-radius:16px; padding:20px; box-shadow:0 8px 32px rgba(0,0,0,.5); display:none; font-size:13px; }
.acc-panel.open { display:block; }
.acc-panel h4 { font-size:13px; font-weight:700; color:var(--primary); margin-bottom:14px; text-transform:uppercase; letter-spacing:.5px; }
.acc-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; font-size:13px; }
.acc-row label { color:var(--text); }
.acc-toggle { position:relative; width:40px; height:22px; flex-shrink:0; }
.acc-toggle input { opacity:0; width:0; height:0; }
.acc-slider { position:absolute; inset:0; background:var(--border); border-radius:22px; cursor:pointer; transition:.3s; }
.acc-slider:before { content:''; position:absolute; width:16px; height:16px; left:3px; bottom:3px; background:#fff; border-radius:50%; transition:.3s; }
.acc-toggle input:checked + .acc-slider { background:var(--primary); }
.acc-toggle input:checked + .acc-slider:before { transform:translateX(18px); }
.acc-sep { height:1px; background:var(--border); margin:14px 0; }
.acc-font-btns { display:flex; gap:6px; }
.acc-font-btn { flex:1; padding:5px 0; border:1px solid var(--border); border-radius:6px; background:none; color:var(--text); cursor:pointer; font-size:12px; transition:.2s; font-family:inherit; }
.acc-font-btn.active, .acc-font-btn:hover { border-color:var(--primary); color:var(--primary); background:var(--ppale); }
body.acc-font-lg .acc-panel { font-size:14px!important; }
body.acc-font-xl .acc-panel { font-size:16px!important; }
body.acc-font-lg .acc-panel *,
body.acc-font-xl .acc-panel * { font-size:inherit!important; line-height:1.35!important; }
body.acc-font-lg .acc-panel h4,
body.acc-font-xl .acc-panel h4 { font-size:1em!important; }
body.acc-font-lg .v8-close { font-size:13px!important; line-height:1.2!important; }
body.acc-font-xl .v8-close { font-size:14px!important; line-height:1.2!important; }
body.acc-font-lg #v8-creacion .v8-ctn > h2 { font-size:clamp(22px,6.2vw,28px)!important; line-height:1.18!important; overflow-wrap:anywhere; }
body.acc-font-xl #v8-creacion .v8-ctn > h2 { font-size:clamp(24px,7vw,30px)!important; line-height:1.18!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-creacion .v8-ctn > p.sub { font-size:15px!important; line-height:1.45!important; overflow-wrap:anywhere; }
body.acc-font-xl #v8-creacion .v8-ctn > p.sub { font-size:16px!important; line-height:1.45!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-creacion .v8-ctn > h3 { font-size:17px!important; line-height:1.3!important; overflow-wrap:anywhere; }
body.acc-font-xl #v8-creacion .v8-ctn > h3 { font-size:18px!important; line-height:1.3!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-creacion .class-assist { font-size:13px!important; line-height:1.4!important; }
body.acc-font-xl #v8-creacion .class-assist { font-size:14px!important; line-height:1.4!important; }
body.acc-font-lg #v8-creacion .class-assist-title,
body.acc-font-xl #v8-creacion .class-assist-title { font-size:1em!important; line-height:1.3!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-creacion .crear-main-grid { font-size:14px!important; line-height:1.45!important; }
body.acc-font-xl #v8-creacion .crear-main-grid { font-size:16px!important; line-height:1.45!important; }
body.acc-font-lg #v8-creacion .crear-main-grid,
body.acc-font-xl #v8-creacion .crear-main-grid { grid-template-columns:minmax(0,1fr)!important; max-width:100%; }
body.acc-font-lg #v8-creacion .crear-main-grid > *,
body.acc-font-xl #v8-creacion .crear-main-grid > * { min-width:0; max-width:100%; }
body.acc-font-lg #v8-creacion .crear-main-grid .card,
body.acc-font-xl #v8-creacion .crear-main-grid .card { font-size:inherit!important; line-height:1.45!important; min-width:0; max-width:100%; box-sizing:border-box; }
body.acc-font-lg #v8-creacion .crear-main-grid h3 { font-size:15.4px!important; line-height:1.3!important; overflow-wrap:anywhere; }
body.acc-font-xl #v8-creacion .crear-main-grid h3 { font-size:17.6px!important; line-height:1.3!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-creacion .crear-main-grid .plan-field,
body.acc-font-xl #v8-creacion .crear-main-grid .plan-field { font-size:inherit!important; line-height:1.45!important; min-width:0; }
body.acc-font-lg #v8-creacion .crear-main-grid .plan-field label { font-size:12px!important; line-height:1.3!important; overflow-wrap:anywhere; }
body.acc-font-xl #v8-creacion .crear-main-grid .plan-field label { font-size:13px!important; line-height:1.3!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-creacion .crear-main-grid input,
body.acc-font-lg #v8-creacion .crear-main-grid select,
body.acc-font-lg #v8-creacion .crear-main-grid textarea { font-size:14px!important; line-height:1.35!important; min-width:0!important; max-width:100%; }
body.acc-font-xl #v8-creacion .crear-main-grid input,
body.acc-font-xl #v8-creacion .crear-main-grid select,
body.acc-font-xl #v8-creacion .crear-main-grid textarea { font-size:16px!important; line-height:1.35!important; min-width:0!important; max-width:100%; }
body.acc-font-lg #v8-creacion #crearActiveTopic { font-size:13px!important; line-height:1.35!important; overflow-wrap:anywhere; }
body.acc-font-xl #v8-creacion #crearActiveTopic { font-size:14px!important; line-height:1.35!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-creacion #crearTopicDropdown,
body.acc-font-xl #v8-creacion #crearTopicDropdown { max-height:min(280px,calc(100vh - 180px))!important; overflow-x:hidden!important; overflow-y:auto!important; }
body.acc-font-lg #v8-creacion #crearTopicDropdown > div,
body.acc-font-xl #v8-creacion #crearTopicDropdown > div { box-sizing:border-box; min-width:0; max-width:100%; white-space:normal; overflow-wrap:anywhere; }
body.acc-font-lg #v8-creacion #crearTopicDropdown > div { font-size:13px!important; line-height:1.35!important; }
body.acc-font-xl #v8-creacion #crearTopicDropdown > div { font-size:14px!important; line-height:1.35!important; }
body.acc-font-lg #v8-creacion #crearTopicDropdown > div span,
body.acc-font-xl #v8-creacion #crearTopicDropdown > div span { flex:0 1 auto; min-width:0; max-width:42%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.acc-font-lg #v8-creacion #crearTopicDropdown > div span { font-size:11px!important; line-height:1.25!important; }
body.acc-font-xl #v8-creacion #crearTopicDropdown > div span { font-size:12px!important; line-height:1.25!important; }
#v8-creacion #crearTopicDropdown [role="option"][aria-selected="true"] { background:var(--ppale)!important; outline:2px solid var(--accent); outline-offset:-2px; }
body.acc-font-lg #v8-creacion .crear-media-row,
body.acc-font-xl #v8-creacion .crear-media-row,
body.acc-font-lg #v8-creacion .crear-action-row,
body.acc-font-xl #v8-creacion .crear-action-row { font-size:inherit!important; line-height:1.4!important; align-items:stretch!important; min-width:0; flex-wrap:wrap; }
body.acc-font-lg #v8-creacion #crearYoutube,
body.acc-font-xl #v8-creacion #crearYoutube { flex:1 1 100%!important; width:100%!important; }
body.acc-font-lg #v8-creacion .crear-diagram-toggle,
body.acc-font-xl #v8-creacion .crear-diagram-toggle { flex:1 1 160px; min-height:44px; align-items:center!important; min-width:0; }
body.acc-font-lg #v8-creacion #crearConDiagramas,
body.acc-font-xl #v8-creacion #crearConDiagramas { width:18px!important; min-width:18px!important; height:18px!important; flex:0 0 18px; }
body.acc-font-lg #v8-creacion .crear-main-grid .plan-field .crear-upload-label,
body.acc-font-lg #v8-creacion .crear-diagram-toggle label { font-size:13px!important; line-height:1.35!important; overflow-wrap:anywhere; }
body.acc-font-xl #v8-creacion .crear-main-grid .plan-field .crear-upload-label,
body.acc-font-xl #v8-creacion .crear-diagram-toggle label { font-size:14px!important; line-height:1.35!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-creacion .crear-main-grid .gen-btn { font-size:14px!important; line-height:1.2!important; min-height:44px; justify-content:center; }
body.acc-font-xl #v8-creacion .crear-main-grid .gen-btn { font-size:16px!important; line-height:1.2!important; min-height:44px; justify-content:center; }
body.acc-font-lg #v8-creacion .class-preset,
body.acc-font-lg #v8-creacion .tipo-card,
body.acc-font-lg #v8-creacion .tmpl-card { font-size:13px!important; line-height:1.35!important; }
body.acc-font-xl #v8-creacion .class-preset,
body.acc-font-xl #v8-creacion .tipo-card,
body.acc-font-xl #v8-creacion .tmpl-card { font-size:14px!important; line-height:1.35!important; }
body.acc-font-lg #v8-creacion .tipo-card h4,
body.acc-font-xl #v8-creacion .tipo-card h4 { font-size:1em!important; line-height:1.25!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-creacion .tipo-card p,
body.acc-font-xl #v8-creacion .tipo-card p { font-size:.92em!important; line-height:1.35!important; }
body.acc-font-lg #v8-creacion .tipo-card .tipo-icon { font-size:30px!important; line-height:1!important; }
body.acc-font-xl #v8-creacion .tipo-card .tipo-icon { font-size:32px!important; line-height:1!important; }
body.acc-font-lg #v8-creacion .class-preset strong,
body.acc-font-lg #v8-creacion .class-preset span,
body.acc-font-xl #v8-creacion .class-preset strong,
body.acc-font-xl #v8-creacion .class-preset span { font-size:inherit!important; line-height:1.35!important; }
body.acc-font-lg #v8-creacion .tmpl-card h4,
body.acc-font-xl #v8-creacion .tmpl-card h4 { font-size:1em!important; line-height:1.25!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-creacion .tmpl-card p,
body.acc-font-xl #v8-creacion .tmpl-card p { font-size:.92em!important; line-height:1.35!important; }
body.acc-font-lg #v8-creacion .tmpl-card .tmpl-icon { font-size:30px!important; line-height:1!important; }
body.acc-font-xl #v8-creacion .tmpl-card .tmpl-icon { font-size:32px!important; line-height:1!important; }
body.acc-font-lg #v8-creacion .tmpl-preview,
body.acc-font-xl #v8-creacion .tmpl-preview { padding:10px!important; line-height:1.4!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-creacion .tmpl-preview { font-size:13px!important; }
body.acc-font-xl #v8-creacion .tmpl-preview { font-size:14px!important; }
body.acc-font-lg #v8-creacion .tmpl-preview *,
body.acc-font-xl #v8-creacion .tmpl-preview * { line-height:1.4!important; max-width:100%; }
body.acc-font-lg #v8-creacion .tmpl-preview-title { font-size:15px!important; line-height:1.25!important; }
body.acc-font-xl #v8-creacion .tmpl-preview-title { font-size:16px!important; line-height:1.25!important; }
body.acc-font-lg #v8-creacion .tmpl-preview-context,
body.acc-font-xl #v8-creacion .tmpl-preview-context { font-size:inherit!important; line-height:1.35!important; padding:6px 8px!important; }
body.acc-font-lg #v8-creacion .tmpl-preview-grid,
body.acc-font-xl #v8-creacion .tmpl-preview-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:6px!important; font-size:inherit!important; }
body.acc-font-lg #v8-creacion .tmpl-preview-item,
body.acc-font-lg #v8-creacion .tmpl-preview-note,
body.acc-font-xl #v8-creacion .tmpl-preview-item,
body.acc-font-xl #v8-creacion .tmpl-preview-note { font-size:inherit!important; line-height:1.4!important; }
body.acc-font-lg #v8-creacion .tmpl-preview-item { font-size:13px!important; }
body.acc-font-xl #v8-creacion .tmpl-preview-item { font-size:14px!important; }
body.acc-font-lg #v8-creacion .tmpl-preview-item strong,
body.acc-font-lg #v8-creacion .tmpl-preview-note strong,
body.acc-font-xl #v8-creacion .tmpl-preview-item strong,
body.acc-font-xl #v8-creacion .tmpl-preview-note strong { font-size:inherit!important; line-height:1.35!important; }
@media(max-width:480px){
  body.acc-font-lg #v8-creacion .tmpl-grid,
  body.acc-font-xl #v8-creacion .tmpl-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:8px!important; }
  body.acc-font-lg #v8-creacion .tmpl-card,
  body.acc-font-xl #v8-creacion .tmpl-card { min-width:0; padding:12px 8px!important; }
}
body.acc-font-lg #v8-planeacion { font-size:14px!important; line-height:1.45!important; }
body.acc-font-xl #v8-planeacion { font-size:16px!important; line-height:1.45!important; }
body.acc-font-lg #v8-planeacion *,
body.acc-font-xl #v8-planeacion * { box-sizing:border-box; max-width:100%; }
body.acc-font-lg #v8-planeacion .v8-ctn,
body.acc-font-xl #v8-planeacion .v8-ctn { width:100%!important; min-width:0; overflow-x:hidden; }
body.acc-font-lg #v8-planeacion .planning-workspace,
body.acc-font-xl #v8-planeacion .planning-workspace { grid-template-columns:minmax(0,1fr)!important; max-width:100%; font-size:inherit!important; line-height:1.45!important; }
body.acc-font-lg #v8-planeacion .planning-workspace > *,
body.acc-font-xl #v8-planeacion .planning-workspace > * { min-width:0; max-width:100%; }
body.acc-font-lg #v8-planeacion .card,
body.acc-font-lg #v8-planeacion .plan-result,
body.acc-font-xl #v8-planeacion .card,
body.acc-font-xl #v8-planeacion .plan-result { font-size:inherit!important; line-height:1.45!important; min-width:0; max-width:100%; overflow-wrap:anywhere; }
body.acc-font-lg #v8-planeacion .v8-ctn > h2 { font-size:clamp(22px,6.2vw,28px)!important; line-height:1.18!important; overflow-wrap:anywhere; }
body.acc-font-xl #v8-planeacion .v8-ctn > h2 { font-size:clamp(24px,7vw,30px)!important; line-height:1.18!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-planeacion .v8-ctn > p.sub { font-size:15px!important; line-height:1.45!important; overflow-wrap:anywhere; }
body.acc-font-xl #v8-planeacion .v8-ctn > p.sub { font-size:16px!important; line-height:1.45!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-planeacion .stats,
body.acc-font-xl #v8-planeacion .stats,
body.acc-font-lg #v8-planeacion .class-preset-grid,
body.acc-font-xl #v8-planeacion .class-preset-grid,
body.acc-font-lg #v8-planeacion .tmpl-preview-grid,
body.acc-font-xl #v8-planeacion .tmpl-preview-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:8px!important; }
body.acc-font-lg #v8-planeacion .plan-field,
body.acc-font-xl #v8-planeacion .plan-field { font-size:inherit!important; line-height:1.45!important; min-width:0; }
body.acc-font-lg #v8-planeacion .plan-field label { font-size:12px!important; line-height:1.3!important; overflow-wrap:anywhere; }
body.acc-font-xl #v8-planeacion .plan-field label { font-size:13px!important; line-height:1.3!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-planeacion input,
body.acc-font-lg #v8-planeacion select,
body.acc-font-lg #v8-planeacion textarea,
body.acc-font-xl #v8-planeacion input,
body.acc-font-xl #v8-planeacion select,
body.acc-font-xl #v8-planeacion textarea { font-size:1em!important; line-height:1.35!important; min-width:0!important; max-width:100%; }
body.acc-font-lg #v8-planeacion .mini-action,
body.acc-font-lg #v8-planeacion .gen-btn,
body.acc-font-xl #v8-planeacion .mini-action,
body.acc-font-xl #v8-planeacion .gen-btn { font-size:14px!important; line-height:1.2!important; min-height:44px; justify-content:center; }
body.acc-font-lg #planResult,
body.acc-font-xl #planResult { overflow-wrap:anywhere; word-break:normal; }
body.acc-font-lg #planResult .plan-section { font-size:14px!important; line-height:1.5!important; }
body.acc-font-xl #planResult .plan-section { font-size:16px!important; line-height:1.5!important; }
body.acc-font-lg #planResult .plan-section *,
body.acc-font-xl #planResult .plan-section * { font-size:inherit!important; line-height:1.5!important; max-width:100%; overflow-wrap:anywhere; }
body.acc-font-lg #planResult h3 { font-size:15px!important; line-height:1.3!important; overflow-wrap:anywhere; }
body.acc-font-xl #planResult h3 { font-size:17px!important; line-height:1.3!important; overflow-wrap:anywhere; }
body.acc-font-lg #planResult .plan-section h4,
body.acc-font-xl #planResult .plan-section h4 { font-size:1.05em!important; line-height:1.3!important; overflow-wrap:anywhere; }
@media(max-width:480px){
  #v8-planeacion .v8-ctn { width:100vw; max-width:100vw; padding:16px 56px 20px 12px; overflow-x:hidden; }
  #v8-planeacion .planning-workspace,
  #v8-planeacion .stats,
  #v8-planeacion .class-preset-grid,
  #v8-planeacion .tmpl-preview-grid { grid-template-columns:minmax(0,1fr)!important; gap:8px!important; }
  #v8-planeacion .card,
  #v8-planeacion .plan-result,
  #v8-planeacion .plan-section { width:100%; min-width:0; max-width:100%; }
  #v8-planeacion .plan-section,
  #v8-planeacion .tmpl-preview-note,
  #v8-planeacion .tmpl-preview-item,
  #v8-planeacion .axis-hint { overflow-wrap:anywhere; word-break:break-word; }
}
body.acc-font-lg #crearResult .plan-section { font-size:14px!important; line-height:1.5!important; }
body.acc-font-xl #crearResult .plan-section { font-size:16px!important; line-height:1.5!important; }
body.acc-font-lg #crearResult .plan-section *,
body.acc-font-xl #crearResult .plan-section * { font-size:inherit!important; line-height:1.5!important; max-width:100%; }
body.acc-font-lg #crearResult .plan-section h4,
body.acc-font-xl #crearResult .plan-section h4 { font-size:1.05em!important; line-height:1.3!important; overflow-wrap:anywhere; }
body.acc-font-lg #crearResult [data-local-rubric-caption],
body.acc-font-xl #crearResult [data-local-rubric-caption] { font-size:inherit!important; line-height:1.35!important; white-space:normal!important; overflow-wrap:anywhere!important; }
body.acc-font-lg #crearResult .gen-btn,
body.acc-font-xl #crearResult .gen-btn { font-size:14px!important; line-height:1.2!important; }
body.acc-font-lg #crearResult .crear-result-meta,
body.acc-font-xl #crearResult .crear-result-meta { font-size:14px!important; line-height:1.25!important; gap:6px!important; }
body.acc-font-lg #crearResult .crear-result-chip,
body.acc-font-xl #crearResult .crear-result-chip { font-size:inherit!important; line-height:1.2!important; padding:4px 7px!important; }
body.acc-font-lg #v8-comunidad { font-size:14px!important; line-height:1.45!important; }
body.acc-font-xl #v8-comunidad { font-size:16px!important; line-height:1.45!important; }
body.acc-font-lg #v8-comunidad *,
body.acc-font-xl #v8-comunidad * { font-size:inherit!important; line-height:1.4!important; max-width:100%; box-sizing:border-box; }
body.acc-font-lg #v8-comunidad h2,
body.acc-font-xl #v8-comunidad h2 { font-size:clamp(22px,6.4vw,28px)!important; line-height:1.18!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-comunidad .sub,
body.acc-font-xl #v8-comunidad .sub { font-size:1em!important; line-height:1.45!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-comunidad .v8-ctn,
body.acc-font-xl #v8-comunidad .v8-ctn { width:100%!important; min-width:0; overflow-x:hidden; }
body.acc-font-lg #v8-comunidad .stats,
body.acc-font-xl #v8-comunidad .stats { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:8px!important; }
body.acc-font-lg #v8-comunidad .stat,
body.acc-font-xl #v8-comunidad .stat,
body.acc-font-lg #v8-comunidad .reddit-post,
body.acc-font-xl #v8-comunidad .reddit-post,
body.acc-font-lg #v8-comunidad .reddit-body,
body.acc-font-xl #v8-comunidad .reddit-body { min-width:0; max-width:100%; overflow:hidden; }
body.acc-font-lg #v8-comunidad .sl,
body.acc-font-lg #v8-comunidad .ss,
body.acc-font-lg #v8-comunidad .reddit-meta,
body.acc-font-lg #v8-comunidad .reddit-actions,
body.acc-font-lg #v8-comunidad .community-context-chips,
body.acc-font-xl #v8-comunidad .sl,
body.acc-font-xl #v8-comunidad .ss,
body.acc-font-xl #v8-comunidad .reddit-meta,
body.acc-font-xl #v8-comunidad .reddit-actions,
body.acc-font-xl #v8-comunidad .community-context-chips { font-size:.82em!important; line-height:1.35!important; }
body.acc-font-lg #v8-comunidad .sv,
body.acc-font-xl #v8-comunidad .sv { font-size:1.45em!important; line-height:1.15!important; }
body.acc-font-lg #v8-comunidad .reddit-title,
body.acc-font-xl #v8-comunidad .reddit-title { font-size:1.05em!important; line-height:1.3!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-comunidad .reddit-desc,
body.acc-font-xl #v8-comunidad .reddit-desc { font-size:.96em!important; line-height:1.45!important; overflow-wrap:anywhere; }
body.acc-font-lg #v8-comunidad .community-context-chip,
body.acc-font-xl #v8-comunidad .community-context-chip { font-size:1em!important; line-height:1.2!important; max-width:100%; min-width:0; }
body.acc-font-lg #v8-comunidad .reddit-actions,
body.acc-font-xl #v8-comunidad .reddit-actions,
body.acc-font-lg #v8-comunidad .reddit-filters,
body.acc-font-xl #v8-comunidad .reddit-filters { flex-wrap:wrap!important; gap:8px!important; min-width:0; }
body.acc-font-lg #v8-comunidad input,
body.acc-font-lg #v8-comunidad select,
body.acc-font-lg #v8-comunidad textarea,
body.acc-font-lg #v8-comunidad button,
body.acc-font-xl #v8-comunidad input,
body.acc-font-xl #v8-comunidad select,
body.acc-font-xl #v8-comunidad textarea,
body.acc-font-xl #v8-comunidad button { font-size:.95em!important; line-height:1.25!important; min-width:0; }
@media(max-width:480px){
  .v8-overlay.active .v8-ctn { padding-right:56px; }
  .v8-overlay.active > .v8-close { margin-right:56px; }
  #v8-comunidad .v8-ctn { width:100vw; max-width:100vw; padding:16px 56px 20px 12px; overflow-x:hidden; }
  #v8-comunidad .v8-ctn > div:first-child { flex-direction:column; gap:8px; align-items:stretch!important; }
  #v8-comunidad .v8-ctn > div:first-child .gen-btn { justify-content:center; width:100%; }
  #v8-comunidad .stats { grid-template-columns:1fr!important; gap:8px!important; }
  #v8-comunidad .reddit-post { width:100%; min-width:0; }
  #v8-comunidad .reddit-votes { width:38px; padding:8px 3px; }
  #v8-comunidad .reddit-body { padding:10px 8px; min-width:0; }
  #v8-comunidad .reddit-meta span[style*="margin-left:auto"] { margin-left:0!important; flex-basis:100%; }
  #v8-comunidad .reddit-title,
  #v8-comunidad .reddit-desc,
  #v8-comunidad .community-context-chip,
  #v8-comunidad .reddit-actions button { overflow-wrap:anywhere; word-break:break-word; }
  #v8-comunidad #comSearch,
  #v8-comunidad #comGradoFilter,
  #v8-comunidad #comDifficultyFilter,
  #v8-comunidad #comFocusFilter,
  #v8-comunidad #comContextFilter { width:100%; max-width:100%; }
  .acc-fab { bottom:16px; right:0; }
  .acc-fab-btn { width:36px; min-width:36px; max-width:36px; height:44px; min-height:44px; max-height:44px; border-radius:12px 0 0 12px; font-size:18px; }
  .acc-fab-btn:hover { transform:none; }
  .acc-panel { right:8px; bottom:52px; width:min(280px,calc(100vw - 24px)); max-height:calc(100vh - 120px); overflow:auto; padding:14px; }
  body.acc-font-lg .v8-close,
  body.acc-font-xl .v8-close { max-width:calc(100vw - 96px); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .v8-overlay.active .plan-section { max-width:calc(100vw - 104px); box-sizing:border-box; }
  [data-local-rubric-table-wrap="true"],
  [data-local-diagnostic-summary="true"] [role="region"] { max-width:calc(100vw - 104px) !important; }
}

/* Selector de idioma */
.lang-selector { display:flex; align-items:center; gap:6px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:8px; padding:4px 8px; cursor:pointer; font-size:12px; color:rgba(255,255,255,.7); transition:.2s; position:relative; }
.lang-selector:hover, .lang-selector:focus-visible { border-color:rgba(247,183,49,.4); color:#f7b731; outline:2px solid rgba(247,183,49,.55); outline-offset:2px; }
.lang-dropdown { position:absolute; top:38px; right:0; background:var(--card); border:1px solid var(--border); border-radius:10px; padding:6px; min-width:160px; box-shadow:0 8px 24px rgba(0,0,0,.5); z-index:999; display:none; }
.lang-dropdown.open { display:block; }
.lang-opt { padding:8px 12px; border-radius:6px; cursor:pointer; font-size:13px; color:var(--text); display:flex; align-items:center; gap:10px; transition:.15s; }
.lang-opt:hover, .lang-opt:focus-visible { background:var(--ppale); color:var(--primary); outline:none; }
.lang-opt.active { background:var(--ppale); color:var(--primary); font-weight:700; }
.lang-opt .lang-flag { font-size:18px; }
.lang-opt .lang-name { font-weight:500; }
.lang-opt .lang-native { font-size:11px; color:var(--tll); }

/* NEE — badges y estilos */
.nee-badge { display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:10px; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.3px; }
.nee-dislexia { background:rgba(96,165,250,.15); color:#60a5fa; border:1px solid rgba(96,165,250,.3); }
.nee-tdah { background:rgba(251,191,36,.15); color:#fbbf24; border:1px solid rgba(251,191,36,.3); }
.nee-tea { background:rgba(167,139,250,.15); color:#a78bfa; border:1px solid rgba(167,139,250,.3); }
.nee-visual { background:rgba(34,197,94,.15); color:#22c55e; border:1px solid rgba(34,197,94,.3); }
.nee-motriz { background:rgba(251,146,60,.15); color:#fb923c; border:1px solid rgba(251,146,60,.3); }
.nee-cognitiva { background:rgba(236,72,153,.15); color:#ec4899; border:1px solid rgba(236,72,153,.3); }

/* Panel NEE en dashboard maestro */
.nee-card { background:linear-gradient(135deg, rgba(96,165,250,.06), rgba(167,139,250,.06)); border:1px solid rgba(96,165,250,.2); border-radius:12px; padding:16px; margin-bottom:16px; }
.nee-card h3 { font-size:14px; font-weight:700; color:#a78bfa; margin-bottom:12px; }
.nee-student-row { display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--border); font-size:13px; }
.nee-student-row:last-child { border-bottom:none; }
.nee-student-av { width:30px; height:30px; border-radius:50%; background:rgba(167,139,250,.2); display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; color:#a78bfa; flex-shrink:0; }
.nee-student-info { flex:1; }
.nee-student-name { font-weight:600; }
.nee-student-sub { font-size:11px; color:var(--tll); }

/* Modo tutor simplificado para NEE */
.tutor-nee-banner { background:linear-gradient(135deg,rgba(167,139,250,.1),rgba(96,165,250,.1)); border:1px solid rgba(167,139,250,.3); border-radius:10px; padding:10px 14px; font-size:12px; color:#a78bfa; margin-bottom:10px; display:flex; align-items:center; gap:8px; }

/* Indicador de idioma activo */
.lang-indicator { position:fixed; bottom:24px; left:24px; background:var(--card); border:1px solid var(--border); border-radius:20px; padding:6px 14px; font-size:12px; color:var(--tll); z-index:998; display:none; }
.lang-indicator.visible { display:flex; align-items:center; gap:6px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
  .gc:hover,
  .map-school-card:hover,
  .role-card:hover,
  .source-card:hover,
  .tmpl-card:hover,
  .enter-btn:hover,
  .login-btn:hover,
  .role-enter:hover,
  .gen-btn:hover,
  .acc-fab-btn:hover,
  .gami-badge:hover {
    transform: none !important;
  }
}

/* ════════════════════════════════════════════════════════════════
   NAVEGACIÓN DEL MAESTRO (etapas) — estilos recuperados al unificar versiones.
   Pestañas de etapa (.sec-tab), chips de contexto (.ctx-chip),
   bottom-nav móvil (.mobile-nav) y hoja "Más" (.mas-*).
   La visibilidad de #secTabs/#ctxChipsBar la controla el JS por display inline
   (setupMaestroNav); aquí solo damos estilo + responsive. Reusa tokens y el
   patrón de .v8-tab / .chip para combinar con el resto de la UI.
   ════════════════════════════════════════════════════════════════ */

/* --- Pestañas de etapa (viven dentro del .topnav, fondo oscuro) --- */
.sec-tabs{align-items:center;gap:2px;}
.sec-tab{background:none;border:none;border-bottom:2px solid transparent;color:rgba(255,255,255,.6);font-family:inherit;font-size:13px;font-weight:600;line-height:1;padding:9px 12px;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s;}
.sec-tab:hover{color:#fff;}
.sec-tab.on{color:#fff;border-bottom-color:var(--accent);font-weight:700;}
.sec-tab.accent{color:var(--accent);}

/* --- Barra de chips de contexto (bajo el topnav) --- */
.ctx-chips-bar{background:var(--bar-bg);border-bottom:1px solid var(--border);padding:8px 24px;}
.ctx-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.ctx-chip{display:inline-flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--border);color:var(--text);font-family:inherit;font-size:12.5px;font-weight:500;line-height:1;padding:7px 13px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s;}
.ctx-chip:hover{background:var(--card-hover);border-color:var(--accent);}
.ctx-chip .ci{font-size:14px;line-height:1;}

/* --- Bottom-nav móvil: oculto en escritorio, visible en móvil (media query) --- */
.mobile-nav{display:none;}

/* --- Hoja "Más" (móvil): se abre con la clase .on (toggleMasSheet) --- */
.mas-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:110;}
.mas-ov.on{display:block;}
.mas-sheet{position:fixed;left:0;right:0;bottom:0;z-index:120;background:var(--card);border-top:1px solid var(--border);border-radius:18px 18px 0 0;padding:8px 16px 24px;box-shadow:0 -6px 28px rgba(0,0,0,.45);transform:translateY(110%);transition:transform .25s ease;}
.mas-sheet.on{transform:translateY(0);}
.mas-handle{width:40px;height:4px;border-radius:2px;background:var(--border);margin:6px auto 12px;}
.mas-title{font-size:13px;font-weight:700;color:var(--text);text-align:center;margin-bottom:14px;}
.mas-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.mas-grid button{display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--bar-bg);border:1px solid var(--border);border-radius:12px;padding:14px 6px;color:var(--text);font-family:inherit;font-size:11.5px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;}
.mas-grid button:hover{background:var(--card-hover);border-color:var(--accent);}
.mas-i{font-size:22px;line-height:1;}

/* --- Responsive: en móvil las etapas pasan al bottom-nav fijo --- */
@media(max-width:768px){
  #secTabs{display:none!important;}                  /* anula el display:flex inline del JS */
  .ctx-chips-bar{padding:8px 12px;}
  .ctx-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;}
  .ctx-chips::-webkit-scrollbar{display:none;}
  .mobile-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:90;justify-content:space-around;align-items:center;background:var(--card);border-top:1px solid var(--border);box-shadow:0 -2px 12px rgba(0,0,0,.3);padding:6px 4px;}
  .mobile-nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;color:var(--tl);font-family:inherit;font-size:10.5px;font-weight:500;line-height:1.2;padding:4px 2px;cursor:pointer;transition:color .15s;}
  .mobile-nav button.on{color:var(--accent);}
  .mobile-nav .mn-ico{font-size:19px;line-height:1;}
  .ctn{padding-bottom:64px;}                          /* espacio para el bottom-nav fijo */
}

/* ════════════════════════════════════════════════════════════════
   MENÚ DE PERFIL (avatar + desplegable "Cerrar sesión") — estilos
   recuperados al unificar versiones. El JS (toggleProfMenu) abre/cierra
   con la clase .open sobre #profDropdown (.prof-menu); por defecto va
   OCULTO. .nav-av y .nbadge ya existen en este archivo y NO se tocan.
   ════════════════════════════════════════════════════════════════ */
.prof{position:relative;display:flex;align-items:center;}
.prof-trigger{position:relative;display:flex;align-items:center;background:none;border:none;padding:0;line-height:0;cursor:pointer;border-radius:50%;}
.prof-online{position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;background:var(--green);border:2px solid var(--card);}
.prof-menu{position:absolute;top:calc(100% + 10px);right:0;min-width:230px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.45);padding:14px;z-index:200;display:none;}
.prof-menu.open{display:block;}
.prof-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.prof-id{min-width:0;}
.prof-name{font-size:14px;font-weight:700;color:var(--text);line-height:1.2;}
.prof-id .nbadge{margin-top:4px;}
.prof-status{margin-bottom:4px;}
.prof-stat{font-size:12px;color:var(--tl);display:flex;align-items:center;gap:7px;padding:2px 0;}
.prof-stat .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.prof-sep{height:1px;background:var(--border);margin:10px 0;}
.prof-item{width:100%;display:flex;align-items:center;gap:9px;background:none;border:none;color:var(--text);font-family:inherit;font-size:13px;font-weight:500;padding:9px 10px;border-radius:8px;cursor:pointer;text-align:left;transition:background .15s;}
.prof-item:hover{background:var(--card-hover);}
.pi-ico{font-size:15px;line-height:1;}

/* --- Modificadores de color de los .rbtn (sobre el topnav oscuro).
   El .rbtn base ya está estilizado; esto solo le da un acento distinto a
   cada acceso. Estos botones se ocultan para el rol maestro (setupMaestroNav). --- */
.rbtn-comunidad{border-color:rgba(0,201,167,.5);color:#7ee8d2;}
.rbtn-comunidad:hover{border-color:var(--green);color:#aaf3e5;}
.rbtn-padres{border-color:rgba(96,165,250,.5);color:#9ec5fb;}
.rbtn-padres:hover{border-color:var(--blue);color:#c3dcff;}
.rbtn-inclusion{border-color:rgba(167,139,250,.55);color:#c4b5fd;}
.rbtn-inclusion:hover{border-color:#a78bfa;color:#ddd6fe;}
