body,html{height:100%;margin:0;overflow-x:hidden;padding:0;width:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;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}.login-page{background-color:#f5f5f5;height:100%}.login-container,.login-page{align-items:center;background-attachment:fixed;background-image:url(/static/media/bg.4aae7e0a4407814e7ee1.png);background-position:50%;background-repeat:no-repeat;background-size:100% 100%;display:flex;justify-content:center;min-height:100vh;overflow-y:auto;position:fixed;width:100%}.login-container{flex-direction:column;padding:20px}.form-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:400px;padding:2rem;transition:transform .4s ease;width:100%}.form-container.flipping{transform:rotateY(180deg)}.form-container h2{color:#333;margin-bottom:1.5rem;text-align:center}.form-group{margin-bottom:1rem}.form-group input,.form-group select{border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.75rem;transition:border-color .3s ease;width:100%}.form-group select{appearance:none;background-color:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:1em;cursor:pointer}.form-group input:focus,.form-group select:focus{border-color:#4a90e2;outline:none}button{background-color:#4a90e2;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem;transition:background-color .3s ease;width:100%}button:hover{background-color:#357abd}button:disabled{background-color:#ccc;cursor:not-allowed}.error-message{color:#dc3545;margin-bottom:1rem;text-align:center}.forgot-password{margin:1rem 0;text-align:center}.forgot-password span{color:#4a90e2;cursor:pointer;text-decoration:underline}.forgot-password span:hover{color:#357abd}.switch-form{margin-top:1rem;text-align:center}.switch-form span{color:#4a90e2;cursor:pointer;text-decoration:underline}.switch-form span:hover{color:#357abd}.login-container.flipping *{backface-visibility:hidden}@media (max-width:480px){.login-container{margin:0 20px;padding:1.5rem 2rem 1.5rem 1.5rem;position:relative;top:0;width:85%}.login-title{font-size:1.5rem}}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:modalFadeIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 5px 15px #0000004d;max-width:500px;width:90%}.modal-header{align-items:center;border-bottom:1px solid #eee;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:1.5rem}.modal-header.success{background-color:#d4edda;color:#155724}.modal-header.error{background-color:#f8d7da;color:#721c24}.modal-header.info{background-color:#cce5ff;color:#004085}.modal-close{background:none;border:none;color:inherit;cursor:pointer;font-size:1.5rem}.modal-body{padding:1.5rem}.modal-message{color:#333;font-size:14px;line-height:1.6}.modal-message strong{color:#2c3e50;font-weight:600}.modal-message br{margin-bottom:8px}.modal-footer{border-top:1px solid #eee;display:flex;justify-content:flex-end;padding:1rem 1.5rem}.modal-button{background-color:#4a90e2;border:none;border-radius:6px;color:#fff;cursor:pointer;padding:.5rem 1rem;transition:background-color .2s}.modal-button:hover{background-color:#357abd}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.student-dashboard{background-attachment:fixed;background-image:url(/static/media/bg.4aae7e0a4407814e7ee1.png);background-position:50%;background-size:cover;min-height:100vh;padding:20px}.dashboard-content{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:15px;box-shadow:0 8px 32px #0000001a;margin:0 auto;max-width:1200px;padding:20px}.dashboard-header{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;justify-content:center;margin-bottom:30px;padding:20px;position:relative}.welcome-text{color:#333;font-size:1.2rem;font-weight:500;text-align:center;width:100%}.logout-button{background-color:#ff4757;font-size:.9rem;padding:6px 12px;position:absolute;right:20px;transition:all .3s ease;width:fit-content}.logout-button:hover{background-color:#ff6b81;transform:translateY(-1px)}.logout-button:disabled{background-color:#ffb3b3;cursor:not-allowed;transform:none}.dashboard-title{color:#2d3436;font-size:2.5rem;margin-bottom:30px;text-align:center}.attendance-history{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;margin-top:30px;padding:20px}.attendance-history h2{border-bottom:2px solid #f1f2f6;color:#2d3436;font-size:1.8rem;margin-bottom:20px;padding-bottom:10px}.event-status{background:#4a90e2;border-radius:15px;color:#fff;font-size:.8rem;font-weight:500;left:10px;padding:5px 10px;position:absolute;top:10px}.attendance-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));padding:20px 0}.attendee-count{background:#4a90e2;border-radius:15px;box-shadow:0 2px 4px #0000001a;color:#fff;font-size:.8rem;font-weight:500;padding:5px 10px;position:absolute;right:10px;top:10px}.attendee-count.finished{background:#636e72}.event-status.finished{background:#e7f6fb}.event-status.on-going{background:#4a90e2;color:#fff}.attendance-card{background:#f8f9fa;border-radius:10px;padding:20px;position:relative;transition:transform .3s ease}.attendance-card:hover{transform:translateY(-5px)}.attendance-card h3{color:#2d3436;font-size:1.2rem;margin-bottom:10px}.attendance-card p{color:#636e72;font-size:.9rem;margin:5px 0}.status-badge{border-radius:15px;display:inline-block;font-size:.8rem;margin-top:10px;padding:5px 10px}.status-present{background-color:#55efc4;color:#00b894}.status-absent{background-color:#ff7675;color:#d63031}.qr-section{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;margin:30px 0;padding:20px}.semester-section{background:linear-gradient(135deg,#0f172a,#1e293b 50%,#334155);border-radius:20px;box-shadow:0 20px 40px #0f172a66,0 10px 20px #0f172a33,inset 0 1px 0 #ffffff1a;margin-bottom:2.5rem;overflow:hidden;padding:0;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.semester-section:before{animation:shimmer 3s ease-in-out infinite;background:linear-gradient(90deg,#0000,#3b82f6cc,#0000);content:"";height:2px;left:0;position:absolute;right:0;top:0}@keyframes shimmer{0%,to{opacity:.5}50%{opacity:1}}.semester-section:hover{box-shadow:0 32px 64px #0f172a80,0 16px 32px #0f172a4d,inset 0 1px 0 #ffffff26;transform:translateY(-8px)}.semester-header{align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:linear-gradient(135deg,#3b82f626,#6366f126);border-bottom:1px solid #ffffff1a;display:flex;justify-content:space-between;padding:25px 30px;position:relative}.semester-header:after{background:linear-gradient(90deg,#0000,#3b82f699,#0000);bottom:0;content:"";height:1px;left:10%;position:absolute;right:10%}.semester-header h3{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#f8fafc,#cbd5e1);-webkit-background-clip:text;background-clip:text;color:#f8fafc;font-size:1.75rem;font-weight:700;letter-spacing:-.025em;margin:0;text-shadow:0 2px 8px #0006}.event-count{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:linear-gradient(135deg,#3b82f64d,#6366f14d);border:1px solid #3b82f666;border-radius:25px;color:#f1f5f9;font-size:.875rem;font-weight:600;padding:8px 16px;text-shadow:0 1px 2px #0000004d;transition:all .3s ease}.event-count:hover{background:linear-gradient(135deg,#3b82f666,#6366f166);border-color:#3b82f699}.semester-section .attendance-grid{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#0000001a;padding:30px}.no-events{color:#f8fafcb3;font-style:italic;padding:60px 40px;position:relative;text-align:center}.no-events:before{content:"📚";display:block;font-size:3rem;margin-bottom:15px;opacity:.5}.no-events p{font-size:1.125rem;font-weight:500;margin:0}.semester-section .attendance-card{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#fffffff7;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0000001a,inset 0 1px 0 #ffffffe6;overflow:hidden;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.semester-section .attendance-card:before{background:linear-gradient(90deg,#3b82f6,#6366f1,#8b5cf6);content:"";height:3px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.semester-section .attendance-card:hover{background:#fff;border-color:#3b82f64d;box-shadow:0 20px 40px #00000026,0 10px 20px #0000001a,inset 0 1px 0 #fff;transform:translateY(-6px) scale(1.02)}.semester-section .attendance-card:hover:before{opacity:1}@media (max-width:768px){.dashboard-content{padding:15px}.dashboard-header{flex-direction:column;gap:15px;text-align:center}.dashboard-title{font-size:2rem}.attendance-grid{grid-template-columns:1fr}.semester-header{flex-direction:column;gap:10px;text-align:center}.semester-section .attendance-grid{padding:15px}.no-events{padding:30px 20px}}.profile-modal-overlay{align-items:center;animation:fadeIn .3s ease;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.profile-modal{animation:slideUp .4s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#fffffffa;border:1px solid #ffffff4d;border-radius:20px;box-shadow:0 25px 50px #00000040,0 0 0 1px #ffffff1a;max-height:80vh;max-width:500px;overflow-y:auto;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.profile-modal-header{align-items:center;background:linear-gradient(135deg,#3b82f60d,#6366f10d);border-bottom:1px solid #0000001a;display:flex;justify-content:space-between;padding:25px 30px}.profile-modal-header h2{color:#1e293b;font-size:1.5rem;font-weight:700;margin:0}.close-profile{align-items:center;background:none;border:none;border-radius:50%;color:#64748b;cursor:pointer;display:flex;font-size:1.8rem;height:40px;justify-content:center;transition:all .3s ease;width:40px}.close-profile:hover{background:#ef44441a;color:#ef4444}.profile-modal-content{padding:30px}.profile-field{margin-bottom:25px}.profile-field label{color:#374151;display:block;font-size:.9rem;font-weight:600;letter-spacing:.05em;margin-bottom:8px;text-transform:uppercase}.profile-value{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.profile-value,.profile-value-editable{color:#1e293b;font-size:1rem;padding:12px 16px}.profile-value-editable{align-items:center;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border:2px solid #cbd5e1;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;position:relative;transition:all .3s ease}.profile-value-editable:hover{background:linear-gradient(135deg,#e2e8f0,#cbd5e1);border-color:#3b82f6;transform:translateY(-1px)}.edit-icon{opacity:.6;transition:opacity .3s ease}.profile-value-editable:hover .edit-icon{opacity:1}.year-level-edit{display:flex;flex-direction:column;gap:12px}.year-level-edit select{appearance:none;background:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233b82f6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:1em;border:2px solid #3b82f6;border-radius:8px;color:#1e293b;cursor:pointer;font-size:1rem;padding:12px 16px}.year-level-edit select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #3b82f61a;outline:none}.edit-buttons{display:flex;gap:8px}.cancel-btn,.save-btn{border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:600;padding:8px 16px;transition:all .3s ease}.save-btn{background:linear-gradient(135deg,#10b981,#059669)}.save-btn:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px)}.cancel-btn{background:linear-gradient(135deg,#ef4444,#dc2626)}.cancel-btn:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px)}.hamburger-menu,.user-menu-container{align-items:center;display:flex;position:relative}.hamburger-menu{background:linear-gradient(135deg,#1e293b,#475569);border:2px solid #3b82f64d;border-radius:12px;box-shadow:0 4px 15px #1e293b4d;cursor:pointer;height:50px;justify-content:center;overflow:hidden;transition:all .4s cubic-bezier(.4,0,.2,1);width:50px}.hamburger-menu:before{background:linear-gradient(90deg,#0000,#3b82f666,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.hamburger-menu:hover:before{left:100%}.hamburger-menu:hover{background:linear-gradient(135deg,#334155,#64748b);border-color:#3b82f699;box-shadow:0 8px 25px #1e293b66;transform:translateY(-2px)}.hamburger-menu.active{background:linear-gradient(135deg,#3b82f6,#6366f1);border-color:#6366f1cc;transform:rotate(90deg)}.hamburger-lines{display:flex;flex-direction:column;gap:4px;transition:all .3s ease}.hamburger-lines span{background:#fff;border-radius:1px;height:2px;transform-origin:center;transition:all .3s cubic-bezier(.4,0,.2,1);width:20px}.hamburger-menu.active .hamburger-lines span:first-child{transform:translateY(6px) rotate(45deg)}.hamburger-menu.active .hamburger-lines span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger-menu.active .hamburger-lines span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.user-dropdown{animation:dropdownSlide .3s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#fffffffa;border:1px solid #fff3;border-radius:16px;box-shadow:0 20px 40px #00000026,0 10px 20px #0000001a,inset 0 1px 0 #ffffffe6;margin-top:8px;min-width:280px;overflow:hidden;position:absolute;right:0;top:100%;z-index:1000}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.user-info{background:linear-gradient(135deg,#3b82f60d,#6366f10d);gap:12px;padding:20px}.user-avatar,.user-info{align-items:center;display:flex}.user-avatar{background:linear-gradient(135deg,#3b82f6,#6366f1);border-radius:50%;box-shadow:0 4px 12px #3b82f64d;color:#fff;font-size:1.2rem;font-weight:700;height:45px;justify-content:center;text-transform:uppercase;width:45px}.user-details{flex:1 1}.user-name{color:#1e293b;font-size:1rem;font-weight:600;margin-bottom:2px}.user-email{color:#64748b;font-size:.875rem}.menu-divider{background:linear-gradient(90deg,#0000,#0000001a,#0000);height:1px;margin:0 15px}.menu-items{padding:15px}.menu-item{align-items:center;background:none;border:none;border-radius:10px;cursor:pointer;display:flex;gap:12px;margin-bottom:8px;padding:12px 15px;text-align:left;transition:all .3s ease;width:100%}.menu-item:last-child{margin-bottom:0}.menu-item:hover{background:linear-gradient(135deg,#3b82f61a,#6366f11a);transform:translateX(4px)}.menu-item.logout-item:hover{background:linear-gradient(135deg,#ef44441a,#dc26261a)}.menu-icon{font-size:1.2rem;text-align:center;width:24px}.menu-text{color:#374151;font-size:.95rem;font-weight:500}.menu-item.logout-item .menu-text{color:#dc2626}.menu-item:disabled{cursor:not-allowed;opacity:.6}.menu-item:disabled:hover{background:none;transform:none}.download-qr-button{background-color:#4a90e2;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;margin-top:15px;padding:10px 20px;transition:background-color .3s ease}.download-qr-button:hover{background-color:#357abd}.qr-code-container{align-items:center;display:flex;flex-direction:column;gap:10px}.super-admin-dashboard{background:url(/static/media/bg.4aae7e0a4407814e7ee1.png) no-repeat 50% fixed;background-size:cover;color:#000;display:flex;flex-direction:row;min-height:100vh}@media screen and (max-width:768px){.super-admin-dashboard{flex-direction:column}}.sidebar{background:#ffffffe6;box-shadow:2px 0 5px #0000001a;display:flex;flex-direction:column;height:100vh;padding:20px;width:250px}@media screen and (max-width:768px){.sidebar{height:auto;padding:10px;position:relative;width:100%}}.sidebar-header{margin-bottom:30px;text-align:center}.sidebar-header h2{color:#000}.sidebar-nav{display:flex;flex-direction:column;gap:10px}.sidebar-nav button{background:#0000;border:none;border-radius:5px;color:#000;cursor:pointer;font-size:16px;padding:12px;text-align:left;transition:all .3s ease}.sidebar-nav button.active{background:#007bff;color:#fff}.main-content{background:#ffffffe6;border-radius:10px;flex:1 1;margin:20px;padding:30px}@media screen and (max-width:768px){.main-content{margin:10px;padding:15px;width:auto}.section{overflow-x:auto}}.section{margin-bottom:30px}.section h2{color:#000;margin-bottom:20px}table{background:#fff;border-collapse:collapse;border-radius:8px;overflow:hidden;width:100%}td,th{border-bottom:1px solid #ddd;color:#000;padding:12px 15px;text-align:left}@media screen and (max-width:480px){td,th{font-size:14px;padding:8px 10px}table{min-width:600px}}th{background-color:#007bff;color:#fff;cursor:pointer;transition:background-color .2s;-webkit-user-select:none;user-select:none}th:hover{background-color:#0056b3}tr:hover{background-color:#f5f5f5}tr td{color:#000}.sign-out-btn{background:#dc3545;border:none;border-radius:5px;color:#fff;cursor:pointer;display:block;margin-top:auto;padding:12px;transition:all .3s ease}@media screen and (max-width:768px){.sign-out-btn{margin:10px 0;padding:15px;width:100%}}.sign-out-btn:hover{background:#c82333}.status-toggle{background-color:#ddd;border:none;border-radius:15px;cursor:pointer;height:30px;position:relative;transition:background-color .3s ease;width:60px}.status-toggle:before{background-color:#fff;border-radius:50%;content:"";height:26px;left:2px;position:absolute;top:2px;transition:transform .3s ease;width:26px}.status-toggle.on-going{background-color:#4caf50}.status-toggle.finished{background-color:#ff9800}.status-toggle.on-going:before{transform:translateX(0)}.status-toggle.finished:before{transform:translateX(30px)}.confirmation-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.confirmation-dialog{animation:slideIn .3s ease-out;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:20px}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.confirmation-dialog h3{color:#000;font-size:1.2rem;margin:0 0 15px}.confirmation-dialog p{color:#000;line-height:1.5;margin:0 0 20px}.confirmation-buttons{justify-content:flex-end}.confirmation-buttons button{border:none;border-radius:4px;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:all .2s ease}.confirm-btn{background-color:#28a745}.confirm-btn:hover{background-color:#218838}.cancel-btn{background-color:#dc3545}.cancel-btn:hover{background-color:#c82333}.action-buttons{gap:10px}.delete-button{align-items:center;background-color:#dc3545;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:20px;height:30px;justify-content:center;transition:all .3s ease;width:30px}.delete-button:hover{background-color:#c82333;transform:scale(1.1)}.warning-text{color:#dc3545;display:block;font-size:.9em;font-weight:500;margin-top:8px}.section-header{align-items:center;border-bottom:2px solid #f1f2f6;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.bulk-edit-controls{align-items:center;display:flex;gap:10px}.edit-users-btn{background-color:#6c5ce7;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 20px;transition:all .3s ease}.edit-users-btn:hover{background-color:#5f3dc4;transform:translateY(-2px)}.edit-users-btn.active{background-color:#fd79a8}.edit-users-btn.active:hover{background-color:#e84393}.select-all-btn{background-color:#74b9ff;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:500;padding:8px 16px;transition:all .3s ease}.select-all-btn:hover{background-color:#0984e3;transform:translateY(-1px)}.promote-btn{background-color:#00b894;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 16px;transition:all .3s ease}.promote-btn:hover:not(:disabled){background-color:#00a085;transform:translateY(-1px)}.promote-btn:disabled{background-color:#ddd;cursor:not-allowed;transform:none}.promotion-preview{background-color:#f8f9fa;border-radius:8px;margin:15px 0;max-height:200px;overflow-y:auto;padding:15px}.promotion-preview h4{color:#2d3436;font-size:1rem;margin:0 0 10px}.promotion-preview ul{margin:0;padding-left:20px}.promotion-preview li{color:#636e72;font-size:.9rem;margin:5px 0}table input[type=checkbox]{accent-color:#6c5ce7;cursor:pointer;height:18px;width:18px}@media (max-width:768px){.section-header{align-items:stretch;flex-direction:column;gap:15px}.bulk-edit-controls{flex-wrap:wrap;justify-content:center}.promotion-preview{max-height:150px}}.visibility-toggle{align-items:center;background:none;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;display:flex;font-size:1rem;height:35px;justify-content:center;margin:0 2px;transition:all .3s ease;width:35px}.visibility-toggle:hover{background-color:#f3f4f6;border-color:#d1d5db;transform:scale(1.1)}.visibility-toggle:active{transform:scale(.95)}.action-buttons{align-items:center;display:flex;gap:4px;justify-content:center}.action-buttons button{height:35px;min-width:35px}.registration-stats{align-items:center;display:flex;gap:20px;margin-left:auto}.stat-item{background:#007bff1a;border-radius:15px;color:#007bff;font-size:.9em;font-weight:500;padding:5px 10px}.registration-filters{align-items:center;display:flex;gap:10px;margin:20px 0}.filter-select{background:#fff;border:1px solid #ddd;border-radius:4px;font-size:14px;margin-left:10px;padding:8px 12px}.registration-container{background:#fff;border:1px solid #ddd;border-radius:8px;max-height:600px;overflow-y:auto}.registration-container table{border-collapse:collapse;width:100%}.registration-container td,.registration-container th{border-bottom:1px solid #eee;font-size:14px;padding:12px;text-align:left}.registration-container th{background:#f8f9fa;cursor:pointer;font-weight:600;position:sticky;top:0;-webkit-user-select:none;user-select:none;z-index:10}.registration-container th:hover{background:#e9ecef}.sort-indicator{color:#007bff;font-size:12px;margin-left:5px}.ip-address{background:#f8f9fa;border-radius:4px;color:#495057;font-family:monospace;font-size:13px;padding:4px 8px}.status-badge{border-radius:12px;font-size:12px;font-weight:500;letter-spacing:.5px;padding:4px 8px;text-transform:uppercase}.status-success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.status-failed{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.status-rate-limited{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}.status-pending{background:#d1ecf1;border:1px solid #bee5eb;color:#0c5460}.status-default{background:#e2e3e5;border:1px solid #d6d8db;color:#383d41}.failure-reason{color:#dc3545;font-size:13px;max-width:200px}.failure-reason,.user-agent{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-agent{color:#6c757d;font-family:monospace;font-size:12px;max-width:150px}@media (max-width:768px){.registration-stats{flex-direction:column;gap:10px;margin-left:0;margin-top:10px}.registration-filters{align-items:flex-start;flex-direction:column}.filter-select{margin-left:0;margin-top:5px}.registration-container{overflow-x:auto}.registration-container table{min-width:800px}.registration-container td,.registration-container th{font-size:12px;padding:8px}}.delete-registration-btn,.delete-user-btn{align-items:center;background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;height:32px;justify-content:center;min-width:40px;padding:6px 10px;transition:all .3s ease}.delete-registration-btn:hover,.delete-user-btn:hover{background:#c82333;transform:scale(1.05)}.delete-registration-btn:active,.delete-user-btn:active{transform:scale(.95)}.delete-registration-btn:disabled,.delete-user-btn:disabled{background:#6c757d;cursor:not-allowed;transform:none}table td:last-child{padding:8px;text-align:center}table th:last-child{text-align:center;width:80px}.confirmation-dialog .warning-text{background:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#dc3545;font-weight:500;line-height:1.5;margin:15px 0;padding:10px}.confirmation-dialog .warning-text br{margin-bottom:5px}.confirmation-buttons button:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.delete-registration-btn,.delete-user-btn{font-size:12px;height:28px;min-width:35px;padding:4px 8px}table th:last-child{width:60px}}@media (max-width:480px){.delete-registration-btn,.delete-user-btn{font-size:16px;height:24px;min-width:30px;padding:2px 6px}}.section-subtitle{background:#e8f5e8;border-left:4px solid #28a745;border-radius:4px;color:#666;display:inline-block;font-size:14px;font-style:italic;margin:5px 0 15px;padding:8px 12px}.section-subtitle:before{color:#28a745;content:"✓ ";font-weight:700}@media (max-width:768px){.section-subtitle{font-size:12px;margin:5px 0 10px;padding:6px 10px}}.account-controls{gap:20px}.account-controls,.role-filter,.role-filter label{align-items:center;display:flex}.role-filter label{color:#000;font-size:14px;font-weight:600;gap:8px}.role-filter .filter-select{background:#fff;border:1px solid #ddd;border-radius:4px;color:#000;font-size:14px;min-width:120px;padding:6px 12px}.create-account-btn{background-color:#28a745;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 20px;transition:all .3s ease}.create-account-btn:hover{background-color:#218838;transform:translateY(-2px)}.create-account-form{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin:20px 0;padding:20px}.create-account-form h3{color:#000;font-size:1.2rem;margin:0 0 20px}.form-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:20px}.form-group{display:flex;flex-direction:column}.form-group.full-width{grid-column:1/-1}.form-group label{color:#000;font-size:14px;font-weight:600;margin-bottom:5px}.form-group input,.form-group select,.form-group textarea{background:#fff;border:1px solid #ddd;border-radius:4px;color:#000;font-size:14px;padding:10px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.form-actions{border-top:1px solid #e9ecef;display:flex;gap:10px;justify-content:flex-end;padding-top:15px}.submit-btn{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .3s ease}.submit-btn:hover:not(:disabled){background-color:#0056b3}.submit-btn:disabled{background-color:#6c757d;cursor:not-allowed}.accounts-container{background:#fff;border:1px solid #ddd;border-radius:8px;margin-top:20px;overflow:hidden}.role-badge{border-radius:12px;font-size:12px;font-weight:500;letter-spacing:.5px;padding:4px 8px;text-transform:uppercase}.role-badge.student{background:#e3f2fd;border:1px solid #bbdefb;color:#1976d2}.role-badge.admin{background:#f3e5f5;border:1px solid #e1bee7;color:#7b1fa2}.status-badge.active{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.status-badge.inactive{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.account-actions{align-items:center;display:flex;gap:5px;justify-content:center}.cancel-edit-btn,.delete-account-btn,.edit-btn,.save-btn,.toggle-status-btn{align-items:center;background:none;border:1px solid #e5e7eb;border-radius:4px;cursor:pointer;display:flex;font-size:14px;height:32px;justify-content:center;transition:all .3s ease;width:32px}.edit-btn:hover{background-color:#e3f2fd;border-color:#2196f3}.save-btn{background-color:#4caf50;border-color:#4caf50;color:#fff}.save-btn:hover{background-color:#45a049}.cancel-edit-btn{background-color:#f44336;border-color:#f44336;color:#fff}.cancel-edit-btn:hover{background-color:#da190b}.toggle-status-btn.activate{background-color:#4caf50;border-color:#4caf50;color:#fff}.toggle-status-btn.activate:hover{background-color:#45a049}.toggle-status-btn.deactivate{background-color:#ff9800;border-color:#ff9800;color:#fff}.toggle-status-btn.deactivate:hover{background-color:#f57c00}.delete-account-btn{background-color:#dc3545;border-color:#dc3545;color:#fff}.delete-account-btn:hover{background-color:#c82333;transform:scale(1.05)}.edit-input,.edit-select{background:#fff;border:1px solid #007bff;border-radius:4px;color:#000;font-size:14px;padding:4px 8px;width:100%}.edit-input:focus,.edit-select:focus{box-shadow:0 0 0 2px #007bff40;outline:none}@media (max-width:768px){.form-grid{grid-template-columns:1fr}.form-actions{flex-direction:column;gap:10px}.cancel-btn,.submit-btn{width:100%}.account-actions{flex-wrap:wrap;gap:3px}.cancel-edit-btn,.delete-account-btn,.edit-btn,.save-btn,.toggle-status-btn{font-size:12px;height:28px;width:28px}}@media (max-width:480px){.create-account-form{padding:15px}.form-group label{font-size:13px}.form-group input,.form-group select,.form-group textarea{font-size:13px;padding:8px}}.qr-scanner{align-items:center;background:#f5f5f5;display:flex;flex-direction:column;height:500px;justify-content:center;margin:0 auto;max-width:600px;min-height:400px;width:100%}#reader{background:#fff!important;box-shadow:0 4px 12px #0000001a!important;height:500px!important;margin:0 auto!important;max-width:500px!important;overflow:hidden}#reader__scan_region{height:100%!important;width:100%!important}.scanner-instruction{color:#666;font-size:14px;margin-top:15px;padding:10px;text-align:center}.close-scanner{align-items:center;background:#ff4444e6;border-radius:50%;color:#fff;display:flex;font-size:20px;height:40px;justify-content:center;right:20px;top:20px;transition:background-color .3s ease;width:40px;z-index:1000}.close-scanner:hover{background:#c00}.confirmation-dialog{background:#fff;border-radius:10px;box-shadow:0 4px 15px #0003;left:50%;margin:0 15px;max-width:400px;padding:15px;position:absolute;top:50%;transform:translate(-50%,-50%);width:90%;z-index:1000}.confirmation-dialog h3{color:#333;margin-bottom:15px;text-align:center}.user-details{background:#f8f9fa;border-radius:8px;margin-bottom:20px;padding:15px}.user-details p{color:#666;margin:8px 0}.confirmation-buttons{display:flex;gap:10px;justify-content:center}.cancel-btn,.confirm-btn{border:none;border-radius:5px;cursor:pointer;font-weight:500;padding:8px 20px;transition:all .3s ease}.confirm-btn{background:#4caf50;color:#fff}.confirm-btn:hover{background:#45a049}.cancel-btn{background:#f44336;color:#fff}.cancel-btn:hover{background:#da190b}@media (max-width:768px){#reader{height:300px!important;max-width:90vw!important;width:300px!important}}.admin-dashboard{background-attachment:fixed;background-image:url(/static/media/bg.4aae7e0a4407814e7ee1.png);background-position:50%;background-size:cover;min-height:100vh;padding:20px}.admin-content{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:15px;box-shadow:0 8px 32px #0000001a;margin:0 auto;max-width:1200px;padding:20px}.admin-header{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;display:flex;justify-content:space-between;margin-bottom:30px;padding:20px}.admin-title{color:#2d3436;font-size:2.5rem;margin-bottom:30px;text-align:center}.create-event{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;margin-bottom:30px;padding:20px}.create-event h2{border-bottom:2px solid #f1f2f6;color:#2d3436;font-size:1.8rem;margin-bottom:20px;padding-bottom:10px}.create-event form{grid-gap:15px;display:grid;gap:15px}.create-event input,.create-event select{border:1px solid #ddd;border-radius:8px;font-size:1rem;padding:12px;transition:all .3s ease;width:100%}.create-event select{appearance:none;background-color:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:1em;cursor:pointer}.create-event input:focus,.create-event select:focus{border-color:#4a90e2;box-shadow:0 0 0 2px #4a90e233;outline:none}.create-event button{background-color:#4a90e2;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .3s ease}.create-event button:hover{background-color:#357abd;transform:translateY(-2px)}.events-list{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:20px}.events-list h2{border-bottom:2px solid #f1f2f6;color:#2d3436;font-size:1.8rem;margin-bottom:20px;padding-bottom:10px}.events-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));padding:20px 0}.event-card{background:#f8f9fa;border-radius:10px;padding:20px;transition:transform .3s ease}.event-card.event-finished{background:#f1f1f1;opacity:.8;position:relative}.finished-banner{background:#dc3545;border-radius:4px;color:#fff;font-size:.8rem;font-weight:700;padding:5px 10px;position:absolute;right:10px;top:10px}.event-card:hover{transform:translateY(-5px)}.event-card h3{color:#2d3436;font-size:1.2rem;margin-bottom:10px}.event-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.event-header h3{flex:1 1;margin:0}.semester-badge{border-radius:12px;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:4px 8px;text-transform:uppercase}.semester-badge.first-semester{background-color:#4a90e2;color:#fff}.semester-badge.second-semester{background-color:#2d3436;color:#fff}.event-card p{color:#636e72;font-size:.9rem;margin:5px 0}.event-actions{border-top:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:12px;margin-top:20px;padding-top:15px}.btn{border:none;border-radius:8px;box-shadow:0 2px 4px #0000001a;cursor:pointer;flex:1 1;font-size:.85rem;font-weight:600;min-width:120px;padding:10px 14px;text-align:center;transition:all .3s ease;white-space:nowrap}.btn:disabled{background-color:#ccc;cursor:not-allowed;transform:none}.btn-scan{background-color:#4a90e2;color:#fff}.btn-list{background-color:#6c5ce7;color:#fff}.btn-export{background-color:#00b894;color:#fff}.btn-toggle-visibility{background-color:#fdcb6e;color:#2d3436}.btn:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.btn-scan:hover{background-color:#357abd}.btn-list:hover{background-color:#5f3dc4}.btn-export:hover{background-color:#00a085}.btn-toggle-visibility:hover{background-color:#e17055;color:#fff}.scanner-modal{align-items:center;background:#000c;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:1000}.scanner-container{align-items:center;background:#fff;border-radius:15px;display:flex;flex-direction:column;max-width:500px;padding:20px;position:relative;width:100%}#reader{border-radius:10px!important;max-width:400px!important;min-height:400px!important;overflow:hidden!important}#reader video{max-width:100%!important;object-fit:cover!important}.close-scanner{background:none;border:none;color:#333;cursor:pointer;font-size:1.5rem;position:absolute;right:10px;top:10px}.attendees-modal{align-items:center;background:#000c;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:1000}.attendees-container{background:#fff;border-radius:15px;max-height:80vh;max-width:800px;overflow-y:auto;padding:20px;position:relative;width:90%}.close-attendees{background:none;border:none;color:#333;cursor:pointer;font-size:1.5rem;position:absolute;right:10px;top:10px}.attendee-item{background:#f8f9fa;border-radius:8px;margin-bottom:10px;padding:15px}.attendee-info h3{color:#2d3436;margin:0 0 10px}.attendee-info p{color:#636e72;margin:5px 0}@media (max-width:768px){.admin-content{padding:15px}.admin-header{flex-direction:column;gap:15px;text-align:center}.admin-title{font-size:2rem}.events-grid{grid-template-columns:1fr}.event-actions{flex-direction:column;gap:10px}.btn{flex:none;min-width:auto;width:100%}}@media (max-width:480px){.event-actions{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.btn{font-size:.8rem;padding:8px 10px}}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}.dashboard-header{align-items:center;background-color:#f8f9fa;display:flex;justify-content:space-between;margin-bottom:2rem;padding:1rem 2rem}.logout-button{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.5rem 1rem}#reader{background:#000;height:100vh!important;width:100%!important}.qr-scanner{background:#000;height:100vh;overflow:hidden;position:relative;width:100vw}.qr-scanner section{height:100vh!important}.qr-scanner video{object-fit:cover!important}.qr-viewfinder{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.qr-frame{border:2px solid #fff;border-radius:20px;box-shadow:0 0 0 100vmax #00000080;height:200px;position:relative;width:200px}.scanner-error,.scanner-loading{background:#000c;border-radius:10px;color:#fff;left:50%;padding:20px;position:fixed;text-align:center;top:50%;transform:translate(-50%,-50%)}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.bdc629cd.css.map*/