.login-page .login-wrapper{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:1.25rem;animation:gradientMove 10s ease infinite;will-change:background-position}@keyframes gradientMove{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.login-page .login-container{background:linear-gradient(180deg,#01490e,#b32727,#640800);padding:1.875rem;border-radius:.75rem;box-shadow:0 .5rem 1.25rem #00000080;width:100%;max-width:20rem;text-align:center;border:.0625rem solid rgba(255,255,255,.1);transform:translateZ(0);backface-visibility:hidden}.login-page .login-container img{display:block;margin:0 auto .3125rem;width:3.75rem;height:3.75rem}.login-page .login-container h1{font-size:1.8rem;margin:.9375rem 0;color:#fff3e0;font-weight:600}.login-page form{display:flex;flex-direction:column;gap:.9375rem}.login-page input[type=text],.login-page input[type=password]{padding:.75rem;font-size:1rem;border:.0625rem solid #8d6e63;background:#fff;color:#000;border-radius:.375rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease;will-change:border-color,box-shadow}.login-page input::placeholder{color:#7a7a7a}.login-page input:focus{border-color:#ff7043;box-shadow:0 0 .375rem #ff7043b3}.login-page .remember-label{font-size:.875rem;color:#fff3e0;display:flex;align-items:center;justify-content:center;gap:.5rem}.login-page button[type=submit]{padding:.75rem;background:linear-gradient(45deg,red,#c00);color:#fff;border:none;border-radius:.375rem;font-size:1rem;cursor:pointer;transition:transform .2s ease;will-change:transform;font-weight:600}.login-page button[type=submit]:hover:not(:disabled){transform:scale(1.02)}.login-page button[type=submit]:disabled{opacity:.7;cursor:not-allowed}@media (max-width: 30rem){.login-page .login-container{padding:1.25rem;width:90%}.login-page .login-container h1{font-size:1.5rem}}@media (prefers-reduced-motion: reduce){.login-page *,.login-page *:before,.login-page *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.table-wrapper-spinner{margin-left:250px}@media (max-width: 1200px){.table-wrapper-spinner{margin-left:0}}.sidebar{position:fixed;margin-top:1%;margin-left:.2%;height:96%;width:16.4%;bottom:1%;background:linear-gradient(45deg,#01490e,#b32727,#640800);transition:transform .3s ease,left .3s ease;z-index:1000;overflow:hidden;border-radius:15px;color:#f5f5f5;padding:.5rem;box-shadow:0 0 8px #0009;transform:translate(0);left:-100%}.sidebar.open{transform:translate(0);left:0}.nav-links ul{list-style-type:none;padding:0;margin:0 0 0 6px;font-size:16px}.nav-links ul li{margin-bottom:2%}.nav-links ul li a{display:flex;align-items:center;padding:2%;color:#f5f5f5;text-decoration:none;transition:background-color .3s ease,color .3s ease;border-radius:5px}.nav-links ul li a:hover{background-color:#8d6e63}.nav-links ul li a.active{background-color:#00aa3b;color:#fff;border-radius:5px}.top-navbar{display:flex;justify-content:space-between;position:fixed;width:70%;left:20%;top:2%;background:transparent;color:#f5f5f5}.logo-container{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.logo-container hr{width:80%;margin-top:1px;border:1px solid #ccc}.logout-button{margin-top:77%;padding:4%;border-radius:8px;background:#3e2723;color:#fff;width:100%;text-align:center}.logout-button:hover{cursor:pointer;background:#5d4037}@media screen and (max-width: 768px){.sidebar{width:70%;height:85%;top:5%;left:-100%;margin-left:12px}.sidebar.open{left:0}.logout-button{margin-top:96%}}.user-info,.logout-info{display:flex;align-items:center}.user-text,.logout-text{margin-left:8px;display:inline-block;cursor:pointer}@media screen and (max-width: 768px){.user-text,.logout-text{display:none}}*{box-sizing:border-box}.open-modal-btn,.btn-generar,.export-btn{border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:transform .2s;display:inline-flex;align-items:center;gap:8px;color:#fff}.open-modal-btn,.btn-generar{background:linear-gradient(135deg,#667eea,#764ba2);padding:12px 24px;font-size:16px}.open-modal-btn:hover,.btn-generar:hover{transform:translateY(-2px)}.export-btn{background:linear-gradient(135deg,#10b981,#059669);padding:10px 20px;font-size:14px}.export-btn:hover:not(:disabled){transform:translateY(-1px)}.open-modal-btn:disabled,.btn-generar:disabled,.export-btn:disabled{opacity:.5;cursor:not-allowed}.overlay{background:#000000bf;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s}@keyframes fadeIn{0%{opacity:0}}.modal{background:linear-gradient(135deg,#1e293b,#334155);padding:32px;border-radius:20px;max-width:900px;width:95%;max-height:85vh;overflow-y:auto;box-shadow:0 25px 50px #000c;animation:slideUp .4s;position:relative}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}}.modal::-webkit-scrollbar{width:8px}.modal::-webkit-scrollbar-track{background:#ffffff0d;border-radius:10px}.modal::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:10px}.close-btn{position:absolute;top:10px;right:12px;background:transparent;border:none;font-size:20px;font-weight:700;color:#e53935;cursor:pointer}.close-btn:hover{color:#b71c1c}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px;padding-bottom:20px;padding-right:60px;border-bottom:1px solid rgba(255,255,255,.1);gap:40px}.modal-title-section{flex:1}.modal-title{color:#f8fafc;margin:0;font-weight:600;font-size:1.5rem}.modal-subtitle{color:#94a3b8;font-size:.9rem;margin-top:8px}.bloque-card{border-radius:16px;box-shadow:0 8px 32px #0000004d;transition:transform .2s;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.bloque-card:hover{transform:translateY(-2px)}.bloque-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:24px;position:relative}.bloque-header:after{content:"";position:absolute;bottom:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent)}.bloque-info{flex:1;display:flex;flex-direction:column;gap:12px}.bloque-nombre{margin:0;color:#f8fafc;font-size:18px;font-weight:600}.bloque-progress-mini{width:200px;height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.bloque-progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#06b6d4);transition:width .8s}.bloque-stats{display:flex;align-items:center;gap:16px}.stats-container{text-align:center;background:#ffffff1a;padding:12px 16px;border-radius:10px}.total-asistencias{font-weight:700;color:#10b981;font-size:20px}.expand-btn{color:#94a3b8;padding:8px}.expand-icon{transition:transform .3s}.expand-icon.expanded{transform:rotate(180deg)}.personas-list{padding:0 24px 24px}.persona-nombre{display:flex;align-items:center;gap:8px;color:#f8fafc;font-weight:500;font-size:15px}.persona-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.persona-porcentaje{color:#94a3b8;font-size:14px}.progress-bar{background:#ffffff1a;border-radius:6px;height:6px;overflow:hidden}.progress-fill{height:100%;transition:width .6s}@media (max-width: 768px){.modal{padding:24px;width:98%}.modal-header{flex-direction:column;gap:16px}.bloque-header{padding:20px}.bloque-progress-mini{width:150px}}@media (max-width: 480px){.reporte-container{padding:100px 16px 16px}.modal{padding:20px}.bloque-progress-mini{width:100px}}body{background:linear-gradient(45deg,#014d23,#51ab5b,#014d23);color:#f5f5f5;font-family:Arial,sans-serif}.swal2-popup{background-color:#333!important;color:#fff!important}input[type=text],input[type=password]{padding:12px;font-size:1rem;border:1px solid #8d6e63;background:#3e2723;color:#fff;border-radius:6px;outline:none;transition:.3s}.titulos{text-align:center;color:#fff;margin-top:80px}.table-container{min-width:1150px}.table-wrapper{margin-left:230px}.table-container td{max-width:200px;word-wrap:break-word;white-space:normal;overflow-wrap:break-word}.header-table{background:linear-gradient(to bottom,#5e0202,#e30d02)}.header-table th{font-weight:700;font-size:15px;color:#fff}.MuiTablePagination-root{background-color:#fff;color:#fff;border-radius:4px;margin-top:1px}@media (max-width: 768px){.MuiContainer-root{max-width:100vw;padding:10px}.table-container{min-width:0;width:100%}.table-wrapper{margin-left:0}}
