body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{pointer-events:none;height:40vmin}@media (prefers-reduced-motion:no-preference){.App-logo{animation:20s linear infinite App-logo-spin}}.App-header{color:#fff;background-color:#f3f4f6;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;font-size:calc(10px + 2vmin);display:flex}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.table-alumno{border-collapse:collapse;background:#fff;border-radius:10px;width:100%;font-family:Inter,Arial,sans-serif;overflow:hidden;box-shadow:0 5px 6px #0000001a}.table-alumno-thead{background:#4f46e5}.table-alumno-thead th{text-align:left;color:#fff;border-bottom:2px solid #4338ca;padding:12px 15px;font-size:14px;font-weight:600}.table-alumno tbody tr{background:#f9fafb;transition:background .3s}.table-alumno tbody tr:nth-child(2n){background:#f3f4f6}.table-alumno tbody tr:hover{background:#e0e7ff}tr,td,th{break-inside:avoid!important;page-break-inside:avoid!important}.table-alumno tbody td{color:#111827;border-bottom:1px solid #e5e7eb;padding:12px 15px;font-size:14px;font-weight:400}.table-alumno tbody td:last-child{color:#4f46e5;cursor:pointer;font-weight:600}.table-informes th,.table-informes td{color:#111827;vertical-align:middle;text-align:center;word-wrap:break-word;border:1px solid #c0baba;padding:4px 6px;font-size:14px}.table-informes tbody td:first-child{text-align:left;color:#1f2937;font-weight:600}.table-informes tbody td:nth-child(2){text-align:left;vertical-align:top}.table-informes td.accion{color:#4f46e5;cursor:pointer;font-weight:600}.table-informes td.observacion{text-align:left;vertical-align:top;white-space:pre-wrap!important}input,select,textarea{box-sizing:border-box;background-color:#fff;border:1px solid #ccc;border-radius:6px;outline:none;width:100%;margin:6px 0;padding:10px 12px;font-size:14px;transition:all .2s}.input-observacion{box-sizing:border-box;resize:vertical;background-color:#fff;border:1px solid #ccc;border-radius:6px;outline:none;width:100%;height:120px;padding:10px 12px;font-size:14px;transition:all .2s}.input-observacion:focus,input:focus,select:focus,textarea:focus{border-color:#4a80f0;box-shadow:0 0 4px #4a80f066}input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.7;background-color:#f0f0f0}input::placeholder,textarea::placeholder{color:#aaa}input.error,select.error,textarea.error{border-color:#e74c3c;box-shadow:0 0 4px #e74c3c66}input.success,select.success,textarea.success{border-color:#2ecc71;box-shadow:0 0 4px #2ecc7166}.table-informes-contenedor{transform-origin:0 0;max-width:1200px;margin:20px auto;padding:20px;overflow-x:auto;transform:scale(1)}.table-informes{border-collapse:collapse;table-layout:fixed;background:#fff;border:1px solid #d1d5db;border-radius:10px;width:100%;font-family:Inter,Arial,sans-serif;overflow:hidden;box-shadow:0 5px 10px #0000001a}.table-informes-thead{background:#fcfce4}.table-informes-thead th{text-align:center;color:#111827;border:1px solid #e5e7eb;padding:12px 10px;font-size:14px;font-weight:600}.table-informes tbody tr{background:#f9fafb;transition:background .3s}.area-hover:hover tr{background-color:#e0e7ff}@media (width<=1000px){.table-informes-contenedor{max-width:400px;margin:20px auto;padding:20px;overflow-x:auto}}.contenedor-lista-alumno{flex-direction:column;align-items:center;gap:16px;margin-top:20px;display:flex}body{color:#111827;background-color:#f9fafb;margin:0;padding:0;font-family:Inter,Roboto,sans-serif}h1,h2,h3,h4,h5,h6{color:#111827;text-align:center;margin-bottom:1rem;font-size:1.5rem;font-weight:600}h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1rem}h6{font-size:.875rem}p,span,li,a,label{color:#111827;margin-bottom:.75em;font-size:1rem;line-height:1.5}.text-secondary{color:#6b7280;font-size:.95rem}.form-group{flex-direction:column;margin-bottom:16px;font-family:Inter,sans-serif;display:flex}.form-group label{color:#171a1f;margin-bottom:6px;font-size:14px;font-weight:500}.select-input{color:#171a1f;cursor:pointer;background:#fff;border:1px solid #bcc1ca;border-radius:6px;outline:none;width:100%;max-width:250px;height:36px;padding:0 12px;font-size:14px;line-height:22px;transition:border-color .2s,box-shadow .2s}.select-input:hover{border-color:#a7adb7}.select-input:focus{border-color:#9095a0;box-shadow:0 0 5px #9095a033}.select-input:disabled{cursor:not-allowed;background:#f5f5f5;border-color:#bcc1ca}.acciones{justify-content:center;gap:1rem;margin-top:24px;display:flex}.btn{cursor:pointer;border:none;border-radius:12px;padding:10px 20px;font-size:14px;font-weight:600;text-decoration:none;transition:all .3s;box-shadow:0 2px 6px #0003}.btn.cancelar{color:#fff;background-color:#ef4444}.btn.cancelar:hover{background-color:#c02020}.btn.cerrar{color:#fff;background-color:#e74c3c}.btn.cerrar:hover{background-color:#c0392b}.btn.editar{color:#fff;background-color:#3498db}.btn.editar:hover{background-color:#2980b9}.btn.confirmar{color:#fff;cursor:pointer;background-color:#2ecc71;border:none;border-radius:12px;padding:10px 22px;font-size:15px;font-weight:600;transition:all .3s;box-shadow:0 2px 6px #0003}.btn.confirmar:hover{background-color:#27ae60;transform:scale(1.05)}.btn.confirmar.modificar{cursor:pointer;border:none;border-radius:12px;padding:10px 20px;font-size:14px;font-weight:600;text-decoration:none;transition:all .3s;box-shadow:0 2px 6px #0003}.btn.informes{color:#fff;background:#4f46e5;border-radius:8px;padding:6px 14px;font-size:14px;font-weight:600;text-decoration:none;transition:all .3s;display:inline-block;box-shadow:0 2px 6px #00000026}.btn.informes:hover{background:#4338ca;transform:scale(1.05)}.btn.informes.editar{color:#fff;background:#2ecc71;border-radius:8px;padding:6px 14px;font-size:14px;font-weight:600;text-decoration:none;transition:all .3s;display:inline-block;box-shadow:0 2px 6px #00000026}.btn.informes.eliminar{color:#fff;background:#e75252;border-radius:8px;padding:6px 14px;font-size:14px;font-weight:600;text-decoration:none;transition:all .3s;display:inline-block;box-shadow:0 2px 6px #00000026}.contenedor-principal{height:100vh;display:flex}.header-alumnos{align-items:center;gap:12px;margin:8px 0 16px;display:flex}.header-alumnos h3{letter-spacing:.2px;margin:0;font-size:clamp(20px,2.8vw,32px)}.header-actions{gap:8px;margin-left:auto;display:flex}.btn-icon{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:9999px;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;font-weight:700;transition:transform .15s,box-shadow .15s,opacity .2s;display:inline-flex;box-shadow:0 2px 8px #00000026}.btn-icon:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000002e}.btn-icon:active{transform:translateY(0)}.btn-icon:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.header-actions .btn{color:#fff;background:#4caf50;border-radius:6px;padding:6px 12px;text-decoration:none}.header-actions .btn:nth-child(2){background:#2196f3}.header-actions .btn:hover{background-color:#68b36b;transform:translateY(-1px);box-shadow:0 4px 12px #0000002e}.header-actions .btn:nth-child(2):hover{background-color:#6fb7f3;transform:translateY(-1px);box-shadow:0 4px 12px #0000002e}.header-alumnos{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-actions{gap:10px;display:flex}.panel-izquierdo{background:#e7dfd8;border-right:1px solid #0000000f;flex-direction:column;width:260px;padding:12px;display:flex;position:fixed;top:0;bottom:0;left:0}.panel-derecho{background:#f5f5f5;min-height:100vh;margin-left:260px;padding:20px;overflow-y:auto}.panel-derecho>.contenedor-lista-alumno{max-width:900px;margin:0 auto}.btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.btn.iniciarsession{color:#fff;cursor:pointer;background-color:#2ecc50;border:none;border-radius:12px;padding:10px 20px;font-size:15px;font-weight:600;transition:all .3s;box-shadow:0 2px 6px #0003}.boxinput{padding:15px}.btn.confirmar:disabled{color:#eee;background-color:#95d7b6}.btn.cerrar:disabled{color:#fff;background-color:#f5a9a9}.btn.editar:disabled{color:#fff;background-color:#a9c9e5}.btn.cerrarsession{color:#fff;background-color:#555;margin-top:auto}.btn.cerrarsession:hover{background-color:#333}.btn.danger{color:#fff;background:#ef4444}.btn.danger:hover{background:#c02020}.acciones{gap:8px;margin:12px 0;display:flex}.tabla-wrapper{color:#000;overflow:auto}.tabla-carga{border-collapse:collapse;width:100%}.tabla-carga input{border:1px solid #d1d5db;border-radius:6px;width:100%;padding:6px 8px}.no-edit input[disabled]{color:#6b7280;cursor:not-allowed;opacity:.85;background:#f3f4f6;border-color:#e5e7eb}.cambiar-container{max-width:680px;margin:0 auto;padding:0 12px}.cambio-curso{grid-template-columns:1fr;place-items:end stretch;gap:14px;width:100%;margin-top:16px;display:grid}@media (width>=640px){.cambio-curso{grid-template-columns:repeat(2,minmax(260px,1fr))}}.form-group{flex-direction:column;display:flex}.select-input,.tabla-seleccion,.tabla-wrapper{width:100%}.login-page{background:linear-gradient(135deg,#4facfe,#00f2fe);place-items:center;min-height:100vh;padding:24px;display:grid}.login-page,.login-page *{box-sizing:border-box}.login-container{text-align:center;background:#fff;border-radius:16px;width:min(380px,92vw);padding:28px 24px;box-shadow:0 10px 28px #0000001f}.login-container h2{color:#5b6770;letter-spacing:.3px;margin:0;font-size:18px}.login-container h1{color:#1f2937;margin:14px 0 18px;font-size:24px}.login-form{gap:10px;display:grid}.login-input{color:#111827;background:#fff;border:1px solid #e5e7eb;border-radius:10px;outline:none;width:100%;padding:12px 14px;font-size:15px;transition:border-color .2s,box-shadow .2s}.login-input::placeholder{color:#9ca3af}.login-input:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa40}.btn.iniciarsession{color:#fff;letter-spacing:.4px;cursor:pointer;background:linear-gradient(135deg,#4facfe,#00e6ff);border:none;border-radius:10px;width:100%;margin-top:6px;padding:12px;font-weight:700;transition:transform .15s,opacity .15s,box-shadow .15s;overflow:hidden;box-shadow:0 6px 16px #0092ff40}.btn.iniciarsession:hover{opacity:.95;transform:translateY(-1px);box-shadow:0 8px 20px #0092ff4d}.btn.iniciarsession:active{transform:translateY(0);box-shadow:0 4px 12px #0092ff40}.login-container input{border:1px solid #ccc;border-radius:8px;width:80%;margin:10px 0;padding:12px 14px;font-size:15px;transition:all .2s}.login-container input:focus{border-color:#4facfe;outline:none;box-shadow:0 0 6px #4facfe80}@media print{@page{size:A4 landscape;margin:8mm}html,body{width:100%!important;margin:0!important;padding:0!important}.seccion,.table-informes-contenedor{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important}.table-informes{table-layout:fixed;border-collapse:collapse;width:100%!important;font-size:9.5px!important;line-height:1.05!important}thead{display:table-header-group!important}.acciones,.btn,.no-print{display:none!important}body{height:auto!important;overflow:hidden!important}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.seccion{text-align:center;width:95%;margin:10px auto;padding:10px}.seccion.cpem41{align-items:center}@media (width<=1000px){.menu-trigger{z-index:1100;background:#fff;border:1px solid #e5e7eb;border-radius:10px;justify-content:center;align-items:center;padding:6px 10px;display:inline-flex;position:fixed;top:12px;left:12px;box-shadow:0 4px 14px #0000001a}.menu-trigger.hide{display:none}.menu_icono{object-fit:contain;width:24px;height:24px}.nav_menu{z-index:1000;background:#fff;border-right:1px solid #0000000f;width:min(300px,85vw);height:100vh;padding:10px 10px 14px;transition:transform .25s;position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:2px 0 18px #0000001f}.nav_menu.open{transform:translate(0)}.close-trigger{cursor:pointer;background:#fff;border:0;border-radius:8px;width:32px;height:32px;font-size:18px;font-weight:700;line-height:1;position:absolute;top:10px;right:10px;box-shadow:0 2px 8px #00000026}.panel-izquierdo{padding-top:50px}.overlay{opacity:0;visibility:hidden;z-index:900;background:#00000059;transition:opacity .2s,visibility .2s;position:fixed;inset:0}.overlay.show{opacity:1;visibility:visible}.panel-derecho{margin-top:56px;padding:16px;margin-left:10px!important}}@media (width>=1000px){.menu-trigger,.overlay,.close-trigger{display:none}}
