*{box-sizing:border-box;margin:0;padding:0;font-family:Noto Sans,sans-serif}body{color:#231f20;background-color:#fff}[hidden]{display:none!important}:root{--guinda:#750946;--guinda-claro:#9b3d6e;--guinda-oscuro:#4a0630;--guinda-tenue:#f9ebf0;--blanco:#fff;--gris-claro:#f2f0f0;--gris-borde:#e0e0e0;--gris-medio:#636569;--negro:#231f20;--verde:#2e7d32;--amarillo:#f9a825;--rojo:#c62828}.btn-peligro{background-color:var(--rojo);color:var(--blanco);cursor:pointer;border:none;border-radius:8px;padding:12px 20px;font-size:14px;font-weight:600;transition:background-color .2s}.btn-peligro:hover{background-color:#9b1f1f}.btn-texto{color:var(--gris-medio);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:12px 16px;font-size:14px;font-weight:600}.btn-texto:hover{background-color:var(--gris-claro);color:var(--negro)}.btn-primary:disabled,.btn-peligro:disabled,.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-chip{background:var(--blanco);border:1px solid var(--gris-borde);color:var(--gris-medio);cursor:pointer;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600;transition:all .2s}a.btn-chip{align-items:center;text-decoration:none;display:inline-flex}a.btn-primary{text-decoration:none;display:inline-block}.btn-chip:hover{border-color:var(--guinda);color:var(--guinda)}.btn-chip.peligro:hover{border-color:var(--rojo);color:var(--rojo)}.volver{color:var(--guinda);align-items:center;gap:6px;margin-bottom:12px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.volver:hover{text-decoration:underline}.modal-fondo{z-index:100;background:#231f208c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-caja{background:var(--blanco);border-radius:12px;flex-direction:column;width:100%;max-width:480px;max-height:90vh;display:flex;box-shadow:0 20px 40px #0003}.modal-amplio{max-width:760px}.modal-encabezado{border-bottom:1px solid var(--gris-borde);justify-content:space-between;align-items:center;padding:20px 25px;display:flex}.modal-encabezado h3{color:var(--negro);font-size:18px;font-weight:600}.modal-cerrar{color:var(--gris-medio);cursor:pointer;background:0 0;border:none;font-size:24px;line-height:1}.modal-cerrar:hover{color:var(--negro)}.modal-cuerpo{padding:25px;overflow-y:auto}.modal-texto p{color:var(--negro);font-size:14px;line-height:1.6}.modal-texto p+p{margin-top:10px}.modal-texto strong{color:var(--rojo)}.modal-pie{border-top:1px solid var(--gris-borde);justify-content:flex-end;gap:10px;padding:16px 25px;display:flex}.modal-error{color:var(--rojo);background:#fdecec;border-radius:8px;margin-bottom:15px;padding:10px 14px;font-size:13px;display:none}.campo{margin-bottom:18px}.campo label{color:var(--negro);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.campo input[type=text],.campo input[type=number],.campo input[type=datetime-local],.campo select,.campo textarea{border:1px solid var(--gris-borde);width:100%;color:var(--negro);background:var(--blanco);border-radius:8px;padding:10px 12px;font-size:14px}.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--guinda);outline:none;box-shadow:0 0 0 3px #7509461a}.campo input:disabled,.campo textarea:disabled,.campo select:disabled{background:var(--gris-claro);color:var(--gris-medio);cursor:not-allowed}.campo textarea{resize:vertical;min-height:90px;font-family:Noto Sans,sans-serif}.campo-ayuda{color:var(--gris-medio);margin-top:6px;font-size:12px;display:block}.campos-fila{gap:15px;display:flex}.campos-fila .campo{flex:1}.badge{white-space:nowrap;border-radius:12px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-activo{color:var(--verde);background:#e8f5e9}.badge-cerrado{background:var(--gris-claro);color:var(--gris-medio)}.badge-pendiente{color:#8c6a00;background:#fff8e1}.badge-alerta{color:var(--rojo);background:#fdecec}.badge-info{background:var(--guinda-tenue);color:var(--guinda)}.codigo-grupo{letter-spacing:2px;background:var(--gris-claro);color:var(--negro);border-radius:6px;padding:4px 10px;font-family:Courier New,Courier,monospace;font-size:14px;font-weight:700}.topbar-profile .profile-info{text-align:right;flex-direction:column;line-height:1.3;display:flex}.topbar-profile .user-role{color:#636569;font-size:12px}.metrics-row{gap:20px;margin-bottom:40px;display:flex}.metric-card{background:#fff;border-radius:12px;flex:1;justify-content:space-between;align-items:center;padding:25px;display:flex;box-shadow:0 4px 10px #00000008}.metric-info{flex-direction:column;gap:10px;display:flex}.metric-title{color:#636569;text-transform:uppercase;font-size:12px;font-weight:600}.metric-value{color:#231f20;font-size:32px;font-weight:700}.metric-icon{color:#750946;background-color:#f9ebf0;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;font-size:20px;display:flex}.footer{color:#636569;border-top:1px solid #e0e0e0;justify-content:space-between;margin-top:40px;padding:20px 0 0;font-size:12px;display:flex}.footer-links{gap:20px;display:flex}.footer-links a{color:#750946;font-weight:600;text-decoration:none}@media (width<=900px){.metrics-row{flex-wrap:wrap}}.btn-solid,.btn-outline{cursor:pointer;border-radius:20px;flex:1;padding:10px;font-size:13px;font-weight:600;transition:all .3s}.btn-solid{color:#fff;background:#750946;border:none}.btn-solid:hover{background:#5a0736}.btn-outline{color:#750946;background:#fff;border:1px solid #750946}.btn-outline:hover{background:#f9ebf0}.alumno-celda{align-items:center;gap:12px;display:flex}.alumno-avatar{background:var(--guinda-tenue);width:34px;height:34px;color:var(--guinda);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.alumno-datos{flex-direction:column;line-height:1.4;display:flex}.alumno-datos .correo{color:var(--gris-medio);font-size:12px}.boleta{font-family:Courier New,Courier,monospace;font-size:13px}.codigo-destacado{align-items:center;gap:10px;margin-top:12px;display:flex}.codigo-destacado .codigo-grupo{padding:8px 14px;font-size:18px}.tabla-envoltura{background:var(--blanco);border-radius:12px;overflow-x:auto;box-shadow:0 4px 10px #00000008}.tabla-datos{border-collapse:collapse;width:100%}.tabla-datos th{text-align:left;text-transform:uppercase;letter-spacing:.4px;color:var(--gris-medio);border-bottom:1px solid var(--gris-borde);white-space:nowrap;padding:14px 18px;font-size:12px}.tabla-datos td{color:var(--negro);vertical-align:middle;border-bottom:1px solid #f5f5f5;padding:14px 18px;font-size:14px}.tabla-datos tbody tr:hover{background:#fafafa}.tabla-datos tbody tr:last-child td{border-bottom:none}.celda-acciones{justify-content:flex-end;gap:8px;display:flex}.nota{font-family:Courier New,Courier,monospace;font-size:14px;font-weight:700}.nota-completa{color:var(--verde)}.nota-parcial{color:var(--amarillo)}.nota-nula{color:var(--rojo)}.estado-vacio{text-align:center;color:var(--gris-medio);background:var(--blanco);border-radius:12px;padding:45px 20px}.estado-vacio-icono{margin-bottom:10px;font-size:34px}.estado-vacio h4{color:var(--negro);margin-bottom:6px;font-size:16px}.estado-vacio p{max-width:420px;margin:0 auto;font-size:14px;line-height:1.5}.estado-vacio .btn-secondary{width:auto;margin-top:18px;padding:8px 20px}.estado-error h4{color:var(--rojo)}.estado-cargando{color:var(--gris-medio);justify-content:center;align-items:center;gap:10px;padding:35px;font-size:14px;display:flex}.spinner{border:2px solid var(--gris-borde);border-top-color:var(--guinda);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite girar;display:inline-block}@keyframes girar{to{transform:rotate(360deg)}}.toast-container{z-index:200;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:25px;right:25px}.toast{background:var(--negro);color:var(--blanco);border-radius:8px;max-width:340px;padding:14px 18px;font-size:14px;animation:.25s ease-out entrar;box-shadow:0 8px 20px #0003}.toast-exito{background:var(--verde)}.toast-error{background:var(--rojo)}.toast-info{background:var(--guinda)}.toast-saliendo{opacity:0;transition:all .3s;transform:translateY(8px)}@keyframes entrar{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.pestanas{border-bottom:1px solid var(--gris-borde);gap:5px;margin-bottom:25px;display:flex}.pestana{color:var(--gris-medio);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:12px 18px;font-size:14px;font-weight:600}a.pestana{text-decoration:none}.pestana:hover{color:var(--negro)}.pestana.activa{color:var(--guinda);border-bottom-color:var(--guinda)}.panel-pestana{display:none}.panel-pestana.activo{display:block}.barra-filtros{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;display:flex}.barra-filtros input[type=search],.barra-filtros input[type=text],.barra-filtros select{border:1px solid var(--gris-borde);background:var(--blanco);color:var(--negro);border-radius:8px;padding:9px 12px;font-size:14px}.barra-filtros input[type=search]{flex:1;min-width:200px}.barra-filtros .contador{color:var(--gris-medio);margin-left:auto;font-size:13px}.banderas-seccion{background:var(--blanco);border-radius:12px;margin-bottom:25px;padding:25px;box-shadow:0 4px 10px #00000008}.banderas-seccion h3{margin-bottom:14px;font-size:16px}.banderas-seccion ul{flex-direction:column;gap:12px;list-style:none;display:flex}.banderas-seccion li{color:var(--negro);align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;display:flex}.banderas-seccion li .icono{flex-shrink:0}.en-proceso{background:var(--blanco);text-align:center;border-radius:12px;padding:45px 25px;box-shadow:0 4px 10px #00000008}.en-proceso .icono{margin-bottom:12px;font-size:40px}.en-proceso h3{margin-bottom:8px;font-size:18px}.en-proceso p{color:var(--gris-medio);max-width:440px;margin:0 auto 20px;font-size:14px;line-height:1.6}.en-proceso .btn-secondary{width:auto;padding:10px 22px}.alerta-plagio{border:1px solid #f5c2c2;border-left:5px solid var(--rojo);color:var(--negro);background:#fdecec;border-radius:12px;margin-bottom:25px;padding:20px 25px}.alerta-plagio h3{color:var(--rojo);margin-bottom:8px;font-size:16px}.alerta-plagio p{font-size:14px;line-height:1.6}.alerta-plagio-datos{color:var(--gris-medio);flex-wrap:wrap;gap:30px;margin-top:14px;font-size:12px;display:flex}.alerta-plagio-datos strong{color:var(--rojo);font-family:Courier New,Courier,monospace;font-size:18px;display:block}.lista-coincidencias{flex-direction:column;gap:6px;margin-top:14px;list-style:none;display:flex}.lista-coincidencias li{align-items:center;gap:12px;font-size:13px;display:flex}.codigo-hash{background:var(--blanco);border-radius:6px;padding:2px 8px;font-family:Courier New,Courier,monospace}.alerta-plagio .ayuda-plagio{color:var(--gris-medio);margin-top:12px;font-size:12px}.observacion-motor{background:var(--blanco);border-radius:12px;margin-bottom:25px;padding:18px 22px;font-size:14px;line-height:1.6;box-shadow:0 4px 10px #00000008}.observacion-motor strong{color:var(--guinda)}.criterio-revisado{color:var(--guinda);background:var(--guinda-tenue);border-radius:10px;margin-top:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.tabla-rubrica th.nivel,.tabla-rubrica td.nivel{text-align:center;width:90px}.aviso-privacidad{color:var(--negro);font-size:14px;line-height:1.65}.aviso-privacidad h2,.aviso-privacidad h3,.aviso-privacidad h4{color:var(--guinda);margin:18px 0 8px;line-height:1.3}.aviso-privacidad h2{margin-top:0;font-size:20px}.aviso-privacidad h3{font-size:16px}.aviso-privacidad h4{font-size:14px}.aviso-privacidad p{margin-bottom:10px}.aviso-privacidad ul,.aviso-privacidad ol{margin:0 0 12px 22px}.aviso-privacidad li{margin-bottom:4px}.aviso-privacidad a{color:var(--guinda)}.aviso-privacidad .aviso-version{color:var(--gris-medio);margin-bottom:14px;font-size:12px}button.avatar{cursor:pointer;border:none;padding:0;font-family:inherit;transition:box-shadow .2s}button.avatar:hover,button.avatar:focus-visible{outline:none;box-shadow:0 0 0 3px #75094640}.avatar,.alumno-avatar,.perfil-foto{position:relative;overflow:hidden}.avatar-foto{object-fit:cover;border-radius:50%;width:100%;height:100%;position:absolute;inset:0}.perfil-caja{align-items:center;gap:18px;margin-bottom:18px;display:flex}.perfil-foto{background:var(--guinda);width:96px;height:96px;color:var(--blanco);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:32px;font-weight:700;display:flex}.perfil-datos{flex-direction:column;align-items:flex-start;gap:4px;min-width:0;display:flex}.perfil-datos strong{color:var(--negro);font-size:16px}.perfil-datos span:not(.badge){color:var(--gris-medio);word-break:break-all;font-size:13px}.perfil-acciones{flex-wrap:wrap;gap:10px;margin-bottom:8px;display:flex}.perfil-acciones [hidden]{display:none!important}.perfil-acciones label.btn-chip{align-items:center;display:inline-flex}.perfil-acciones .deshabilitado{opacity:.6;pointer-events:none}.campo-contrasena{display:block;position:relative}.campo-contrasena input{padding-right:44px!important}.btn-ver-contrasena{width:34px;height:34px;color:var(--gris-medio);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.btn-ver-contrasena:hover{color:var(--guinda);background-color:var(--guinda-tenue)}.btn-ver-contrasena:focus-visible{outline:2px solid var(--guinda);outline-offset:1px}.btn-ver-contrasena[aria-pressed=true]{color:var(--guinda)}.campo-contrasena input::-ms-reveal{display:none}.campo-contrasena input::-ms-clear{display:none}@media (width<=700px){.footer{flex-direction:column;gap:10px}.campos-fila{flex-direction:column;gap:0}.modal-pie{flex-direction:column-reverse}.modal-pie button{width:100%}}.modal-error.visible{display:block}.app-shell{color:#231f20;background-color:#f2f0f0;flex-direction:column;height:100vh;display:flex;overflow:hidden}.topbar{z-index:10;background-color:#fff;border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;height:60px;padding:0 30px;display:flex}.topbar-brand{color:#750946;align-items:center;gap:15px;font-size:16px;font-weight:700;display:flex}.logo{height:35px}.topbar-profile{align-items:center;gap:15px;display:flex}.user-name{font-size:14px;font-weight:500}.avatar{color:#fff;background-color:#750946;border-radius:50%;justify-content:center;align-items:center;width:35px;height:35px;font-size:14px;font-weight:700;display:flex}.btn-icon{cursor:pointer;background:0 0;border:none;font-size:18px}.app-container{flex:1;display:flex;overflow:hidden}.sidebar{background-color:#fff;border-right:1px solid #e0e0e0;width:250px;padding:20px 0}.sidebar-nav{flex-direction:column;display:flex}.nav-item{color:#636569;align-items:center;gap:10px;padding:12px 30px;font-size:15px;font-weight:500;text-decoration:none;transition:background .2s;display:flex}.nav-item:hover{background-color:#f8f9fa}.nav-item.active{color:#750946;background-color:#f9ebf0;border-right:4px solid #750946;font-weight:600}.main-content{flex:1;padding:40px;overflow-y:auto}.content-header{justify-content:space-between;align-items:center;margin-bottom:40px;display:flex}.content-header h2{margin-bottom:5px;font-size:24px}.subtitle{color:#636569;font-size:14px}.btn-primary{color:#fff;cursor:pointer;background-color:#750946;border:none;border-radius:6px;padding:12px 20px;font-weight:600;transition:background-color .3s}.btn-primary:hover{background-color:#5a0736}.btn-secondary{color:#750946;cursor:pointer;background-color:#fff;border:1px solid #750946;border-radius:4px;width:100%;padding:8px 15px;font-weight:600;transition:all .3s}.btn-secondary:hover{color:#fff;background-color:#750946}.groups-section h3{color:#231f20;margin-bottom:20px;font-size:18px}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:25px;display:grid}.course-card{background:#fff;border:1px solid #eaeaea;border-radius:8px;flex-direction:column;display:flex;box-shadow:0 4px 6px #0000000d}.card-header{border-bottom:1px solid #f0f0f0;padding:15px 20px}.card-header h4{color:#231f20;font-size:16px}.card-body{flex-direction:column;flex:1;justify-content:space-between;padding:20px;display:flex}@media (width<=760px){.app-shell{height:auto;min-height:100vh;overflow:visible}.app-container{flex-direction:column;overflow:visible}.topbar{z-index:20;height:56px;padding:0 16px;position:sticky;top:0}.topbar-brand{gap:10px;min-width:0}.topbar-brand span{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.logo{height:30px}.topbar-profile{flex-shrink:0;gap:10px}.topbar .topbar-profile .profile-info{display:none}.sidebar{display:contents}.sidebar-nav{z-index:15;scrollbar-width:none;-webkit-overflow-scrolling:touch;background-color:#fff;border-bottom:1px solid #e0e0e0;flex-direction:row;position:sticky;top:56px;overflow-x:auto}.sidebar-nav::-webkit-scrollbar{display:none}.nav-item{white-space:nowrap;border-bottom:3px solid #0000;flex:none;padding:12px 14px;font-size:14px}.nav-item.active{border-bottom:3px solid #750946;border-right:none}.main-content{padding:20px 16px 28px;overflow:visible}.content-header{flex-direction:column;align-items:stretch;gap:14px;margin-bottom:24px}.content-header h2{font-size:20px}.content-header .btn-primary{width:100%}}@media (width<=400px){.topbar-brand span{display:none}}a.topbar-brand{text-decoration:none}.avatar.avatar-admin{background-color:var(--negro)}
