@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&family=Lexend:wght@400;500;600;700&display=swap');
*{margin:0;padding:0;box-sizing:border-box;}
:root{
  color-scheme:dark;
  /* Alias cromaticos heredados: no retirar; el monolito aun los consume. */
  --brand-navy:#053D63;--brand-teal:#27A7A8;--brand-cream:#FFF3DF;--brand-sun:#FBCB6F;
  --on-accent:#032A44;--on-primary:#032A44;
  --primary:#27A7A8;--pmid:#168486;--plight:#63C7C7;--ppale:rgba(39,167,168,.1);
  --accent:#FBCB6F;--accent-light:rgba(251,203,111,.14);
  --green:#3EB89D;--gbg:rgba(62,184,157,.12);
  --yellow:#FBCB6F;--ybg:rgba(251,203,111,.12);
  --warning-text:#FFE2A8;
  --topic-active-text:#A9EEEE;
  --support-heading:#C4B5FD;
  --red:#e74c3c;--rbg:rgba(231,76,60,.1);
  --blue:#60a5fa;--bbg:rgba(96,165,250,.1);
  --nee-dislexia:#60A5FA;--nee-tdah:#FBBF24;--nee-tea:#A78BFA;--nee-visual:#22C55E;--nee-motriz:#FB923C;--nee-cognitiva:#EC4899;
  --map-progreso-logrado:#3EB89D;--map-progreso-desarrollo:#FBCB6F;--map-progreso-iniciando:#F87171;
  --bap-label-yellow:#FFE2A8;--bap-label-teal:#A9EEEE;--bap-label-green:#A7F3D0;--bap-label-red:#FECACA;--bap-label-blue:#BFDBFE;
  --bg:#051D2A;--text:#FFF8ED;--tl:#C5D8D8;--tll:#9DBBBB;--border:#28515D;--control-border:#537783;
  --card:#0A2A38;--card-hover:#123E4C;--bar-bg:#0D3342;

  /* Navegación: roles semánticos compartidos por claro y oscuro. */
  --nav-surface-start:#041A27;--nav-surface-end:var(--card);--nav-foreground:#FFFFFF;--nav-muted:rgba(255,255,255,.76);--nav-subtle:rgba(255,255,255,.68);
  --nav-border:rgba(39,167,168,.32);--nav-control-border:rgba(255,255,255,.22);--nav-control-bg:transparent;--nav-hover-bg:rgba(255,255,255,.07);--nav-hover-border:rgba(255,255,255,.48);
  --access-bg:radial-gradient(circle at 50% 8%,rgba(39,167,168,.2),transparent 34%),linear-gradient(145deg,#031824 0%,#052C40 42%,#053D63 72%,#0B5968 100%);
  --access-heading:#FFFFFF;--access-sub:rgba(255,255,255,.78);--access-choice:rgba(255,255,255,.88);--access-label:rgba(255,255,255,.9);--access-help:rgba(255,255,255,.72);--access-meta:rgba(255,255,255,.58);--access-muted:rgba(255,255,255,.68);--access-card-bg:rgba(255,255,255,.045);--access-card-border:rgba(247,183,49,.24);--access-card-hover-bg:rgba(247,183,49,.1);--access-card-hover-border:var(--role-accent);--access-card-shadow:0 1px 0 rgba(255,255,255,.04) inset;
  --access-chip-bg:rgba(255,255,255,.06);--access-chip-border:rgba(255,255,255,.18);--access-icon-bg:rgba(255,255,255,.08);--access-icon-border:rgba(255,255,255,.22);--access-selection-bg:rgba(251,203,111,.16);--access-selection-shadow:0 0 0 1px rgba(251,203,111,.2),0 12px 32px rgba(0,0,0,.28);
  --access-input-bg:rgba(255,255,255,.07);--access-input-border:rgba(247,183,49,.32);--access-input-placeholder:rgba(255,255,255,.58);--access-input-text:#FFFFFF;

  /* Fundamentos semanticos del shell. */
  --font-ui:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-brand:'DM Sans',sans-serif;
  --font-accessible:'Lexend','DM Sans',sans-serif;
  --font-size-xs:.75rem;
  --font-size-sm:.875rem;
  --font-size-md:1rem;
  --font-size-lg:1.25rem;
  --font-size-xl:clamp(1.75rem,4vw,2.5rem);
  --line-height-tight:1.2;
  --line-height-body:1.5;

  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-8:32px;
  --space-10:40px;

  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:16px;
  --radius-xl:20px;
  --radius-pill:999px;
  --shadow-sm:0 2px 8px rgba(0,0,0,.22);
  --shadow-md:0 8px 24px rgba(0,0,0,.3);
  --shadow-lg:0 18px 48px rgba(0,0,0,.38);
  --focus-ring:#FBCB6F;
  --focus-halo:0 0 0 4px rgba(251,203,111,.28);
  --control-min-height:44px;
  --action-neutral-bg:#475569;
  --action-neutral-text:#FFFFFF;
  --shell-header-height:64px;
  --mobile-nav-height:68px;

  --brand-primary:var(--brand-navy);
  --brand-accent:var(--brand-teal);
  --brand-highlight:var(--brand-sun);
  --surface-canvas:var(--bg);
  --surface-card:var(--card);
  --surface-muted:var(--bar-bg);
  --text-primary:var(--text);
  --text-secondary:var(--tl);
  --text-tertiary:var(--tll);
}
[data-theme="light"]{
  color-scheme:light;
  --primary:#053D63;--pmid:#0B6280;--plight:#0E7C7D;--ppale:#E8F6F5;
  --on-accent:#FFFFFF;--on-primary:#FFF3DF;
  --accent:#0D7778;--accent-light:#E5F4F2;
  --green:#207968;--gbg:#EAF7F2;
  --yellow:#9A6500;--ybg:#FFF6DE;
  --warning-text:#713F12;
  --topic-active-text:#053D63;
  --support-heading:#5B21B6;
  --red:#B91C1C;--rbg:#FEF2F2;
  --blue:#1D4ED8;--bbg:#EFF6FF;
  --nee-dislexia:#1D4ED8;--nee-tdah:#92400E;--nee-tea:#6D28D9;--nee-visual:#08705E;--nee-motriz:#9A3412;--nee-cognitiva:#9D174D;
  --map-progreso-logrado:#166534;--map-progreso-desarrollo:#92400E;--map-progreso-iniciando:#B91C1C;
  --bap-label-yellow:#713F12;--bap-label-teal:#075B5C;--bap-label-green:#0F5C4D;--bap-label-red:#991B1B;--bap-label-blue:#1E40AF;
  --bg:#F8FBFA;--text:#103847;--tl:#466572;--tll:#55707B;--border:#C8DCDA;--control-border:#698695;
  --card:#ffffff;--card-hover:#EFF7F5;--bar-bg:#EAF3F1;
  --nav-surface-start:#FFFFFF;--nav-surface-end:#EAF7F5;--nav-foreground:var(--primary);--nav-muted:var(--tl);--nav-subtle:var(--tl);
  --nav-border:var(--border);--nav-control-border:var(--border);--nav-control-bg:#FFFFFF;--nav-hover-bg:var(--accent-light);--nav-hover-border:var(--plight);
  --access-bg:radial-gradient(circle at 15% 20%,rgba(39,167,168,.16),transparent 32%),radial-gradient(circle at 84% 13%,rgba(251,203,111,.18),transparent 26%),linear-gradient(145deg,#FFFFFF 0%,#F8FBFA 56%,#EAF7F5 100%);
  --access-heading:var(--text);--access-sub:var(--tl);--access-choice:var(--text);--access-label:var(--text);--access-help:var(--tl);--access-meta:var(--tl);--access-muted:var(--tl);--access-card-bg:#FFFFFF;--access-card-border:var(--border);--access-card-hover-bg:var(--accent-light);--access-card-hover-border:var(--plight);--access-card-shadow:0 2px 10px rgba(5,61,99,.08);
  --access-chip-bg:#FFFFFF;--access-chip-border:var(--border);--access-icon-bg:var(--bar-bg);--access-icon-border:var(--border);--access-selection-bg:#E5F4F2;--access-selection-shadow:0 0 0 1px rgba(14,124,125,.18),var(--shadow-md);
  --access-input-bg:#FFFFFF;--access-input-border:var(--control-border);--access-input-placeholder:var(--tll);--access-input-text:var(--text);
  --shadow-sm:0 2px 8px rgba(5,61,99,.08);
  --shadow-md:0 8px 24px rgba(5,61,99,.12);
  --shadow-lg:0 18px 48px rgba(5,61,99,.16);
  --focus-ring:#0E7C7D;
  --focus-halo:0 0 0 4px rgba(39,167,168,.22);
}
[data-theme="light"] .topnav{box-shadow:0 2px 12px rgba(5,61,99,.10);}
[data-theme="light"] .topnav .logo-name>span{color:var(--plight);}
[data-theme="light"] .topnav .nbadge{background:var(--accent-light);color:var(--text);}
[data-theme="light"] .topnav .sec-tab{color:var(--tl);}
[data-theme="light"] .topnav .sec-tab:hover,[data-theme="light"] .topnav .sec-tab.on{background:var(--accent-light);color:var(--primary);}
[data-theme="light"] .topnav .sec-tab.on{border-bottom-color:var(--plight);}
[data-theme="light"] .rbtn-comunidad{border-color:rgba(8,112,94,.42);color:#08705E;}
[data-theme="light"] .rbtn-comunidad:hover{border-color:#08705E;color:#075B4D;}
[data-theme="light"] .rbtn-padres{border-color:rgba(29,78,216,.36);color:#1D4ED8;}
[data-theme="light"] .rbtn-padres:hover{border-color:#1D4ED8;color:#1E40AF;}
[data-theme="light"] .rbtn-inclusion{border-color:rgba(109,40,217,.38);color:#6D28D9;}
[data-theme="light"] .rbtn-inclusion:hover{border-color:#6D28D9;color:#5B21B6;}
[data-theme="light"] .nav-av{background:#FBCB6F;color:#053D63;}
[data-theme="light"] .role-kicker{color:var(--role-accent);}
[data-theme="light"] .role-card[data-role="maestro"]{background:#E5F4F2;border-color:#52BBBB;}
[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(5,61,99,.12);}
[data-theme="light"] .obj{background:var(--card);}
[data-theme="light"] .ins{background:linear-gradient(135deg,#EAF7F5,#FFF9EC);border-color:rgba(39,167,168,.28);}
[data-theme="light"] .plan-result{background:linear-gradient(135deg,#EAF7F5,#fff);border-color:rgba(39,167,168,.28);}
[data-theme="light"] .gami-bar{background:linear-gradient(135deg,#EAF7F5,#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:radial-gradient(circle at 85% 18%,rgba(251,203,111,.18),transparent 28%),radial-gradient(circle at 15% 75%,rgba(39,167,168,.13),transparent 32%),linear-gradient(145deg,#FFFFFF 0%,#F8FBFA 58%,#EAF7F5 100%);}
[data-theme="light"] .login-card{box-shadow:var(--shadow-lg);}
[data-theme="light"] .login-logo h2,[data-theme="light"] .login-back a{color:var(--primary);}
[data-theme="light"] .login-field input,[data-theme="light"] .login-field select{background:#fff;border-color:var(--control-border);color:var(--text);}
[data-theme="light"] .login-field input::placeholder{color:var(--tll);}
[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:#DCE9E7;}
[data-theme="light"] .reddit-post{background:var(--card);}
[data-theme="light"] .reddit-votes{background:#F2F8F6;}
[data-theme="light"] .chat-box{background:var(--card);}
[data-theme="light"] .chat-in{background:#F2F8F6;border-color:var(--control-border);}
[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"] .msg.student .msg-bubble{background:#053D63;color:#FFF3DF;border:1px solid #0B6280;}
[data-theme="light"] .v8-overlay{background:var(--bg);}
[data-theme="light"] .v8-ctn{background:var(--bg);}
[data-theme="light"] #comNewPostForm{background:#F2F8F6;border-color:var(--border);}
[data-theme="light"] .comment-box{background:#F2F8F6;}
[data-theme="light"] .lms-sidebar{background:#fff;border-color:#D6E5E3;}
[data-theme="light"] .lms-sh h3{color:#103847;}
[data-theme="light"] .lms-sh p{color:#466572;}
[data-theme="light"] .lms-section-title{color:#466572;}
[data-theme="light"] .lms-si{color:#103847;}
[data-theme="light"] .lms-si:hover{background:rgba(39,167,168,.07);color:#053D63;}
[data-theme="light"] .lms-si.active{background:rgba(39,167,168,.12);color:#053D63;}
[data-theme="light"] .lms-si-icon{background:rgba(0,0,0,.04);}
[data-theme="light"] .lms-si-dur{color:var(--tll);}
[data-theme="light"] .lms-progress{background:#D6E5E3;}
[data-theme="light"] .map-legend{background:rgba(255,255,255,.96);border-color:var(--border);box-shadow:0 2px 12px rgba(5,61,99,.12);color:var(--text);}
body{font-family:var(--font-ui);font-size:var(--font-size-md);line-height:var(--line-height-body);background:var(--bg);color:var(--text);min-height:100vh;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;}
.topnav{background:linear-gradient(135deg,var(--nav-surface-start),var(--nav-surface-end));color:var(--nav-foreground);min-height:var(--shell-header-height);height:auto;display:flex;align-items:center;padding:var(--space-2) var(--space-6);gap:var(--space-4);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100;border-bottom:1px solid var(--nav-border);font-family:var(--font-ui);}
.logo{display:flex;align-items:center;gap:10px;background:none;border:0;color:var(--nav-foreground);padding:0;font-weight:700;font-size:13px;letter-spacing:0;cursor:pointer;font-family:var(--font-ui);flex-shrink:0;}
.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-name{font-family:var(--font-brand);font-size:13px;font-weight:800;letter-spacing:-.02em;color:var(--nav-foreground);white-space:nowrap;}
.logo-name>span{color:var(--brand-sun);}
.logo-sub{font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--nav-subtle);margin-top:2px;line-height:1.1;font-family:var(--font-ui);}
.nsep{width:1px;height:28px;background:var(--nav-control-border);}
.bc{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--nav-muted);}.bc span{cursor:pointer;transition:color .15s;}.bc span:hover{color:var(--nav-foreground);}.bc .cur{color:var(--nav-foreground);font-family:var(--font-brand);font-size:13px;font-weight:700;letter-spacing:-.02em;}.bc .sep{opacity:.5;cursor:default;}
.lms-breadcrumb{font-size:13px;color:var(--nav-muted);white-space:nowrap;}.lms-breadcrumb strong{color:var(--nav-foreground);font-family:var(--font-brand);font-weight:700;}
.nr{margin-left:auto;display:flex;align-items:center;gap:14px;}
.rbtn{display:inline-flex;align-items:center;min-height:var(--control-min-height);gap:6px;background:var(--nav-control-bg);border:1px solid var(--nav-control-border);color:var(--nav-muted);padding:7px 11px;border-radius:var(--radius-sm);font-size:11px;cursor:pointer;font-family:var(--font-ui);transition:background .2s,border-color .2s,color .2s;}.rbtn:hover{background:var(--nav-hover-bg);border-color:var(--nav-hover-border);color:var(--nav-foreground);}.rbtn:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}.environment-notice{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:5px 9px;border:1px solid color-mix(in srgb,var(--brand-sun) 62%,var(--nav-control-border));border-radius:var(--radius-pill);background:color-mix(in srgb,var(--brand-sun) 16%,transparent);color:var(--nav-foreground);font-size:11px;font-weight:700;white-space:nowrap;}.environment-notice .ui-icon{width:15px;height:15px;stroke:currentColor;}
.ui-icon,.mn-ico,.mas-i{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
.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(--brand-sun);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#032A44;line-height:1;flex-shrink:0;}
.nav-av .ui-icon{width:18px;height:18px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.ctn{max-width:1200px;margin:0 auto;padding:var(--space-6);}
.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:800;margin-bottom:4px;font-family:var(--font-brand);letter-spacing:-.02em;}.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:12px;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:12px;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:var(--font-brand);letter-spacing:-.02em;}
.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:12px;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:12px;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;}
.group-student-table tr{cursor:default;}.student-row-link{display:flex;align-items:center;gap:10px;min-height:var(--control-min-height);margin:-6px 0;padding:6px 0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;}.student-row-link:focus-visible,.nee-student-link:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm);}
.group-student-table-wrap{width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;border-radius:var(--radius-sm);}.group-student-table-wrap:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;}@media(max-width:640px){.group-student-table{min-width:720px;}.group-student-table-wrap{padding-bottom:var(--space-2);}}
.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:var(--font-brand);letter-spacing:-.025em;}
.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;}
@media(max-width:480px){#pg-lms .lms-topic-signal{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:center;}#pg-lms .lms-topic-signal .tn{grid-column:1/-1;min-width:0;overflow-wrap:anywhere;}#pg-lms .lms-topic-signal .tp{min-width:0;text-align:left;line-height:1.35;}}
/* Objectives */
.student-objective-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-3);}
.student-objective-tab{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:1;min-height:var(--control-min-height);padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--primary);font:inherit;font-size:13px;font-weight:700;cursor:pointer;}
.student-objective-tab .ui-icon{width:17px;height:17px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.student-objective-tab.active{border-color:var(--primary);background:var(--primary);color:var(--cream);}
.student-objective-tab:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}
@media(max-width:480px){.student-objective-tabs{flex-direction:column;}.student-objective-tab{justify-content:flex-start;}}
.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:12px;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:12px;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,#0D3342,#0A2A38);border:1px solid rgba(39,167,168,.28);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;}
.school-observation-link{width:100%;min-height:var(--control-min-height);font:inherit;text-align:left;cursor:pointer;}.school-observation-link:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}.school-observation-icon{width:22px;height:22px;flex:0 0 22px;display:grid;place-items:center;}.school-observation-icon .ui-icon{width:20px;height:20px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}.school-observation-text{line-height:1.45;}.school-observation-text strong{text-decoration:underline;}
.bk{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:transparent;border:1px solid var(--border);font-family:inherit;font-size:13px;color:var(--plight);cursor:pointer;margin-bottom:16px;font-weight:600;padding:8px 12px;border-radius:var(--radius-sm);transition:background .15s,border-color .15s;}.bk:hover{background:var(--ppale);border-color:var(--accent);}
.cg{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
/* Student enter button */
.enter-btn{background:linear-gradient(135deg,var(--brand-sun),#DBA545);color:#032A44;border:none;padding:12px 24px;border-radius:10px;font-size:14px;font-weight:700;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:radial-gradient(circle at 85% 18%,rgba(251,203,111,.14),transparent 28%),linear-gradient(135deg,#031824 0%,#053D63 58%,#0B5968 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:var(--font-brand);letter-spacing:-.025em;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(--control-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(--brand-sun),#DBA545);color:#032A44;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 - var(--shell-header-height));overflow:hidden;}
.lms-sidebar{width:260px;background:var(--surface-card);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:var(--text-primary);}.lms-sh p{font-size:12px;color:var(--text-secondary);margin-top:4px;}
.lms-progress{height:4px;background:var(--bar-bg);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:var(--text-tertiary);font-weight:700;}
.lms-si{display:flex;align-items:center;gap:10px;padding:10px 18px;cursor:pointer;font-size:13px;transition:background .15s,border-color .15s;position:relative;color:var(--text-secondary);}
.lms-si:hover{background:var(--card-hover);color:var(--text-primary);}
.lms-si.active{background:var(--accent-light);color:var(--accent);font-weight:700;}
.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:var(--surface-muted);display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;line-height:1;}
.lms-si-icon .ui-icon{width:16px;height:16px;stroke-width:1.8;}
#pg-lms .enter-btn .ui-icon{width:17px;height:17px;flex:0 0 17px;stroke-width:1.8;}
.lms-si-label{flex:1;}.lms-si-dur{font-size:11px;color:var(--text-tertiary);text-align:right;}
.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(--brand-sun);color:#032A44;}
.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;overflow-x:auto;scrollbar-width:none;}
.lms-ctabs::-webkit-scrollbar{display:none;}
.lms-ctab{min-height:44px;display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;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;white-space:nowrap;}
.lms-ctab .ui-icon{width:16px;height:16px;flex:0 0 16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.lms-ctab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600;}
.lms-ctab:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-3px;border-radius:var(--radius-sm);}
.lms-ctab .badge{background:var(--brand-sun);color:#032A44;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:12px;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:12px;color:var(--tl);margin-top:4px;}
.lms-dashboard-note{display:flex;align-items:flex-start;gap:10px;margin:0 0 16px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--brand-sun) 52%,var(--border));border-radius:var(--radius-md);background:var(--ybg);color:var(--text-primary);font-size:13px;line-height:1.5;}.lms-dashboard-note .ui-icon{width:18px;height:18px;flex:0 0 18px;margin-top:1px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}.lms-dashboard-note p{margin:0;}.lms-signal{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:700;line-height:1.3;}.lms-signal-dot{width:9px;height:9px;flex:0 0 9px;border-radius:50%;}.lms-signal-g{color:var(--green);}.lms-signal-g .lms-signal-dot{background:var(--green);}.lms-signal-y{color:#a16207;}.lms-signal-y .lms-signal-dot{background:var(--yellow);}.lms-signal-r{color:var(--red);}.lms-signal-r .lms-signal-dot{background:var(--red);}.lms-timeline-event{font-weight:700;color:var(--text);}
/* 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(--brand-sun);color:#032A44;border:none;padding:8px 20px;border-radius:6px;font-size:13px;font-weight:700;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;}.tutor-head-label{display:inline-flex;align-items:center;gap:8px;}.tutor-brand-mark{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 24px;}.tutor-brand-mark img{width:100%;height:100%;object-fit:contain;}
.chat-msgs{flex:1;overflow-y:auto;padding:16px;}
.msg{margin-bottom:14px;}.msg-who{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--tl);margin-bottom:4px;}.msg-who .ui-icon{width:13px;height:13px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}.tutor-msg-state{display:inline-flex;align-items:center;gap:6px;}.tutor-msg-state .ui-icon,.msg-sem .ui-icon{width:15px;height:15px;flex:0 0 15px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.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(--control-border);border-radius:8px;font:inherit;font-size:13px;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{min-height:48px;display:inline-flex;align-items:center;justify-content:center;background:var(--brand-sun);color:#032A44;border:none;padding:10px 18px;border-radius:8px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;}
.chat-send:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;}

/* Asistente IA: estado real, origen del borrador y control docente. */
.ai-assistant-avatar{width:36px;height:36px;border-radius:11px;background:linear-gradient(150deg,var(--brand-sun),#DBA545);display:grid;place-items:center;color:#032A44;}.ai-assistant-avatar .ui-icon{width:19px;height:19px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.ai-status-bar{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 16px;border-bottom:1px solid var(--border);background:var(--ppale);color:var(--plight);font-size:12px;font-weight:700;line-height:1.35;}
.ai-status-icon{width:20px;height:20px;display:inline-grid;place-items:center;flex:0 0 20px;border-radius:50%;background:var(--card);border:1px solid currentColor;line-height:1;}
.ai-status-icon .ui-icon{width:14px;height:14px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.ai-status-bar[data-state="running"]{background:var(--accent-light);color:var(--accent);}
.ai-status-bar[data-state="running"] .ai-status-spinner{animation:ai-status-spin 1s linear infinite;}
.ai-status-bar[data-state="review"]{background:var(--gbg);color:var(--green);}
.ai-status-bar[data-state="error"]{background:var(--rbg);color:var(--red);}
.ai-review-note{margin-top:12px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--brand-sun) 58%,var(--border));border-radius:var(--radius-sm);background:var(--ybg);color:var(--text);font-size:11.5px;line-height:1.5;}
.ai-origin-badge{display:table;margin:0 0 5px;padding:3px 8px;border-radius:var(--radius-pill);background:var(--ppale);color:var(--plight);font-size:10.5px;font-weight:800;letter-spacing:.01em;}
.ai-response-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:7px;}
.ai-action{min-height:var(--control-min-height);padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);color:var(--plight);font:inherit;font-size:11.5px;font-weight:700;cursor:pointer;}
.ai-action:hover{border-color:var(--plight);background:var(--card-hover);}
.ai-action:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}
.ai-action-danger{color:var(--red);}
.ai-action-danger:hover{border-color:var(--red);background:var(--rbg);}
.ia-cancel-action{min-height:var(--control-min-height);padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);color:var(--text-secondary);font:inherit;font-size:12px;font-weight:700;cursor:pointer;}
.ia-cancel-action:hover{border-color:var(--red);color:var(--red);background:var(--rbg);}
.ia-cancel-action:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}
.ai-run-disclosure{margin:0 0 var(--space-2);color:var(--text-secondary);font-size:var(--font-size-xs);line-height:1.45;}
.ai-draft-editor{display:block;width:100%;min-height:148px;margin-top:8px;padding:10px 11px;border:1px solid var(--control-border);border-radius:var(--radius-sm);background:var(--card);color:var(--text);font:inherit;font-size:13px;line-height:1.55;resize:vertical;}
.ai-draft-editor:focus-visible{border-color:var(--focus-ring);box-shadow:var(--focus-halo);}
.ai-quick-action{min-height:44px;transition:background .15s,border-color .15s,color .15s;}
.ai-quick-action:hover{border-color:var(--plight)!important;background:var(--card-hover)!important;color:var(--text)!important;}
.ai-quick-action:disabled,.ai-action:disabled,.enter-btn:disabled{opacity:.58;cursor:wait;transform:none;box-shadow:none;}
.ai-assistant-scope{margin-top:10px;font-size:12px;line-height:1.5;color:var(--text-secondary);}
@keyframes ai-status-spin{to{transform:rotate(360deg);}}
@media(prefers-reduced-motion:reduce){.ai-status-bar[data-state="running"] .ai-status-spinner{animation:none;}}
/* 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;}
.lms-side-heading{display:flex;align-items:center;gap:6px;}
.lms-side-heading .ui-icon{width:16px;height:16px;flex:0 0 16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.demo-guide{margin-top:8px;border:2px dashed var(--accent);background:var(--accent-light);}
.demo-guide.demo-guide-updated{background:var(--ybg);transition:background 160ms ease;}
@media(prefers-reduced-motion:reduce){.demo-guide.demo-guide-updated{transition:none;}}
#pg-lms .lms-practice-signals{border:2px dashed var(--control-border);background:var(--bar-bg);}
#pg-lms .lms-practice-signals-title{display:flex;align-items:center;gap:6px;color:var(--primary);}
#pg-lms .lms-practice-signals-title .ui-icon{width:16px;height:16px;flex:0 0 16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
#pg-lms .lms-practice-demo-label{padding:2px 6px;border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);font-size:10px;line-height:1.2;}
#pg-lms .lms-practice-signals-body{margin-top:8px;font-size:11px;}
#pg-lms .lms-practice-topic-list{margin-top:6px;padding:6px;border-radius:var(--radius-sm);font-size:10px;}
#pg-lms .lms-practice-topic-list strong{font-size:10px;}
#pg-lms .lms-practice-topic-list-review{background:var(--rbg);color:var(--text);}
#pg-lms .lms-practice-topic-list-review strong{color:var(--red);}
#pg-lms .lms-practice-topic-list-explored{background:var(--gbg);color:var(--text);}
#pg-lms .lms-practice-topic-list-explored strong{color:var(--green);}
#pg-lms .lms-practice-signals-note{margin-top:8px;color:var(--tl);font-size:10px;font-style:italic;}
#pg-lms .lms-data-scope{margin-top:8px;border:2px dashed var(--control-border);background:var(--surface-muted);color:var(--text);font-size:11px;line-height:1.55;}
#pg-lms .lms-data-scope-title{display:flex;align-items:center;gap:6px;color:var(--primary);}
#pg-lms .lms-data-scope-title .ui-icon{width:16px;height:16px;flex:0 0 16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
#pg-lms .lms-data-scope-label{padding:2px 6px;border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);font-size:10px;line-height:1.2;}
#pg-lms .lms-data-scope p{margin:0;color:var(--text);}
#pg-lms .lms-data-scope ul{margin:8px 0 0;padding-left:18px;color:var(--text-secondary);}
#pg-lms .lms-ai-local-state{margin-top:8px;border:2px dashed var(--control-border);background:var(--accent-light);color:var(--text);font-size:11px;line-height:1.55;}
#pg-lms .lms-ai-local-state-title{display:flex;align-items:center;gap:6px;color:var(--primary);}
#pg-lms .lms-ai-local-state-title .ui-icon{width:16px;height:16px;flex:0 0 16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
#pg-lms .lms-ai-local-state-label{padding:2px 6px;border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);font-size:10px;line-height:1.2;}
#pg-lms .lms-ai-local-state p{margin:0;color:var(--text);}
#pg-lms .lms-history-notice{padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted);color:var(--text);}
#pg-lms .lms-history-notice h3{margin:0 0 var(--space-2);font-size:16px;}
#pg-lms .lms-history-notice .sub{margin:0;max-width:62ch;line-height:1.55;}
#pg-lms .lms-history-notice-error{border-color:var(--error-border);background:var(--error-bg);}
#pg-lms .lms-history-retry{min-height:var(--control-min-height);margin-top:var(--space-3);}
#pg-lms .lms-history-retry:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}
.sp-row{display:flex;justify-content:space-between;font-size:13px;padding:4px 0;border-bottom:1px solid var(--border);}.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:var(--on-primary);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(--brand-sun),#DBA545);color:#032A44;border:none;padding:6px 14px;border-radius:6px;font-size:11px;font-weight:700;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:focus-visible,.gc:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;border-color:var(--focus-ring);}
.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-progress-status{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-weight:600;}.map-progress-status .map-progress-dot{width:9px;height:9px;border-radius:50%;background:currentColor;flex:0 0 9px;}.map-progress-status.is-logrado{color:var(--map-progreso-logrado);}.map-progress-status.is-desarrollo{color:var(--map-progreso-desarrollo);}.map-progress-status.is-iniciando{color:var(--map-progreso-iniciando);}
.map-school-card .msc-enter{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,var(--brand-sun),#DBA545);color:#032A44;border:none;padding:8px 16px;border-radius:8px;font-size:12px;font-weight:700;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(--brand-sun),#DBA545);color:#032A44;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:var(--font-brand);letter-spacing:-.02em;}
.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;margin-bottom:6px;line-height:1;background:rgba(247,183,49,.08);border:1px solid rgba(247,183,49,.12);}.map-total-card .mti .ui-icon{width:20px;height:20px;color:var(--accent);}
@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%;}}
@media(max-width:640px){.school-support-grid{grid-template-columns:minmax(0,1fr)!important;}.school-support-grid>*{min-width:0;}}
/* ═══ SISTEMA DE ROLES ═══ */
.role-screen{position:fixed;inset:0;z-index:999;background:var(--access-bg);display:flex;align-items:center;justify-content:center;padding:var(--space-6);font-family:var(--font-ui);}
.role-container{max-width:960px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;}
.role-container h1{font-size:var(--font-size-xl);font-weight:800;color:var(--access-heading);margin-bottom:var(--space-2);font-family:var(--font-brand);line-height:var(--line-height-tight);letter-spacing:-.025em;text-wrap:balance;}
.role-container .role-sub{max-width:680px;font-size:14px;color:var(--access-sub);line-height:1.5;margin-bottom:var(--space-2);text-align:center;text-wrap:balance;}
.role-institution{display:inline-flex;align-items:center;justify-content:center;min-height:32px;margin:0 0 var(--space-8);padding:6px 12px;border:1px solid var(--access-chip-border);border-radius:var(--radius-pill);background:var(--access-chip-bg);color:var(--access-help);font-size:11.5px;font-weight:600;letter-spacing:.01em;}
.role-choice{margin:0 0 var(--space-3);color:var(--access-choice);font-size:14px;font-weight:700;line-height:1.4;}
.role-grid{width:min(100%,440px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin:0 auto var(--space-6);}
.role-card{--role-accent:var(--brand-sun);min-width:0;min-height:184px;background:var(--access-card-bg);border:1px solid var(--access-card-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-3);cursor:pointer;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--access-card-shadow);}
.role-card[data-role="maestro"]{--role-accent:#8CE2D6;background:linear-gradient(145deg,rgba(62,179,170,.3),rgba(24,109,121,.25));border-color:rgba(158,234,225,.62);}
.role-card[data-role="director"]{--role-accent:#FBCB6F;}
.role-card[data-role="gobernante"]{--role-accent:#A8D5FF;}
.role-card[data-role="admin"]{--role-accent:#D9B9FF;}
.role-card[data-role="alumno"]{--role-accent:#F8A9C4;}
.role-card:hover{background:var(--access-card-hover-bg);border-color:var(--access-card-hover-border);transform:translateY(-3px);box-shadow:var(--shadow-md);}
.role-card:focus-visible{outline:3px solid var(--brand-sun);outline-offset:4px;border-color:var(--brand-sun);}
.role-card.selected{background:var(--access-selection-bg);border-color:var(--role-accent);box-shadow:var(--access-selection-shadow);}
.role-icon{color:var(--role-accent);margin-bottom:10px;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--access-icon-border);border-radius:14px;background:var(--access-icon-bg);line-height:1;}
.role-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.role-kicker{color:var(--role-accent);font-size:10px;font-weight:800;letter-spacing:.08em;line-height:1.2;margin-bottom:4px;text-transform:uppercase;}
.role-label{font-size:14px;font-weight:700;color:var(--access-heading);margin-bottom:4px;text-align:center;width:100%;}
.role-desc{font-size:11.5px;color:var(--access-muted);line-height:1.45;text-align:center;overflow-wrap:anywhere;}
.role-login{width:min(100%,360px);margin-top:20px;display:none;text-align:left;}
.role-login.show{display:block;}
.role-login-title{margin:0 0 4px;color:var(--access-heading);font-family:var(--font-brand);font-size:20px;font-weight:500;}
.role-login-copy{margin:0 0 16px;color:var(--access-help);font-size:13px;line-height:1.45;}
.role-login-field{margin-bottom:12px;}
.role-login-label{display:block;margin:0 0 6px;color:var(--access-label);font-size:12px;font-weight:700;}
.role-login input{width:100%;min-height:48px;padding:12px 16px;border:2px solid var(--access-input-border);border-radius:var(--radius-md);background:var(--access-input-bg);color:var(--access-input-text);font-size:16px;font-family:inherit;text-align:left;}
.role-login input::placeholder{color:var(--access-input-placeholder);}
.role-login input:focus{outline:none;border-color:var(--brand-sun);box-shadow:0 0 0 4px rgba(251,203,111,.18);}
.role-enter{width:100%;min-height:48px;background:linear-gradient(135deg,var(--brand-sun),#DBA545);color:#032A44;border:none;padding:12px 40px;border-radius:var(--radius-md);font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;transition:transform .2s,box-shadow .2s;display:inline-flex;align-items:center;justify-content:center;gap:8px;}
.role-enter .ui-icon{width:18px;height:18px;flex:0 0 18px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.role-enter-spin{animation:role-enter-spin .8s linear infinite;}
@keyframes role-enter-spin{to{transform:rotate(360deg)}}
.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-login #roleError{display:flex;align-items:flex-start;gap:7px;margin-top:10px;color:#FCA5A5;font-size:13px;font-weight:700;line-height:1.4;}
.role-login #roleError[data-kind="warning"]{color:#FDE68A;}
.role-alert-icon{display:inline-flex;flex:0 0 16px;margin-top:1px;}
.role-alert-icon .ui-icon{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.role-login #roleHint{margin-top:10px;color:var(--access-help);font-size:12px;line-height:1.4;}
.role-meta{color:var(--access-meta);font-size:11px;line-height:1.5;letter-spacing:.02em;}
.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;padding:72px 16px 24px;}.role-container{width:100%;max-width:100%;min-width:0;}.role-container h1,.role-container .role-sub{max-width:100%;overflow-wrap:anywhere;}.role-institution{margin-bottom:20px;}.role-grid{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px;}.role-card{min-width:0;min-height:136px;padding:16px 9px;border-radius:12px;}.role-icon{width:44px;height:44px;margin-bottom:6px;}.role-login{width:100%;margin-top:12px;}.role-login input{max-width:100%;}.role-enter{max-width:360px;}}

.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(--brand-sun);color:#032A44;border:none;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:"DM Sans",sans-serif;box-shadow:0 4px 12px rgba(251,203,111,.3);position:sticky;top:68px;}
.v8-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:2px solid var(--border);padding-bottom:0;overflow-x:auto;scrollbar-width:none;}
.v8-tabs::-webkit-scrollbar{display:none;}
.v8-tab{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;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));white-space:nowrap;}
.v8-tab .ui-icon{width:16px;height:16px;flex:0 0 16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.v8-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:700;}
.v8-page{display:none;}.v8-page.active{display:block;}
.v8-tutor-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,300px);gap:var(--space-4);}
.v8-tutor-topic-row{display:flex;gap:var(--space-2);align-items:center;}
.v8-active-topic,.v8-topic-label,.v8-language-note{display:inline-flex;align-items:center;gap:6px;}
.v8-tutor-topic-row #v8SearchInput,#v8-creacion #crearSearchInput,#v8-comunidad #comNewTopicSearch{min-height:var(--control-min-height);box-sizing:border-box;}
#v8TopicDropdown [role="option"],#crearTopicDropdown [role="option"],#comNewTopicDropdown [role="option"]{min-height:var(--control-min-height);box-sizing:border-box;}
.v8-active-topic{padding:6px 14px;border-radius:8px;background:var(--ppale);border:1px solid var(--accent);font-size:12px;font-weight:600;color:var(--primary);white-space:nowrap;min-width:140px;justify-content:center;text-align:center;}
.v8-active-topic .ui-icon,.v8-topic-label .ui-icon,.v8-language-note .ui-icon,#v8TopicDropdown [role="option"]>.ui-icon{width:16px;height:16px;flex:0 0 16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.v8-tutor-side-heading{display:flex;align-items:center;gap:6px;margin:0 0 8px;color:var(--primary);font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;}
.v8-tutor-side-heading .ui-icon{width:16px;height:16px;flex:0 0 16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.v8-tutor-side-heading-blue{margin-bottom:6px;color:var(--blue);}
.v8-topic-label{margin:0 0 4px;font-size:13px;font-weight:600;}
.v8-nem-field{position:relative;padding-left:10px;}.v8-nem-field::before{content:'';position:absolute;left:0;top:.52em;width:4px;height:4px;border-radius:50%;background:currentColor;}
.v8-language-note{margin-top:4px;color:#a78bfa;font-size:11px;}
.crear-active-topic{display:flex;align-items:flex-start;gap:6px;margin-top:6px;padding:6px 12px;border:1px solid var(--accent);border-radius:6px;background:var(--ppale);color:var(--topic-active-text);font-size:12px;font-weight:600;line-height:1.4;}
.crear-active-topic .ui-icon,#crearTopicDropdown [role="option"]>.ui-icon,.crear-section-heading .ui-icon{width:16px;height:16px;flex:0 0 16px;margin-top:.05em;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.crear-section-heading{display:flex;align-items:center;gap:6px;margin:0 0 4px;font-size:14px;}
.crear-recent-item-title{display:inline-flex;align-items:center;gap:6px;color:var(--text);line-height:1.35;}.crear-recent-item-title .ui-icon{width:16px;height:16px;flex:0 0 16px;stroke:var(--accent);stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.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);}
.upload-zone.dragging{border-color:var(--accent);background:var(--bar-bg);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 28%,transparent);}
.upload-zone:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;}
.upload-zone-icon{width:48px;height:48px;margin:0 auto 12px;color:var(--accent);display:grid;place-items:center;}
.upload-zone-icon .ui-icon{width:40px;height:40px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.content-runtime-notice{display:flex;align-items:flex-start;gap:var(--space-2);margin:0 0 var(--space-4);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted);color:var(--text);font-size:var(--font-size-sm);line-height:1.5;}.content-runtime-notice[data-mode="local"]{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));}.content-runtime-notice[data-mode="bloqueado"]{border-color:color-mix(in srgb,var(--brand-sun) 52%,var(--border));background:var(--ybg);}.content-runtime-notice .ui-icon{width:18px;height:18px;flex:0 0 18px;margin-top:1px;stroke:var(--accent);stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.content-local-queue{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none;}.content-local-queue-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted);font-size:var(--font-size-sm);line-height:1.4;}.content-local-queue-item span{min-width:0;overflow-wrap:anywhere;}.content-local-queue-item .mini-action{min-height:var(--control-min-height);flex:0 0 auto;}.content-local-queue-item .mini-action:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}@media(max-width:480px){.content-local-queue-item{align-items:flex-start;flex-direction:column;}.content-local-queue-item .mini-action{width:100%;}}
.content-reference-table-wrap{width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;border-radius:var(--radius-sm);}.content-reference-table-wrap:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;}@media(max-width:640px){.content-reference-table{min-width:620px;}.content-reference-table-wrap{padding-bottom:var(--space-2);}}
.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;color:inherit;text-decoration:none;}
.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;color:var(--accent);}
.source-icon .ui-icon,.v8-content-heading .ui-icon,.v8-content-subheading .ui-icon,.v8-content-status .ui-icon{stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.source-icon .ui-icon{width:24px;height:24px;}
.v8-content-heading,.v8-content-subheading,.v8-content-status{display:inline-flex;align-items:center;gap:8px;}
.v8-content-heading .ui-icon{width:25px;height:25px;flex:0 0 25px;color:var(--accent);}
.v8-content-subheading .ui-icon{width:18px;height:18px;flex:0 0 18px;}
.v8-content-status .ui-icon{width:14px;height:14px;flex:0 0 14px;}
.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;}
.architecture-runtime-notice{display:flex;align-items:flex-start;gap:var(--space-2);margin:0 0 var(--space-4);padding:var(--space-3);border:1px solid color-mix(in srgb,var(--accent) 42%,var(--border));border-radius:var(--radius-md);background:var(--surface-muted);color:var(--text);font-size:var(--font-size-sm);line-height:1.5;}.architecture-runtime-notice .ui-icon{width:18px;height:18px;flex:0 0 18px;margin-top:1px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}.architecture-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);margin-bottom:var(--space-4);}@media(max-width:640px){.architecture-detail-grid{grid-template-columns:minmax(0,1fr);}.arch-flow{align-items:stretch;}.arch-box{min-width:0;flex:1 1 132px;}.arch-arrow{display:grid;place-items:center;}}
/* 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:var(--font-ui);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(--control-border);border-radius:8px;font-size:13px;font-family:var(--font-ui);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,#0D3342,#0A2A38);border:2px solid rgba(39,167,168,.28);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-generated-draft{margin-top:var(--space-4);outline:0;}.plan-generated-draft:focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px;border-radius:var(--radius-sm);}.plan-draft-review-status{margin-top:var(--space-3);font-size:var(--font-size-sm);line-height:1.5;color:var(--text-secondary);}
.plan-generated-draft h3,.plan-generated-draft h4,#planResult>h3,#crearResult>h3,#crearResult .plan-section h4{display:flex;align-items:center;gap:var(--space-2);}.plan-section-icon{width:1.1em;height:1.1em;flex:0 0 auto;stroke:currentColor;stroke-width:1.8;fill:none;vertical-align:-.18em;}
.plan-ai-run-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2) var(--space-4);margin:var(--space-3) 0;padding:var(--space-3);border:1px solid color-mix(in srgb,var(--brand-teal) 36%,var(--border));border-radius:var(--radius-md);background:var(--surface-muted);font-size:var(--font-size-sm);line-height:1.5;color:var(--text-secondary);}.plan-ai-run-summary strong{color:var(--text-primary);}@media(max-width:640px){.plan-ai-run-summary{grid-template-columns:minmax(0,1fr);}}
.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:var(--font-ui);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{height:36px;margin-bottom:8px;display:flex;align-items:center;justify-content:center;color:var(--accent);}
.tmpl-card .tmpl-icon .ui-icon{width:36px;height:36px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.tmpl-card h4{font-size:14px;font-weight:800;color:var(--accent);font-family:var(--font-brand);letter-spacing:-.015em;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(--brand-sun),#DBA545);color:#032A44;border:none;padding:14px 28px;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;font-family:var(--font-ui);display:inline-flex;align-items:center;gap:8px;transition:all .2s;margin-top:8px;}
.gen-btn .ui-icon{width:17px;height:17px;flex:0 0 17px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.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;}
#v8-creacion .gen-btn{min-height:var(--control-min-height);justify-content:center;}
#v8-creacion .gen-btn .ui-icon{width:17px;height:17px;flex:0 0 17px;stroke-width:1.9;}
#v8-creacion .gen-btn .crear-action-spinner{animation:crear-action-spin 1s linear infinite;}
#v8-creacion .crear-bank-remove{width:var(--control-min-height);min-width:var(--control-min-height);height:var(--control-min-height);border:1px solid transparent;border-radius:8px;background:transparent;color:var(--tl);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;}
#v8-creacion .crear-bank-remove .ui-icon{width:18px;height:18px;stroke-width:1.9;}
#v8-creacion .crear-bank-remove:hover{color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent);}
#v8-creacion .crear-bank-remove:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}
@keyframes crear-action-spin{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion:reduce){#v8-creacion .gen-btn .crear-action-spinner{animation: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:var(--font-ui);}
.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{height:28px;margin-bottom:6px;display:flex;align-items:center;justify-content:center;color:var(--accent);}
.tipo-card .tipo-icon .ui-icon{width:28px;height:28px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.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:var(--font-ui);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,.planning-panel-heading{display:flex;align-items:center;gap:6px;}
.class-preset strong{font-size:12px;color:var(--accent);margin-bottom:3px;}
.class-preset strong .ui-icon,.planning-panel-heading .ui-icon{width:17px;height:17px;flex:0 0 17px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.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:var(--font-ui);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,#0D3342,#0A2A38);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(--brand-sun),#DBA545);display:flex;align-items:center;justify-content:center;font-size:26px;box-shadow:0 4px 12px rgba(251,203,111,.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:var(--bar-bg);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);}
.gami-badge .ui-icon{width:18px;height:18px;stroke-width:1.8;}
.gami-session-note{max-width:720px;margin:var(--space-2) auto 0;padding:var(--space-2) var(--space-3);border:1px solid color-mix(in srgb,var(--brand-sun) 52%,var(--border));border-radius:var(--radius-sm);background:var(--ybg);color:var(--text-primary);font-size:var(--font-size-xs);line-height:1.45;text-align:center;}
/* ═══ VOZ ═══ */
.voice-btn{background:none;border:2px solid var(--border);width:44px;min-width:44px;height:44px;min-height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0;color:var(--text);}
.voice-btn .ui-icon{width:20px;height:20px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.voice-btn:hover{border-color:var(--plight);background:var(--ppale);}
.voice-btn:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;}
.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);}}
.tutor-local-draft-note{margin:0 0 7px;padding:7px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--text-secondary);font-size:11px;line-height:1.45;}.tutor-local-draft-note:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}
.lms-quiz-local-note{display:flex;align-items:flex-start;gap:var(--space-2);margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid color-mix(in srgb,var(--brand-sun) 52%,var(--border));border-radius:var(--radius-sm);background:var(--ybg);color:var(--text-primary);font-size:var(--font-size-xs);line-height:1.45;}.lms-quiz-local-note .ui-icon{width:17px;height:17px;flex:0 0 17px;margin-top:1px;stroke:currentColor;stroke-width:1.8;}.lms-quiz-completion-note{margin:var(--space-3) auto 0;max-width:34rem;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.5;}
/* ═══ PORTAL FAMILIAR ═══ */
.parent-wrap{min-height:100vh;color:var(--text);background:radial-gradient(circle at 90% 0,rgba(39,167,168,.13),transparent 30%),var(--surface-canvas);padding:var(--space-6);}
.parent-header{max-width:700px;margin:0 auto var(--space-6);padding-top:var(--space-10);text-align:center;}
.parent-title{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);color:var(--primary);font-family:var(--font-brand);font-size:clamp(1.25rem,3vw,1.5rem);font-weight:800;line-height:var(--line-height-tight);}
.parent-title .ui-icon{width:24px;height:24px;stroke-width:1.8;}
.parent-subtitle{margin-top:var(--space-2);color:var(--text-secondary);font-size:var(--font-size-sm);}
.parent-card{background:var(--surface-card);border-radius:var(--radius-lg);border:1px solid var(--border);color:var(--text-primary);padding:var(--space-5);margin-bottom:var(--space-3);max-width:700px;margin-left:auto;margin-right:auto;box-shadow:var(--shadow-sm);}
.parent-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin:var(--space-4) 0 0;}
.parent-avatar{display:grid;place-items:center;width:56px;height:56px;flex:0 0 56px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:22px;font-weight:800;box-shadow:var(--shadow-sm);}
.parent-progress-note{margin-top:var(--space-3);color:var(--text-secondary);font-size:var(--font-size-xs);line-height:1.5;}
.parent-stat{text-align:center;padding:var(--space-3);background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-md);}
.parent-stat .pv{font-size:1.5rem;font-weight:800;color:var(--accent);}
.parent-stat .pl{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);margin-top:2px;}
.parent-obj{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border);}
.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;min-width:0;font-size:var(--font-size-sm);}
.parent-obj-level{font-size:var(--font-size-xs);font-weight:700;padding:3px var(--space-2);border-radius:var(--radius-pill);white-space:nowrap;}
.parent-notice{border-color:color-mix(in srgb,var(--brand-sun) 52%,var(--border));background:var(--ybg);}
.parent-notice strong,.parent-support h3{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);font-weight:800;}
.parent-notice .ui-icon,.parent-support .ui-icon{width:18px;height:18px;flex:0 0 18px;stroke-width:1.8;}
.parent-notice p,.parent-support p{margin-top:var(--space-2);font-size:var(--font-size-sm);line-height:1.65;}
.parent-support{border-color:color-mix(in srgb,var(--green) 45%,var(--border));background:var(--gbg);}
.parent-support h3{color:var(--green);}
.parent-support p{color:var(--text-primary);}
.parent-empty{text-align:center;padding:var(--space-8);}
.parent-empty-icon{width:36px;height:36px;margin-bottom:var(--space-2);color:var(--text-secondary);stroke:currentColor;stroke-width:1.8;fill:none;}
.parent-empty h3{font-size:var(--font-size-lg);margin-bottom:var(--space-2);}
.parent-empty .sub{line-height:1.7;}
.parent-access{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-min-height);}
.parent-access .ui-icon{width:18px;height:18px;stroke-width:1.8;}
@media(max-width:560px){.parent-wrap{padding:var(--space-4);}.parent-header{padding-top:var(--space-8);}.parent-card{padding:var(--space-4);}.parent-progress{gap:var(--space-2);}.parent-stat{padding:var(--space-2);}.parent-stat .pl{font-size:10px;letter-spacing:0;}.parent-obj{align-items:flex-start;flex-wrap:wrap;}.parent-obj-name{min-width:calc(100% - 28px);}.parent-obj-level{margin-left:22px;}.parent-title{font-size:1.2rem;}}
.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:52px;background:#0e1025;display:flex;flex-direction:column;align-items:center;padding:10px 4px;gap:2px;flex-shrink:0;}
.reddit-votes button{min-width:44px;min-height:44px;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[role="button"]{display:flex;align-items:center;min-height:44px;padding:4px 6px;}
.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-local-notice{display:flex;align-items:flex-start;gap:var(--space-2);margin:0 0 var(--space-4);padding:var(--space-3);border:1px solid color-mix(in srgb,var(--brand-sun) 52%,var(--border));border-radius:var(--radius-md);background:var(--ybg);color:var(--text-primary);font-size:var(--font-size-sm);line-height:1.5;}.community-local-notice .ui-icon{width:18px;height:18px;margin-top:1px;flex:0 0 18px;}
.community-local-action-notice{margin:0 0 var(--space-4);padding:var(--space-3);border:1px solid color-mix(in srgb,var(--green) 48%,var(--border));border-radius:var(--radius-md);background:var(--surface-muted);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:700;line-height:1.5;}
.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:8px;font-size:12px;color:var(--tll);flex-wrap:wrap;}
.reddit-actions span,.reddit-actions button{cursor:pointer;display:flex;align-items:center;gap:4px;min-height:44px;padding:8px 10px;border-radius:4px;transition:background .15s;}
.reddit-actions button{border:0;background:none;color:inherit;font:inherit;}
.reddit-actions .ui-icon{width:16px;height:16px;flex:0 0 16px;stroke-width:1.8;}
.reddit-post [data-com-action="add-comment"]{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;}
.reddit-post [data-com-action="add-comment"] .ui-icon{width:16px;height:16px;flex:0 0 16px;stroke-width:1.8;}
.reddit-post [data-com-action="add-comment"]:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;}
.reddit-actions span:hover,.reddit-actions button:hover{background:var(--bar-bg);color:var(--primary);}
.reddit-title:focus-visible,.reddit-actions button:focus-visible,.reddit-votes button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;}
.reddit-filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;align-items:center;}
.reddit-filter{display:inline-flex;align-items:center;justify-content:center;min-height:44px;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 .ui-icon{width:16px;height:16px;flex:0 0 16px;}
.reddit-filter:hover{border-color:var(--accent);color:var(--primary);}
.reddit-filter.active{background:var(--brand-sun);color:#032A44;border-color:var(--brand-sun);}
.com-post-title,.com-publish-action,.community-title{display:inline-flex;align-items:center;gap:7px;}
.com-post-title .ui-icon,.com-publish-action .ui-icon,#comNewPostToggle .ui-icon,.community-title .ui-icon{width:17px;height:17px;flex:0 0 17px;}
.com-publish-cancel{background:var(--action-neutral-bg);color:var(--action-neutral-text);}
.com-new-active-topic{display:flex;align-items:flex-start;gap:6px;margin-top:4px;color:var(--primary);font-size:12px;font-weight:600;line-height:1.4;}
.com-new-active-topic .ui-icon,#comNewTopicDropdown [role="option"]>.ui-icon{width:16px;height:16px;flex:0 0 16px;margin-top:.05em;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.com-publish-confirm{display:flex;align-items:flex-start;gap:9px;margin:0 0 6px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);color:var(--text);font-size:12px;line-height:1.45;}
.com-publish-confirm input{width:18px;height:18px;min-width:18px;margin:0;accent-color:var(--accent);}
.com-publish-confirm input:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}
.com-publish-status{min-height:20px;margin:0 0 10px;color:var(--text-secondary);font-size:12px;line-height:1.45;}
#comPublishButton:disabled{cursor:not-allowed;opacity:.58;}
#v8-comunidad :is(#comSearch,.reddit-filters select,#comNewPostForm input:not([type="checkbox"]),#comNewPostForm select,#comNewPostForm textarea,.gen-btn,.v8-close){min-height:44px;}
#v8-comunidad .reddit-filters select{padding:6px 10px;}
#v8-comunidad .reddit-filters :is(.reddit-filter,select):focus-visible,#v8-comunidad :is(#comSearch,#comNewPostForm input:not([type="checkbox"]),#comNewPostForm select,#comNewPostForm textarea,.gen-btn,.v8-close):focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;}
.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:var(--nav-control-bg);border:1px solid var(--nav-control-border);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:16px;transition:all .2s;color:var(--nav-foreground);}
.theme-toggle:hover{background:var(--nav-hover-bg);border-color:var(--nav-hover-border);}
.theme-toggle .ui-icon{width:18px;height:18px;flex:0 0 18px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.theme-toggle-label{font:700 11px/1 var(--font-ui);letter-spacing:.01em;}

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

/* 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; }
/* El ajuste se aplica una sola vez desde el contenedor raíz. Escalar cada
   descendiente en em multiplicaba el tamaño por profundidad del DOM. */
body.acc-font-lg { font-size: 1.1rem !important; }
body.acc-font-xl { font-size: 1.25rem !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:var(--on-primary); 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 .ui-icon{width:24px;height:24px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.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 { display:flex;align-items:center;gap:7px;font-size:13px; font-weight:700; color:var(--primary); margin-bottom:14px; text-transform:uppercase; letter-spacing:.5px; }
.acc-panel h4 .ui-icon{width:18px;height:18px;flex:0 0 18px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.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:var(--control-min-height); height:var(--control-min-height); flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.acc-toggle input { position:absolute; inset:0; z-index:1; opacity:0; width:100%; height:100%; cursor:pointer; }
.acc-slider { position:relative; width:40px; height:22px; 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-toggle input:focus-visible + .acc-slider { outline:3px solid var(--focus-ring); outline-offset:3px; }
.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); }
.acc-reset-action{width:100%;min-height:var(--control-min-height);display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:7px;border:1px solid var(--border);border-radius:var(--radius-sm);background:none;color:var(--text-tertiary);cursor:pointer;font:inherit;font-size:12px;}.acc-reset-action .ui-icon{width:16px;height:16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}.acc-reset-action:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}
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 { height:30px!important; line-height:1!important; }
body.acc-font-xl #v8-creacion .tipo-card .tipo-icon { height:32px!important; line-height:1!important; }
body.acc-font-lg #v8-creacion .tipo-card .tipo-icon .ui-icon { width:30px!important; height:30px!important; }
body.acc-font-xl #v8-creacion .tipo-card .tipo-icon .ui-icon { width:32px!important; height:32px!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 { height:30px!important; line-height:1!important; }
body.acc-font-xl #v8-creacion .tmpl-card .tmpl-icon { height:32px!important; line-height:1!important; }
body.acc-font-lg #v8-creacion .tmpl-card .tmpl-icon .ui-icon { width:30px!important; height:30px!important; }
body.acc-font-xl #v8-creacion .tmpl-card .tmpl-icon .ui-icon { width:32px!important; height:32px!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:52px; padding:8px 4px; }
  #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:var(--nav-control-bg); border:1px solid var(--nav-control-border); border-radius:8px; padding:4px 8px; cursor:pointer; font-size:12px; color:var(--nav-muted); transition:.2s; position:relative; }
.lang-selector:hover, .lang-selector:focus-visible { border-color:var(--nav-hover-border); color:var(--nav-foreground); outline:2px solid var(--focus-ring); 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.keyboard-active { background:var(--ppale); color:var(--primary); box-shadow:inset 0 0 0 2px var(--focus-ring); }
.lang-selector #langFlag,.lang-opt .lang-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;}.lang-selector #langFlag .ui-icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}.lang-opt .lang-icon .ui-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}.lang-indicator .ui-icon{width:16px;height:16px;vertical-align:-3px;margin-right:4px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.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:var(--nee-dislexia); border:1px solid rgba(96,165,250,.3); }
.nee-tdah { background:rgba(251,191,36,.15); color:var(--nee-tdah); border:1px solid rgba(251,191,36,.3); }
.nee-tea { background:rgba(167,139,250,.15); color:var(--nee-tea); border:1px solid rgba(167,139,250,.3); }
.nee-visual { background:rgba(34,197,94,.15); color:var(--nee-visual); border:1px solid rgba(34,197,94,.3); }
.nee-motriz { background:rgba(251,146,60,.15); color:var(--nee-motriz); border:1px solid rgba(251,146,60,.3); }
.nee-cognitiva { background:rgba(236,72,153,.15); color:var(--nee-cognitiva); 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:var(--support-heading); margin-bottom:12px; }
.group-subject-label,.group-teacher-meta,.group-support-heading,.group-observation-tag{display:inline-flex;align-items:center;gap:5px;}
.group-subject-label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--tl);margin-bottom:6px;}.group-subject-label-spaced{margin:12px 0 6px;}
.group-subject-label .ui-icon,.group-teacher-meta .ui-icon,.group-support-heading .ui-icon,.group-observation-tag .ui-icon{width:15px;height:15px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:0 0 15px;}
.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-link{width:100%;min-height:var(--control-min-height);border:0;background:transparent;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;}.nee-student-link .nee-student-info{display:flex;flex-direction:column;}.nee-student-link .ui-icon{width:18px;height:18px;margin-left:auto;stroke:currentColor;}
.inclusion-local-notice{display:flex;align-items:flex-start;gap:var(--space-2);margin:0 0 var(--space-4);padding:var(--space-3);border:1px solid color-mix(in srgb,var(--brand-sun) 52%,var(--border));border-radius:var(--radius-md);background:var(--ybg);color:var(--text-primary);font-size:var(--font-size-sm);line-height:1.5;}.inclusion-local-notice .ui-icon{width:18px;height:18px;margin-top:1px;flex:0 0 18px;}
.language-card{width:100%;min-height:var(--control-min-height);padding:var(--space-4);color:var(--text-primary);font:inherit;text-align:center;cursor:pointer;}.language-card-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-2);color:var(--primary);}.language-card-icon .ui-icon{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}.language-card:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}
.incl-tts-action{min-height:var(--control-min-height);display:inline-flex;align-items:center;justify-content:center;gap:7px;}.incl-tts-action .ui-icon{width:17px;height:17px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}.incl-tts-action:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}
#v8-inclusion #inclGroupSelect{min-height:var(--control-min-height);}
.nee-summary-total{color:var(--nee-tea);}.nee-summary-count{font-weight:700;font-size:20px;color:var(--nee-color);}.nee-summary-label{font-size:12px;color:var(--text-secondary);}
@media(max-width:640px){#v8-inclusion .inclusion-language-grid,#v8-inclusion .inclusion-access-grid{grid-template-columns:minmax(0,1fr)!important;}#v8-inclusion .inclusion-support-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}#v8-inclusion [role="tablist"] .v8-tab{flex:1 1 calc(50% - 8px);}}@media(max-width:360px){#v8-inclusion .inclusion-support-grid{grid-template-columns:minmax(0,1fr)!important;}}
.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-badge .ui-icon,.nee-student-av .ui-icon,.tutor-nee-banner .ui-icon,.nee-summary-icon .ui-icon{width:16px;height:16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:0 0 16px;}
.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{min-height:var(--control-min-height);display:inline-flex;align-items:center;gap:6px;background:none;border:none;border-bottom:2px solid transparent;color:rgba(255,255,255,.74);font-family:inherit;font-size:13px;font-weight:600;line-height:1;padding:10px 12px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s;}
.sec-tab .ui-icon{width:16px;height:16px;flex:0 0 16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.sec-tab:hover{background:rgba(255,255,255,.06);color:#fff;}
.sec-tab.on{color:#fff;background:rgba(251,203,111,.1);border-bottom-color:var(--brand-sun);font-weight:700;}
.sec-tab.accent{color:var(--brand-sun);}

/* --- Barra de chips de contexto (bajo el topnav) --- */
.ctx-chips-bar{position:sticky;top:var(--shell-header-height);z-index:80;background:var(--bar-bg);background:color-mix(in srgb,var(--bar-bg) 94%,transparent);border-bottom:1px solid var(--border);padding:8px 24px;box-shadow:var(--shadow-sm);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);}
.ctx-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.ctx-chip{min-height:var(--control-min-height);display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--card);border:1px solid var(--border);color:var(--text);font-family:inherit;font-size:12.5px;font-weight:600;line-height:1;padding:9px 14px;border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,box-shadow .15s;}
.ctx-chip:hover{background:var(--card-hover);border-color:var(--accent);box-shadow:var(--shadow-sm);}
.ctx-chip .ci{display:inline-flex;align-items:center;justify-content:center;line-height:1;}
.ctx-chip .ci .ui-icon{width:16px;height:16px;stroke:currentColor;stroke-width:1.8;fill:none;}

/* --- 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(5,7,20,.68);z-index:110;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);}
.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:var(--radius-xl) var(--radius-xl) 0 0;padding:8px 16px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px rgba(0,0,0,.38);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:14px;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{min-height:84px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--bar-bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 6px;color:var(--text);font-family:inherit;font-size:11.5px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s;}
.mas-grid button:hover{background:var(--card-hover);border-color:var(--accent);}
.mas-i{width:22px;height:22px;}

/* --- 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{top:var(--shell-header-height);padding:8px 12px;}
  .ctx-chips{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scroll-padding-inline:12px;scrollbar-width:none;}
  .ctx-chips::-webkit-scrollbar{display:none;}
  .ctx-chip{scroll-snap-align:start;}
  .mobile-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:90;min-height:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));justify-content:space-around;align-items:center;background:var(--card);background:color-mix(in srgb,var(--card) 96%,transparent);border-top:1px solid var(--border);box-shadow:0 -6px 24px rgba(0,0,0,.22);padding:6px 6px calc(6px + env(safe-area-inset-bottom));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);}
  .mobile-nav button{min-width:0;min-height:54px;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;border-radius:10px;color:var(--tl);font-family:inherit;font-size:10.5px;font-weight:600;line-height:1.2;padding:5px 3px;cursor:pointer;transition:background .15s,color .15s;}
  .mobile-nav button.on{background:var(--accent-light);color:var(--accent);}
  .mobile-nav .mn-ico{width:20px;height:20px;}
  .ctn{padding-bottom:calc(var(--mobile-nav-height) + var(--space-5) + env(safe-area-inset-bottom));} /* 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;}

/* ════════════════════════════════════════════════════════════════
   FUNDAMENTOS VISUALES MVP
   Capa transversal del shell; no redefine componentes del wizard PW.
   ════════════════════════════════════════════════════════════════ */

button,input,select,textarea{font-family:var(--font-ui);}
[hidden]{display:none!important;}
::selection{background:var(--brand-sun);color:#032A44;}
.skip-link{position:fixed;top:8px;left:12px;z-index:10000;min-height:var(--control-min-height);display:flex;align-items:center;padding:8px 14px;border-radius:var(--radius-sm);background:var(--text);color:var(--bg);font-weight:700;text-decoration:none;transform:translateY(-140%);transition:transform .15s;}
.skip-link:focus{transform:translateY(0);}

/* El anillo permanece visible aunque un control heredado quite su outline. */
:focus-visible{outline:3px solid var(--focus-ring)!important;outline-offset:3px!important;}
input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--focus-ring);box-shadow:var(--focus-halo);}
.topnav,.role-screen{--focus-ring:var(--brand-sun);--focus-halo:0 0 0 4px rgba(251,203,111,.24);}

.topnav :where(button,[role="button"]),
.theme-toggle,
.lang-selector,
.ctx-chip,
.prof-trigger,
.prof-item,
.bk,
.enter-btn,
.login-btn,
.gen-btn{
  min-height:var(--control-min-height);
}
.theme-toggle,.prof-trigger{min-width:var(--control-min-height);display:inline-flex;align-items:center;justify-content:center;}
.prof-trigger{width:var(--control-min-height);height:var(--control-min-height);}
.prof-item{padding:10px 12px;}
.login-field select,.login-field input,.chat-in{min-height:48px;}

/* Controles presentes fuera del shell: conservar un objetivo táctil de 44 px
   sin cambiar su jerarquía visual ni el flujo de los overlays. */
.ai-action,.acc-font-btn,.v8-tab{min-height:var(--control-min-height);}
.v8-close{min-height:var(--control-min-height);display:flex;align-items:center;}

.card,.stat,.dash-card,.gc{box-shadow:0 1px 0 rgba(255,255,255,.025) inset;}
.stat,.dash-card{min-width:0;border-radius:var(--radius-md);}
.stats,.dash-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.stat-action{min-height:108px;display:flex;flex-direction:column;justify-content:center;}
.stat-action:is(button){width:100%;color:var(--text);text-align:left;}
.stat-action :is(.sl,.sv,.ss){display:block;}
.stat-action:active{transform:translateY(0);}

/* Los paneles navegables son controles reales, sin apariencia nativa de botón. */
.gc:is(button),.map-school-card:is(button),.plan-card-action{
  width:100%;font:inherit;color:var(--text);text-align:left;
}
.gc :is(.gcsl,.gcsv){display:block;}.gc .gct{display:flex;align-items:center;gap:6px;}.gc-teacher-icon{width:17px;height:17px;flex:0 0 17px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.map-school-card .msc-name,.map-school-card .msc-addr{display:block;}
.plan-card-action{appearance:none;}
.bc-link{appearance:none;background:none;border:0;color:inherit;padding:2px 3px;cursor:pointer;font:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;}
.bc-link:hover{color:#fff;}
.bc-muted{color:rgba(255,255,255,.58);}
.map-load-state{height:100%;min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:28px;text-align:center;color:var(--tl);background:linear-gradient(145deg,var(--card),var(--bar-bg));}
.map-load-state strong{color:var(--text);font-size:16px;}
.map-load-error strong{color:var(--red);}
.school-local-notice,.map-local-notice,.group-local-notice,.student-local-notice{display:flex;align-items:flex-start;gap:var(--space-2);margin:0 0 var(--space-4);padding:var(--space-3);border:1px solid color-mix(in srgb,var(--brand-sun) 52%,var(--border));border-radius:var(--radius-md);background:var(--ybg);color:var(--text-primary);font-size:var(--font-size-sm);line-height:1.5;}.school-local-notice .ui-icon,.map-local-notice .ui-icon,.group-local-notice .ui-icon,.student-local-notice .ui-icon{width:18px;height:18px;margin-top:1px;flex:0 0 18px;}
.student-lms-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;}.student-lms-action .ui-icon{width:17px;height:17px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.school-observation-heading{display:flex;align-items:center;gap:7px;}.school-observation-heading .ui-icon{width:19px;height:19px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.school-support-title-icon{display:inline-grid;place-items:center;width:19px;height:19px;margin-right:6px;vertical-align:-4px;}.school-support-title-icon .ui-icon{width:19px;height:19px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.school-support-count-badge{padding:4px 12px;border-radius:var(--radius-pill);background:var(--accent-light);color:var(--accent);font-size:13px;font-weight:700;white-space:nowrap;}.school-support-section-label{margin-bottom:10px;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;}.school-support-category{display:flex;align-items:center;gap:10px;margin-bottom:8px;}.school-support-category-icon{display:grid;place-items:center;width:22px;height:22px;flex:0 0 22px;color:var(--accent);}.school-support-category-icon .ui-icon{width:18px;height:18px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}.school-support-category-label{min-width:90px;font-size:13px;font-weight:600;}.school-support-bar{flex:1;height:8px;overflow:hidden;border-radius:4px;background:var(--bar-bg);}.school-support-bar-fill{height:100%;border-radius:inherit;background:var(--accent);}.school-support-count{min-width:30px;color:var(--accent);font-size:13px;font-weight:700;text-align:right;}
.login-empty{margin:8px 0 12px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--yellow) 55%,var(--border));border-radius:var(--radius-sm);background:var(--ybg);color:#713f12;font-size:13px;line-height:1.45;}
[data-theme="dark"] .login-empty{color:#fde68a;}
.text-button{appearance:none;border:0;background:none;color:var(--primary);font:inherit;font-weight:700;cursor:pointer;padding:8px;min-height:44px;}
.text-button:hover{text-decoration:underline;text-underline-offset:3px;}
.lms-si:is(button){width:100%;min-height:var(--control-min-height);border:0;background:transparent;text-align:left;font-family:var(--font-ui);font-size:13px;}

/* Inicio del alumnado: materias y lecciones con el mismo sistema de superficies. */
.student-subject-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);}
.student-subject-head{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);}
.student-subject-icon,.student-lesson-icon{display:grid;place-items:center;flex:0 0 auto;color:var(--primary);background:var(--surface-muted);border:1px solid var(--border);}
.student-subject-icon{width:40px;height:40px;border-radius:var(--radius-md);}.student-subject-icon .ui-icon{width:23px;height:23px;}
.student-subject-head h3{font-size:var(--font-size-lg);color:var(--text-primary);}.student-subject-head p{font-size:var(--font-size-sm);color:var(--text-secondary);margin-top:2px;}
.student-lesson-list{display:flex;flex-direction:column;gap:var(--space-2);}
.student-lesson-card{display:flex;width:100%;min-height:76px;align-items:center;gap:var(--space-3);padding:var(--space-3);border:2px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;}
.student-lesson-card:hover{border-color:var(--plight);background:var(--card-hover);}.student-lesson-card:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;box-shadow:var(--focus-halo);}
.student-lesson-icon{width:42px;height:42px;border-radius:var(--radius-md);}.student-lesson-icon .ui-icon{width:23px;height:23px;}
.student-lesson-content{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:var(--space-2);flex:1;min-width:0;}
.student-lesson-name{font-size:var(--font-size-md);font-weight:700;overflow-wrap:anywhere;}.student-lesson-meta{grid-column:1/-1;margin-top:2px;font-size:var(--font-size-xs);color:var(--text-secondary);}
.student-lesson-progress{grid-column:1;margin-top:var(--space-2);height:6px;border-radius:var(--radius-pill);background:var(--surface-muted);overflow:hidden;}.student-lesson-progress-fill{display:block;width:var(--student-progress);height:100%;border-radius:inherit;background:var(--student-state);transition:width .3s;}
.student-lesson-count{margin-top:var(--space-2);font-size:var(--font-size-xs);font-weight:700;white-space:nowrap;}.student-lesson-state{padding:3px var(--space-2);border-radius:var(--radius-pill);background:var(--student-state-bg);color:var(--student-state);font-size:10px;font-weight:800;white-space:nowrap;}.student-lesson-chevron{color:var(--text-tertiary);}.student-lesson-chevron .ui-icon{width:18px;height:18px;}
@media(max-width:480px){.student-subject-card{padding:var(--space-4);}.student-lesson-card{gap:var(--space-2);padding:var(--space-3) var(--space-2);}.student-lesson-state{display:none;}.student-lesson-icon{width:38px;height:38px;}.student-lesson-content{column-gap:6px;}}

@media(max-width:480px){
  #v8-planeacion .pw-steps{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:4px!important;overflow:visible!important;}
  #v8-planeacion .pw-step{min-width:0!important;padding:7px 4px!important;gap:4px!important;justify-content:center!important;font-size:10px!important;line-height:1.15!important;text-align:center!important;}
  #v8-planeacion .pw-step b{width:20px!important;height:20px!important;flex:0 0 20px!important;}
}

@media(max-width:768px){
  /* En móvil, accesibilidad vive en el shell y las herramientas de laboratorio no cubren contenido. */
  html,body{overflow-x:clip!important;overflow-y:visible!important;}
  .nr{margin-right:104px;padding-right:0;}
  .nr>.prof{position:fixed;top:10px;right:8px;z-index:121;}
  .nr>.acc-fab{position:fixed;top:10px;right:60px;bottom:auto;z-index:121;}
  .acc-panel{position:fixed;top:calc(var(--shell-header-height) + 8px);right:10px;bottom:auto;width:min(280px,calc(100vw - 20px));max-height:calc(100vh - var(--shell-header-height) - 20px);overflow:auto;}
  /* El menú IA permanece disponible como botón colapsable en móvil. */
}

/* Dashboard docente: una bienvenida clara y una accion primaria reconocible. */
#pg-maestro-home .plan-result{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);}
#pg-maestro-home .plan-result h2{font-family:var(--font-ui)!important;font-size:clamp(26px,4vw,34px)!important;line-height:var(--line-height-tight);}
#pg-maestro-home .maestro-welcome-title{font-family:var(--font-brand)!important;}
#pg-maestro-home #mh-kpis .stat-action{background:linear-gradient(135deg,var(--accent-light),var(--card));border-color:var(--accent);}
#pg-maestro-home #mh-kpis .maestro-primary-plan-action{border-width:2px;}
#pg-maestro-home .maestro-primary-plan-action .sl{display:inline-flex;align-items:center;gap:6px;}
#pg-maestro-home .maestro-primary-plan-action .sl .ui-icon{width:17px;height:17px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
#pg-maestro-home .maestro-primary-plan-action .sv{font-size:20px;line-height:1.2;}
#pg-maestro-home .stat-action{transition:border-color .15s,box-shadow .15s,transform .15s,background .15s;}
#pg-maestro-home .stat-action:hover{background:var(--card-hover);}
#pg-maestro-home .dashboard-wizard-link{display:inline-flex;align-items:center;gap:6px;}
#pg-maestro-home .maestro-route{display:flex;align-items:stretch;gap:var(--space-2);margin:0 0 var(--space-4);}
#pg-maestro-home .maestro-route-step{display:flex;align-items:center;gap:10px;flex:1 1 0;min-height:72px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s;}
#pg-maestro-home .maestro-route-step:hover{border-color:var(--accent);background:var(--card-hover);}
#pg-maestro-home .maestro-route-step:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}
#pg-maestro-home .maestro-route-number{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:var(--accent-light);color:var(--accent);font-size:13px;font-weight:800;}
#pg-maestro-home .maestro-route-step strong,#pg-maestro-home .maestro-route-step small{display:block;}
#pg-maestro-home .maestro-route-step strong{font-size:13px;line-height:1.3;}
#pg-maestro-home .maestro-route-step small{margin-top:2px;color:var(--text-secondary);font-size:11.5px;line-height:1.3;}
#pg-maestro-home .maestro-route-arrow{align-self:center;color:var(--text-secondary);font-weight:700;}
#pg-maestro-home .maestro-quick-action .sl{display:inline-flex;align-items:center;gap:6px;}
#pg-maestro-home .maestro-quick-action .ui-icon{width:16px;height:16px;}
#pg-maestro-home .maestro-quick-action .sv{display:inline-flex;align-items:center;line-height:1;}
#pg-maestro-home .maestro-quick-action .sv .ui-icon{width:18px;height:18px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
[data-theme="dark"] #pg-maestro-home :is(.maestro-route-step,.stat,.plan-card){background-color:var(--card)!important;}
[data-theme="dark"] #pg-maestro-home :is(.maestro-route-step,.stat-action,.plan-card-action){appearance:none;}
[data-theme="dark"] #pg-maestro-home .maestro-route-step small,[data-theme="dark"] #pg-maestro-home :is(.stat-action .sl,.stat-action .ss,.plan-card .sub){color:var(--text-secondary);}
[data-theme="dark"] .tag.w{background:rgba(251,203,111,.18);color:#FFEBB4;}[data-theme="dark"] .tag.a{background:rgba(248,113,113,.18);color:#FECACA;}[data-theme="dark"] .tag.o{background:rgba(62,184,157,.18);color:#A7F3D0;}
.maestro-local-notice{display:flex;align-items:flex-start;gap:10px;margin:0 0 16px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted);color:var(--text);font-size:13px;line-height:1.5;}
.maestro-local-notice .ui-icon{width:18px;height:18px;flex:0 0 18px;margin-top:1px;stroke:var(--accent);stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.maestro-recovery{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--error-border);border-radius:var(--radius-md);background:var(--error-bg);color:var(--text);font-size:13px;line-height:1.5;}
.maestro-recovery p{margin:0;max-width:62ch;}
.maestro-retry-action{flex:0 0 auto;min-height:var(--control-min-height);}
.maestro-retry-action:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}
@media(max-width:640px){#pg-maestro-home .maestro-route{display:grid;grid-template-columns:1fr;gap:var(--space-2);}#pg-maestro-home .maestro-route-arrow{display:none;}}
@media(max-width:640px){.maestro-recovery{align-items:stretch;flex-direction:column;}.maestro-retry-action{width:100%;justify-content:center;}}
#pg-maestro-grupo .maestro-group-action{display:inline-flex;align-items:center;gap:7px;}
#pg-maestro-grupo .maestro-group-action .ui-icon{width:17px;height:17px;}
#pg-maestro-grupo .maestro-group-route{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);margin:0 0 var(--space-4);}
#pg-maestro-grupo .maestro-group-priority{min-height:72px;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease;}
#pg-maestro-grupo .maestro-group-priority:hover{border-color:var(--accent);background:var(--card-hover);}
#pg-maestro-grupo .maestro-group-priority:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}
#pg-maestro-grupo .maestro-group-priority-number{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:var(--accent-light);color:var(--accent);font-size:13px;font-weight:800;}
#pg-maestro-grupo .maestro-group-priority strong,#pg-maestro-grupo .maestro-group-priority small{display:block;}
#pg-maestro-grupo .maestro-group-priority strong{font-size:13px;line-height:1.3;}
#pg-maestro-grupo .maestro-group-priority small{margin-top:2px;color:var(--text-secondary);font-size:11.5px;line-height:1.3;}
@media(max-width:640px){#pg-maestro-grupo .maestro-group-route{grid-template-columns:1fr;}}
#pg-maestro-eval .maestro-eval-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;}
#pg-maestro-eval .maestro-eval-action .ui-icon{width:17px;height:17px;}
#pg-maestro-eval .mev-cell-wrap{padding:0!important;background:var(--card);}
#pg-maestro-eval .mev-cell{display:block;width:100%;min-height:72px;padding:13px 14px;border:0;background:transparent;color:var(--tl);font:inherit;font-size:12.5px;line-height:1.45;text-align:left;cursor:pointer;}
#pg-maestro-eval .mev-cell:hover{background:var(--card-hover);}
#pg-maestro-eval .mev-cell.selected{background:var(--ppale);color:var(--text);box-shadow:inset 0 0 0 2px var(--accent);}
#pg-maestro-eval .mev-cell:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-3px;position:relative;z-index:1;}
#pg-maestro-eval .mev-selection-summary{margin:0 0 var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted);color:var(--text-secondary);font-size:12.5px;line-height:1.5;}
#pg-maestro-eval .mev-review-wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin:-8px 0 var(--space-5);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted);}.mev-review-wrap .sub{margin:0;flex:1 1 260px;}.mev-review-action{min-height:var(--control-min-height);}
#pg-maestro-eval .mev-evidence-check{display:flex;align-items:center;gap:10px;min-height:var(--control-min-height);padding:10px 0;border-bottom:1px solid var(--border);cursor:pointer;}
#pg-maestro-eval .mev-evidence-check:last-child{border-bottom:0;}
#pg-maestro-eval .mev-evidence-control{width:20px;height:20px;flex:0 0 auto;accent-color:var(--accent);}
#pg-maestro-eval .mev-evidence-control:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;}
#pg-maestro-eval .mev-evidence-icon{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--surface-muted);color:var(--text-secondary);}
#pg-maestro-eval .mev-evidence-icon .ui-icon{width:16px;height:16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
#pg-maestro-eval .mev-evidence-state{font-size:11.5px;font-weight:700;color:var(--text-secondary);}
#pg-maestro-bap .maestro-bap-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;}
#pg-maestro-bap .maestro-bap-action .ui-icon{width:16px;height:16px;}
#pg-maestro-bap .maestro-bap-case-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-top:12px;padding-top:10px;border-top:1px solid var(--border);}
#pg-maestro-bap .maestro-bap-case-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;}
#pg-maestro-bap .maestro-bap-plan-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:var(--control-min-height);font-size:12px;}
#pg-maestro-bap .maestro-bap-plan-link .ui-icon{width:16px;height:16px;stroke:currentColor;}
#pg-maestro-bap .maestro-bap-case-icon{width:40px;height:40px;border-radius:50%;color:#fff;display:grid;place-items:center;flex-shrink:0;}
#pg-maestro-bap .maestro-bap-case-icon .ui-icon{width:22px;height:22px;}
@media(max-width:640px){#pg-maestro-bap .ph .maestro-bap-action{width:100%;margin-left:0!important;}#pg-maestro-bap .maestro-bap-case-footer{align-items:flex-start;flex-direction:column;}#pg-maestro-bap .maestro-bap-case-actions{justify-content:flex-start;width:100%;}#pg-maestro-bap .maestro-bap-case-actions button{flex:1 1 180px;}}
#pg-maestro-mat .maestro-mat-action{min-height:var(--control-min-height);display:inline-flex;align-items:center;justify-content:center;gap:7px;}
#pg-maestro-mat .maestro-mat-action .ui-icon{width:17px;height:17px;}
#pg-maestro-mat .maestro-mat-card-action,#maestroMatFiltros .fbtn{min-height:var(--control-min-height);}
#pg-maestro-mat .maestro-mat-card-action:focus-visible,#maestroMatFiltros .fbtn:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}
#pg-maestro-mat .maestro-mat-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;color:var(--accent);}
#pg-maestro-mat .maestro-mat-icon .ui-icon{width:30px;height:30px;}
#pg-maestro-mat .maestro-mat-provenance{margin-top:7px;color:var(--text-secondary);font-size:11px;line-height:1.4;}
#pg-maestro-mat .maestro-mat-empty .maestro-mat-icon{width:40px;height:40px;margin:0 auto 8px;color:var(--plight);}
#v8-creacion .crear-title{display:flex;align-items:center;gap:9px;color:var(--text-primary);}
#v8-creacion .crear-title .ui-icon{width:24px;height:24px;flex:0 0 24px;stroke:var(--accent);stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
#v8-creacion .crear-runtime-notice{display:flex;align-items:flex-start;gap:var(--space-2);margin:0 0 var(--space-4);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted);color:var(--text);font-size:var(--font-size-sm);line-height:1.5;}
#v8-creacion .crear-runtime-notice[data-mode="local"]{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));}
#v8-creacion .crear-runtime-notice[data-mode="bloqueado"]{border-color:color-mix(in srgb,var(--brand-sun) 52%,var(--border));background:var(--ybg);}
#v8-creacion .crear-runtime-notice .ui-icon{width:18px;height:18px;flex:0 0 18px;margin-top:1px;stroke:var(--accent);stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
#v8-creacion .crear-advanced-status{margin:8px 0 0;font-size:12px;line-height:1.45;}
#v8-creacion #crearGenMenu button{min-height:var(--control-min-height);}
#v8-creacion #crearGenMenu button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;}
#pg-maestro-rep .maestro-rep-action{min-height:var(--control-min-height);display:inline-flex;align-items:center;justify-content:center;gap:7px;}
#pg-maestro-rep .maestro-rep-action .ui-icon{width:17px;height:17px;}
#pg-maestro-rep .maestro-rep-icon .ui-icon{width:22px;height:22px;}
#pg-maestro-rep .maestro-rep-title{font-family:var(--font-brand)!important;}
#pg-maestro-rep .rep-aud{width:100%;color:var(--text);font:inherit;text-align:left;}
#pg-maestro-rep .rep-aud:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;}
#pg-maestro-rep .rep-export-confirm{margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted);}
#pg-maestro-rep .rep-export-confirm-label{display:flex;align-items:flex-start;gap:var(--space-2);min-height:var(--control-min-height);font-size:12px;line-height:1.45;cursor:pointer;}
#pg-maestro-rep .rep-export-confirm input{width:20px;height:20px;flex:0 0 auto;margin-top:1px;accent-color:var(--accent);}
#pg-maestro-rep .rep-export-confirm input:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;}
#pg-maestro-rep .rep-export-confirm .sub{margin:var(--space-2) 0 0;font-size:11.5px;line-height:1.45;}
#pg-maestro-presentar .maestro-presentar-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;}
#pg-maestro-presentar .maestro-presentar-action .ui-icon{width:17px;height:17px;}
#pg-maestro-presentar .maestro-presentar-mode-label{align-items:center;gap:6px;}
#pg-maestro-presentar .maestro-presentar-mode-label .ui-icon{width:17px;height:17px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;}
#comNewTopicDropdown [role="option"][aria-selected="true"]{background:var(--ppale)!important;box-shadow:inset 0 0 0 2px var(--focus-ring);}
#v8TopicDropdown [role="option"][aria-selected="true"]{background:var(--ppale)!important;box-shadow:inset 0 0 0 2px var(--focus-ring);}
.v8-tutor-local-notice{margin:0 0 var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted);color:var(--text-secondary);font-size:12px;line-height:1.5;}

/* Estados del shell consistentes en ambos temas. */
[data-theme="light"] .ctx-chips-bar{box-shadow:0 2px 10px rgba(5,61,99,.08);}
[data-theme="light"] .ctx-chip:hover,
[data-theme="light"] .mobile-nav button.on{color:var(--primary);}
[data-theme="light"] .prof-online{border-color:#053D63;}

/* En perfiles administrativos, los accesos de escritorio caben sin ensanchar la página. */
@media(max-width:1320px){
  .topnav{padding-inline:var(--space-4);gap:var(--space-3);}
  .topnav>.nsep,.bc{display:none;}
  .nr{margin-left:auto;min-width:0;gap:8px;overflow-x:auto;scrollbar-width:none;}
  .nr::-webkit-scrollbar{display:none;}
  .nr>.rbtn{flex:0 0 auto;white-space:nowrap;}
}

@media(max-width:1180px){
  .topnav{padding-inline:var(--space-4);gap:var(--space-3);}
  .topnav>.nsep,.bc{display:none;}
  .sec-tab{padding-inline:9px;font-size:12px;}
  .nr{min-width:0;gap:8px;overflow-x:auto;scrollbar-width:none;}
  .nr::-webkit-scrollbar{display:none;}
  .nr>.theme-toggle{order:-3;flex:0 0 auto;}
  .nr>.lang-selector{order:-2;flex:0 0 auto;}
  .nr>.prof{order:-1;flex:0 0 auto;}
}

@media(max-width:1024px){
  .stats,.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .gg{grid-template-columns:minmax(0,1fr);}
}

@media(max-width:768px){
  .topnav{min-height:var(--shell-header-height);max-width:100%;padding:6px 10px;gap:8px;overflow:visible;}
  .logo{gap:7px;}
  .logo-icon{width:34px;height:34px;}
  .nr{margin-left:auto;min-width:0;overflow-x:auto;gap:6px;scrollbar-width:none;}
  .nr::-webkit-scrollbar{display:none;}
  .nr>.theme-toggle{order:-3;flex:0 0 auto;}
  .nr>.lang-selector{order:-2;flex:0 0 auto;}
  .nr>.prof{order:-1;flex:0 0 auto;}
  .nr>.rbtn{flex:0 0 auto;white-space:nowrap;}
  .lang-dropdown{position:fixed;top:calc(var(--shell-header-height) + 8px);right:64px;}
  .prof-menu{position:fixed;top:calc(var(--shell-header-height) + 8px);right:10px;max-width:calc(100vw - 20px);}
  .acc-fab{right:64px;bottom:calc(var(--mobile-nav-height) + 12px + env(safe-area-inset-bottom));}
  .acc-fab-btn{width:44px;min-width:44px;max-width:44px;height:44px;min-height:44px;max-height:44px;border-radius:50%;}
  .ctn{padding-inline:var(--space-4);}
  .ph{align-items:flex-start;flex-wrap:wrap;gap:12px;}
  .ph .enter-btn{margin-left:0!important;}
  #pg-maestro-home .plan-result{padding:22px 20px!important;}
  #pg-maestro-home .stat{padding:14px;}
  #pg-maestro-home .sv{font-size:24px;}
  .dash-card{padding:14px 10px;}
  #pg-maestro-ia .chat-box{height:clamp(320px,calc(100dvh - 330px),520px)!important;}
  .v8-tutor-layout{grid-template-columns:minmax(0,1fr);}
  .v8-tutor-topic-row{align-items:stretch;flex-wrap:wrap;}
  .v8-tutor-topic-row #v8SearchWrap{min-width:0;flex:1 1 220px!important;}
  .v8-tutor-topic-row #v8ActiveTopic{flex:1 1 180px;min-width:0!important;white-space:normal!important;}
}

@media(max-width:360px){
  .topnav .logo-text{display:none;}
  #pg-lms .logo{font-size:0;}
  #pg-lms .logo>span{display:none;}
}

@media(max-width:520px){
  .topnav{padding-inline:8px;}
  .logo-sub{display:none;}
  .theme-toggle-label{display:none;}
  .logo{gap:6px;}
  .ctn{padding:16px 12px calc(var(--mobile-nav-height) + var(--space-5) + env(safe-area-inset-bottom));}
  .ctx-chips-bar{padding-inline:8px;}
  .ctx-chip{padding-inline:12px;}
  .card{padding:16px;}
  .stat{padding:13px 12px;}
  .sl,.ss{overflow-wrap:anywhere;}
  .sv{font-size:25px;}
  .mobile-nav button{font-size:10px;}
  .mobile-nav .mn-ico{font-size:19px;}
  .mas-grid{gap:8px;}
}

@media(max-width:360px){
  .stats,.dash-grid{grid-template-columns:minmax(0,1fr)!important;}
  .role-grid{gap:8px;}
  .role-card{min-height:130px;padding-inline:6px;}
  .role-desc{font-size:11px;}
}

@media(max-height:720px) and (min-width:769px){
  .role-screen{align-items:flex-start;overflow-y:auto;}
  .role-container{padding-block:var(--space-5);}
}


.version-switcher{position:fixed;z-index:10001;right:16px;bottom:16px;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px);padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--card);box-shadow:0 8px 24px rgba(10,55,91,.16);color:var(--text);font:600 12px/1.3 var(--font-ui);}.version-switcher span{color:var(--tl);font-weight:500;}.version-switcher a{color:var(--primary);font-weight:750;}.version-switcher a:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;}@media(max-width:620px){.version-switcher{left:10px;right:10px;bottom:10px;justify-content:space-between;font-size:11px;}}
