    :root {
      --amarillo: #F2D014; --rojo: #E50013; --azul: #0F46A0; --blanco: #FFFFFF; --negro: #000000;
      --gris-50: #f8f9fa; --gris-100: #e9ecef; --gris-200: #dee2e6; --gris-500: #6c757d; --gris-700: #343a40; --gris-800: #212529;
      --sombra: 0 12px 32px rgba(0,0,0,0.08); --sombra-hover: 0 18px 48px rgba(0,0,0,0.15);
      --radio: 24px; --radio-sm: 14px; --transicion: 0.3s cubic-bezier(0.4,0,0.2,1); --naranja: #f39c12;
      --morado: #6c5ce7; --morado-hover: #5a4bd1;
    }
    * { margin:0; padding:0; box-sizing:border-box; }
    html { color-scheme:light; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
    input, select, textarea { color:#212529; opacity:1; }
    select, select option { background-color:#fff; color:#212529; }
    select { -webkit-text-fill-color:#212529; }
    body { font-family:'Inter',sans-serif; background:var(--blanco); color:var(--gris-800); min-height:100vh; display:flex; align-items:center; justify-content:center; padding:16px; overflow-x:hidden; position:relative; }
    #animated-bg { position:fixed; top:0; left:0; width:100%; height:100%; z-index:0; pointer-events:none; }
    #app { position:relative; z-index:1; width:100%; max-width:1500px; min-height:94vh; background:rgba(255,255,255,0.96); backdrop-filter:blur(24px); border-radius:var(--radio); box-shadow:0 25px 70px rgba(0,0,0,0.18); overflow:hidden; display:flex; flex-direction:column; }
    .topbar { display:flex; align-items:center; justify-content:space-between; padding:14px 28px; background:var(--blanco); border-bottom:2px solid var(--gris-100); flex-wrap:wrap; gap:12px; z-index:10; }
    .topbar .logo { display:flex; align-items:center; gap:12px; font-weight:800; font-size:1.7rem; color:var(--azul); }
    .topbar .logo span { color:var(--rojo); } .topbar .logo i { color:var(--amarillo); font-size:2.2rem; }
    .nav-buttons { display:flex; gap:8px; flex-wrap:wrap; }
    .nav-buttons button { background:transparent; border:none; padding:10px 22px; border-radius:40px; font-weight:600; font-size:0.9rem; cursor:pointer; transition:var(--transicion); color:var(--gris-700); display:flex; align-items:center; gap:8px; }
    .nav-buttons button:hover { background:var(--gris-100); } .nav-buttons button.activo { background:var(--azul); color:var(--blanco); }
    .user-badge { display:flex; align-items:center; gap:10px; background:var(--gris-100); padding:8px 20px; border-radius:40px; font-weight:600; font-size:0.9rem; }
    .user-badge i { color:var(--azul); font-size:1.3rem; }
    .view { display:none; flex:1; padding:24px 28px; animation:fadeUp 0.45s ease; overflow-y:auto; max-height:calc(94vh - 75px); }
    .view.visible { display:block; }
    @keyframes fadeUp { from { opacity:0; transform:translateY(25px); } to { opacity:1; transform:translateY(0); } }
    .landing-hero { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:72vh; text-align:center; padding:20px; }
    .landing-hero .badge { background:var(--amarillo); color:var(--negro); font-weight:700; padding:8px 28px; border-radius:40px; font-size:0.9rem; letter-spacing:1px; text-transform:uppercase; margin-bottom:20px; }
    .landing-hero h1 { font-size:clamp(2.5rem,7vw,4rem); font-weight:800; letter-spacing:-0.03em; line-height:1.1; max-width:850px; margin-bottom:16px; }
    .landing-hero h1 .azul { color:var(--azul); } .landing-hero h1 .rojo { color:var(--rojo); }
    .landing-hero .slogan { font-size:1.4rem; color:var(--gris-500); margin-bottom:42px; font-style:italic; font-weight:500; }
    .card-grid { display:flex; gap:28px; flex-wrap:wrap; justify-content:center; }
    .card-grid .card { background:var(--blanco); border:2px solid var(--gris-200); border-radius:var(--radio); padding:38px 32px; width:220px; cursor:pointer; transition:var(--transicion); text-align:center; box-shadow:0 4px 16px rgba(0,0,0,0.04); }
    .card-grid .card:hover { transform:translateY(-8px); box-shadow:var(--sombra-hover); border-color:var(--azul); }
    .card-grid .card i { font-size:3.2rem; margin-bottom:16px; display:block; }
    .icon-estudiante { color:var(--azul); } .icon-docente { color:var(--rojo); } .icon-director { color:var(--amarillo); }
    .card-grid .card h3 { font-size:1.2rem; font-weight:700; } .card-grid .card p { font-size:0.9rem; color:var(--gris-500); margin-top:6px; }
    .form-box { max-width:460px; margin:28px auto; background:var(--blanco); border-radius:var(--radio); padding:36px 32px; border:2px solid var(--gris-100); box-shadow:var(--sombra); }
    .form-box h2 { font-size:1.6rem; font-weight:700; margin-bottom:6px; display:flex; align-items:center; gap:10px; }
    .form-box .subtitulo { color:var(--gris-500); margin-bottom:24px; font-size:0.95rem; }
    .form-box label { font-weight:600; font-size:0.9rem; display:block; margin-bottom:6px; color:var(--gris-700); }
    .form-box input, .form-box select, .form-box textarea { width:100%; padding:12px 16px; border:2px solid var(--gris-200); border-radius:var(--radio-sm); font-size:1rem; font-family:inherit; transition:var(--transicion); margin-bottom:14px; background:var(--blanco); }
    .form-box input:focus, .form-box select:focus, .form-box textarea:focus { outline:none; border-color:var(--azul); box-shadow:0 0 0 4px rgba(15,70,160,0.1); }
    .btn { padding:12px 28px; border:none; border-radius:40px; font-weight:700; font-size:0.95rem; cursor:pointer; transition:var(--transicion); display:inline-flex; align-items:center; gap:10px; justify-content:center; }
    .btn-primario { background:var(--azul); color:var(--blanco); } .btn-primario:hover { background:#0a3a7a; transform:scale(1.02); }
    .btn-rojo { background:var(--rojo); color:var(--blanco); } .btn-rojo:hover { background:#b8000f; }
    .btn-amarillo { background:var(--amarillo); color:var(--negro); } .btn-amarillo:hover { background:#d9b80f; }
    .btn-outline { background:transparent; border:2px solid var(--azul); color:var(--azul); } .btn-outline:hover { background:var(--azul); color:var(--blanco); }
    .btn-sm { padding:7px 18px; font-size:0.8rem; }
    .btn-volver { display:inline-flex; align-items:center; gap:8px; background:transparent; border:none; color:var(--azul); font-weight:600; cursor:pointer; font-size:0.95rem; margin-bottom:16px; transition:var(--transicion); }
    .btn-volver:hover { color:#0a3a7a; transform:translateX(-4px); }
    .student-login-card .student-login-back { width:100%; margin:12px 0 0; padding:10px 14px; justify-content:center; border-top:1px solid var(--gris-100); border-radius:0; }
    .dash-header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-bottom:20px; }
    .dash-header h2 { font-size:1.8rem; font-weight:700; } .dash-header h2 i { margin-right:10px; }
    .badge-pill { background:var(--gris-100); padding:8px 20px; border-radius:40px; font-weight:600; font-size:0.9rem; }
    .areas-grid { display:flex; flex-wrap:wrap; justify-content:center; gap:32px; padding:28px 10px; }
    .area-card { background:var(--blanco); border-radius:28px; padding:36px 28px; text-align:center; cursor:pointer; transition:var(--transicion); width:260px; position:relative; overflow:hidden; box-shadow:0 8px 28px rgba(0,0,0,0.06); border:2px solid transparent; }
    .area-card:hover { transform:translateY(-10px); box-shadow:0 22px 50px rgba(0,0,0,0.14); border-color:var(--azul); }
    .area-card .icono-area { font-size:4.2rem; margin-bottom:18px; display:block; }
    .area-card.matematica .icono-area { color:var(--azul); } .area-card.matematica { background-color:#e8f0fe; }
    .area-card.comunicacion .icono-area { color:var(--rojo); } .area-card.comunicacion { background-color:#fde8ea; }
    .area-card.cienciassociales .icono-area { color:var(--amarillo); } .area-card.cienciassociales { background-color:#fff9e6; }
    .area-card.ingles .icono-area { color:#28a745; } .area-card.ingles { background-color:#e8f5e9; }
    .area-card.grado-primero { background:linear-gradient(145deg,#e8f0fe,#fff); border-color:#b9d0f5; } .area-card.grado-primero .icono-area { color:#0F46A0; }
    .area-card.grado-segundo { background:linear-gradient(145deg,#e8f8ef,#fff); border-color:#b9e5cb; } .area-card.grado-segundo .icono-area { color:#218c4b; }
    .area-card.grado-tercero { background:linear-gradient(145deg,#fff4dc,#fff); border-color:#f5d593; } .area-card.grado-tercero .icono-area { color:#e58b00; }
    .area-card.grado-cuarto { background:linear-gradient(145deg,#f3eafe,#fff); border-color:#d5bdf2; } .area-card.grado-cuarto .icono-area { color:#7d3fc0; }
    .area-card.grado-quinto { background:linear-gradient(145deg,#fde8ea,#fff); border-color:#f3b8bd; } .area-card.grado-quinto .icono-area { color:#E50013; }
    .area-card.unidad-color-1 { background:linear-gradient(145deg,#e8f0fe,#fff); } .area-card.unidad-color-1 .icono-area { color:#0F46A0; }
    .area-card.unidad-color-2 { background:linear-gradient(145deg,#e8f8ef,#fff); } .area-card.unidad-color-2 .icono-area { color:#218c4b; }
    .area-card.unidad-color-3 { background:linear-gradient(145deg,#fff4dc,#fff); } .area-card.unidad-color-3 .icono-area { color:#e58b00; }
    .area-card.unidad-color-4 { background:linear-gradient(145deg,#f3eafe,#fff); } .area-card.unidad-color-4 .icono-area { color:#7d3fc0; }
    .area-card.unidad-color-5 { background:linear-gradient(145deg,#fde8ea,#fff); } .area-card.unidad-color-5 .icono-area { color:#E50013; }
    #teacherUnidadesGrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); justify-content:stretch; gap:18px; padding:18px 0; }
    .unidad-docente-card { width:auto; min-height:96px; padding:18px; border-radius:20px; text-align:left; cursor:default; display:grid; grid-template-columns:64px minmax(0,1fr); gap:16px; align-items:center; overflow:visible; }
    .unidad-docente-card:hover { transform:translateY(-4px); }
    .unidad-docente-card .unidad-icono-profesional { width:58px; height:58px; margin:0; border-radius:17px; display:grid; place-items:center; color:#fff !important; font-size:1.65rem; background:linear-gradient(145deg,currentColor,#183f78); box-shadow:0 10px 22px rgba(31,59,94,.2); }
    .unidad-docente-card.unidad-color-1 .unidad-icono-profesional{background:linear-gradient(145deg,#3976c5,#0f46a0)}
    .unidad-docente-card.unidad-color-2 .unidad-icono-profesional{background:linear-gradient(145deg,#42a96e,#18713e)}
    .unidad-docente-card.unidad-color-3 .unidad-icono-profesional{background:linear-gradient(145deg,#f2ae2e,#c87400)}
    .unidad-docente-card.unidad-color-4 .unidad-icono-profesional{background:linear-gradient(145deg,#9b64d4,#65309d)}
    .unidad-docente-card.unidad-color-5 .unidad-icono-profesional{background:linear-gradient(145deg,#ed5965,#b91423)}
    .unidad-card-info { min-width:0; padding-right:106px; }
    .unidad-card-kicker { display:block; margin-bottom:5px; color:var(--gris-500); font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
    .unidad-docente-card h3 { margin:0; font-size:1.03rem; line-height:1.3; color:#263b59; }
    .unidad-card-acciones { position:absolute; top:14px; right:14px; display:flex; gap:5px; }
    .unidad-card-acciones button { width:30px; height:30px; min-width:30px; padding:0; border-radius:9px; display:grid; place-items:center; border:1px solid rgba(15,70,160,.14); background:rgba(255,255,255,.84); color:var(--azul); cursor:pointer; }
    .unidad-card-acciones button:hover { background:var(--azul); color:#fff; }
    .unidad-card-acciones button.accion-eliminar:hover { background:var(--rojo); border-color:var(--rojo); }
    .unidad-docente-card .count-badge { cursor:pointer; margin-top:10px; color:var(--azul); transition:var(--transicion); }
    .unidad-docente-card .count-badge:hover { color:#fff; background:var(--azul); border-color:var(--azul); }
    .unidad-estudiante-card { cursor:pointer; }
    .unidad-estudiante-card .unidad-card-info { padding-right:0; }
    .unidad-estudiante-card:focus-visible { outline:3px solid rgba(15,70,160,.28); outline-offset:3px; }
    .retro-estudiante { margin-top:14px; padding:15px 17px; border-radius:14px; background:linear-gradient(145deg,#f4f8ff,#fff); border:1px solid #d8e5f7; border-left:5px solid var(--azul); }
    .retro-estudiante strong { display:block; color:var(--azul); font-size:.86rem; }
    .retro-estudiante p { margin:7px 0 0; color:#34465f; font-size:.91rem; line-height:1.55; }
    .area-card h3 { font-size:1.4rem; font-weight:700; } .area-card p { color:var(--gris-500); font-size:0.95rem; margin-top:4px; }
    .area-card .count-badge { display:inline-block; background:rgba(255,255,255,0.8); backdrop-filter:blur(4px); padding:6px 20px; border-radius:40px; font-size:0.85rem; font-weight:600; margin-top:14px; border:1px solid var(--gris-200); }
    .split-view { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:16px; }
    @media (max-width:900px){ .split-view { grid-template-columns:1fr; } }
    .split-col { background:var(--gris-50); border-radius:var(--radio); padding:20px 22px; border:2px solid var(--gris-100); }
    .split-col h3 { font-size:1.1rem; font-weight:700; margin-bottom:14px; display:flex; align-items:center; gap:8px; }
    .resource-list { display:flex; flex-direction:column; gap:12px; max-height:480px; overflow-y:auto; }
    .resource-item { display:flex; align-items:flex-start; gap:12px; background:var(--blanco); border-radius:var(--radio-sm); padding:14px 16px; border-left:5px solid var(--azul); cursor:pointer; transition:var(--transicion); }
    .resource-item:hover { box-shadow:var(--sombra); background:#fdfdfd; }
    .resource-item .tipo-icon { font-size:2rem; min-width:44px; text-align:center; color: var(--azul); }
    .tipo-icon.tipo-video, .icono-actividad.tipo-video { color:#e53935; }
    .tipo-icon.tipo-documento, .icono-actividad.tipo-documento { color:#1976d2; }
    .tipo-icon.tipo-slide, .icono-actividad.tipo-slide { color:#e76f00; }
    .tipo-icon.tipo-libro, .icono-actividad.tipo-libro { color:#7b1fa2; }
    .tipo-icon.tipo-html, .icono-actividad.tipo-html { color:#00897b; }
    .tipo-icon.tipo-actividad, .icono-actividad.tipo-actividad { color:#d81b60; }
    .tipo-icon.tipo-imagen, .icono-actividad.tipo-imagen { color:#43a047; }
    .tipo-icon.tipo-encuesta, .icono-actividad.tipo-encuesta { color:#5e35b1; }
    .tipo-icon.tipo-sesion, .icono-actividad.tipo-sesion { color:#3949ab; }
    .tipo-icon.tipo-archivo, .tipo-icon.tipo-otro, .icono-actividad.tipo-archivo, .icono-actividad.tipo-otro { color:#546e7a; }
    .resource-item .info { flex:1; } .resource-item .info h4 { font-weight:600; font-size:0.95rem; } .resource-item .info .meta { font-size:0.8rem; color:var(--gris-500); }
    .resource-item .acciones { display:flex; gap:6px; flex-wrap:wrap; }
    .resource-item .acciones button { padding:6px 12px; border-radius:20px; font-size:0.75rem; font-weight:600; cursor:pointer; border:none; display:inline-flex; align-items:center; gap:4px; }
    .btn-descargar { background:var(--azul); color:var(--blanco); } .btn-previsualizar { background:var(--amarillo); color:var(--negro); }
    .btn-editar { background:#ffc107; color:var(--negro); } .btn-editar:hover { background:#e0a800; }
    .panel-docente-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:16px; }
    @media (max-width:900px){ .panel-docente-grid { grid-template-columns:1fr; } }
    .panel-columna { background:var(--blanco); border-radius:var(--radio); padding:24px; border:2px solid var(--gris-100); box-shadow:0 2px 16px rgba(0,0,0,0.04); }
    .panel-columna h3 { font-size:1.2rem; font-weight:700; margin-bottom:16px; display:flex; align-items:center; gap:10px; }
    .panel-columna h3 i { color:var(--azul); } .panel-columna.actividades h3 i { color:var(--rojo); }
    .upload-section { margin-bottom:16px; padding-bottom:16px; border-bottom:1px solid var(--gris-100); }
    .upload-section label { font-weight:600; font-size:0.85rem; display:block; margin-bottom:4px; color:var(--gris-700); }
    .upload-section input, .upload-section select, .upload-section textarea { width:100%; padding:10px 14px; border:2px solid var(--gris-200); border-radius:10px; font-size:0.9rem; font-family:inherit; margin-bottom:10px; transition:var(--transicion); }
    .upload-section textarea { min-height:70px; resize:vertical; }
    .preview-panel { background:var(--blanco); border-radius:var(--radio); padding:20px; border:2px solid var(--gris-100); min-height:320px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:var(--gris-500); transition: all 0.3s ease; }
    .clase-item { background:var(--blanco); border-radius:var(--radio-sm); padding:16px 20px; margin-bottom:12px; border-left:6px solid var(--azul); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; transition:var(--transicion); cursor:pointer; }
    .clase-item:hover { box-shadow:var(--sombra); }
    .clase-item .clase-info { flex:1; } .clase-item .clase-info h4 { font-weight:600; } .clase-item .clase-info .clase-meta { font-size:0.8rem; color:var(--gris-500); }
    .modal-overlay { position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.7); z-index:100; display:flex; align-items:center; justify-content:center; }
    .modal-content { background:var(--blanco); border-radius:var(--radio); padding:28px; max-width:900px; width:94%; max-height:85vh; overflow-y:auto; position:relative; }
    .modal-close { position:absolute; top:12px; right:18px; font-size:1.6rem; cursor:pointer; color:var(--rojo); z-index:9999; }
    .admin-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px; margin-top:16px; }
    .stat-card { background:var(--blanco); border-radius:var(--radio); padding:28px; border:2px solid var(--gris-100); text-align:center; }
    .stat-card .numero { font-size:2.8rem; font-weight:800; color:var(--azul); } .stat-card .etiqueta { color:var(--gris-500); font-size:0.95rem; }
    .ai-config-card { background:linear-gradient(135deg,#f8fbff 0%,#fff 100%); border:2px solid #dbe7f7; border-radius:var(--radio); padding:22px; margin-bottom:24px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; align-items:end; }
    .ai-config-card h3 { margin:0 0 6px; color:var(--azul); display:flex; align-items:center; gap:9px; }
    .ai-config-card p { color:var(--gris-500); font-size:0.86rem; margin:0 0 12px; line-height:1.5; }
    .ai-config-card input { width:100%; padding:12px 14px; border:2px solid var(--gris-200); border-radius:10px; font:inherit; }
    .ai-config-card input:focus { outline:none; border-color:var(--azul); box-shadow:0 0 0 3px rgba(15,70,160,.1); }
    .director-shell{display:grid;gap:20px}.director-hero{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:18px;align-items:center;padding:22px 24px;border-radius:22px;background:radial-gradient(circle at 12% 25%,rgba(82,177,255,.23),transparent 30%),radial-gradient(circle at 78% 105%,rgba(45,201,171,.2),transparent 38%),linear-gradient(135deg,#073475,#155db9);background-size:130% 130%,140% 140%,100% 100%;color:#fff;box-shadow:0 14px 30px rgba(15,70,160,.2);animation:directorFondo 5.5s cubic-bezier(.4,0,.2,1) infinite alternate}
    .director-hero:before{content:"";position:absolute;z-index:-1;inset:-75%;background:conic-gradient(from 90deg,transparent 0 25%,rgba(107,202,255,.22) 34%,transparent 44% 66%,rgba(72,216,184,.18) 76%,transparent 86%);filter:blur(24px);animation:directorAurora 7.5s linear infinite}.director-hero:after{content:"";position:absolute;z-index:-1;width:270px;height:270px;border-radius:50%;right:-105px;top:-150px;border:1px solid rgba(255,255,255,.17);background:radial-gradient(circle at 38% 40%,rgba(255,255,255,.2),rgba(255,255,255,.045) 55%,transparent 70%);box-shadow:-150px 115px 0 -92px rgba(122,202,255,.15);animation:directorOrbita 4.2s cubic-bezier(.4,0,.2,1) infinite alternate}.director-hero>div{position:relative;z-index:1}.director-insignia{width:72px;height:82px;object-fit:contain;filter:drop-shadow(0 7px 7px rgba(2,21,52,.36));z-index:1;animation:directorInsignia 2.8s cubic-bezier(.4,0,.2,1) infinite}.director-hero h2{margin:0;font-size:1.48rem}.director-hero p{margin:5px 0 0;opacity:.85;font-size:.86rem}.director-hero-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;z-index:1}.director-hero-actions .btn{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.35);backdrop-filter:blur(5px)}.director-hero-actions .btn:hover{background:#fff;color:var(--azul)}
    @keyframes directorFondo{0%{background-position:0% 20%,100% 70%,0 0}100%{background-position:22% 5%,72% 100%,0 0}}@keyframes directorAurora{to{transform:rotate(360deg)}}@keyframes directorOrbita{0%{transform:translate3d(0,0,0) scale(.94);opacity:.75}100%{transform:translate3d(-24px,20px,0) scale(1.08);opacity:1}}@keyframes directorInsignia{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
    @media(prefers-reduced-motion:reduce){.director-hero,.director-hero:before,.director-hero:after,.director-insignia{animation:none!important}}
    .director-filtros{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr)) auto;gap:12px;align-items:end;padding:18px;border:1px solid #dce6f2;border-radius:18px;background:#fff;box-shadow:0 8px 20px rgba(35,54,82,.07)}.director-filtros label{display:grid;gap:5px;font-size:.72rem;font-weight:800;color:#53657d;text-transform:uppercase;letter-spacing:.045em}.director-filtros select{width:100%;padding:10px 11px;border:1px solid #cdd9e8;border-radius:10px;background:#f9fbfd;color:#263b59;font:inherit;text-transform:none;letter-spacing:normal}.director-contexto{display:flex;gap:8px;flex-wrap:wrap;align-items:center;color:#627087;font-size:.78rem}
    .director-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.director-kpi{--kpi:#0f46a0;display:grid;grid-template-columns:42px 1fr;gap:12px;position:relative;padding:18px;border:1px solid #dce6f2;border-radius:17px;background:#fff;box-shadow:0 7px 18px rgba(27,51,84,.07);overflow:hidden}.director-kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--kpi)}.director-kpi-icon{padding-top:2px}.director-kpi i{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:color-mix(in srgb,var(--kpi) 11%,white);color:var(--kpi)}.director-kpi strong{display:block;font-size:1.55rem;color:#183858;margin-top:7px}.director-kpi span{display:block;font-size:.76rem;font-weight:800;color:#40536c;line-height:1.25}.director-kpi small{display:block;margin-top:4px;color:#728097;line-height:1.35}.director-kpi-azul{--kpi:#1556a8}.director-kpi-verde{--kpi:#16835a}.director-kpi-turquesa{--kpi:#087f8c}.director-kpi-ambar{--kpi:#bf7b00}.director-kpi-morado{--kpi:#6f4bb8}.director-kpi-rojo{--kpi:#b64052}.director-kpi-gris{--kpi:#64748b}
    .director-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:18px}.director-panel{padding:20px;border:1px solid #dce6f2;border-radius:19px;background:#fff;box-shadow:0 8px 22px rgba(31,55,87,.07)}.director-panel h3{margin:0 0 5px;color:#143f80}.director-panel-sub{margin:0 0 16px;color:#718096;font-size:.8rem}.director-trend-row{display:grid;grid-template-columns:88px 1fr 45px;gap:10px;align-items:center;margin:12px 0;font-size:.78rem}.director-trend-track{height:11px;background:#edf2f7;border-radius:99px;overflow:hidden}.director-trend-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#2765b9,#0f46a0);transition:width .65s ease}.director-table{width:100%;border-collapse:collapse;font-size:.78rem}.director-table th{padding:9px;background:#edf4fd;color:#143f80;text-align:left}.director-table td{padding:9px;border-bottom:1px solid #e8eef5}.director-table td:not(:first-child),.director-table th:not(:first-child){text-align:right}
    .director-ai{padding:0;border-color:#cbdcf2;background:linear-gradient(145deg,#f7faff,#fff);overflow:hidden}.director-ai>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:18px 20px}.director-ai>summary::-webkit-details-marker{display:none}.director-ai>summary:after{content:"Mostrar análisis";flex:0 0 auto;padding:7px 11px;border-radius:99px;background:#0f46a0;color:#fff;font-size:.72rem;font-weight:800}.director-ai[open]>summary:after{content:"Ocultar análisis"}.director-ai[open]>summary{border-bottom:1px solid #dce6f2}.director-ai-content{padding:18px 20px}.director-ai-header{display:flex;justify-content:space-between;gap:12px;align-items:center}.director-ai-header h3{margin-bottom:4px}.director-ai-label{display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border-radius:99px;background:#e8f0fc;color:#0f46a0;font-size:.7rem;font-weight:800}.director-ai-summary{padding:16px 18px;border-left:4px solid #0f46a0;background:#fff;border-radius:0 12px 12px 0;line-height:1.55;color:#34465f}.director-ai-summary span{display:block;color:#0f46a0;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.director-ai-summary p{margin:5px 0 0}.director-ai-block{display:inline-block;vertical-align:top;width:calc(50% - 8px);box-sizing:border-box;margin:14px 12px 0 0;padding:15px;border-radius:13px;background:#fff;border:1px solid #e0e8f2}.director-ai-block:nth-child(2n+1){margin-right:0}.director-ai-block.director-ai-wide{width:100%;margin-right:0}.director-ai-block h4{display:flex;gap:8px;align-items:center;margin:0 0 8px;color:#173f77}.director-ai-block p,.director-ai-block li{font-size:.8rem;line-height:1.55;color:#45566d}.director-ai-block p{margin:0}.director-ai-block ul{margin:0;padding-left:18px}.director-evolution-row{display:grid;grid-template-columns:minmax(120px,1fr) 2fr 52px;gap:11px;align-items:center;margin:13px 0}.director-evolution-row div:first-child{display:grid}.director-evolution-row small{color:#7b8798;font-size:.67rem}.director-evolution-track{height:12px;border-radius:99px;background:#e8eef6;overflow:hidden}.director-evolution-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#25a67a,#1556a8);transition:width .65s ease}.director-evolution-row b{text-align:right;color:#194378;font-size:.8rem}.director-table-wrap{overflow:auto}.director-table td small{display:block;color:#7b8798;font-size:.66rem;margin-top:2px}.director-quality-head{display:flex;align-items:center;gap:9px;color:#856300}.director-quality-ok{color:#17734a}.director-shell>#directorCalidad{padding:14px 16px;border:1px solid #f0d690;border-radius:14px;background:#fff9e9;color:#68562e;font-size:.78rem}.director-shell>#directorCalidad p{margin:5px 0}.director-shell>#directorCalidad ul{margin:6px 0 0;padding-left:18px}.director-loading,.director-error{grid-column:1/-1;display:flex;gap:9px;align-items:center;justify-content:center;min-height:90px;padding:18px;border-radius:14px;background:#f5f8fc;color:#52657c}.director-error{flex-direction:column;background:#fff3f3;color:#9c2f3e}.director-config summary{cursor:pointer;font-weight:800;color:#40536c;padding:12px}.director-config .ai-config-card{margin:8px 0 0}
    @media(max-width:900px){.director-filtros{grid-template-columns:repeat(2,minmax(0,1fr))}.director-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.director-grid{grid-template-columns:1fr}.director-ai-block{width:100%;margin-right:0}.director-hero{grid-template-columns:62px 1fr}.director-hero-actions{grid-column:1/-1;justify-content:flex-start}.director-insignia{width:58px;height:68px}}
    @media(max-width:520px){.director-filtros,.director-kpis{grid-template-columns:1fr}.director-hero{padding:18px}.director-kpi strong{font-size:1.45rem}}
    .ai-config-status { display:inline-flex; align-items:center; gap:7px; font-size:.84rem; font-weight:700; padding:7px 11px; border-radius:999px; background:var(--gris-100); color:var(--gris-700); margin-bottom:10px; }
    .ai-config-status.configured { background:#e7f7ed; color:#18743a; }
    .admin-data-table { width:100%; border-collapse:collapse; font-size:0.9rem; }
    .admin-data-table th, .admin-data-table td { padding:12px 15px; text-align:left; border-bottom:1px solid var(--gris-200); }
    .admin-data-table th { background:var(--gris-50); font-weight:700; color:var(--gris-700); }
    .toast { position:fixed; bottom:30px; right:30px; display:flex; align-items:flex-start; gap:10px; max-width:min(460px,calc(100vw - 32px)); box-sizing:border-box; background:#f3f8ff; color:#23415f; padding:14px 18px; border:1px solid #bcd3eb; border-left:5px solid #2874b9; border-radius:12px; font-weight:650; line-height:1.42; box-shadow:0 14px 36px rgba(27,60,94,.18); transform:translateY(100px); opacity:0; transition:all 0.32s ease; z-index:9999; }
    .toast i{margin-top:2px;color:#2874b9;font-size:1.05rem}.toast.success{background:#edf9f3;color:#175d46;border-color:#addbc8;border-left-color:#168665}.toast.success i{color:#168665}.toast.error{background:#fff3f2;color:#8b2f38;border-color:#efbfc1;border-left-color:#c44752}.toast.error i{color:#c44752}.toast.warning{background:#fff8e8;color:#775615;border-color:#ecd59d;border-left-color:#c58a16}.toast.warning i{color:#c58a16}
    .toast.show { transform:translateY(0); opacity:1; }
    @media(max-width:600px){.toast{left:16px;right:16px;bottom:18px;max-width:none;padding:13px 15px}}
    
    @media (max-width:600px) { .topbar { flex-direction:column; align-items:stretch; padding:12px; } .view { padding:14px; } .landing-hero h1 { font-size:2rem; } .card-grid .card { width:100%; max-width:220px; } .area-card { width:100%; max-width:280px; } .form-box { padding:24px 18px; } .panel-docente-grid { grid-template-columns:1fr; gap:16px; } .split-view { grid-template-columns:1fr; gap:16px; } .admin-data-table { font-size:0.75rem; } .admin-data-table th, .admin-data-table td { padding:8px 10px; } .modal-content { padding:20px; width:98%; } .clase-item { flex-direction:column; align-items:flex-start; } .clase-item .clase-acciones { width:100%;display:flex;flex-wrap:wrap;gap:6px; } .ai-config-card { grid-template-columns:1fr; } }
    ::-webkit-scrollbar { width:8px; height:8px; } ::-webkit-scrollbar-track { background:#f1f1f1; border-radius:10px; } ::-webkit-scrollbar-thumb { background:var(--azul); border-radius:10px; } ::-webkit-scrollbar-thumb:hover { background:#0a3a7a; }

    .modo-selector { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
    .modo-selector label { display:flex; align-items:center; gap:6px; font-weight:500; cursor:pointer; }
    .modo-selector input[type="radio"] { accent-color:var(--azul); width:18px; height:18px; }
    .pregunta-item { background:var(--gris-50); border:1px solid var(--gris-200); border-radius:10px; padding:12px; margin-bottom:10px; }
    .pregunta-item .campo { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
    .pregunta-item .opciones { margin-top:8px; display:grid; grid-template-columns:repeat(2,1fr); gap:6px; }
    .pregunta-item .opciones input { width:100%; padding:6px 10px; border:1px solid var(--gris-200); border-radius:8px; }
    .mensaje-aliento { background: linear-gradient(135deg, #e6f0ff, #f0f8ff); border-radius: 16px; padding: 20px 24px; margin-bottom: 20px; border-left: 8px solid var(--amarillo); box-shadow: 0 4px 12px rgba(0,0,0,0.05); position: relative; display: flex; align-items: flex-start; gap: 16px; font-style: italic; color: var(--gris-700); }
    .mensaje-aliento i.fa-quote-left { font-size: 2.2rem; color: var(--amarillo); opacity: 0.5; flex-shrink: 0; margin-top: -4px; }
    .etiqueta-nuevo { background: var(--rojo); color: white; font-size: 0.65rem; font-weight: 700; padding: 3px 12px; border-radius: 30px; margin-left: 8px; text-transform: uppercase; display: inline-block; animation: pulse-badge 1.5s ease-in-out infinite; }
    @keyframes pulse-badge { 0% { transform: scale(1); box-shadow: 0 2px 8px rgba(229,0,19,0.3); } 50% { transform: scale(1.08); box-shadow: 0 4px 16px rgba(229,0,19,0.5); } 100% { transform: scale(1); box-shadow: 0 2px 8px rgba(229,0,19,0.3); } }

    .clase-estado { display: inline-flex; align-items:center; gap:6px; font-weight:600; font-size:0.8rem; padding:4px 12px; border-radius:30px; background:var(--gris-100); color:var(--gris-700); }
    .clase-estado .circulo { width:12px; height:12px; border-radius:50%; display:inline-block; }
    .clase-estado.estado-pendiente .circulo { background: var(--rojo); } .clase-estado.estado-pendiente { background: #fde8ea; color: var(--rojo); }
    .clase-estado.estado-proceso .circulo { background: var(--naranja); } .clase-estado.estado-proceso { background: #fef5e7; color: var(--naranja); }
    .clase-estado.estado-terminado .circulo { background: #28a745; } .clase-estado.estado-terminado { background: #e8f5e9; color: #28a745; }
    .respuesta-card { background: var(--blanco); border-radius: var(--radio-sm); padding: 16px 18px; margin-bottom: 12px; border-left: 4px solid var(--azul); box-shadow: 0 2px 8px rgba(0,0,0,0.04); }
    .modal-content.reporte-interaccion { max-width:1120px; }
    .reporte-cabecera { padding-right:28px; margin-bottom:16px; }
    .reporte-cabecera h3 { margin:0 0 4px; color:var(--azul); }
    .reporte-aviso { padding:10px 12px; border-radius:10px; background:#eef4ff; color:#31527f; font-size:0.82rem; margin:12px 0; }
    .reporte-resumen { display:grid; grid-template-columns:repeat(auto-fit,minmax(135px,1fr)); gap:10px; margin:14px 0 18px; }
    .resumen-dato { background:#fff; border:1px solid var(--gris-200); border-radius:12px; padding:12px; text-align:center; }
    .resumen-dato strong { display:block; font-size:1.35rem; color:var(--azul); }
    .respuesta-card .estudiante { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-weight:800; color:var(--gris-700); }
    .estado-interaccion { display:inline-flex; align-items:center; padding:4px 9px; border-radius:999px; font-size:0.72rem; font-weight:800; margin-left:auto; }
    .estado-interaccion.completado { background:#daf3df; color:#137333; }
    .estado-interaccion.respondio { background:#dfeaff; color:#174ea6; }
    .estado-interaccion.en_proceso { background:#fff0d6; color:#8a4b08; }
    .estado-interaccion.sin_iniciar { background:#eceff3; color:#5f6368; }
    .metricas-docente { display:grid; grid-template-columns:repeat(auto-fit,minmax(135px,1fr)); gap:8px; margin:13px 0; }
    .metrica-docente { background:rgba(255,255,255,.72); border:1px solid rgba(15,70,160,.12); border-radius:9px; padding:8px 10px; font-size:.76rem; color:var(--gris-500); }
    .metrica-docente strong { display:block; color:var(--gris-700); margin-top:2px; font-size:.84rem; }
    .alerta-orientacion { border-radius:9px; padding:9px 11px; font-size:.8rem; margin:10px 0; background:rgba(255,255,255,.65); border-left:3px solid var(--naranja); }
    .pregunta-respuesta { background:rgba(255,255,255,.72); border:1px solid rgba(0,0,0,.08); border-radius:10px; padding:11px 13px; margin-top:9px; }
    .pregunta-respuesta .preg { font-weight:800; color:#183153; margin-bottom:7px; line-height:1.4; }
    .pregunta-respuesta .resp { font-weight:400; color:var(--gris-700); background:#fff; border-radius:7px; padding:8px 10px; line-height:1.45; }
    .sin-respuesta { color:var(--gris-500); font-style:italic; padding:10px 0; }
    
    .modo-clase-grid { display: grid; grid-template-columns: 1fr; gap: 24px; max-width: 100%; }
    .actividad-card { background: var(--blanco); border-radius: var(--radio-sm); padding: 24px; border: 1px solid var(--gris-200); box-shadow: 0 2px 8px rgba(0,0,0,0.04); display: flex; flex-direction: column; }
    .actividad-card .icono-actividad { font-size:3rem; margin-bottom:12px; align-self:flex-start; }
    .modo-clase-shell { display:grid; gap:18px; }
    .mc-panel { background:#fff; border:1px solid var(--gris-200); border-radius:16px; padding:18px; box-shadow:0 4px 14px rgba(15,70,160,.06); }
    #classModeThermometer { border-color:#f2d59b; border-top:5px solid #e9a11b; background:linear-gradient(145deg,#fffaf0 0%,#fff 58%); }
    #classModeThermometer .mc-panel-header h3,#classModeThermometer .mc-panel-header h3 i { color:#9a5d00; }
    #classModeThermometer .badge-pill { background:#fff0cf; color:#855000; border:1px solid #f0d08d; }
    #classModeHeatmap { border-color:#d8caf1; border-top:5px solid #7754b8; background:linear-gradient(145deg,#faf7ff 0%,#fff 58%); }
    #classModeHeatmap .mc-panel-header h3,#classModeHeatmap .mc-panel-header h3 i { color:#604197; }
    #classModeHeatmap .mc-toggle-btn,#classModeHeatmap .mc-tab { border-color:#7754b8; color:#604197; background:#fff; }
    #classModeHeatmap .mc-toggle-btn:hover,#classModeHeatmap .mc-tab.activo { background:#6b49a8; color:#fff; }
    #classModeLaunch { border-color:#b9dedc; border-top:5px solid #168a86; background:linear-gradient(145deg,#f1fbfa 0%,#fff 58%); }
    #classModeLaunch .mc-panel-header h3,#classModeLaunch .mc-panel-header h3 i { color:#126e6b; }
    #classModeLaunch .mc-toggle-btn,#classModeLaunch .btn-primario { border-color:#168a86; background:#168a86; color:#fff; }
    #classModeLaunch .mc-toggle-btn:hover,#classModeLaunch .btn-primario:hover { background:#0f706d; }
    #classModeLaunch .mc-launch-step span { background:#168a86; }
    #classModeLaunch .mc-launch-step { color:#126e6b; }
    #classModeActivities { border-color:#bfd2ef; border-top:5px solid #0f46a0; background:linear-gradient(145deg,#f3f7fd 0%,#fff 58%); }
    #classModeActivities .mc-panel-header h3,#classModeActivities .mc-panel-header h3 i { color:#0f46a0; }
    #classModeActivities .mc-toggle-btn { border-color:#0f46a0; color:#0f46a0; background:#fff; }
    #classModeActivities .mc-toggle-btn:hover { background:#0f46a0; color:#fff; }
    #classModeActivities .actividad-card { border-top:4px solid #f2c500; box-shadow:0 5px 16px rgba(15,70,160,.09); }
    #classModeActivities .btn-ver-actividad { background:#0f46a0; color:#fff; }
    .mc-panel-header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
    .mc-panel-header h3 { margin:0; color:var(--azul); }
    .mc-resumen { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px; }
    .mc-stat { border-radius:12px; padding:12px; background:linear-gradient(145deg,#f8fbff,#eef4ff); border:1px solid #dbe7fb; }
    .mc-stat strong { display:block; color:var(--azul); font-size:1.45rem; }
    .termometro-visual { display:grid; grid-template-columns:minmax(245px,360px) minmax(0,1fr); gap:24px; align-items:center; margin:18px 0 24px; padding:20px 24px; border-radius:16px; background:linear-gradient(135deg,#f8fbff,#fff); border:1px solid #e1e9f3; overflow:hidden; }
    .termometro-instrumento { min-width:0; }
    .termometro-tubo { position:relative; width:calc(100% - 58px); height:38px; margin:0 12px 0 58px; border:6px solid #d9e1eb; border-radius:12px 22px 22px 12px; background:linear-gradient(180deg,#eef2f7,#fff 48%,#e7edf4); overflow:visible; box-shadow:inset 0 2px 8px rgba(31,59,94,.12); }
    .termometro-nivel { position:absolute; left:0; top:0; bottom:0; min-width:4px; max-width:100%; border-radius:6px 14px 14px 6px; background:linear-gradient(180deg,var(--termometro-color),color-mix(in srgb,var(--termometro-color) 72%,white)); transform-origin:left; animation:termometroSube 1.25s cubic-bezier(.2,.8,.25,1) both,termometroRespira 2.4s ease-in-out 1.25s infinite; transition:width .7s ease; overflow:hidden; }
    .termometro-nivel::after { content:''; position:absolute; inset:0; background:linear-gradient(105deg,transparent 28%,rgba(255,255,255,.55) 45%,transparent 62%); transform:translateX(-130%); animation:termometroBrillo 2.8s ease-in-out 1.2s infinite; }
    .termometro-bulbo { position:absolute; width:64px; height:64px; border-radius:50%; left:-58px; top:50%; transform:translateY(-50%); background:var(--termometro-color); border:7px solid #d9e1eb; box-shadow:inset 0 0 0 6px rgba(255,255,255,.22),0 5px 14px rgba(31,59,94,.16); animation:termometroBulbo 2.4s ease-in-out infinite; }
    .termometro-valor { color:#344767; }
    .termometro-valor strong { display:block; color:var(--termometro-color); font-size:2.35rem; line-height:1; margin-bottom:7px; }
    .termometro-valor span { display:block; max-width:420px; color:var(--gris-500); font-size:.9rem; font-weight:700; line-height:1.35; }
    .termometro-escala { display:grid; grid-template-columns:40fr 35fr 25fr; gap:3px; margin:13px 0 0 58px; font-size:.62rem; font-weight:900; color:#64748b; }
    .termometro-escala span { position:relative; padding-top:7px; border-top:4px solid var(--escala-color); text-align:center; }
    .termometro-escala span::before { content:''; position:absolute; top:-8px; left:0; width:2px; height:9px; background:var(--escala-color); }
    .termometro-ayuda { margin-top:11px; border:1px solid #e0e8f2; border-radius:10px; background:#fff; overflow:hidden; }
    .termometro-ayuda summary { padding:9px 11px; cursor:pointer; color:#344767; font-size:.75rem; font-weight:900; list-style:none; }
    .termometro-ayuda summary::before { content:'\f059'; font-family:'Font Awesome 6 Free'; font-weight:900; margin-right:7px; color:var(--termometro-color); }
    .termometro-ayuda div { padding:0 11px 11px; color:#64748b; font-size:.72rem; line-height:1.45; }
    .termometro-visual:hover { border-color:var(--termometro-color); box-shadow:0 8px 22px color-mix(in srgb,var(--termometro-color) 14%,transparent); }
    @keyframes termometroSube { from{transform:scaleX(.03);opacity:.45} to{transform:scaleX(1);opacity:1} }
    @keyframes termometroRespira { 0%,100%{filter:saturate(1)} 50%{filter:saturate(1.18) brightness(1.05)} }
    @keyframes termometroBrillo { 0%,32%{transform:translateX(-130%)} 68%,100%{transform:translateX(130%)} }
    @keyframes termometroBulbo { 0%,100%{box-shadow:inset 0 0 0 6px rgba(255,255,255,.22),0 5px 14px rgba(31,59,94,.16)} 50%{box-shadow:inset 0 0 0 6px rgba(255,255,255,.3),0 5px 22px color-mix(in srgb,var(--termometro-color) 42%,transparent)} }
    @media(prefers-reduced-motion:reduce){.termometro-nivel,.termometro-nivel::after,.termometro-bulbo{animation:none}}
    .mc-collapsed { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
    .mc-collapsed h3 { margin:0; color:var(--azul); }
    .mc-toggle-btn { border:1px solid var(--azul); background:#fff; color:var(--azul); padding:9px 14px; border-radius:10px; font-weight:800; cursor:pointer; }
    .mc-toggle-btn:hover,.mc-toggle-btn.abierto { background:var(--azul); color:#fff; }
    .mc-ia-hallazgo { margin-top:12px; padding:12px 14px; border-radius:11px; background:#f4efff; border-left:4px solid #6c5ce7; color:#493d78; }
    .mc-tabs { display:flex; gap:7px; flex-wrap:wrap; }
    .mc-tab { border:1px solid var(--azul); background:#fff; color:var(--azul); border-radius:9px; padding:8px 12px; cursor:pointer; font-weight:700; }
    .mc-tab.activo { color:#fff; background:var(--azul); }
    .mapa-calor-wrap { overflow:auto; max-height:58vh; border:1px solid var(--gris-200); border-radius:12px; }
    .mapa-calor { border-collapse:separate; border-spacing:3px; min-width:760px; width:100%; background:#f8fafc; padding:6px; }
    .mapa-calor th { position:sticky; top:0; z-index:2; background:#eef3fb; padding:8px; font-size:.72rem; color:#344767; text-align:left; max-width:170px; }
    .mapa-calor th:first-child { left:0; z-index:3; min-width:190px; }
    .mapa-calor td:first-child { position:sticky; left:0; z-index:1; background:#fff; min-width:190px; max-width:240px; padding:8px; font-size:.76rem; font-weight:700; }
    .calor-celda { min-width:38px; height:38px; border-radius:7px; cursor:pointer; text-align:center; color:#fff; border:2px solid transparent; transition:.15s; }
    .calor-celda:hover { transform:scale(1.08); border-color:#183153; }
    .calor-celda.logrado { background:#2e9d55; }.calor-celda.parcial { background:#e9a11b; }.calor-celda.dificultad { background:#d83b45; }.calor-celda.revision { background:#3976c5; }.calor-celda.sin_datos { background:#aeb7c2; }
    .mc-leyenda { display:flex; gap:12px; flex-wrap:wrap; margin-top:10px; font-size:.76rem; color:var(--gris-500); }
    .mc-leyenda span::before { content:''; display:inline-block; width:11px; height:11px; border-radius:3px; margin-right:5px; background:var(--c); }
    .mc-launch-card { margin-top:14px; border:1px solid #dbe5f3; border-radius:14px; background:linear-gradient(145deg,#fbfdff,#f4f8fd); overflow:hidden; }
    .mc-launch-body { padding:18px; }
    .mc-lanzamiento { display:grid; grid-template-columns:minmax(240px,1.6fr) repeat(3,minmax(145px,.75fr)); gap:14px; align-items:end; }
    .mc-lanzamiento > div { min-width:0; }
    .mc-field label { display:block; margin:0 0 6px; color:#344767; font-size:.78rem; font-weight:800; }
    .mc-field select,.mc-field input { display:block; width:100%; min-width:0; box-sizing:border-box; height:42px; border:1px solid #bcc9da; border-radius:9px; padding:8px 10px; background:#fff; }
    .mc-launch-step { display:flex; align-items:center; gap:8px; color:var(--azul); font-weight:900; margin-bottom:12px; }
    .mc-launch-step span { display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--azul); color:#fff; font-size:.75rem; }
    .mc-launch-step div { min-width:0; }
    .mc-launch-step strong,.mc-launch-step small { display:block; }
    .mc-launch-step small { margin-top:2px; color:var(--gris-500); font-size:.75rem; font-weight:600; }
    .mc-launch-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:13px 18px; border-top:1px solid #dbe5f3; background:#fff; color:var(--gris-500); font-size:.78rem; }
    .mc-launch-footer .btn { width:auto; min-width:210px; }
    .mc-asistencia { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:7px; max-height:210px; overflow:auto; padding:10px; background:#f8fafc; border-radius:10px; }
    .mc-asistencia label { display:flex; gap:7px; align-items:center; font-size:.8rem; }
    .mc-asistencia-detalle { margin-top:14px; border:1px solid #cfe2e0; border-radius:11px; background:#fff; overflow:hidden; }
    .mc-asistencia-detalle summary { padding:11px 13px; cursor:pointer; color:#126e6b; font-size:.8rem; font-weight:800; list-style:none; }
    .mc-asistencia-detalle summary::-webkit-details-marker { display:none; }
    .mc-asistencia-detalle summary::before { content:'\f0c0'; font-family:'Font Awesome 6 Free'; font-weight:900; margin-right:8px; }
    .mc-asistencia-detalle .mc-asistencia { border-radius:0; border-top:1px solid #dcebea; }
    .mc-field-condicional[hidden] { display:none !important; }
    .mc-load-warning { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; padding:11px 13px; border:1px solid #efd290; border-radius:11px; background:#fff8e8; color:#80530a; }
    .mc-load-warning strong,.mc-load-warning small { display:block; }
    .mc-load-warning small { margin-top:3px; line-height:1.4; }
    .mc-load-warning button { flex:0 0 auto; border:1px solid #d39a28; border-radius:8px; padding:8px 11px; background:#fff; color:#80530a; font-weight:800; cursor:pointer; }
    .mc-grupos-personalizados[hidden] { display:none !important; }
    .mc-grupos-personalizados { margin-top:14px; border:1px solid #bfd9f3; border-radius:12px; background:#f8fbff; overflow:hidden; }
    .mc-grupos-personalizados-head { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:13px 14px; background:#eaf4ff; color:#174d82; }
    .mc-grupos-personalizados-head strong,.mc-grupos-personalizados-head small { display:block; }
    .mc-grupos-personalizados-head small { margin-top:3px; color:#5d7088; font-size:.72rem; }
    .mc-distribucion-resumen { margin:11px 14px 0; padding:9px 11px; border-radius:9px; background:#e6f7ef; color:#08754d; font-size:.77rem; font-weight:800; }
    .mc-distribucion-resumen.error { background:#fff0f1; color:#ad2531; }
    .mc-asignaciones { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:8px; max-height:300px; overflow:auto; padding:12px 14px 14px; }
    .mc-asignaciones label { display:grid; grid-template-columns:minmax(0,1fr) 118px; align-items:center; gap:8px; padding:8px 10px; border:1px solid #dbe6f2; border-radius:9px; background:#fff; color:#344767; font-size:.76rem; font-weight:700; }
    .mc-asignaciones label span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .mc-asignaciones select { width:100%; min-width:0; height:34px; border:1px solid #aebed1; border-radius:7px; background:#fff; color:#213852; }
    .mc-en-vivo { background:linear-gradient(135deg,#102a56,#0f46a0); color:#fff; }
    .mc-en-vivo h3 { color:#fff; }
    .mc-en-vivo .mc-stat { color:#344767; }
    .mc-resumen-ejecucion { display:grid; grid-template-columns:repeat(auto-fit,minmax(155px,1fr)); gap:11px; margin-top:12px; }
    .mc-resumen-indicador { position:relative; min-height:104px; padding:14px 14px 12px 50px; border-radius:13px; background:#fff; color:#344767; border:1px solid rgba(255,255,255,.5); box-shadow:0 5px 14px rgba(5,29,68,.16); }
    .mc-resumen-indicador > i { position:absolute; top:15px; left:14px; display:grid; place-items:center; width:27px; height:27px; border-radius:8px; background:#e7effc; color:#0f46a0; }
    .mc-resumen-indicador strong { display:block; color:#0f46a0; font-size:1.45rem; line-height:1.1; }
    .mc-resumen-indicador span { display:block; margin-top:5px; color:#2d405d; font-size:.78rem; font-weight:900; line-height:1.2; }
    .mc-resumen-indicador small { display:block; margin-top:4px; color:#68798f; font-size:.67rem; line-height:1.25; }
    .mc-resumen-cabecera-acciones { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
    .btn-limpiar-historial { border:1px solid rgba(255,255,255,.7); border-radius:999px; padding:7px 12px; background:transparent; color:#fff; font-weight:800; cursor:pointer; }
    .btn-limpiar-historial:hover { background:#fff; color:#b4232d; }
    .mc-cronometro { font-size:2rem; font-weight:900; letter-spacing:2px; }
    .mc-grupos { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px; margin-top:14px; }
    .mc-grupo { background:#fff; color:var(--gris-700); border-radius:13px; padding:13px; border-top:5px solid #56a0ef; }
    .mc-grupo.requiere_apoyo { border-top-color:#e5a11b; }.mc-grupo.entrego { border-top-color:#2e9d55; }
    .mc-grupo-head { display:flex; justify-content:space-between; gap:8px; align-items:center; }
    .mc-miembros { font-size:.78rem; line-height:1.55; margin:8px 0; }
    .mc-registro-mini { background:#eef4ff; border-radius:7px; padding:6px 8px; margin-top:5px; font-size:.7rem; }
    .mc-acciones { display:flex; gap:7px; flex-wrap:wrap; }
    .mc-acciones button { border:0; border-radius:8px; padding:7px 9px; cursor:pointer; font-weight:700; }
    .indicadores-rapidos { display:flex; gap:7px; flex-wrap:wrap; margin:9px 0; }
    .indicador-chip { border:1px solid #b7c7df; border-radius:999px; background:#fff; padding:7px 10px; cursor:pointer; }
    .indicador-chip.activo { background:var(--azul); color:#fff; }
    .camara-preview { width:100%; max-height:280px; background:#111; border-radius:10px; object-fit:contain; display:none; }
    #modalRegistroCampo { padding:18px; box-sizing:border-box; align-items:flex-start; overflow-y:auto; }
    #modalRegistroCampo .registro-campo-modal { width:min(720px,100%); max-width:720px; max-height:calc(100vh - 36px); margin:auto; padding:0; overflow:hidden; border-radius:18px; }
    .registro-modal-header { padding:20px 24px 14px; border-bottom:1px solid #e4eaf2; background:linear-gradient(135deg,#f8fbff,#eef4ff); }
    .registro-modal-header h3 { margin:0 0 4px; color:var(--azul); }
    .registro-modal-body { padding:18px 24px; max-height:calc(90vh - 170px); overflow:auto; }
    .registro-modal-section { border:1px solid #e0e7f0; border-radius:12px; padding:13px; margin-top:12px; background:#fff; }
    .registro-modal-section h4 { margin:0 0 9px; color:#344767; }
    .registro-modal-footer { position:sticky; bottom:0; display:flex; justify-content:flex-end; gap:9px; padding:13px 24px; border-top:1px solid #e4eaf2; background:#fff; }
    .evidencia-opciones { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
    .evidencia-opcion { border:1px dashed #9fb3cc; border-radius:10px; padding:11px; background:#f8fbff; }
    #modalRegistroCampo label { display:block; margin:8px 0 6px; font-weight:800; color:#344767; font-size:.8rem; }
    #modalRegistroCampo select, #modalRegistroCampo textarea, #modalRegistroCampo input[type="file"] { width:100%; box-sizing:border-box; }
    #modalRegistroCampo textarea { min-height:90px; resize:vertical; }
    @media(max-width:1100px){.mc-lanzamiento{grid-template-columns:repeat(2,minmax(0,1fr))}}
    @media(max-width:760px){#teacherUnidadesGrid{grid-template-columns:1fr}.mc-lanzamiento{grid-template-columns:1fr}.evidencia-opciones{grid-template-columns:1fr}.mc-launch-footer .btn{width:100%}.mc-grupos-personalizados-head,.mc-load-warning{align-items:flex-start;flex-direction:column}.mc-asignaciones{grid-template-columns:1fr}}
    @media(max-width:520px){.termometro-visual{grid-template-columns:1fr;gap:20px}}
    @media(max-width:480px){.unidad-docente-card{grid-template-columns:52px minmax(0,1fr);padding:14px;gap:12px}.unidad-docente-card .unidad-icono-profesional{width:48px;height:48px}.unidad-card-info{padding-right:0}.unidad-card-acciones{position:static;grid-column:1/-1;justify-content:flex-end}.retro-estudiante{padding:13px 14px}.retro-estudiante p{font-size:.86rem;line-height:1.48}.calificacion-estudiante-cabecera{gap:10px!important}.calificacion-estudiante-info{min-width:100%!important}.calificacion-estudiante-nota{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left!important}}
    .edicion-inline { display:flex; gap:8px; align-items:center; justify-content:center; flex-wrap:wrap; margin:8px 0; }
    .edicion-inline input { min-width:180px; width:min(100%,420px); padding:9px 12px; border:2px solid var(--azul); border-radius:10px; font:inherit; }
    .controles-orden { display:flex; gap:6px; align-items:center; }
    .controles-orden button { min-width:38px; }
    .reordenando { border:2px dashed var(--azul); background:#f7faff; cursor:default; }
    .resource-toolbar { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
    .video-wrapper { position: relative; width: 100%; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: 12px; background: #000; box-shadow: 0 10px 30px rgba(0,0,0,0.15); }
    .video-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; border-radius: 12px; }
    .preview-panel .video-wrapper { width: 100%; }
    .metricas-actividad { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:12px; padding:10px 14px; border-radius:10px; background:#f8fafc; border:1px solid var(--gris-200); font-size:0.8rem; color:var(--gris-500); }
    .estado-sync { margin-left:auto; border-radius:999px; padding:5px 10px; font-weight:700; }
    .estado-sync.sincronizado { color:#137333; background:#e6f4ea; }

    /* Proyección de recursos del Modo clase en toda la ventana. */
    body.mc-resource-viewer-open { overflow:hidden !important; }
    .btn-pantalla-completa-actividad { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:38px; padding:8px 13px; border:0; border-radius:9px; background:#087d67; color:#fff; font-weight:800; cursor:pointer; }
    .btn-pantalla-completa-actividad:hover,.btn-pantalla-completa-actividad:focus-visible { background:#05634f; outline:3px solid rgba(8,125,103,.2); }
    .mc-resource-viewer { display:none; position:fixed; z-index:400000; inset:0; width:100vw; height:100dvh; overflow:hidden; background:#eaf0f6; }
    .mc-resource-viewer.open { display:flex; flex-direction:column; }
    .mc-resource-toolbar { flex:none; display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:66px; padding:10px 18px; border-bottom:1px solid #cbd8e5; background:linear-gradient(120deg,#0d3766,#0f5ca6); color:#fff; box-shadow:0 5px 18px rgba(9,37,71,.2); }
    .mc-resource-toolbar>div:first-child { min-width:0; }
    .mc-resource-toolbar span { display:block; color:#cfe4f8; font-size:.68rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
    .mc-resource-toolbar h2 { overflow:hidden; margin:3px 0 0; color:#fff; font-size:1.05rem; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
    .mc-resource-toolbar-actions { display:flex; align-items:center; gap:8px; flex:none; }
    .mc-resource-toolbar-actions button { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:40px; padding:8px 14px; border:1px solid rgba(255,255,255,.34); border-radius:10px; background:rgba(255,255,255,.12); color:#fff; font-weight:800; cursor:pointer; }
    .mc-resource-toolbar-actions button:hover,.mc-resource-toolbar-actions button:focus-visible { background:#fff; color:#174d82; outline:0; }
    .mc-resource-stage { flex:1; min-height:0; overflow:auto; padding:8px; background:#eef3f8; }
    .mc-resource-stage>iframe,.mc-resource-stage>img,.mc-resource-stage>.video-wrapper,.mc-resource-stage>div { box-sizing:border-box; width:100% !important; max-width:none !important; min-height:100% !important; border-radius:8px !important; }
    .mc-resource-stage>iframe { display:block; height:100% !important; border:0 !important; background:#fff; }
    .mc-resource-stage>.video-wrapper { position:relative; height:100% !important; padding:0 !important; background:#000; box-shadow:none !important; }
    .mc-resource-stage>.video-wrapper iframe { position:absolute; inset:0; width:100% !important; height:100% !important; border:0 !important; }
    .mc-resource-stage>img { display:block; height:100% !important; object-fit:contain !important; background:#111; }
    .mc-resource-viewer:fullscreen { width:100vw; height:100vh; }
    @media(max-width:700px){.mc-resource-toolbar{min-height:58px;padding:8px 10px}.mc-resource-toolbar span{display:none}.mc-resource-toolbar h2{max-width:42vw;font-size:.86rem}.mc-resource-toolbar-actions button{padding:8px 10px;font-size:.72rem}.mc-resource-stage{padding:3px}}
    .estado-sync.pendiente { color:#8a4b08; background:#fff4dc; }
    .btn-editar-unidad { background:transparent; border:none; color:var(--azul); cursor:pointer; font-size:1.2rem; padding:0 6px; }
    #cuestionarioMaterialContainer { background:#f0f4ff; border-radius:12px; padding:20px; border:2px solid var(--azul); }

    /* ==========================================
       ESTILOS DEL MODAL DE RÚBRICA INSTITUCIONAL Y IA
    =========================================== */
    body.rubrica-abierta { overflow:hidden; padding:0; }
    body.rubrica-abierta #app { max-width:none; overflow:visible; border-radius:0; -webkit-backdrop-filter:none; backdrop-filter:none; }
    #modalRubricaFullScreen { display:none; position:fixed; inset:0; width:100vw; height:100vh; height:100dvh; background:rgba(0,0,0,0.85); z-index:99999; overflow:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; padding:20px; }
    .rubrica-container { width:297mm; min-width:900px; min-height:210mm; margin:0 auto; background:#fff; color:#212529; padding:15mm 14mm 12mm 14mm; box-shadow:0 5px 15px rgba(0,0,0,0.5); position:relative; }
    .btn-cerrar-modal { position:fixed; top:12px; right:12px; z-index:100001; background:#dc3545; color:white; border:none; padding:9px 14px; font-weight:bold; cursor:pointer; border-radius:4px; }
    
    .input-clean { border:1px dashed #aaa; background:#fff; color:#111827 !important; -webkit-text-fill-color:#111827 !important; opacity:1 !important; width:100%; min-width:0; font-family:inherit; font-size:10px !important; padding:4px; }
    .input-clean:focus { outline: 1px solid #174a8b; background: #fff; }
    .textarea-clean { width:100%; min-width:0; border:1px dashed #aaa; background:#fff; color:#111827 !important; -webkit-text-fill-color:#111827 !important; opacity:1 !important; font-family:inherit; font-size:10px !important; resize:none; min-height:40px; padding:4px; overflow:hidden; box-sizing:border-box; line-height:1.35; overflow-wrap:anywhere; }
    .nivel-selector { display:block; width:100%; min-width:38px; height:28px; font-size:11px !important; line-height:1.2; text-align:center; text-align-last:center; font-weight:800; color:#111827 !important; -webkit-text-fill-color:#111827 !important; background-color:#fff !important; border:1px solid #718096; border-radius:4px; padding:3px 11px 3px 3px !important; cursor:pointer; -webkit-appearance:none; -moz-appearance:none; appearance:none; background-image:linear-gradient(45deg,transparent 50%,#174a8b 50%),linear-gradient(135deg,#174a8b 50%,transparent 50%); background-position:calc(100% - 7px) 50%,calc(100% - 4px) 50%; background-size:3px 3px,3px 3px; background-repeat:no-repeat; }
    .nivel-selector option { color:#111827 !important; background:#fff !important; font-weight:700; }
    .nivel-selector:focus { outline:2px solid #174a8b; outline-offset:1px; }
    
    .btn-ia { background: var(--morado); color: white; border: none; padding: 6px 10px; border-radius: 4px; cursor: pointer; font-size: 10px; font-weight: bold; margin-top: 5px; display: inline-block; transition: background 0.3s;}
    .btn-ia:hover { background: var(--morado-hover); }
    .btn-modo-clase { background: var(--morado); color: white; border: none; padding: 8px 20px; border-radius: 30px; font-weight: 600; font-size: 0.9rem; transition: var(--transicion); }
    .btn-modo-clase:hover { background: var(--morado-hover); transform: scale(1.02); }
    
    .acciones-flotantes { position: fixed; bottom: 20px; right: 20px; display: flex; gap: 10px; z-index: 1000;}
    .btn-guardar-rubrica { background: #28a745; color: #fff; border: none; padding: 12px 20px; border-radius: 5px; font-weight: bold; cursor: pointer; font-size: 14px; }
    .rub-estado-guardado { display:inline-flex; align-items:center; justify-content:center; margin-top:5px; padding:6px 12px; border:1px solid #b8cce2; border-radius:999px; background:#eef5fc; color:#174a8b; font-size:9px; font-weight:800; }
    .rub-estado-guardado.borrador { border-color:#e5c56c; background:#fff7dd; color:#7a5600; }
    .rub-estado-guardado.finalizada { border-color:#9fd4bf; background:#eaf8f2; color:#087052; }
    #modalRubricaFullScreen.rubrica-finalizada .acciones-flotantes,
    #modalRubricaFullScreen.rubrica-finalizada .rubrica-container button:not(.btn-cerrar-modal),
    #modalRubricaFullScreen.rubrica-finalizada .generador-rub,
    #modalRubricaFullScreen.rubrica-finalizada .fuentes-rub { display:none !important; }
    #modalRubricaFullScreen.rubrica-finalizada input,
    #modalRubricaFullScreen.rubrica-finalizada textarea,
    #modalRubricaFullScreen.rubrica-finalizada select { pointer-events:none; border-color:transparent !important; background:transparent !important; }
    
    /* Selector Múltiple Estilizado para Capacidades */
    .dropdown-check-list { display: inline-block; position: relative; width: 100%; }
    .dropdown-check-list .anchor { width: 100%; display: block; border: 1px dashed #ccc; padding: 4px; background: #fdfdfd; cursor: pointer; font-size: 10px; min-height: 25px; color: #333; }
    .dropdown-check-list .anchor::after { content: '▼'; position: absolute; right: 8px; top: 5px; font-size: 8px; color: #555; }
    .dropdown-check-list .items { display: none; border: 1px solid #ccc; max-height: 150px; overflow-y: auto; background: #fff; position: absolute; width: 100%; z-index: 100; padding: 5px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
    .dropdown-check-list .items label { display: block; font-size: 10px; cursor: pointer; padding: 4px 2px; font-weight: normal; text-transform: none; border-bottom: 1px solid #f0f0f0; }
    .dropdown-check-list .items label:hover { background: #e8eef6; }
    .dropdown-check-list.visible .items { display: block; }
    
    /* Imprimir a PDF con salto de página antes de "Registro de valoración" */
    @media print { 
        @page { margin: 10mm; size: A4 landscape; }
        html, body, #app { height:auto !important; min-height:0 !important; overflow:visible !important; }
        body { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; background: white; }
        body > canvas, #app > :not(#modalRubricaFullScreen) { display:none !important; }
        #modalRubricaFullScreen { position: static !important; left:auto; top:auto; height:auto !important; min-height:0 !important; background:white; padding:0; overflow:visible !important; display:block !important; width:100%; }
        #modalRubricaFullScreen, #modalRubricaFullScreen * { visibility: visible !important; }
        .rubrica-container { box-shadow: none; width: 100%; padding: 0; margin:0; }
        .btn-cerrar-modal, .acciones-flotantes, .btn-ia, .btn-rojo, .btn-outline, .no-print, .rubrica-fila-accion, .tabla-registro tr[data-rubrica-vacia="1"] { display: none !important; }
        .input-clean, .textarea-clean, .dropdown-check-list .anchor { border: none !important; background: transparent !important; resize: none; -webkit-appearance: none; appearance: none; padding: 0 !important; }
        .textarea-clean { overflow: hidden !important; min-height: 0 !important; white-space: pre-wrap; }
        .tabla-criterios td, .tabla-registro td { overflow: visible !important; }
        .dropdown-check-list .anchor::after { display: none; }
        .firmas { position:relative !important; opacity:1 !important; margin-top:5mm !important; padding-top:6mm !important; page-break-before:auto; break-before:auto; page-break-inside:auto; break-inside:auto; display:grid !important; min-height:28mm !important; }
        .firmas, .firmas * { visibility:visible !important; }
        #rub_competencia { display:none !important; }
        .solo-print { display:block !important; white-space:pre-wrap; font-size:10px; }
        select.input-clean { padding-right:0 !important; background-image:none !important; color:#000 !important; -webkit-text-fill-color:#000 !important; }
        /* Salto de página antes de la tabla de registro */
        .registro-salto { page-break-before: always; }
    }
    /* Para visualización en pantalla también se puede aplicar el salto */
    .registro-salto { page-break-before: always; }
    
    .header-rub { display: grid; grid-template-columns: 80px 1fr 145px 190px; gap:10px; align-items: center; border-bottom: 3px solid #174a8b; padding-bottom: 10px; margin-bottom: 12px; }
    .logo-rub { width: 68px; height: 68px; display: flex; align-items: center; justify-content: center; }
    .logo-rub img { width: 64px; height: 64px; object-fit: contain; }
    .logo-ugel-rub { height:64px; display:flex; align-items:center; justify-content:center; padding:4px 10px; border:0; background:#fff; box-shadow:none; }
    .logo-ugel-rub img { width:125px; max-width:100%; max-height:56px; object-fit:contain; mix-blend-mode:multiply; }
    .rubrica-system-foot { margin-top:16px; padding-top:7px; border-top:1px solid #cbd5e1; color:#617185; font-size:8px; text-align:center; }
    .generador-rub { display:grid; grid-template-columns: 1fr 150px auto; gap:8px; align-items:end; padding:9px; background:#eef5ff; border:1px solid #b8cdea; border-top:none; }
    .generador-rub label { display:block; font-size:8px; font-weight:bold; text-transform:uppercase; margin-bottom:3px; color:#24476f; }
    .generador-rub select, .generador-rub input { width:100%; padding:6px; border:1px solid #9fb6d0; border-radius:4px; background:white; }
    .generador-rub.con-sesion { grid-template-columns:1fr; }
    .fuentes-rub { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 9px; background:#f7fbf5; border:1px solid #bad7b5; border-top:none; font-size:9px; }
    .solo-print { display:none; }
    .institution-rub { text-align: center; }
    .datos-grid-rub { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; border: 1px solid #555; }
    .dato-rub { padding: 5px 7px; border-right: 1px solid #777; border-bottom: 1px solid #777; }
    .dato-rub label { display: block; font-weight: bold; font-size: 9px; text-transform: uppercase; color: #333; }
    .dato-rub span { font-size: 10px; font-weight: normal; }
    .bloque-rub { display: grid; grid-template-columns: 145px 1fr; border: 1px solid #777; margin-bottom:-1px;}
    .bloque-titulo-rub { background: #e8eef6; padding: 6px 8px; font-weight: bold; font-size: 10px; border-right: 1px solid #777; }
    .tabla-criterios, .tabla-registro { width: 100%; border-collapse: collapse; table-layout: fixed; margin-top: 10px; page-break-inside: auto; }
    .tabla-criterios tr, .tabla-registro tr { page-break-inside: avoid; page-break-after: auto; }
    .tabla-criterios th, .tabla-criterios td, .tabla-registro th, .tabla-registro td { border:1px solid #555; padding:6px; font-size:9px; vertical-align:top; overflow-wrap:anywhere; word-break:normal; }
    .rubrica-container p, .tabla-criterios td, .tabla-criterios textarea, .tabla-registro textarea { text-align:justify; text-justify:inter-word; }
    .tabla-criterios th { background: #dce6f2; text-align: center; }
    .tabla-registro th { background: #174a8b; text-align:center; vertical-align:middle; color:white; text-transform:uppercase; }
    .tabla-registro .col-estudiante { white-space:nowrap; font-size:9px; }
    .tabla-registro .col-retro { width:auto; }
    .tabla-registro .retro-contenido { display:flex; flex-direction:column; gap:5px; min-width:0; }
    .tabla-registro td.nivel-cell { padding:3px 2px; vertical-align:middle; }
    .tabla-registro tbody tr[data-dni] > td { vertical-align:middle; }
    @media (max-width:920px) {
        #modalRubricaFullScreen { padding:12px; }
        .rubrica-container { margin:0; }
        .admin-data-table { display:block; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
    }
    .ad-head { background: #d9ead3 !important; color:#000; } .a-head { background: #fff2cc !important; color:#000; } .b-head { background: #fce4d6 !important; color:#000;} .c-head { background: #f4cccc !important; color:#000;}
    .sesion-modal{z-index:100050;padding:18px;align-items:center;justify-content:center;background:rgba(8,28,58,.72);backdrop-filter:blur(5px)}
    .sesion-wizard{width:min(980px,100%);height:min(760px,calc(100dvh - 36px));display:flex;flex-direction:column;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 24px 70px rgba(7,31,67,.3)}
    .sesion-wizard-head{display:flex;justify-content:space-between;gap:16px;padding:20px 24px 16px;color:#fff;background:linear-gradient(120deg,#123f7d,#1961b6 68%,#2286c9)}
    .sesion-wizard-head h3{margin:3px 0 4px;font-size:1.35rem}.sesion-wizard-head p{margin:0;opacity:.86;font-size:.88rem}.sesion-kicker{text-transform:uppercase;letter-spacing:.12em;font-weight:800;font-size:.7rem;color:#ffdc68}.sesion-close{width:36px;height:36px;border:0;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:1.65rem;cursor:pointer}
    .sesion-progress{display:grid;grid-template-columns:repeat(4,1fr);padding:13px 22px;background:#f5f8fc;border-bottom:1px solid #dce5f0}.sesion-progress button{position:relative;display:flex;align-items:center;justify-content:center;gap:7px;border:0;background:transparent;color:#718096;font-weight:700;cursor:pointer}.sesion-progress button:not(:last-child):after{content:"";position:absolute;right:-15%;width:30%;height:2px;background:#d5dfeb}.sesion-progress b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#dfe7f1;color:#61718a}.sesion-progress button.active{color:#124c97}.sesion-progress button.active b{background:#1558aa;color:#fff;box-shadow:0 0 0 4px #dceafd}
    .sesion-wizard-body{padding:22px 24px;overflow:auto;min-height:0;flex:1}.sesion-paso{display:none}.sesion-paso.active{display:block;animation:sesionEntrada .25s ease both}@keyframes sesionEntrada{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
    .sesion-grid{display:grid;gap:16px}.sesion-grid.dos{grid-template-columns:1fr 1fr}.sesion-grid .span-2{grid-column:1/-1}.sesion-wizard label,.sesion-label{display:block;color:#29415f;font-weight:750;font-size:.86rem}.sesion-wizard input,.sesion-wizard select,.sesion-wizard textarea{width:100%;margin-top:6px;padding:10px 11px;border:1.5px solid #cbd7e6;border-radius:9px;background:#fff;color:#263b54;font:inherit;resize:vertical}.sesion-wizard input:focus,.sesion-wizard select:focus,.sesion-wizard textarea:focus{outline:0;border-color:#1763b5;box-shadow:0 0 0 3px rgba(23,99,181,.12)}.sesion-wizard small{display:block;margin-top:5px;color:#6c7e94;font-weight:400}
    .sesion-unidad-v-proyecto{padding:16px;border:1px solid #e0c76e;border-radius:15px;background:linear-gradient(145deg,#fffdf5,#fff8db);box-shadow:0 8px 22px rgba(92,70,8,.08)}.sesion-unidad-v-proyecto[hidden]{display:none}.sesion-unidad-v-proyecto>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px;padding-bottom:12px;border-bottom:1px solid rgba(174,137,19,.22)}.sesion-unidad-v-proyecto>header span{display:block;color:#927005;font-size:.68rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.sesion-unidad-v-proyecto>header h4{margin:4px 0;color:#173a64;font-size:1.05rem}.sesion-unidad-v-proyecto>header p{max-width:640px;margin:0;color:#63748a;font-size:.79rem}.sesion-unidad-v-proyecto>header>b{flex:none;padding:7px 10px;border-radius:999px;background:#173f74;color:#fff;font-size:.7rem;letter-spacing:.04em}.sesion-unidad-v-proyecto input[readonly]{background:#eef4fb;color:#244a77;font-weight:750}
    .sesion-checks{max-height:185px;overflow:auto;margin-top:6px;padding:8px;border:1.5px solid #d6e0ec;border-radius:10px;background:#f8fafc}.sesion-checks label{display:flex;align-items:flex-start;gap:8px;padding:7px;border-radius:7px;font-weight:500}.sesion-checks input{width:auto;margin:2px 0 0}.sesion-checks label:hover{background:#eaf2fc}
    .sesion-secuencia-bloque,.sesion-momentos article{margin-bottom:16px;padding:0;border:1px solid #d8e3ef;border-left:5px solid var(--pd-accent,#1b66b4);border-radius:14px;background:#fff;box-shadow:0 4px 14px rgba(27,63,103,.05);overflow:hidden}.sesion-secuencia-bloque.preclase{border-color:#ead792;border-left-color:#d99b13;background:#fffdf7}.sesion-secuencia-bloque.diversidad{border-left-color:#7a4eb0}.sesion-secuencia-bloque>header,.sesion-momentos article>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 17px;border-bottom:1px solid #e3eaf2;background:#f6f9fc}.sesion-secuencia-bloque.preclase>header{background:#fff7df}.sesion-secuencia-bloque.diversidad>header{background:#f8f3ff}.sesion-secuencia-bloque header strong,.sesion-momentos h4{margin:0;color:#153e76;font-size:1rem}.sesion-secuencia-bloque header p{margin:4px 0 0;color:#6e7f93;font-size:.74rem}.sesion-secuencia-bloque header small{font-weight:600}.sesion-secuencia-bloque header>label,.sesion-momentos header>label{display:flex!important;align-items:center;gap:6px;margin:0;color:#566b82;font-size:.72rem;font-weight:800}.sesion-secuencia-bloque header input,.sesion-momentos header input{width:72px!important;margin:0!important;padding:7px!important}.sesion-momentos{display:block;margin:16px 0}.sesion-momentos article:nth-child(2){border-left-color:#16a085}.sesion-momentos article:nth-child(3){border-left-color:#e0a51b}.sesion-actividad-recursos{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,.8fr);gap:0}.sesion-actividad-recursos.solo-actividad{grid-template-columns:1fr}.sesion-actividad-recursos>label{display:flex!important;flex-direction:column;margin:0;padding:14px 16px;color:#304a68;font-size:.77rem;font-weight:800}.sesion-actividad-recursos>label+label{border-left:1px solid #e1e8f0;background:#fbfcfe}.sesion-actividad-recursos textarea{width:100%;min-height:150px;height:auto;overflow:hidden;resize:vertical;field-sizing:content;margin-top:7px;line-height:1.62;background:#fff;text-align:justify;text-justify:inter-word;white-space:pre-wrap}.sesion-momentos article:nth-child(2) .sesion-actividad-recursos textarea{min-height:260px}.sesion-secuencia-bloque.diversidad textarea{min-height:180px}.sesion-tiempo-ok{margin-top:12px;padding:9px 12px;border-radius:9px;background:#e9f8ef;color:#176b3a;font-weight:700}.sesion-tiempo-ok.error{background:#fff0ef;color:#a4322a}
    .sesion-evaluacion-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:12px}.sesion-evaluacion-head h4,.sesion-evaluacion-head p{margin:0 0 5px}.sesion-criterio{display:grid;grid-template-columns:34px minmax(260px,1fr) minmax(260px,.8fr) 36px;gap:9px;align-items:start;margin-bottom:10px;padding:12px;background:#f7f9fc;border:1px solid #dce5f0;border-radius:12px}.sesion-criterio-num{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#1558aa;color:#fff;font-weight:800}.sesion-criterio textarea{margin:0}.sesion-capacidad-vinculo{display:grid;gap:6px}.sesion-capacidad-vinculo>strong{font-size:.77rem;color:#52667e;text-transform:uppercase;letter-spacing:.04em}.sesion-capacidad-chips{display:flex;flex-wrap:wrap;gap:6px}.sesion-capacidad-chips label{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid #cbd9e7;border-radius:999px;background:#fff;font-size:.76rem;line-height:1.2;cursor:pointer}.sesion-capacidad-chips label:has(input:checked){background:#e7f6f0;border-color:#079a70;color:#076449;font-weight:700}.sesion-capacidad-chips input{width:auto;margin:0}.sesion-criterio button{border:0;background:#fee7e5;color:#ad2d27;border-radius:8px;height:36px;cursor:pointer}.sesion-publicacion{display:flex;gap:10px;margin-top:14px;padding:12px;border-radius:10px;background:#eaf3ff;color:#244d78;font-size:.88rem}.sesion-wizard-foot{display:flex;justify-content:space-between;gap:12px;padding:14px 24px;border-top:1px solid #dce5f0;background:#f8fafc}
    .plan-estado{display:inline-flex;align-items:center;gap:5px;margin-left:7px;padding:3px 8px;border-radius:99px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.plan-estado.sin_plan{background:#edf1f5;color:#68778a}.plan-estado.borrador{background:#fff1c9;color:#8a6200}.plan-estado.lista{background:#daf3e5;color:#126a3b}.plan-estado.aplicada,.plan-estado.evaluada{background:#dceafd;color:#164f92}
    @media(max-width:720px){.sesion-modal{padding:0}.sesion-wizard{max-height:100dvh;height:100dvh;border-radius:0}.sesion-wizard-head{padding:15px}.sesion-progress{padding:10px 6px}.sesion-progress span{display:none}.sesion-progress button:not(:last-child):after{right:-25%;width:50%}.sesion-wizard-body{padding:16px;min-height:0}.sesion-grid.dos{grid-template-columns:1fr}.sesion-grid .span-2{grid-column:auto}.sesion-actividad-recursos{grid-template-columns:1fr}.sesion-actividad-recursos>label+label{border-left:0;border-top:1px solid #e1e8f0}.sesion-secuencia-bloque>header,.sesion-momentos article>header{align-items:flex-start;flex-direction:column}.sesion-criterio{grid-template-columns:30px 1fr 34px}.sesion-criterio select{grid-column:2/-1}.sesion-wizard-foot{padding:11px;align-items:center}.sesion-wizard-foot .btn{padding:8px;font-size:.76rem}}
    .btn-modo-recurso{display:inline-flex;align-items:center;gap:6px;border:1px solid #6c5ce7;border-radius:8px;padding:7px 10px;background:#fff;color:#5a43a5;font-weight:800;cursor:pointer}.btn-modo-recurso:hover,.btn-modo-recurso.activo{background:#6550b8;color:#fff;box-shadow:0 5px 13px rgba(101,80,184,.2)}
    #modalRegistroCampo .registro-campo-modal{width:min(760px,100%);max-width:760px;border:0;border-radius:22px;box-shadow:0 28px 80px rgba(8,28,58,.35)}
    #modalRegistroCampo .registro-modal-header{position:relative;padding:24px 28px 20px;border-bottom:0;background:linear-gradient(125deg,var(--pd-accent-strong,#123f7d),var(--pd-accent,#1767b8));color:#fff;overflow:hidden}
    #modalRegistroCampo .registro-modal-header:after{content:'';position:absolute;width:170px;height:170px;border-radius:50%;right:-52px;top:-90px;background:rgba(255,255,255,.12)}
    #modalRegistroCampo .registro-modal-header h3{margin:0 0 5px;color:#fff;font-size:1.3rem}#modalRegistroCampo .registro-modal-header p{color:rgba(255,255,255,.84)!important;font-weight:700}
    #modalRegistroCampo .registro-modal-body{padding:18px 24px 22px;background:#f5f8fc}#modalRegistroCampo .registro-modal-section{border:1px solid #dbe5f0;border-radius:15px;padding:15px 16px;background:#fff;box-shadow:0 5px 16px rgba(20,57,96,.06)}
    #modalRegistroCampo .registro-modal-footer{padding:15px 24px;box-shadow:0 -6px 18px rgba(20,57,96,.06)}#modalRegistroCampo .indicador-chip{padding:8px 11px;font-weight:750;transition:.16s ease}#modalRegistroCampo .indicador-chip:hover{transform:translateY(-1px);border-color:var(--pd-accent,#1767b8);box-shadow:0 4px 10px rgba(20,57,96,.1)}#modalRegistroCampo .indicador-chip.activo{background:var(--pd-accent,#1767b8);border-color:var(--pd-accent,#1767b8)}
