:root{--bg: #F6F4EF;--surface: #ffffff;--card: #ffffff;--card2: #EFEDE7;--border: #E3E0D7;--accent: #7C3AED;--accent-hover: #6D28D9;--accent-light: #EDE7FD;--accent2: #1E2A78;--accent2-light: #E3E6F6;--blue: #4C5FD5;--blue-light: #E4E8FB;--mint: #5EEAD4;--mint-ink: #0F766E;--mint-light: #DDF7F2;--success: #0F8A6F;--success-light: #DDF4EC;--warn: #B7791F;--warn-light: #FBEED9;--danger: #C2414B;--danger-light: #F9E2E4;--text: #16213F;--muted: #5B6478;--font: "Plus Jakarta Sans", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--mono: "JetBrains Mono", monospace;--radius: 16px;--radius-sm: 8px;--shadow-hover: 0 10px 28px rgba(15, 27, 61, .1);--shadow-lg: 0 12px 40px rgba(15, 27, 61, .14);--sidebar-bg: #0F1B3D;--evaluvia-gradient: linear-gradient(120deg, #7C3AED 0%, #9B6BF2 45%, #5EEAD4 100%);--evaluvia-gradient-deep: linear-gradient(120deg, #6D28D9 0%, #5B3FD9 50%, #3B4FC4 100%);--sidebar-w: 260px;--sidebar-collapsed: 62px;--topbar-h: 60px;--transition: .2s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);min-height:100vh;overflow-x:hidden;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6,.card-title,.tb-title{font-family:var(--font)}body:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse 70% 50% at 15% 10%,rgba(124,58,237,.05) 0%,transparent 55%),radial-gradient(ellipse 50% 40% at 85% 85%,rgba(94,234,212,.04) 0%,transparent 50%);pointer-events:none;z-index:0}#root{position:relative;z-index:1}.app-layout{display:flex;min-height:100vh}.main-area{flex:1;display:flex;flex-direction:column;min-width:0}.content-area{flex:1;overflow-y:auto;padding:28px}.sidebar{width:var(--sidebar-w);background:var(--sidebar-bg);display:flex;flex-direction:column;transition:width var(--transition);flex-shrink:0;overflow:hidden;position:relative;z-index:50}.sidebar.collapsed{width:var(--sidebar-collapsed)}.sidebar.collapsed .sb-label,.sidebar.collapsed .sb-section,.sidebar.collapsed .sb-logo-text,.sidebar.collapsed .sb-uname,.sidebar.collapsed .sb-urole{display:none}.sb-logo{padding:20px 16px 18px;border-bottom:1px solid rgba(255,255,255,.07);display:flex;align-items:center;gap:12px;flex-shrink:0}.sb-logo-icon{width:38px;height:38px;object-fit:contain;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.sb-logo-text{font-weight:800;font-size:14px;line-height:1.15;white-space:nowrap;color:#f0f4fa}.sb-logo-text span{display:block;font-size:10px;color:#f0f4fa73;font-weight:400;margin-top:2px}.sb-scroll{padding:12px 10px;flex:1;overflow-y:auto;overflow-x:hidden}.sb-section{font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:#f0f4fa59;padding:14px 12px 4px;white-space:nowrap}.sb-item{width:100%;background:none;font:inherit;text-align:left;display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;cursor:pointer;transition:all var(--transition);margin-bottom:2px;min-height:44px;color:#f0f4fab3;border:1px solid transparent}.sb-item:hover{background:#ffffff12;color:#f0f4fa}.sb-item.active{background:#7c3aed42;color:#e4daff;border-color:#9b6bf273}.sb-item.primary:not(.active){color:#5eead4;font-weight:700}.sb-item.active{box-shadow:inset 3px 0 #5eead4}.sb-item:focus-visible,.sb-section-toggle:focus-visible{outline:2px solid #5EEAD4;outline-offset:-2px}.sb-section-toggle{width:100%;background:none;border:none;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:36px}.sb-section-toggle:hover{color:#f0f4fab3}.sb-chev{font-size:11px;transition:transform var(--transition)}.sb-chev.open{transform:rotate(180deg)}.sb-item .sbi{font-size:16px;width:20px;text-align:center;flex-shrink:0}.sb-label{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden}.sb-footer{padding:14px 16px;border-top:1px solid rgba(255,255,255,.07);display:flex;align-items:center;gap:10px;cursor:pointer;flex-shrink:0;color:#f0f4fa99;transition:all var(--transition)}.sb-footer:hover{color:#f0f4fa;background:#ffffff0d}.sb-avatar{width:34px;height:34px;border-radius:50%;background:var(--evaluvia-gradient-deep);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;color:#fff}.sb-uname{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sb-urole{font-size:10px;color:#f0f4fa66}.topbar{height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 24px;gap:14px;flex-shrink:0;box-shadow:0 1px 3px #1e2a3a0a}.tb-toggle{min-width:40px;min-height:40px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;cursor:pointer;font-size:15px;transition:all var(--transition);color:var(--text)}.tb-toggle:hover{border-color:var(--accent);color:var(--accent)}.tb-title{font-weight:700;font-size:16px;flex:0 0 auto;color:var(--text)}.tb-anio{width:auto;min-height:36px;font-size:12px;font-weight:600;padding:4px 10px;flex-shrink:0}.franja-peligro{background:var(--danger-light);border-color:var(--danger)}.franja-calma{background:var(--accent-light);border-color:var(--accent)}.licencia-texto{margin:0;flex:1;min-width:220px;font-weight:600;line-height:1.45}.licencia-acciones{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.licencia-acciones .btn{min-height:44px}.instalar-pasos{margin:0 0 0 1.1em;padding:0;display:flex;flex-direction:column;gap:6px;font-size:14px}.sb-instalar{display:flex;align-items:center;gap:10px;width:calc(100% - 24px);min-height:44px;margin:8px 12px 0;padding:8px 12px;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-sm);background:transparent;color:#f0f4fa;font:inherit;font-size:13px;font-weight:600;cursor:pointer;text-align:left}.sb-instalar:hover{background:#ffffff0f}.sidebar.collapsed .sb-instalar{width:44px;height:44px;margin:8px auto 0;padding:0;justify-content:center}.franja-lectura{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--warn-light);border:1px solid var(--warn);border-radius:var(--radius-sm);padding:8px 14px;margin-bottom:14px;font-size:12px;font-weight:600}.tb-badge{background:var(--bg);border:1px solid var(--border);padding:5px 14px;border-radius:20px;font-size:11px;font-weight:600;color:var(--muted);flex-shrink:0;display:flex;align-items:center;gap:2px}.tb-sel{width:auto;min-height:28px;font-size:11px;font-weight:600;padding:2px 6px;border:1px solid transparent;background:transparent;color:inherit;cursor:pointer}.tb-sel:hover,.tb-sel:focus-visible{border-color:var(--border);background:var(--surface)}.gs{position:relative;flex:1;min-width:0;max-width:420px}.gs-input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:8px 16px;font-size:12px}.gs-input:focus{background:#fff}.gs-panel{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 8px 24px #1e2a3a1f;max-height:420px;overflow-y:auto;z-index:40;padding:6px}.gs-group-label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;padding:8px 10px 4px}.gs-item{padding:7px 10px;border-radius:8px;cursor:pointer}.gs-item:hover,.gs-item.active{background:var(--bg)}.gs-item-titulo{font-size:12px;font-weight:600;color:var(--text)}.gs-item-subtitulo{font-size:11px;color:var(--muted)}.gs-empty{padding:14px 10px;font-size:12px;color:var(--muted);text-align:center}.row-highlight{animation:rowHighlightFade 2.5s ease-out forwards}@keyframes rowHighlightFade{0%{background:#7c3aed47}to{background:transparent}}@media(max-width:640px){.gs{max-width:140px}.gs-input::placeholder{color:transparent}}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:999px;border:none;cursor:pointer;font-size:12px;font-weight:700;font-family:var(--font-body);transition:all var(--transition);white-space:nowrap;text-decoration:none;min-height:40px;justify-content:center}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 14px #7c3aed4d}.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg);border-color:var(--accent)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{filter:brightness(1.1)}.btn-warn{background:var(--warn);color:#fff}.btn-warn:hover{filter:brightness(1.1)}.btn-purple{background:var(--accent2);color:#fff}.btn-purple:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn-sm{padding:5px 12px;font-size:11px;min-height:34px}.btn-xs{min-height:28px;padding:4px 8px;font-size:10px;border-radius:6px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px}.card-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap}.card-title{font-weight:700;font-size:15px;color:var(--text)}.card-sub{font-size:11px;color:var(--muted);margin-top:2px}.card-actions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}.cta-card{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--accent-light);border:1px solid var(--accent);border-radius:var(--radius);padding:20px 24px;margin-bottom:8px}.cta-texto{flex:1 1 240px;min-width:0}.texto-corto,.cta-title,.cta-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cta-title{font-family:var(--font);font-weight:800;font-size:18px}.cta-sub{font-size:12px;color:var(--muted);margin-top:2px}.cta-btn{min-height:48px;padding:12px 28px;font-size:14px}.dash-ref{font-size:11px;color:var(--muted);margin-bottom:20px;padding:0 2px}.area-row{width:100%;font:inherit;color:inherit;text-align:left;display:flex;align-items:center;gap:12px;padding:14px;min-height:56px;background:#f8faff;border:1px solid transparent;border-radius:10px;margin-bottom:6px;cursor:pointer;transition:border-color var(--transition)}.area-row:hover{border-color:var(--accent)}.det-afectadas{margin-bottom:14px}.det-afectadas>summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--muted);min-height:36px;display:flex;align-items:center}.det-afectadas[open]>summary{margin-bottom:8px}.btn-del:hover{background:var(--danger-light);border-color:var(--danger);color:var(--danger)}.det-comp>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;min-height:44px;list-style:none}.det-comp>summary::-webkit-details-marker{display:none}.det-comp[open]>summary{margin-bottom:12px}.det-comp>summary:after,.det-afectadas>summary:after,.det-tamano>summary:after{content:"▸";margin-left:8px;color:var(--muted)}.det-comp[open]>summary:after,.det-afectadas[open]>summary:after,.det-tamano[open]>summary:after{content:"▾"}.ficha-panel[hidden]{display:none}@media print{.ficha-tabs{display:none!important}.ficha-panel[hidden]{display:block!important}.g2.ficha-panel[hidden]{display:grid!important}}.informe-alumno{margin-bottom:10px;content-visibility:auto;contain-intrinsic-size:auto 420px}@media print{.informe-alumno{content-visibility:visible;break-inside:avoid}}.det-tamano>summary,.det-afectadas>summary{list-style:none}.det-tamano>summary::-webkit-details-marker,.det-afectadas>summary::-webkit-details-marker{display:none}.det-tamano>summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--muted);min-height:34px;display:flex;align-items:center}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:20px}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;position:relative;overflow:hidden;transition:all var(--transition)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}.stat-card:after{content:"";position:absolute;top:-18px;right:-18px;width:80px;height:80px;border-radius:50%;opacity:.1}.stat-blue:after{background:var(--accent)}.stat-purple:after{background:var(--accent2)}.stat-green:after{background:var(--success)}.stat-orange:after{background:var(--warn)}.stat-val{font-size:28px;font-weight:800;font-family:var(--mono)}.stat-lbl{font-size:11px;color:var(--muted);margin-top:4px;font-weight:500}.stat-ico{font-size:22px;margin-bottom:8px}.tabs{display:flex;gap:4px;background:var(--card2);border-radius:10px;padding:4px;margin-bottom:20px;flex-wrap:wrap;border:1px solid var(--border)}.tab{border:none;background:none;font-family:inherit;min-height:36px;padding:7px 16px;border-radius:8px;cursor:pointer;font-size:12px;font-weight:600;transition:all var(--transition);white-space:nowrap;color:var(--muted)}.tab.active{background:var(--text);color:#fff}.tab:not(.active):hover{background:var(--card);color:var(--text)}.fg{margin-bottom:16px}.fg label{display:block;font-size:12px;font-weight:600;margin-bottom:6px;color:var(--muted)}input,select,textarea{width:100%;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 13px;color:var(--text);font-family:var(--font);font-size:13px;outline:none;transition:all var(--transition);box-shadow:inset 0 1px 2px #00000008}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #7c3aed2e}textarea{resize:vertical;min-height:80px}input[type=checkbox]{width:auto;accent-color:var(--accent)}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-sm);border:1px solid var(--border)}table{width:100%;border-collapse:collapse;font-size:12px}th{background:var(--card2);padding:10px 12px;text-align:left;font-weight:700;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;position:sticky;top:0;z-index:2;border-bottom:1px solid var(--border)}td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle;background:#fff}tr:last-child td{border-bottom:none}tr:hover td{background:var(--card2)}.fixed-col{position:sticky;left:0;background:#fff;z-index:1;border-right:1px solid var(--border)}th.fixed-col{z-index:3;background:var(--card2)}tr:hover .fixed-col{background:var(--card2)}.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:10px;font-weight:700}.bg{background:var(--success-light);color:#065f46}.br{background:var(--danger-light);color:#991b1b}.by{background:var(--warn-light);color:#92400e}.bb{background:var(--accent-light);color:var(--accent-hover)}.bp{background:#ede9fe;color:#5b21b6}.si{width:72px;min-height:40px;text-align:center;font-family:var(--mono);font-weight:700;font-size:13px;padding:6px 4px}.sc{font-family:var(--mono);font-weight:800;font-size:14px}.ok{color:var(--success)}.fail{color:var(--danger)}.na{color:var(--muted)}.dc{display:inline-flex;align-items:center;gap:3px;border-radius:6px;padding:3px 8px;font-size:10px;font-weight:700;margin:2px;font-family:var(--mono);cursor:default;transition:all var(--transition)}.dc-neutral{background:var(--accent-light);border:1px solid #D9CCFB;color:var(--accent-hover)}.dc-ok{background:var(--success-light);border:1px solid #6ee7b7;color:#065f46}.dc-fail{background:var(--danger-light);border:1px solid #fca5a5;color:#991b1b}.dc-na{background:#f1f5f9;border:1px solid #e2e8f0;color:var(--muted)}.dc-n1{background:var(--danger-light);border:1px solid #fca5a5;color:#991b1b}.dc-n2{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}.dc-n3{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.dc-n4{background:var(--success-light);border:1px solid #6ee7b7;color:#065f46}.hm{border-radius:5px;font-size:10px;font-weight:700;font-family:var(--mono);padding:5px;text-align:center;min-width:38px;transition:all var(--transition)}.hm-0{background:var(--danger-light);color:#991b1b}.hm-1{background:var(--warn-light);color:#92400e}.hm-2{background:var(--success-light);color:#065f46}.hm-na{background:#f1f5f9;color:var(--muted)}.modal-backdrop{display:flex;position:fixed;inset:0;background:#000000a6;z-index:200;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:28px;width:92%;max-width:760px;max-height:92vh;overflow-y:auto;position:relative;box-shadow:var(--shadow-lg)}.modal h2{font-size:18px;font-weight:800;margin-bottom:20px}.modal-close{position:absolute;top:16px;right:16px;background:var(--bg);border:1px solid var(--border);color:var(--text);width:36px;height:36px;border-radius:var(--radius-sm);cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.modal-close:hover{border-color:var(--danger);color:var(--danger)}.login-screen{position:fixed;inset:0;z-index:300;display:flex;overflow:hidden}.login-brand{position:relative;width:46%;min-width:380px;flex-shrink:0;background:var(--sidebar-bg);display:flex;align-items:center;justify-content:center;overflow:hidden}.login-brand:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 45%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 50% 45%,#000 20%,transparent 75%);pointer-events:none}.login-brand-content{position:relative;z-index:1;text-align:center;padding:40px;max-width:460px}.login-tagline:after{content:"";display:block;width:96px;height:4px;margin:22px auto 0;border-radius:4px;background:var(--evaluvia-gradient)}.login-tagline{font-size:19px;font-weight:500;color:#f0f4fad1;line-height:1.5;margin-top:20px;letter-spacing:-.01em}.login-panel{flex:1;background:var(--surface);display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:40px}.login-blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.8;pointer-events:none;will-change:transform;mix-blend-mode:screen}.login-blob-1{width:40vw;height:40vw;left:-14vw;top:-12vw;background:radial-gradient(circle,rgba(124,58,237,.65) 0%,transparent 70%);animation:blob-drift-1 20s ease-in-out infinite}.login-blob-2{width:36vw;height:36vw;left:4vw;bottom:-14vw;background:radial-gradient(circle,rgba(94,234,212,.55) 0%,transparent 70%);animation:blob-drift-2 26s ease-in-out infinite}.login-blob-3{width:32vw;height:32vw;left:16vw;top:24vw;background:radial-gradient(circle,rgba(94,234,212,.42) 0%,transparent 70%);animation:blob-drift-3 17s ease-in-out infinite}.login-blob-4{width:26vw;height:26vw;right:-8vw;top:8vw;background:radial-gradient(circle,rgba(76,95,213,.5) 0%,transparent 70%);animation:blob-drift-4 23s ease-in-out infinite}@keyframes blob-drift-1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(5vw,6vw) scale(1.15)}}@keyframes blob-drift-2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-4vw,-5vw) scale(1.1)}}@keyframes blob-drift-3{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-4vw,4vw) scale(.9)}}@keyframes blob-drift-4{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-3vw,5vw) scale(1.12)}}@media(prefers-reduced-motion:reduce){.login-blob{animation:none}}@media(max-width:900px){.login-screen{flex-direction:column;overflow-y:auto}.login-brand{width:100%;min-width:0;min-height:320px;flex-shrink:0;padding:32px 0}.login-brand-content{padding:0 24px;max-width:100%}.login-panel{flex:none;width:100%;padding:32px 20px}.login-brand{min-height:0;padding:20px 0}.login-tagline{display:none}.login-blob{animation:none;filter:blur(40px);mix-blend-mode:normal}}@media(max-height:500px){.login-brand{display:none}}.login-box{width:min(440px,100%);text-align:center;animation:fadeUp .35s ease}.login-logo-plate{width:min(80%,340px);aspect-ratio:1;margin:0 auto;border-radius:32px;background:#fff;padding:36px;box-shadow:0 24px 70px #00000059,0 0 0 1px #ffffff0f;animation:logo-float 6s ease-in-out infinite}.login-logo{width:100%;height:100%;object-fit:contain}@keyframes logo-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@media(prefers-reduced-motion:reduce){.login-logo-plate{animation:none}}@media(max-width:900px){.login-logo-plate{width:96px;padding:12px;border-radius:20px;animation:none}}.login-box h1{font-size:26px;font-weight:800;margin-bottom:4px;color:var(--text)}.login-box p{color:var(--muted);font-size:12px;margin-bottom:20px;margin-top:0;line-height:1.5}.login-form{text-align:left}.login-form .fg label{display:block;margin-bottom:4px;font-size:14px;font-weight:600;color:var(--text)}.login-error-slot{min-height:52px}.login-box .login-help{font-size:14px;color:var(--text);opacity:.8;margin:0 0 20px}.login-box .login-help-account{margin-top:18px;margin-bottom:8px}.login-box .login-foot{font-size:12px;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-items:center;color:var(--muted)}.login-link{background:none;border:none;padding:10px 4px;min-height:44px;font:inherit;font-size:13px;font-weight:600;color:var(--accent);cursor:pointer;text-decoration:underline}.login-box a{color:var(--accent)}.login-ok{background:#16a34a14;border:1px solid rgba(22,163,74,.25);border-radius:var(--radius-sm);padding:10px 14px;font-size:14px;margin:0 0 12px}.legal-doc{text-align:left;max-height:60vh;overflow-y:auto;margin-bottom:8px}.legal-doc h2{font-size:20px;margin:0 0 4px}.legal-doc h3{font-size:15px;margin:14px 0 4px}.legal-doc p{font-size:14px;line-height:1.5;margin:0}.legal-borrador{color:var(--muted);font-style:italic;margin-bottom:8px!important}.login-form .fg input{font-size:16px;min-height:48px}.login-pass{position:relative}.login-pass input{width:100%;padding-right:84px}.login-pass-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);min-height:44px;padding:0 12px;border:none;background:none;color:var(--accent);font-weight:700;font-size:13px;cursor:pointer}.login-submit-btn{width:100%;min-height:48px;font-size:15px}.login-form .fg input[aria-invalid=true]{border-color:var(--danger, #d33)}.login-error{background:#dc262614;border:1px solid rgba(220,38,38,.2);color:var(--danger);border-radius:var(--radius-sm);padding:10px 14px;font-size:14px;font-weight:600;margin:0;display:flex;align-items:center;gap:6px;animation:fadeUp .2s ease}.login-submit{width:100%;padding:13px;font-size:14px;margin-top:20px;border-radius:10px;background:var(--evaluvia-gradient-deep);border:none;color:#fff;font-weight:700;cursor:pointer;transition:all var(--transition);box-shadow:0 6px 20px #7c3aed47}.login-submit:hover{transform:translateY(-2px);box-shadow:0 10px 28px #7c3aed5c}.login-submit:disabled{opacity:.7;cursor:wait;transform:none}.user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;max-height:360px;overflow-y:auto}.ucard{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px;cursor:pointer;transition:all var(--transition);text-align:left}.ucard:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 6px 24px #7c3aed2e}.ucard .ui{font-size:20px;margin-bottom:6px}.ucard .un{font-weight:700;font-size:12px}.ucard .ur{font-size:10px;color:var(--muted);margin-top:2px}.ucard .uareas{font-size:10px;color:var(--accent);margin-top:4px}.curso-overlay{position:fixed;inset:0;background:#1e2a3a8c;z-index:350;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadeIn .2s ease}.curso-box{background:#fff;border:1px solid var(--border);border-radius:22px;padding:40px;width:min(440px,94vw);text-align:center;box-shadow:0 8px 40px #1e2a3a33;animation:fadeUp .25s ease}.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:12px;margin-bottom:14px;display:flex;align-items:center;gap:8px;line-height:1.4}.a-info{background:#2563eb14;border:1px solid rgba(37,99,235,.15);color:var(--accent)}.a-ok{background:#05966914;border:1px solid rgba(5,150,105,.15);color:var(--success)}.a-warn{background:#d9770614;border:1px solid rgba(217,119,6,.15);color:var(--warn)}.pb{height:7px;background:#e2e8f0;border-radius:4px;overflow:hidden;margin-top:6px}.pf{height:100%;border-radius:4px;transition:width .5s ease}.pf-ok{background:linear-gradient(90deg,var(--success),#34d399)}.pf-fail{background:linear-gradient(90deg,var(--danger),#f87171)}.pf-mid{background:linear-gradient(90deg,var(--warn),#fbbf24)}.g2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}@media(max-width:900px){.g2,.g3{grid-template-columns:1fr}}.toast-container{position:fixed;bottom:24px;right:24px;z-index:999;pointer-events:none;display:flex;flex-direction:column;gap:8px}.toast-item{background:#fff;border:1px solid var(--border);padding:12px 18px;border-radius:10px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:8px;box-shadow:0 4px 20px #1e2a3a1f;pointer-events:auto}.toast-ok{border-color:#6ee7b7;color:var(--success)}.toast-err{border-color:#fca5a5;color:var(--danger)}.toast-warn{border-color:#fcd34d;color:#92400e}.report-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:14px;break-inside:avoid}.rep-name{font-weight:800;font-size:16px;color:var(--text)}.rep-info{font-size:11px;color:var(--muted);margin-top:2px}.chip{display:inline-block;padding:3px 8px;border-radius:5px;font-size:10px;font-weight:600;background:#f1f5f9;border:1px solid #e2e8f0;margin:2px;color:var(--muted)}.empty{text-align:center;padding:40px;color:var(--muted)}.empty-ico{font-size:40px;margin-bottom:12px}.section-divider{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:10px;text-align:left;padding:0 2px;display:flex;align-items:center;gap:8px}.section-divider:before,.section-divider:after{content:"";height:1px;flex:1;background:var(--border)}.perm-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:5px;font-size:10px;font-weight:700;margin:2px}.pt-all{background:var(--success-light);color:#065f46}.pt-area{background:var(--accent-light);color:var(--accent-hover)}.eval-hdr-area{writing-mode:vertical-rl;transform:rotate(180deg);font-size:10px;padding:4px;max-height:100px;white-space:nowrap;overflow:hidden}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeUp .3s ease}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d6d1c4;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#b8b2a0}@media print{.sidebar,.topbar,.btn,.no-print,.login-screen,.toast-container{display:none!important}.content-area{padding:0}body,html{background:#fff;color:#000}.card{border:1px solid #ddd;background:#fff;page-break-inside:avoid;box-shadow:none}th{background:#f1f5f9;color:#374151}}.canvas-wrap{border:1px solid var(--border);border-radius:16px;overflow:hidden;margin-top:12px}.canvas-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px}.eyebrow{text-transform:uppercase;font-size:11px;font-weight:700;letter-spacing:.6px;color:var(--accent);display:flex;align-items:center;gap:6px}.eyebrow:before{content:"";width:3px;height:12px;background:var(--accent);border-radius:2px}.canvas-meta{font-size:12px;color:var(--muted);font-weight:600}.canvas{position:relative;margin:0 12px 12px;border-radius:14px;background:linear-gradient(rgba(15,27,61,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(15,27,61,.05) 1px,transparent 1px),linear-gradient(135deg,#fff,var(--card2) 130%);background-size:32px 32px,32px 32px,100% 100%;border:1.5px dashed rgba(15,27,61,.15);overflow:hidden}.mesa-profesor{touch-action:none;position:absolute;width:120px;height:40px;background:linear-gradient(135deg,#16213f,#0f1b3d 70%);border-radius:10px;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:6px;box-shadow:0 4px 14px #0f1b3d40;cursor:grab;-webkit-user-select:none;user-select:none}.mesa-alumno{touch-action:none;position:absolute;width:92px;height:56px;background:#fff;border:1.5px solid var(--border);border-radius:10px;box-shadow:0 3px 10px #0f1b3d1a;display:flex;align-items:center;justify-content:center;gap:6px;cursor:grab;-webkit-user-select:none;user-select:none;padding:4px}.mesa-etiqueta{position:absolute;top:1px;left:4px;right:18px;font-size:10px;font-weight:700;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.mesa-editar{position:absolute;top:0;right:0;width:17px;height:17px;padding:0;border:0;background:transparent;color:var(--muted);font-size:11px;cursor:pointer;touch-action:manipulation}.mesa-editar:hover{color:var(--accent)}.mesa-alumno.vacia{border-style:dashed;background:#fff9;font-size:11px;color:var(--muted);font-weight:600}.mesa-avatar{width:22px;height:22px;border-radius:50%;background:var(--blue-light);color:var(--text);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0}.mesa-nombre{font-size:10px;font-weight:600;line-height:1.15;max-width:50px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sincolocar-panel{border:1px solid var(--border);border-radius:16px;padding:16px;margin-top:12px}.sincolocar-item{touch-action:pan-y;display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:10px;font-size:12.5px;font-weight:600;cursor:grab;-webkit-user-select:none;user-select:none}.sincolocar-item:hover{background:var(--card2)}.sincolocar-item.elegido{background:var(--blue-light);outline:2px solid var(--accent)}.content-area td,.content-area th,.content-area .card,.content-area h1,.content-area h2,.cta-title,.tb-title{overflow-wrap:anywhere;min-width:0}.sidebar-backdrop{display:none}@media(max-width:900px){.sidebar{position:fixed;top:0;bottom:0;left:0;width:min(280px,85vw);z-index:200;box-shadow:0 0 40px #00000059}.sidebar.collapsed{width:0;box-shadow:none}.sidebar-backdrop{display:block;position:fixed;inset:0;background:#0006;z-index:150}.content-area{padding:14px}.topbar{flex-wrap:wrap;height:auto;min-height:var(--topbar-h);padding:8px 12px;gap:8px}.tb-badge{order:10;flex:1 1 100%;justify-content:space-between;padding:2px 6px}.tb-centro{display:none}.tb-sel{flex:1 1 0;min-height:36px;font-size:14px;border-color:var(--border);background:var(--surface)}.content-area table{display:block;max-width:100%;overflow-x:auto}.content-area input,.content-area select,.content-area textarea{font-size:16px}.content-area .btn{min-height:44px}}.plano-grid{display:grid;grid-template-columns:1fr 240px;gap:16px}@media(max-width:900px){.plano-grid{grid-template-columns:1fr}.plano-grid .canvas-wrap{min-width:0;overflow-x:auto}.plano-grid .canvas-header{flex-wrap:wrap;gap:6px}.plano-grid .eyebrow{white-space:nowrap}}.hm{white-space:nowrap}.hm-n1{background:var(--danger-light);color:#991b1b}.hm-n2{background:#fff7ed;color:#9a3412}.hm-n3{background:#f0fdf4;color:#166534}.hm-n4{background:var(--success-light);color:#065f46}@media(max-width:900px){.tabla-tarjetas,.tabla-tarjetas tbody,.tabla-tarjetas tr,.tabla-tarjetas td{display:block;width:100%}.tabla-tarjetas thead{display:none}.tabla-tarjetas tr{border:1px solid var(--border);border-radius:10px;padding:8px;margin-bottom:8px;background:var(--surface)}.content-area .tabla-tarjetas td{min-width:0;border:0;padding:3px 4px;display:flex;gap:8px;align-items:center;justify-content:space-between}.tabla-tarjetas td:before{content:attr(data-label);font-size:10px;color:var(--muted);text-transform:uppercase;flex-shrink:0}.tabla-tarjetas td[data-label=""]:before{display:none}.tabla-tarjetas td.solo-escritorio{display:none}}.leyenda-asistencia{font-size:11px;color:var(--muted);margin-bottom:8px}@media(max-width:900px){.act-nombre{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere}.content-area div:has(>.act-nombre){min-width:0}.act-cabecera{flex-wrap:wrap}.act-cabecera>div:first-child{flex:1 1 100%}}@media(max-width:900px){.tabla-asistencia tr{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;padding:4px 8px;margin-bottom:4px}.content-area .tabla-asistencia td{display:block;padding:2px}.tabla-asistencia .btn-asist .btn{min-height:38px;min-width:38px}}.pagina-horario{display:flex;flex-direction:column}@media(max-width:900px){.pagina-horario .form-franja{order:2}.tabla-horario,.tabla-horario tbody,.tabla-horario tr,.tabla-horario td{display:block;width:100%}.tabla-horario thead{display:none}.content-area .tabla-horario td{min-width:0;padding:10px 6px;border-bottom:1px solid var(--border)}.tabla-horario td:before{content:attr(data-dia);display:block;font-weight:800;font-size:12px;color:var(--accent, #2563eb);margin-bottom:4px}}@media(max-width:900px){.content-area td,.content-area th{overflow-wrap:normal;word-break:normal;min-width:84px}.content-area td.fixed-col,.content-area th.fixed-col{min-width:110px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stats-grid .stat-card{padding:10px}.btn-asist{display:flex;gap:4px;flex-wrap:nowrap}.btn-asist .btn{flex:1 1 0;padding-left:4px;padding-right:4px;justify-content:center}.btn-asist .btn-lbl{display:none}.gs{max-width:none;flex:1 1 140px}.gs-input::placeholder{color:var(--muted)}}.content-area{overflow-wrap:anywhere}.content-area *:not(button):not(.badge):not(.chip):not(input):not(select):not(textarea){min-width:0}.content-area select,.content-area input,.content-area textarea{max-width:100%}.legal-doc a{color:var(--accent)}@media(max-width:900px){.gs-input{font-size:16px}}.content-area select{max-width:min(100%,480px);text-overflow:ellipsis}.a1-act-crit{display:flex;flex-direction:column;gap:3px}.a1-act-crit-fila{display:flex;align-items:baseline;gap:6px;min-width:0}.a1-act-crit-fila .chip{flex-shrink:0}.a1-act-crit-desc{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.a1-act-meta{overflow-wrap:normal;word-break:normal}.a1-obs-cards{display:none}@media(max-width:900px){.a1-act-acciones{flex:1 1 100%;flex-wrap:wrap}.a1-act-crit-desc{white-space:normal}.a1-obs-filtros{width:100%}.a1-obs-filtros>*,.content-area .a1-obs-filtros select,.a1-obs-filtros input[type=search]{width:100%!important;max-width:100%!important;box-sizing:border-box}.a1-obs-tabla{display:none}.a1-obs-cards{display:flex;flex-direction:column;gap:8px}.a1-obs-card{border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--surface, #fff)}.a1-obs-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.a1-obs-card-texto{margin-top:6px;font-size:13px;line-height:1.4;overflow-wrap:anywhere;white-space:pre-wrap}}.a2-instr{flex-direction:column;align-items:stretch;gap:6px}.a2-instr label{width:100%;align-items:flex-start!important}.a2-instr label input[type=checkbox]{flex:none;margin-top:2px}.a2-media-col{position:sticky;right:0;background:#fff;z-index:1;border-left:1px solid var(--border)}th.a2-media-col{z-index:3;background:var(--card2)}tfoot .a2-media-col{background:#fff}@media(max-width:900px){.a2-card-eval{padding:10px}.a2-tw-eval table{min-width:100%}.a2-niveles{display:grid!important;grid-template-columns:1fr 1fr;gap:4px}.a2-niveles .btn{min-height:36px;padding:4px 6px;justify-content:center;font-size:12px}.content-area td.a2-media-col,.content-area th.a2-media-col{min-width:64px;padding-left:6px;padding-right:6px}}.f1-ap-ini,.f1-media-movil,.f1-lista-mesas{display:none}@media(max-width:600px){.content-area table.f1-cuaderno td.fixed-col,.content-area table.f1-cuaderno th.fixed-col{min-width:84px;width:84px;max-width:84px;padding-left:6px;padding-right:6px}.f1-cuaderno .f1-nom{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f1-cuaderno .f1-ap-full{display:none}.f1-cuaderno .f1-ap-ini{display:inline}.f1-cuaderno .f1-media-movil{display:block;font-size:10px;font-weight:700;color:var(--accent)}.f1-cuaderno .a2-media-col{display:none!important}.content-area table.f1-cuaderno th.f1-act-th{min-width:90px!important;max-width:120px!important}.content-area table.f1-cuaderno td{min-width:90px;padding-left:6px;padding-right:6px}.f1-cuaderno input.si{width:64px;min-width:56px}.f1-lista-mesas{display:block;margin-top:12px;padding:0 12px 12px}.f1-lista-mesas h3{font-size:14px;margin-bottom:8px}.f1-mesa-card{background:#f8faff;border:1px solid var(--border);border-radius:10px;padding:10px;margin-bottom:8px}.f1-mesa-card-hd{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;font-weight:700;font-size:14px}.f1-mesa-alumno{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;font-size:13px;overflow-wrap:normal;word-break:normal}.f1-mesa-card .btn{min-height:40px}.f1-mesa-acciones{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}}.alert[role=status] strong{overflow-wrap:normal;word-break:normal}.f1-rub-movil{display:none}@media(max-width:600px){.f1-rub-tabla{display:none}.f1-rub-movil{display:block}.f1-rub-crit{border:1px solid var(--border);border-radius:8px;padding:8px;margin-bottom:8px;background:#fff}.f1-rub-crit-cod{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--accent);margin-bottom:6px}.f1-rub-nivel{padding:6px 0;border-top:1px solid var(--border);font-size:12px;overflow-wrap:normal;word-break:normal}.f1-rub-nivel:first-of-type{border-top:0}.f1-rub-nivel-hd{font-weight:700;display:flex;justify-content:space-between;gap:8px}.f1-rub-nivel-desc{color:var(--muted);margin-top:2px}}.f3-btn-icono{min-width:32px;min-height:32px;padding:4px 8px;font-size:15px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.f2-form-toggle{display:none;width:100%}.f2-lbl{display:none}.f2-creada a{font-weight:700;margin-left:4px}.f2-instr-linea{display:block;line-height:1.45;overflow-wrap:normal;word-break:normal}.f2-solo-lectura{display:block;font-weight:600}.f2-niveles-leyenda{font-size:11px;color:var(--muted);margin-top:6px}.f2-nivel-nota{display:block;font-size:10px;opacity:.8;line-height:1}@media(max-width:600px){.f2-col-lista{order:-1}.f2-form-toggle{display:block;margin-bottom:10px}.f2-form-cerrado{display:none}.f2-lbl{display:inline;margin-left:4px;font-size:11px}.f2-lista-card{max-height:none!important;overflow:visible!important}}.g1-al-hd{flex-wrap:wrap;min-width:0}.g1-al-hd>div:first-child{min-width:0;flex:1 1 260px}.g1-al-buscar{width:150px}.g1-informe-hd{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 12px;align-items:flex-start;min-width:0}.g1-informe-titulo{flex:1 1 220px;min-width:0;overflow-wrap:anywhere}.g1-informe-lista{font-size:13px;line-height:1.6;padding-left:18px;max-height:240px;overflow-y:auto;margin:0;white-space:normal;overflow-wrap:anywhere}.g1-aviso-excel{overflow-wrap:normal;word-break:normal}.g1-plano-pista{margin:0 0 8px;font-size:13px}.f1-cuaderno .f1-act-nombre{overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none}@media(max-width:600px){.g1-al-acciones{width:100%;flex-shrink:1;min-width:0}.g1-al-acciones>*{min-width:0}.g1-al-buscar{width:100%;flex:1 1 100%}.g1-al-acciones>label{flex:1 1 auto}.f1-cuaderno .f1-ap{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content-area table.f1-cuaderno td.fixed-col,.content-area table.f1-cuaderno th.fixed-col{min-width:96px;width:96px;max-width:96px}.content-area table.f1-cuaderno th.f1-act-th{min-width:78px!important;max-width:84px!important;padding-left:4px;padding-right:4px}.content-area table.f1-cuaderno th.f1-act-th .f1-act-nombre{font-size:10px!important;line-height:1.2}.content-area table.f1-cuaderno td{min-width:76px;padding-left:4px;padding-right:4px}.f1-cuaderno input.si{width:60px;min-width:56px}}.g3-filtros-toggle{display:none;margin-bottom:8px}@media(max-width:600px){.g3-filtros-toggle{display:inline-flex}.g3-filtros:not(.abierto){display:none}}.g3-franja-fuera{color:var(--danger);font-size:11px;font-weight:600;margin-top:4px}.g2-crit-box{max-height:280px;overflow-y:auto}.g2-peso{text-align:right}.g2-nueva-arriba{display:none;margin-bottom:10px}.g2-crit-resumen{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted);flex-wrap:wrap}.g2-rub-crit{text-align:left}.g2-rub-cod{font-family:var(--mono);font-size:10px;color:var(--accent);margin-bottom:2px}.g2-rub-niveles{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:4px}.g2-rub-btn{min-height:44px;flex-direction:column;gap:2px;padding:4px 2px;font-size:11px;line-height:1.1;white-space:normal;justify-content:center}@media(max-width:600px){.g2-crit-box{max-height:40vh}.g2-nueva-arriba{display:inline-flex;width:100%;justify-content:center}}.g1-informe{display:block}:root{--lv0-bg: transparent;--lv0-fg: var(--muted);--lv1-bg: #E7E2F7;--lv1-fg: #3B2585;--lv2-bg: #E2F6F1;--lv2-fg: #0D5F57;--lv3-bg: #B9ECE1;--lv3-fg: #0A4D46;--lv4-bg: #7FDDCB;--lv4-fg: #053C36;--ease-salida: cubic-bezier(.22, 1, .36, 1)}:where(button,a,[role=button],[role=tab],summary,select,input,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sidebar :where(button,a):focus-visible{outline-color:var(--mint)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.btn-link{background:none;border:0;padding:4px 2px;min-height:32px;font:inherit;font-size:12px;font-weight:700;color:var(--accent);cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:text-decoration-color var(--transition)}.btn-link:hover{text-decoration-color:currentColor}.btn-link:disabled{color:var(--muted);cursor:default}.btn-xl{min-height:52px;padding:14px 30px;font-size:15px}.segmento{display:inline-flex;background:var(--card2);border:1px solid var(--border);border-radius:999px;padding:3px;gap:2px}.segmento button{border:0;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:700;padding:6px 14px;min-height:36px;border-radius:999px;cursor:pointer;transition:background var(--transition),color var(--transition)}.segmento button.on{background:var(--text);color:#fff}.segmento button:not(.on):hover{color:var(--text)}.barra-logro{height:6px;border-radius:999px;background:var(--card2);overflow:hidden;margin:8px 0 6px}.barra-logro>span{display:block;height:100%;border-radius:inherit;background:var(--mint);transition:width .5s var(--ease-salida)}.tic-guardado{color:var(--mint-ink);font-weight:700;font-size:12px;animation:tic-entra .25s var(--ease-salida)}@keyframes tic-entra{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.delta-sube{color:var(--mint-ink);font-weight:700;font-family:var(--mono);font-size:11px}.delta-baja{color:#5b21b6;font-weight:700;font-family:var(--mono);font-size:11px}.avatar-prof{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%;background:var(--evaluvia-gradient-deep);color:#fff;font-family:var(--font);font-weight:800;letter-spacing:.02em}.avatar-lg{width:56px;height:56px;font-size:19px}.avatar-xl{width:72px;height:72px;font-size:24px;box-shadow:0 0 0 4px var(--accent-light)}.empty{padding:32px 20px}.empty-ico{font-size:28px;margin-bottom:8px;opacity:.85}.empty-tit{font-family:var(--font);font-weight:700;font-size:15px;color:var(--text);margin-bottom:4px}.empty .card-sub{max-width:52ch;margin:0 auto 14px}.empty-card{background:var(--card);border:1px dashed var(--border);border-radius:var(--radius)}.stat-card:after{display:none}.stat-card:hover{transform:none;box-shadow:none}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin:16px 0 20px}.kpi{background:var(--card);padding:16px 18px;min-width:0}.kpi-lbl{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-val{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:34px;font-weight:700;line-height:1.1;letter-spacing:-.02em;margin-top:6px;color:var(--text)}.kpi-val-bajo{color:#3b2585}.kpi-ud{font-size:16px;font-weight:600;color:var(--muted);margin-left:1px}.kpi-sub{font-size:12px;color:var(--muted);margin-top:4px}.kpi-fila{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}.kpi-grid-ficha{margin-bottom:0}.kpi-grid-ficha .kpi-val{font-size:28px}.mini-tendencia{flex-shrink:0;margin-bottom:4px;overflow:visible}.mini-tendencia-linea{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.mini-tendencia-umbral{stroke:var(--border);stroke-width:1;stroke-dasharray:2 2}.mini-tendencia-ok{fill:var(--mint);stroke:var(--mint-ink);stroke-width:1.5}.mini-tendencia-bajo{fill:var(--accent-light);stroke:var(--accent);stroke-width:1.5}.hoy-cab{margin-bottom:16px}.hoy-fecha,.hoy-eyebrow{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.hoy-saludo{font-family:var(--font);font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1.15;margin:4px 0 6px}.hoy-cab .dash-ref{margin-bottom:0}.hoy-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px;margin-bottom:14px}.hoy-clase{display:flex;flex-direction:column}.hoy-eyebrow{display:flex;align-items:center;gap:8px}.punto-vivo{width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 #5eead4b3;animation:pulso-vivo 2s ease-out infinite}@keyframes pulso-vivo{0%{box-shadow:0 0 #5eead4b3}70%{box-shadow:0 0 0 8px #5eead400}to{box-shadow:0 0 #5eead400}}.hoy-clase-hora{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:40px;font-weight:700;letter-spacing:-.03em;line-height:1.05;margin-top:10px}.hoy-clase-tit{font-family:var(--font);font-size:20px;font-weight:800;margin-top:4px;letter-spacing:-.01em}.hoy-clase-sub{font-size:13px;color:var(--muted);margin-top:4px}.hoy-clase .barra-logro{max-width:360px}.hoy-clase-acciones{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}.hoy-linea{list-style:none;display:flex;gap:6px;flex-wrap:wrap;margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.hoy-franja{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:6px 12px;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--text);font:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:border-color var(--transition),background var(--transition)}.hoy-franja:hover{border-color:var(--accent)}.hoy-franja-pasada{color:var(--muted);background:var(--card2);border-color:transparent}.hoy-franja-pasada .mono{text-decoration:line-through;text-decoration-color:#5b647880}.hoy-franja-ahora{background:var(--text);color:#fff;border-color:var(--text)}.hoy-franja-ahora:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--mint)}.hoy-pend .card-title{font-size:15px}.pend-lista{list-style:none;display:flex;flex-direction:column}.pend-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.pend-item:last-child{border-bottom:0}.pend-cifra{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:700;font-size:18px;min-width:40px;height:40px;flex-shrink:0;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:var(--card2);color:var(--text)}.pend-cifra-todo{background:var(--lv1-bg);color:var(--lv1-fg)}.pend-texto{flex:1;min-width:0}.pend-tit{font-size:13px;font-weight:600}.pend-sub{font-size:11px;color:var(--muted)}.pend-mas{font-size:12px;color:var(--muted);padding:8px 0 0}.hoy-vacio{font-size:13px;color:var(--muted);display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:6px 0}.hoy-al-dia{flex-direction:row;align-items:center;color:var(--text)}.tic-grande{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--mint-light);color:var(--mint-ink);font-weight:800;font-size:18px}.cta-card-sec{background:var(--card);border-color:var(--border);padding:14px 20px}.cta-card-sec .cta-title{font-size:15px}.cta-card-sec .cta-btn{min-height:44px;padding:10px 22px}.area-row{background:var(--card2)}.area-row-vacia{opacity:.7}.area-row-n{font-size:13px;font-weight:700;color:var(--muted);min-width:20px;text-align:right}.area-mas{margin-top:4px}.ult-act{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid var(--border)}.ult-act:last-child{border-bottom:0}.licencia-linea{display:flex;align-items:center;gap:10px;min-height:36px;padding:2px 4px 2px 12px;margin-bottom:14px;border:1px solid var(--border);border-radius:999px;background:var(--card);font-size:12px;color:var(--muted)}.licencia-linea-punto{width:7px;height:7px;border-radius:50%;background:var(--mint);flex-shrink:0}.licencia-linea-texto{flex:1;min-width:0;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.licencia-linea .btn-link{flex-shrink:0;white-space:nowrap}.licencia-linea-cerrar{flex-shrink:0;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:18px;line-height:1;cursor:pointer}.licencia-linea-cerrar:hover{background:var(--card2);color:var(--text)}.licencia-aviso{align-items:center}.licencia-aviso-ico{font-size:18px;flex-shrink:0}@media(max-width:600px){.licencia-linea{border-radius:var(--radius-sm)}}.cuaderno-cobertura{display:flex;flex-direction:column;align-items:flex-end}.cifra{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;line-height:1}.cifra-de{font-size:14px;color:var(--muted);font-weight:600}.cifra-lbl{font-size:11px;color:var(--muted);font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-top:4px}.cz-tw{max-height:calc(100dvh - 300px);min-height:280px;overflow:auto;border-color:var(--border)}.cz-tabla{border-collapse:separate;border-spacing:0}.cz-tabla td{border-bottom:1px solid #EFECE4}.cz-tabla tbody tr:hover td{background:#fbfaf7}.cz-tabla tbody tr:hover .fixed-col,.cz-tabla .cz-fila-sel .fixed-col{background:var(--accent-light)}.cz-tabla .fixed-col{box-shadow:1px 0 0 var(--border);border-right:0}.cz-tabla thead th{box-shadow:0 1px 0 var(--border);border-bottom:0}.cz-tabla tfoot td{position:sticky;bottom:0;z-index:2;background:var(--card2);box-shadow:0 -1px 0 var(--border);border-bottom:0}.cz-tabla tfoot td.fixed-col{z-index:3}.cz-pie-lbl{font-weight:700;font-size:12px}.cz-th{text-align:center;min-width:108px;max-width:160px;vertical-align:bottom;text-transform:none;letter-spacing:0}.cz-th-nombre{font-size:11px;font-weight:700;white-space:normal;line-height:1.25;color:var(--text)}.cz-th-meta{display:flex;justify-content:center;gap:8px;margin-top:4px;font-family:var(--mono);font-size:10px;font-weight:600;color:var(--muted)}.cz-th-completa{color:var(--mint-ink)}.cz-th-sel{box-shadow:inset 0 -2px 0 var(--accent),0 1px 0 var(--border)!important}.cz-th-media{min-width:84px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.cz-td{padding:3px 4px;text-align:center}.cz-td-media{padding-left:8px}.cz{position:relative;display:flex;align-items:center;justify-content:center;gap:4px;width:100%;min-height:40px;border-radius:8px;border:0;font:inherit;background:var(--lv0-bg);color:var(--lv0-fg);transition:background .25s ease,box-shadow .15s ease}.cz-n0{background:transparent;color:var(--muted);box-shadow:inset 0 0 0 1px #ece9e1}.cz-n1{background:var(--lv1-bg);color:var(--lv1-fg)}.cz-n2{background:var(--lv2-bg);color:var(--lv2-fg)}.cz-n3{background:var(--lv3-bg);color:var(--lv3-fg)}.cz-n4{background:var(--lv4-bg);color:var(--lv4-fg)}.cz-val{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:700;font-size:13px}.cz-niv{font-size:9px;font-weight:700;letter-spacing:.04em;opacity:.75}.cz-ico{font-size:10px;opacity:.7}.cz-fuerte .cz-val{font-size:14px;font-weight:800}.cz-ro{cursor:pointer}.cz-edit{cursor:text}.cz-input{width:100%;min-width:0;height:40px;padding:0 0 0 4px;border:0;background:transparent;color:inherit;text-align:center;font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:700;font-size:13px;box-shadow:none}.cz-input:focus{outline:none;box-shadow:none;border:0}.cz-input::placeholder{color:#b5b1a6}.cz-edit .cz-niv{position:absolute;right:6px;top:4px;pointer-events:none}.cz-ok{position:absolute;right:5px;bottom:3px;font-size:10px;font-weight:800;color:var(--mint-ink);animation:tic-entra .25s var(--ease-salida)}.cz-tic{box-shadow:inset 0 0 0 2px var(--mint)}.cz-sel,.cz-edit:focus-within,.cz-ro:focus-visible{box-shadow:inset 0 0 0 2px var(--accent),0 0 0 3px #7c3aed2e;outline:none}.cz-grande{width:auto;min-width:72px;min-height:52px;padding:0 12px}.cz-grande .cz-val{font-size:22px}.cz-mini{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:20px;border-radius:5px;font-size:9px;font-weight:700;margin-right:6px}.cz-panel{min-height:72px;margin-bottom:12px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--card2);display:flex;align-items:center}.cz-panel-ayuda{font-size:12px;color:var(--muted);line-height:1.6}.cz-panel-ayuda strong{color:var(--text)}kbd{display:inline-block;min-width:20px;padding:0 5px;margin:0 1px;border:1px solid var(--border);border-bottom-width:2px;border-radius:5px;background:var(--card);font-family:var(--mono);font-size:10px;line-height:18px;text-align:center;color:var(--text)}.cz-origen{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;width:100%}.cz-origen-cab{display:flex;align-items:center;gap:12px;min-width:0;flex:1 1 320px}.cz-origen-tit{font-family:var(--font);font-weight:700;font-size:13px}.cz-origen-sub{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cz-origen-crits{display:flex;flex-wrap:wrap;gap:6px}.cz-crit{display:inline-flex;align-items:baseline;gap:6px;padding:4px 10px;border-radius:999px;background:var(--card);border:1px solid var(--border);font-size:11px}.cz-crit-cod{font-family:var(--mono);color:var(--accent2);font-weight:600}.cz-crit-nota{font-family:var(--mono);font-weight:700}.cz-crit-peso{font-family:var(--mono);color:var(--muted)}.cz-origen-pie{flex:1 1 100%;font-size:12px;color:var(--muted)}.cz-origen-pie strong{color:var(--text)}.cz-leyenda{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-top:10px;font-size:11px;color:var(--muted)}.cz-leyenda-items{display:flex;flex-wrap:wrap;gap:6px 14px}.cz-leyenda-item{display:inline-flex;align-items:center}@media(max-width:900px){.cz-tw{max-height:calc(100dvh - 220px)}.cz-origen-sub{white-space:normal}.cuaderno-cobertura{align-items:flex-start}}@media(max-width:600px){.cz-th{min-width:76px}.content-area .cz-tabla td.cz-td{min-width:64px}.cz-panel-ayuda .cz-teclas{display:none}}.aula{display:flex;flex-direction:column;gap:14px;max-width:760px;margin:0 auto}.aula-progreso{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px}.aula-progreso .barra-logro{margin:0;height:8px}.aula-progreso-txt{font-size:13px;color:var(--muted);white-space:nowrap}.aula-progreso-txt strong{color:var(--text);font-size:18px}.aula-estado{min-height:20px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.aula-tarjeta{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:22px;touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none}.aula-tarjeta:active{cursor:grabbing}.aula-alumno{display:flex;align-items:center;gap:16px;margin-bottom:18px}.aula-alumno>div:nth-child(2){flex:1}.aula-pos{font-size:12px;color:var(--muted);font-weight:600}.aula-nombre{font-family:var(--font);font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.15}.aula-nombre span{font-weight:600;color:var(--muted)}.aula-nota{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:104px;min-height:84px;padding:8px 14px;border-radius:16px;transition:background .25s ease}.aula-nota.cz-n0{box-shadow:inset 0 0 0 1px var(--border)}.aula-nota-val{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:40px;font-weight:700;line-height:1;letter-spacing:-.03em}.aula-nota-niv{font-size:11px;font-weight:700;margin-top:4px}.aula-teclado{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.aula-tecla{min-height:64px;border-radius:14px;border:1px solid var(--border);background:var(--card);color:var(--text);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;cursor:pointer;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:transform .08s ease,background .2s ease,border-color .2s ease;-webkit-tap-highlight-color:transparent}@media(hover:hover){.aula-tecla:hover:not(:disabled){border-color:var(--accent)}}@media(min-width:601px)and (min-height:1000px){.aula-tecla{min-height:84px;font-size:28px}}.aula-tecla:active:not(:disabled){transform:scale(.95)}.aula-tecla:disabled{opacity:.4;cursor:not-allowed}.aula-tecla-baja{color:#3b2585}.aula-tecla-on{border-color:transparent;box-shadow:inset 0 0 0 2px var(--accent)}.aula-tecla-fn{font-size:18px;background:var(--card2)}.aula-tecla-fn.aula-tecla-on{background:var(--accent);color:#fff;box-shadow:none}.aula-tecla-medio{font-size:14px}.aula-tecla-nivel{font-family:var(--font-body);font-size:14px;min-height:60px;padding:6px}.aula-tecla-sub{font-size:12px;opacity:.8}.aula-crits{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.aula-crit{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:6px 14px;border-radius:999px;border:1px solid var(--border);background:var(--card2);font:inherit;font-size:12px;font-weight:600;color:var(--text);cursor:pointer}.aula-crit-on{background:var(--text);color:#fff;border-color:var(--text)}.aula-crit-nota{font-weight:700}.aula-rubrica{display:flex;flex-direction:column;gap:14px}.aula-rub-cod{display:flex;gap:10px;align-items:baseline;font-size:12px;margin-bottom:6px}.aula-rub-cod .mono{font-weight:700;color:var(--accent2)}.aula-rub-desc{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aula-rub-niveles{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.aula-sec{display:flex;gap:8px;flex-wrap:wrap;justify-content:space-between;margin-top:14px}.aula-sec .btn{min-height:44px}.aula-nav{display:grid;grid-template-columns:1fr 1fr;gap:10px}.aula-nav-btn{min-height:56px;font-size:15px;justify-content:center}.aula-tira{list-style:none;display:flex;gap:6px;overflow-x:auto;padding:4px 2px 6px;scrollbar-width:thin}.aula-tira>li{flex-shrink:0}.content-area .aula-tira-btn{min-width:44px}.aula-tira-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--muted);font:inherit;font-size:12px;font-weight:700;cursor:pointer;flex-shrink:0}.aula-tira-ok{background:var(--mint-light);color:var(--mint-ink);border-color:transparent}.aula-tira-on{box-shadow:0 0 0 2px var(--accent);color:var(--text)}.aula-ayuda{font-size:11px;color:var(--muted);text-align:center}@media(max-width:600px){.aula{gap:10px}.aula-tarjeta{padding:14px;border-radius:16px}.aula-alumno{flex-wrap:wrap;gap:12px;margin-bottom:12px}.aula-nombre{font-size:21px}.aula-nota{min-width:0;flex:1 1 100%;flex-direction:row;gap:10px;min-height:56px}.aula-nota-val{font-size:32px}.aula-nota-niv{margin-top:0}.aula-teclado{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.aula-tecla{min-height:56px;font-size:22px}.aula-progreso{grid-template-columns:auto minmax(0,1fr)}.aula-estado{grid-column:1 / -1;text-align:left;max-width:none}.aula-sec{justify-content:stretch}.aula-sec .btn{flex:1 1 auto}}.ficha-cab-top{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:12px}.ficha-cab-id{flex:1 1 260px;min-width:0}.ficha-nombre{font-family:var(--font);font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1.15;margin:2px 0 8px}.ficha-nombre span{font-weight:600;color:var(--muted)}.ficha-chips{display:flex;flex-wrap:wrap;gap:6px}.chip-dato{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:var(--card2);color:var(--text);font-size:11px;font-weight:600}.chip-logro{background:var(--mint-light);color:var(--mint-ink)}.ficha-cab-acciones{align-self:flex-start;justify-content:flex-end;max-width:620px}.content-area .ficha-cab-acciones select{width:auto;min-width:0;max-width:240px}.ficha-graficos{margin-bottom:14px}.ficha-graficos>.card{margin-bottom:0}.radar svg{max-width:100%;height:auto}.radar-animado .radar-alumno,.radar-animado .radar-grupo{transform-box:view-box;transform-origin:50% 50%;animation:radar-crece .7s var(--ease-salida) both}.radar-animado .radar-grupo{animation-duration:.5s;animation-name:radar-aparece}@keyframes radar-crece{0%{transform:scale(.05);opacity:0}to{transform:scale(1);opacity:1}}@keyframes radar-aparece{0%{opacity:0}to{opacity:1}}.radar-leyenda{display:flex;justify-content:center;gap:16px;font-size:11px;color:var(--muted);margin-top:4px}.radar-leyenda>span{display:inline-flex;align-items:center;gap:6px}.radar-muestra{width:14px;height:10px;border-radius:3px;display:inline-block}.radar-muestra-alumno{background:#7c3aed40;box-shadow:inset 0 0 0 2px #7c3aed}.radar-muestra-grupo{height:0;border-radius:0;border-top:2px dashed #5B6478}.radar-valores{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;margin-top:12px}.radar-valores li{display:flex;justify-content:space-between;gap:6px;padding:5px 8px;border-radius:6px;background:var(--card2);font-size:11px}.evo-linea{stroke-dasharray:1;stroke-dashoffset:1;animation:trazo .8s var(--ease-salida) .1s forwards}.evo-punto{animation:radar-aparece .4s ease-out .5s both}@keyframes trazo{to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.evo-linea{stroke-dashoffset:0;animation:none}.evo-punto,.radar-animado .radar-alumno,.radar-animado .radar-grupo,.punto-vivo{animation:none}}.evo-resumen{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.evo-trim{display:flex;align-items:baseline;gap:8px;padding:6px 12px;border-radius:8px;background:var(--card2)}.evo-trim-val{font-weight:700;font-size:15px}@media(max-width:1100px){.hoy-grid{grid-template-columns:1fr}}@media(max-width:900px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{padding:12px}.kpi-val{font-size:26px}.hoy-saludo,.ficha-nombre{font-size:23px}.hoy-clase-hora{font-size:32px}.mini-tendencia{display:none}}@media print{.licencia-linea,.segmento{display:none!important}.radar-animado .radar-alumno,.radar-animado .radar-grupo,.evo-linea,.evo-punto{animation:none!important;stroke-dashoffset:0;opacity:1;transform:none}}
