.login-page{justify-content:space-between;text-align:center;overflow:hidden}.login-bg-decoration{position:fixed;top:-40%;left:-20%;width:140%;height:100%;background:radial-gradient(ellipse at 30% 20%,rgba(0,212,255,.12) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(255,107,107,.08) 0%,transparent 50%);pointer-events:none;z-index:-1}.login-header{padding:var(--space-10) var(--space-5) var(--space-6)}.login-logo{width:80px;height:80px;margin:0 auto var(--space-4);display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--cyan-600) 0%,var(--cyan-500) 100%);border-radius:var(--radius-2xl);box-shadow:0 0 40px var(--cyan-glow),var(--shadow-lg)}.logo-icon{font-size:2.5rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.login-title{font-size:var(--text-4xl);margin-bottom:var(--space-2);letter-spacing:-.03em}.login-subtitle{color:var(--text-secondary);font-size:var(--text-lg)}.login-content{flex:1;display:flex;flex-direction:column;justify-content:center;padding:var(--space-6);max-width:400px;margin:0 auto;width:100%}.login-form{display:flex;flex-direction:column;gap:var(--space-6)}.login-form .input-group{text-align:left}.login-error{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);border-radius:var(--radius-lg);color:var(--coral-400);font-size:var(--text-sm)}.error-icon{font-size:var(--text-lg)}.btn-arrow{font-size:var(--text-xl);transition:transform var(--duration-normal) var(--ease-out)}.btn:hover:not(:disabled) .btn-arrow{transform:translate(4px)}.login-help{margin-top:var(--space-8);color:var(--text-muted);font-size:var(--text-sm)}.login-footer{padding:var(--space-6);color:var(--text-muted);font-size:var(--text-xs)}.dashboard-page{padding-bottom:var(--space-4)}.dashboard-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);color:var(--text-secondary)}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.header-user{display:flex;align-items:center;gap:var(--space-3)}.user-avatar{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--cyan-600) 0%,var(--cyan-500) 100%);border-radius:var(--radius-lg);font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);color:var(--navy-900)}.user-info{text-align:left}.user-name{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-1)}.user-details{font-size:var(--text-sm);color:var(--text-muted)}.logout-btn{padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.dashboard-content{flex:1;padding:var(--space-6) var(--space-5);display:flex;flex-direction:column;gap:var(--space-5);max-width:480px;margin:0 auto;width:100%}.dashboard-error{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);border-radius:var(--radius-lg);color:var(--coral-400);font-size:var(--text-sm)}.retry-btn{margin-left:auto;background:none;border:none;color:var(--coral-400);text-decoration:underline;cursor:pointer;font-size:var(--text-sm)}.no-event-card{text-align:center;padding:var(--space-10) var(--space-6)}.no-event-icon{font-size:3rem;margin-bottom:var(--space-4)}.no-event-card h3{margin-bottom:var(--space-2)}.no-event-card p{color:var(--text-secondary)}.event-card{position:relative;padding:var(--space-5);background:linear-gradient(135deg,var(--bg-card) 0%,var(--bg-elevated) 100%)}.event-badge{display:inline-block;padding:var(--space-1) var(--space-3);background:var(--primary-glow);color:var(--primary);font-size:var(--text-xs);font-weight:600;font-family:var(--font-display);border-radius:var(--radius-full);margin-bottom:var(--space-3);text-transform:uppercase;letter-spacing:.05em}.event-name{font-size:var(--text-2xl);margin-bottom:var(--space-1)}.event-date{color:var(--text-secondary)}.attendance-records{display:flex;flex-direction:column;gap:var(--space-3)}.record-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.record-icon{font-size:var(--text-xl)}.record-info{display:flex;flex-direction:column}.record-label{font-size:var(--text-sm);color:var(--text-secondary)}.record-time{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg)}.record-badge{margin-left:auto;padding:var(--space-1) var(--space-2);background:var(--warning-glow);color:var(--warning-500);font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-sm)}.action-buttons{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-2)}.action-btn{justify-content:flex-start;gap:var(--space-4);text-align:left;padding:var(--space-5) var(--space-6)}.action-icon{font-size:var(--text-2xl)}.action-content{display:flex;flex-direction:column;gap:var(--space-1)}.action-label{font-size:var(--text-lg)}.action-btn .status-badge{width:fit-content}.action-check{margin-left:auto;font-size:var(--text-2xl);color:var(--success-500)}.action-btn:disabled{background:var(--bg-elevated);color:var(--text-muted);box-shadow:none}.action-btn:disabled .action-icon{opacity:.5}.slot-times{text-align:center;color:var(--text-muted);font-size:var(--text-sm)}.slot-times p{margin-bottom:var(--space-1)}.dashboard-footer{padding:var(--space-4) var(--space-5);text-align:center}.refresh-btn{background:none;border:none;color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out)}.refresh-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.refresh-btn:active{transform:scale(.98)}.student-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2);margin-bottom:var(--space-2)}.student-stat-card{display:flex;flex-direction:column;align-items:center;padding:var(--space-3) var(--space-2);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);text-align:center;transition:transform .2s ease,border-color .2s ease}.student-stat-card:hover{transform:translateY(-2px);border-color:var(--primary)}.student-stat-card.success .student-stat-val{color:var(--success-500)}.student-stat-card.warning .student-stat-val{color:var(--warning-500)}.student-stat-card.danger .student-stat-val{color:var(--coral-400)}.student-stat-val{font-size:var(--text-xl);font-weight:700;color:var(--text-primary);font-family:var(--font-display)}.student-stat-lbl{font-size:10px;color:var(--text-muted);text-transform:uppercase;margin-top:2px}.quick-actions-section{margin-top:var(--space-2)}.quick-actions-section h3{font-size:var(--text-md);margin-bottom:var(--space-3);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.my-events-section{margin-top:var(--space-6);border-top:1px solid var(--border-subtle);padding-top:var(--space-6)}.my-events-section h3{font-size:var(--text-lg);margin-bottom:var(--space-4);font-weight:600;color:var(--text-primary)}.events-list{display:flex;flex-direction:column;gap:var(--space-3)}.event-item-card{padding:var(--space-4);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);display:flex;justify-content:space-between;align-items:center;transition:all .2s ease}.event-item-card:hover{border-color:var(--primary);transform:translate(4px);background:var(--bg-elevated)}.event-item-info h4{margin:0 0 4px;font-size:var(--text-md);color:var(--text-primary)}.event-item-date{font-size:var(--text-xs);color:var(--text-muted)}.event-status-pill{font-size:var(--text-xs);padding:2px 8px;border-radius:99px;font-weight:600}.event-status-pill.state-full{background:var(--success-glow);color:var(--success-500)}.event-status-pill.state-partial{background:var(--warning-glow);color:var(--warning-500)}.event-status-pill.state-absent{background:#ff6b6b1a;color:var(--coral-400)}.no-data{text-align:center;padding:var(--space-6);color:var(--text-muted);font-style:italic;font-size:var(--text-sm)}.collapsible-section{margin-top:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);overflow:hidden;background:var(--bg-card)}.collapsible-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);background:none;border:none;cursor:pointer;transition:background-color var(--duration-fast)}.collapsible-header:hover{background:var(--bg-elevated)}.collapsible-title{display:flex;align-items:center;gap:var(--space-3);font-weight:600;color:var(--text-primary);font-size:var(--text-md)}.collapsible-icon{transition:transform var(--duration-soft) var(--ease-out);color:var(--text-muted)}.collapsible-section.open .collapsible-icon{transform:rotate(180deg)}.collapsible-content{padding:0 var(--space-5) var(--space-5);max-height:0;overflow:hidden;transition:max-height .3s ease-out,padding .3s ease-out;opacity:0}.collapsible-section.open .collapsible-content{max-height:1000px;padding:0 var(--space-5) var(--space-5);opacity:1}.event-mini-list{display:flex;flex-direction:column}.event-mini-card{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle)}.event-mini-card:last-child{border-bottom:none}.event-mini-info{display:flex;flex-direction:column;gap:2px}.event-mini-name{font-weight:500;color:var(--text-primary);font-size:var(--text-sm)}.event-mini-date{font-size:var(--text-xs);color:var(--text-muted)}.state-badge{font-size:10px;padding:2px 6px;border-radius:var(--radius-full);font-weight:600}.state-badge.state-full{background:var(--success-glow);color:var(--success-500)}.state-badge.state-partial{background:var(--warning-glow);color:var(--warning-500)}.state-badge.state-absent{background:#ff6b6b1a;color:var(--coral-400)}.attendance-flow-page{background:var(--navy-950);min-height:100vh;display:flex;flex-direction:column}.flow-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.back-btn{background:none;border:none;color:var(--text-secondary);font-size:var(--text-base);cursor:pointer;padding:var(--space-2)}.back-btn:hover:not(:disabled){color:var(--text-primary)}.back-btn:disabled{opacity:.5;cursor:not-allowed}.flow-title{font-size:var(--text-lg);font-weight:600}.flow-spacer{width:48px}.flow-progress{padding:var(--space-6) var(--space-5);text-align:center}.progress-steps{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-4)}.progress-step{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:2px solid var(--border-default);border-radius:50%;font-size:var(--text-lg);opacity:.4;transition:all var(--duration-normal) var(--ease-out)}.progress-step.active{opacity:1;border-color:var(--primary);box-shadow:0 0 12px var(--primary-glow)}.progress-line{width:24px;height:2px;background:var(--border-default)}.progress-label{color:var(--text-secondary);font-size:var(--text-sm)}.flow-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-4) var(--space-5);position:relative}.flow-init{text-align:center}.init-icon{font-size:4rem;margin-bottom:var(--space-6)}.flow-init h2{font-size:var(--text-2xl);margin-bottom:var(--space-2)}.flow-init p{color:var(--text-secondary);margin-bottom:var(--space-8)}.camera-container{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:var(--space-6)}.video-wrapper{position:relative;width:100%;max-height:50vh;aspect-ratio:3/4;border-radius:var(--radius-2xl);overflow:hidden;background:#000;box-shadow:var(--shadow-lg),0 0 40px #00d4ff1a}.camera-video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.face-guide{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.face-oval{width:250px;height:250px;border:3px dashed var(--cyan-400);border-radius:50%;opacity:.8;animation:pulse 2s ease-in-out infinite;display:flex;align-items:center;justify-content:center}.captured-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.flow-error{padding:var(--space-3) var(--space-4);background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);border-radius:var(--radius-lg);color:var(--coral-400);font-size:var(--text-sm);text-align:center}.camera-actions{display:flex;flex-direction:column;gap:var(--space-3);width:100%}.face-status-badge{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;text-align:center;margin-bottom:var(--space-2)}.face-status-badge.success{background:#2ed5731a;color:#2ed573;border:1px solid rgba(46,213,115,.3)}.face-status-badge.error{background:#ff47571a;color:#ff4757;border:1px solid rgba(255,71,87,.3)}.capture-btn{width:100%;max-width:300px}.capture-icon{font-size:var(--text-2xl);margin-right:var(--space-2)}.range-check-state{text-align:center;width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:var(--space-5)}.range-status-icon{font-size:4rem;width:100px;height:100px;background:var(--bg-elevated);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-2);transition:all .5s ease}.range-status-icon.success{background:var(--success-glow);box-shadow:0 0 30px var(--success-glow)}.range-status-icon.pending{animation:pulse 2s infinite}.location-details{background:var(--bg-elevated);padding:var(--space-4);border-radius:var(--radius-xl);width:100%;color:var(--text-secondary);font-size:var(--text-sm);display:flex;justify-content:space-around}.location-error{color:var(--coral-400);font-size:var(--text-sm);background:#ff6b6b1a;padding:var(--space-3);border-radius:var(--radius-lg);width:100%}.range-actions{display:flex;flex-direction:column;gap:var(--space-3);width:100%}.processing-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);text-align:center}.processing-state h3{color:var(--text-secondary);font-weight:500}.success-state,.error-state{text-align:center;padding:var(--space-8)}.success-icon,.error-icon{font-size:5rem;margin-bottom:var(--space-6)}.success-state h2,.error-state h2{font-size:var(--text-2xl);margin-bottom:var(--space-2)}.success-state p,.error-state p{color:var(--text-secondary);margin-bottom:var(--space-8);max-width:300px}.error-actions{display:flex;flex-direction:column;gap:var(--space-3);width:100%;max-width:300px}.permission-help{background:#00d4ff0d;border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-4);margin:var(--space-4) 0;text-align:left;width:100%;max-width:340px}.permission-help h3{font-size:var(--text-base);color:var(--cyan-400);margin-bottom:var(--space-2)}.permission-help ul{list-style:none;padding:0;margin-bottom:var(--space-3)}.permission-help li{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-2);padding-left:var(--space-5);position:relative}.permission-help li:before{content:"•";position:absolute;left:0;color:var(--primary)}.help-tip{font-size:var(--text-xs)!important;color:var(--text-muted)!important;font-style:italic;margin:0!important}.error-msg{color:var(--coral-400);font-size:var(--text-sm);margin-bottom:var(--space-2);max-width:300px}@media(max-height:700px){.init-icon,.success-icon,.error-icon{font-size:3rem;margin-bottom:var(--space-4)}.flow-progress{padding:var(--space-4) var(--space-5)}.video-wrapper{max-height:40vh}.permission-help{margin:var(--space-2) 0;padding:var(--space-3)}}.student-group-selector{display:flex;flex-direction:column;gap:var(--space-4)}.selector-controls{display:flex;gap:var(--space-4);align-items:center}.group-search{flex:1;padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);background:var(--navy-900);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--text-primary);transition:all var(--duration-fast)}.group-search:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}.group-type-filter{padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);background:var(--navy-900);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--text-primary);cursor:pointer}.group-type-filter:focus{border-color:var(--primary)}.selected-summary{padding:var(--space-3) var(--space-4);background:#00d4ff1a;border:1px solid rgba(0,212,255,.2);color:var(--cyan-300);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:500}.groups-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:400px;overflow-y:auto;padding:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--navy-900)}.groups-list::-webkit-scrollbar{width:6px}.groups-list::-webkit-scrollbar-thumb{background:var(--navy-600);border-radius:3px}.group-item{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-4);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast)}.group-item:hover{border-color:var(--primary);background:var(--bg-elevated);transform:translate(4px)}.group-item input[type=checkbox]{width:18px;height:18px;margin-top:3px;cursor:pointer;accent-color:var(--primary)}.group-info{flex:1}.group-name{font-weight:600;font-size:var(--text-base);color:var(--text-primary);margin-bottom:var(--space-1)}.group-meta{display:flex;gap:var(--space-3);font-size:var(--text-xs);color:var(--text-secondary);align-items:center}.group-type{padding:2px 8px;background:var(--navy-700);color:var(--cyan-300);border-radius:4px;font-size:.7rem;text-transform:uppercase;font-weight:700;letter-spacing:.05em}.group-count{font-weight:500;color:var(--text-primary)}.group-description{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);font-style:italic}.no-groups,.group-selector-loading{padding:var(--space-8);text-align:center;color:var(--text-muted);font-style:italic}.location-picker{display:flex;flex-direction:column;gap:var(--space-6)}.location-controls{display:flex;gap:var(--space-4);flex-wrap:wrap}.use-current-location-btn{padding:var(--space-3) var(--space-6);background:var(--bg-elevated);color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--duration-fast);display:flex;align-items:center;gap:var(--space-2)}.use-current-location-btn:hover:not(:disabled){background:var(--primary);color:var(--navy-900);box-shadow:0 0 15px var(--primary-glow)}.use-current-location-btn:disabled{opacity:.5;cursor:not-allowed;border-color:var(--border-subtle);color:var(--text-muted)}.manual-coords{display:flex;gap:var(--space-4);flex:1}.coord-input{display:flex;flex-direction:column;gap:var(--space-2);flex:1}.coord-input label{font-weight:500;font-size:var(--text-sm);color:var(--text-secondary)}.coord-input input{padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);background:var(--navy-900);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--text-body);transition:all var(--duration-fast)}.coord-input input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}.location-error{padding:var(--space-4);background:#ff6b6b1a;border:1px solid var(--coral-500);border-radius:var(--radius-lg);color:var(--coral-500);font-size:var(--text-sm)}.radius-control{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--navy-900);border-radius:var(--radius-lg);border:1px solid var(--border-subtle)}.radius-control label{font-weight:600;font-size:var(--text-sm);color:var(--text-primary);display:flex;justify-content:space-between}.radius-control label strong{color:var(--primary)}.radius-control input[type=range]{width:100%;height:6px;border-radius:3px;background:var(--navy-700);outline:none;-webkit-appearance:none;cursor:pointer}.radius-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--primary);box-shadow:0 0 10px var(--primary-glow);transition:transform var(--duration-fast)}.radius-control input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.1)}.radius-marks{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--text-muted);padding:0 2px}.location-preview{padding:var(--space-5);background:var(--navy-900);border:1px solid var(--primary);border-radius:var(--radius-lg);box-shadow:inset 0 0 20px #00d4ff0d}.preview-header{font-weight:700;margin-bottom:var(--space-3);color:var(--cyan-300);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase}.preview-coords{font-size:var(--text-lg);font-family:var(--font-display);font-weight:600;margin-bottom:var(--space-2);color:var(--text-primary)}.preview-link a{color:var(--text-secondary);text-decoration:none;font-size:var(--text-sm);display:inline-flex;align-items:center;gap:var(--space-1);transition:color var(--duration-fast)}.preview-link a:hover{color:var(--primary)}.file-uploader{display:flex;flex-direction:column;gap:var(--space-4)}.upload-zone{position:relative;border:2px dashed var(--border-default);border-radius:var(--radius-xl);padding:var(--space-8);text-align:center;transition:all var(--duration-normal);background:var(--navy-900);cursor:pointer}.upload-zone:hover{border-color:var(--primary);background:#00d4ff0d}.upload-zone.drag-active{border-color:var(--primary);background:#00d4ff1a;transform:scale(1.01);box-shadow:0 0 20px #00d4ff33}.file-input{position:absolute;width:0;height:0;opacity:0}.upload-label{cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.upload-icon{font-size:3rem;filter:drop-shadow(0 0 10px rgba(0,0,0,.5))}.upload-text{font-size:var(--text-base);color:var(--text-secondary)}.upload-text strong{color:var(--primary)}.upload-hint{font-size:var(--text-sm);color:var(--text-muted)}.upload-error{padding:var(--space-4);background:#ff6b6b1a;border:1px solid var(--coral-500);border-radius:var(--radius-lg);color:var(--coral-500);font-size:var(--text-sm);display:flex;align-items:center;gap:var(--space-2)}.upload-preview{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:#22c55e1a;border:1px solid var(--success-500);border-radius:var(--radius-lg)}.preview-icon{font-size:1.5rem;color:var(--success-500);background:#22c55e33;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center}.preview-info{flex:1}.preview-filename{font-weight:600;font-size:var(--text-sm);color:var(--text-primary)}.preview-size{font-size:var(--text-xs);color:var(--text-secondary)}.upload-requirements{padding:var(--space-4);background:var(--navy-900);border-radius:var(--radius-lg);font-size:var(--text-sm);border:1px solid var(--border-subtle)}.upload-requirements strong{display:block;margin-bottom:var(--space-2);color:var(--text-primary)}.upload-requirements ul{margin:0;padding-left:var(--space-5)}.upload-requirements li{margin-bottom:var(--space-1);color:var(--text-muted)}.column-mapper{padding:var(--space-4);background:var(--bg-elevated);border-radius:var(--radius-lg);border:1px solid var(--border-default);margin-top:var(--space-4)}.column-mapper h3{font-size:var(--text-lg);margin-bottom:var(--space-1)}.mapper-hint{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-5)}.mapping-table{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-6)}.mapping-row{display:grid;grid-template-columns:1fr 1.2fr;align-items:center;gap:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.field-label{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.required-star{color:var(--coral-500)}.mapper-select{width:100%;padding:var(--space-2);background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm)}.mapper-select:focus{border-color:var(--primary);outline:none}.mapper-footer{display:flex;justify-content:flex-end;gap:var(--space-3)}.manual-enrollment-form{display:flex;flex-direction:column;gap:var(--space-4)}.enroll-header h3{font-size:var(--text-lg);margin-bottom:4px}.enroll-header p{font-size:var(--text-sm);color:var(--text-secondary)}.enroll-inputs{background:var(--bg-card);padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--border-default);display:flex;flex-direction:column;gap:var(--space-3)}.input-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}@media(max-width:640px){.input-row{grid-template-columns:1fr}}.manual-list-container{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-card);overflow:hidden}.list-header{background:var(--bg-elevated);padding:var(--space-2) var(--space-4);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);border-bottom:1px solid var(--border-default)}.list-empty{padding:var(--space-8);text-align:center;color:var(--text-secondary);font-size:var(--text-sm)}.manual-list{max-height:300px;overflow-y:auto}.manual-student-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);transition:background .2s ease}.manual-student-item:last-child{border-bottom:none}.manual-student-item:hover{background:var(--bg-elevated)}.student-details{display:flex;flex-direction:column;gap:2px}.student-main{display:flex;align-items:center;gap:var(--space-2)}.student-erp{font-size:var(--text-xs);background:var(--bg-elevated);padding:2px 6px;border-radius:4px;color:var(--primary);font-family:var(--font-mono)}.student-email{font-size:var(--text-xs);color:var(--text-secondary)}.remove-btn{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;font-size:var(--text-lg);padding:var(--space-1);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.remove-btn:hover{background:#dc26261a;color:#ef4444}.create-event-page{max-width:100%}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-8)}.page-header h1{font-size:var(--text-2xl);color:var(--text-primary);margin:0}.event-form{display:flex;flex-direction:column;gap:var(--space-6);padding-bottom:var(--space-12)}.form-section h2{font-size:var(--text-xl);margin:0 0 var(--space-6) 0;padding-bottom:var(--space-3);border-bottom:2px solid var(--border-subtle);color:var(--text-primary)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6)}.input-group.full-width{grid-column:1 / -1}.slots-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6)}.slot-group{background:var(--bg-elevated);padding:var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--border-subtle)}.slot-group h3{margin:0 0 var(--space-4) 0;font-size:var(--text-lg);color:var(--primary)}.time-inputs{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.participant-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-6);padding:var(--space-1);background:var(--bg-elevated);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);width:fit-content}.tab-btn{padding:var(--space-3) var(--space-6);background:none;border:none;font-weight:600;font-family:var(--font-display);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--duration-fast)}.tab-btn:hover{color:var(--text-primary);background:#ffffff0d}.tab-btn.active{color:var(--navy-900);background:var(--primary);box-shadow:var(--shadow-sm)}.tab-content{min-height:200px;background:var(--bg-elevated);padding:var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--border-subtle)}.individual-selector{padding:var(--space-12);text-align:center;color:var(--text-muted)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-4);margin-top:var(--space-4);padding-top:var(--space-6);border-top:1px solid var(--border-subtle)}.modal-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}.create-event-modal{background:var(--bg-card, #1a1a2e);border-radius:16px;width:100%;max-width:900px;max-height:90vh;overflow-y:auto;padding:var(--space-6);box-shadow:0 20px 60px #00000080;animation:slideUp .3s ease}.create-event-modal .page-header{position:sticky;top:0;background:var(--bg-card, #1a1a2e);padding-bottom:var(--space-4);margin-bottom:var(--space-4);z-index:10}.create-event-modal .page-header .btn{font-size:1.5rem;padding:.25rem .75rem;min-width:auto}.create-event-modal .form-section{margin-bottom:var(--space-4)}.create-event-modal .form-section h2{font-size:var(--text-lg);margin-bottom:var(--space-4)}@media(max-width:768px){.create-event-modal{max-height:95vh;margin:.5rem;padding:var(--space-4)}}.hint-text{font-size:var(--text-sm);color:var(--text-muted);font-weight:400;margin-left:var(--space-2)}.edit-mode-hint{background:#00d4ff0d;border-left:3px solid var(--primary);padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-6);color:var(--text-secondary);font-size:var(--text-sm);line-height:1.5}.page-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-8)}.header-content h1{margin:0 0 var(--space-2) 0;font-size:var(--text-2xl);color:var(--text-primary)}.subtitle{color:var(--text-secondary);margin:0;font-size:var(--text-base)}.success-banner{background:#22c55e1a;color:var(--success-500);border:1px solid var(--success-500);padding:var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-6);font-weight:600;text-align:center;box-shadow:0 0 15px #22c55e33}.groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-6);padding-bottom:var(--space-12)}.group-card{background:var(--bg-card);padding:var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);transition:all var(--duration-normal);position:relative;overflow:hidden}.group-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg),0 0 20px #00d4ff1a;border-color:var(--primary);background:var(--bg-elevated)}.group-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.group-badge{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.badge-course{background:#00d4ff1a;color:var(--cyan-300)}.badge-semester{background:#22c55e1a;color:var(--success-500)}.badge-society{background:#a855f71a;color:#c084fc}.badge-custom{background:#f59e0b1a;color:var(--warning-500)}.group-actions .btn-icon{background:none;border:none;opacity:.6;cursor:pointer;font-size:var(--text-lg);transition:all var(--duration-fast);padding:var(--space-2);border-radius:var(--radius-md)}.group-actions .btn-icon:hover{opacity:1;background:#ff6b6b1a;transform:scale(1.1)}.group-card h3{margin:0 0 var(--space-2) 0;font-size:var(--text-xl);color:var(--text-primary)}.group-desc{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-6);height:3em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.group-stats{display:flex;gap:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.stat{display:flex;flex-direction:column}.stat-value{font-weight:700;font-size:var(--text-lg);color:var(--text-primary);font-family:var(--font-display)}.stat-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.empty-state{text-align:center;padding:var(--space-12);background:var(--bg-card);border-radius:var(--radius-xl);color:var(--text-secondary);border:1px dashed var(--border-default)}.empty-icon{font-size:4rem;margin-bottom:var(--space-4);opacity:.3}.modal-overlay{position:fixed;inset:0;background:#030712cc;display:flex;justify-content:center;align-items:center;z-index:var(--z-modal);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.modal-content{background:var(--navy-800);border-radius:var(--radius-xl);width:90%;max-width:550px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-2xl),0 0 40px #00000080;border:1px solid var(--border-subtle)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-6);border-bottom:1px solid var(--border-subtle);background:var(--navy-900)}.modal-header h2{margin:0;font-size:var(--text-xl);color:var(--text-primary)}.close-btn{background:none;border:none;font-size:var(--text-xl);cursor:pointer;color:var(--text-muted);transition:color var(--duration-fast)}.close-btn:hover{color:var(--text-primary)}.modal-body{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6)}.form-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-2);padding:var(--space-1);background:var(--navy-900);border-radius:var(--radius-lg);width:fit-content;border:1px solid var(--border-subtle)}.form-tabs .tab-btn{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);border-radius:var(--radius-md);border:none;background:none;color:var(--text-secondary);cursor:pointer;font-weight:600;transition:all var(--duration-fast)}.form-tabs .tab-btn:hover{color:var(--text-primary)}.form-tabs .tab-btn.active{background:var(--primary);color:var(--navy-900);box-shadow:var(--shadow-sm)}.import-section{margin-top:var(--space-2);padding:var(--space-4);background:var(--bg-elevated);border-radius:var(--radius-lg);border:1px solid var(--border-subtle)}.modal-footer{padding:var(--space-6);border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end;gap:var(--space-4);background:var(--navy-900);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.event-list-page{padding:var(--space-6)}.events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-6);margin-top:var(--space-6)}.event-card{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,border-color .2s ease}.event-card:hover{transform:translateY(-4px);border-color:var(--primary)}.event-card-header{padding:var(--space-4);display:flex;justify-content:space-between;align-items:center;background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle)}.status-badge{font-size:var(--text-xs);font-weight:700;padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.05em}.status-badge.draft{background:#9ca3af1a;color:#9ca3af;border:1px solid rgba(156,163,175,.2)}.status-badge.published{background:#22c55e1a;color:#22c55e;border:1px solid rgba(34,197,94,.2)}.status-badge.completed{background:#3b82f61a;color:#3b82f6;border:1px solid rgba(59,130,246,.2)}.event-date{font-size:var(--text-xs);color:var(--text-secondary);font-weight:500}.event-card-body{padding:var(--space-5);flex-grow:1}.event-name{font-size:var(--text-xl);font-weight:700;margin-bottom:var(--space-2);color:var(--text-primary)}.participant-count{font-size:var(--text-sm);color:var(--text-secondary);display:flex;align-items:center;gap:6px}.event-card-actions{padding:var(--space-4);display:flex;gap:var(--space-2);background:var(--bg-elevated);border-top:1px solid var(--border-subtle)}.no-events-card{grid-column:1 / -1;text-align:center;padding:var(--space-12);background:var(--bg-card);border:2px dashed var(--border-default);border-radius:var(--radius-xl);display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.no-events-card .icon{font-size:48px;margin-bottom:var(--space-2)}.no-events-card h3{font-size:var(--text-2xl);font-weight:700}.no-events-card p{color:var(--text-secondary);max-width:400px;margin-bottom:var(--space-4)}.loader-container{display:flex;justify-content:center;align-items:center;height:300px}.btn.btn-outline{background:transparent;border:1px solid var(--border-default);color:var(--text-secondary)}.btn.btn-outline:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-glow)}.modal-overlay{position:fixed;inset:0;background:#0009;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}.student-list-modal{background:var(--bg-card, #1a1a2e);border-radius:16px;width:100%;max-width:900px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0006;animation:slideUp .3s ease}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .1))}.modal-header h2{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary, #fff)}.close-btn{background:none;border:none;font-size:1.75rem;color:var(--text-secondary, #888);cursor:pointer;padding:0;line-height:1;transition:color .2s}.close-btn:hover{color:var(--text-primary, #fff)}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.modal-loading,.modal-error,.modal-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;gap:1rem;color:var(--text-secondary, #888)}.modal-error{color:#ef4444}.modal-empty span,.modal-error span{font-size:2rem}.student-count{font-size:.875rem;color:var(--text-secondary, #888);margin-bottom:1rem}.student-table-wrapper{overflow-x:auto;border-radius:8px;border:1px solid var(--border-color, rgba(255, 255, 255, .1))}.student-table{width:100%;border-collapse:collapse;font-size:.875rem}.student-table th,.student-table td{padding:.75rem 1rem;text-align:left;white-space:nowrap}.student-table th{background:var(--bg-elevated, #252542);color:var(--text-secondary, #888);font-weight:500;text-transform:uppercase;font-size:.75rem;letter-spacing:.05em;position:sticky;top:0}.student-table tbody tr{border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .05));transition:background .15s}.student-table tbody tr:hover{background:var(--bg-elevated, rgba(255, 255, 255, .03))}.student-table tbody tr:last-child{border-bottom:none}.erp-cell{font-family:monospace;font-weight:500}.name-cell{font-weight:500;color:var(--text-primary, #fff)}.time-cell{display:flex;align-items:center;gap:.5rem}.source-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;background:var(--accent-secondary, #6366f1);color:#fff;font-size:.625rem;font-weight:600}.status-pill{display:inline-block;padding:.25rem .75rem;border-radius:999px;font-size:.75rem;font-weight:500}.status-pill.state-present{background:#22c55e26;color:#22c55e}.status-pill.state-partial{background:#f59e0b26;color:#f59e0b}.status-pill.state-absent{background:#ef444426;color:#ef4444}@media(max-width:640px){.student-list-modal{max-height:90vh;margin:.5rem}.modal-header,.modal-body{padding:1rem}.student-table th,.student-table td{padding:.5rem .75rem}}.admin-layout{min-height:100vh;display:flex;flex-direction:column}.admin-nav{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);background:var(--bg-card);border-bottom:1px solid var(--border-subtle)}.nav-brand{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-display);font-weight:700;font-size:var(--text-lg)}.brand-icon{font-size:var(--text-xl)}.nav-links{display:flex;list-style:none;gap:var(--space-1)}.nav-links a{display:block;padding:var(--space-2) var(--space-4);color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out)}.nav-links a:hover{color:var(--text-primary);background:var(--bg-elevated)}.nav-links a.active{color:var(--primary);background:var(--primary-glow)}.logout-btn{background:none;border:1px solid var(--border-default);color:var(--text-secondary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.logout-btn:hover{border-color:var(--coral-500);color:var(--coral-500)}.admin-main{flex:1;padding:var(--space-8);max-width:1200px;width:100%;margin:0 auto}.admin-login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--bg-base)}.admin-login-card{width:100%;max-width:400px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-8)}.login-header{text-align:center;margin-bottom:var(--space-8)}.login-header h1{font-size:var(--text-2xl);margin-bottom:var(--space-2)}.login-header p{color:var(--text-secondary)}.login-form{display:flex;flex-direction:column;gap:var(--space-5)}.login-error{padding:var(--space-3);background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);border-radius:var(--radius-md);color:var(--coral-400);font-size:var(--text-sm);text-align:center}.admin-dashboard h1{font-size:var(--text-3xl);margin-bottom:var(--space-2)}.welcome{color:var(--text-secondary);margin-bottom:var(--space-8)}.event-banner{display:none}.dashboard-header-alt{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-8)}.dash-date{color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;padding:var(--space-2) var(--space-4);background:var(--bg-elevated);border-radius:var(--radius-full);border:1px solid var(--border-subtle)}.quick-view-section{margin-bottom:var(--space-10)}.section-header{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-5)}.section-header h3{font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.section-tag{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--primary);background:var(--primary-glow);padding:2px 8px;border-radius:4px}.quick-stats-carousel{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.event-summary-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-5);transition:all var(--duration-normal) var(--ease-out);position:relative;overflow:hidden}.event-summary-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--primary);opacity:.7}.event-summary-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px -10px #0000004d;border-color:var(--primary-light)}.summary-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-4)}.summary-header h4{font-size:var(--text-md);font-weight:600;max-width:70%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-date{font-size:var(--text-xs);color:var(--text-muted)}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2)}.mini-stat{display:flex;flex-direction:column;align-items:center;padding:var(--space-2);background:var(--bg-elevated);border-radius:var(--radius-md)}.mini-stat .val{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg)}.mini-stat .lbl{font-size:10px;color:var(--text-muted);text-transform:uppercase}.mini-stat.success .val{color:var(--success-500)}.mini-stat.warning .val{color:var(--warning-500)}.mini-stat.danger .val{color:var(--coral-500)}.mini-stat.clickable{cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.mini-stat.clickable:hover{transform:scale(1.05);background:var(--bg-card);box-shadow:0 4px 12px #0003}.dashboard-actions-section{margin-top:var(--space-4)}.dashboard-actions-section p{color:var(--text-muted);font-size:var(--text-sm);margin-top:-4px}.premium-action-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-4);margin-top:var(--space-6)}.premium-action-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);text-decoration:none;color:var(--text-primary);transition:all var(--duration-normal) var(--ease-out);position:relative;z-index:1}.premium-action-card:hover{transform:scale(1.02);border-color:var(--primary);box-shadow:0 8px 16px -4px #0003}.action-icon-bg{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border-default)}.action-text{display:flex;flex-direction:column}.action-text strong{font-size:var(--text-md)}.action-text span{font-size:var(--text-xs);color:var(--text-muted)}.premium-action-card.create .action-icon-bg{background:#7c3aed1a;color:#a78bfa}.premium-action-card.slots .action-icon-bg{background:#3b82f61a;color:#60a5fa}.premium-action-card.manual .action-icon-bg{background:#10b9811a;color:#34d399}.premium-action-card.groups .action-icon-bg{background:#f59e0b1a;color:#fbbf24}.premium-action-card.export .action-icon-bg{background:#ec48991a;color:#f472b6}.premium-action-card.students .action-icon-bg{background:#f43f5e1a;color:#fb7185}.stats-skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.skeleton-card{height:120px;background:var(--bg-elevated);border-radius:var(--radius-xl);animation:pulse 1.5s infinite ease-in-out}@keyframes pulse{0%{opacity:.6}50%{opacity:.3}to{opacity:.6}}.no-event{text-align:center;padding:var(--space-10);color:var(--text-secondary)}.no-event .btn{margin-top:var(--space-6)}.slot-manager h1,.manual-attendance h1,.export-data h1{font-size:var(--text-2xl);margin-bottom:var(--space-2)}.slot-manager>p,.manual-attendance>p,.export-data>p{color:var(--text-secondary);margin-bottom:var(--space-8)}.slots-list{display:flex;flex-direction:column;gap:var(--space-4)}.slot-card{display:flex;align-items:center;justify-content:space-between;padding:var(--space-6);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl)}.slot-info h3{margin-bottom:var(--space-1)}.slot-info p{color:var(--text-secondary);font-size:var(--text-sm)}.slot-status{display:flex;align-items:center;gap:var(--space-4)}.status-indicator{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:700}.status-indicator.open{background:var(--success-glow);color:var(--success-500)}.status-indicator.closed{background:#ff6b6b26;color:var(--coral-500)}.manual-form{max-width:400px;display:flex;flex-direction:column;gap:var(--space-5)}.type-toggle{display:flex;gap:var(--space-2)}.toggle-btn{flex:1;padding:var(--space-3) var(--space-4);background:var(--bg-elevated);border:2px solid var(--border-default);border-radius:var(--radius-lg);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.toggle-btn:hover{border-color:var(--primary)}.toggle-btn.active{border-color:var(--primary);background:var(--primary-glow);color:var(--text-primary)}.result-message{padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm)}.result-message.success{background:var(--success-glow);color:var(--success-500)}.result-message.error{background:#ff6b6b26;color:var(--coral-500)}.access-denied{padding:var(--space-8);text-align:center;color:var(--text-muted)}.export-card{display:flex;align-items:center;justify-content:space-between;padding:var(--space-6);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl)}@media(max-width:768px){.admin-nav{flex-direction:column;gap:var(--space-4)}.nav-links{flex-wrap:wrap;justify-content:center}.admin-main{padding:var(--space-4)}.stats-grid{grid-template-columns:repeat(2,1fr)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{min-height:100vh;min-height:100dvh;font-family:DM Sans,system-ui,sans-serif;font-weight:400;line-height:1.6;color:var(--text-primary);background:var(--bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}#root{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}:root{--navy-950: #030712;--navy-900: #0A1628;--navy-800: #111D35;--navy-700: #1A2A4A;--navy-600: #243B61;--navy-500: #324D7A;--navy-400: #4A6899;--navy-300: #7090BC;--navy-200: #A3BAD8;--navy-100: #D1DFEE;--navy-50: #EEF3F9;--cyan-500: #00D4FF;--cyan-400: #33DDFF;--cyan-300: #66E6FF;--cyan-600: #00A8CC;--cyan-glow: rgba(0, 212, 255, .3);--coral-500: #FF6B6B;--coral-400: #FF8585;--coral-600: #E85555;--coral-glow: rgba(255, 107, 107, .3);--success-500: #22C55E;--success-glow: rgba(34, 197, 94, .3);--warning-500: #F59E0B;--warning-glow: rgba(245, 158, 11, .3);--bg-base: var(--navy-900);--bg-card: var(--navy-800);--bg-elevated: var(--navy-700);--bg-glass: rgba(26, 42, 74, .7);--text-primary: #FFFFFF;--text-secondary: var(--navy-200);--text-muted: var(--navy-400);--border-subtle: var(--navy-700);--border-default: var(--navy-600);--primary: var(--cyan-500);--primary-hover: var(--cyan-400);--primary-glow: var(--cyan-glow);--accent: var(--coral-500);--accent-hover: var(--coral-400);--accent-glow: var(--coral-glow);--font-display: "Outfit", system-ui, sans-serif;--font-body: "DM Sans", system-ui, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-glow: 0 0 30px var(--primary-glow);--shadow-glow-lg: 0 0 50px var(--primary-glow);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s;--z-base: 0;--z-dropdown: 100;--z-modal: 200;--z-toast: 300}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.2;color:var(--text-primary)}.text-display{font-family:var(--font-display);font-weight:800;letter-spacing:-.02em}.text-gradient{background:linear-gradient(135deg,var(--cyan-400) 0%,var(--cyan-500) 50%,var(--cyan-300) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-display);font-weight:600;font-size:var(--text-base);padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--duration-normal) var(--ease-out);position:relative;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:manipulation}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:linear-gradient(135deg,var(--cyan-600) 0%,var(--cyan-500) 100%);color:var(--navy-900);box-shadow:var(--shadow-md),0 0 20px var(--cyan-glow)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--cyan-500) 0%,var(--cyan-400) 100%);box-shadow:var(--shadow-lg),0 0 30px var(--cyan-glow);transform:translateY(-2px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-default)}.btn-secondary:hover:not(:disabled){background:var(--navy-600);border-color:var(--primary)}.btn-danger{background:linear-gradient(135deg,var(--coral-600) 0%,var(--coral-500) 100%);color:#fff;box-shadow:var(--shadow-md),0 0 20px var(--coral-glow)}.btn-danger:hover:not(:disabled){box-shadow:var(--shadow-lg),0 0 30px var(--coral-glow);transform:translateY(-2px)}.btn-lg{font-size:var(--text-lg);padding:var(--space-4) var(--space-8);border-radius:var(--radius-xl)}.btn-xl{font-size:var(--text-xl);padding:var(--space-5) var(--space-10);border-radius:var(--radius-2xl);min-height:64px}.btn-full{width:100%}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-6)}.card-glass{background:var(--bg-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-xl);padding:var(--space-6)}.card-elevated{box-shadow:var(--shadow-lg)}.input-group{display:flex;flex-direction:column;gap:var(--space-2)}.input-label{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.input{font-family:var(--font-body);font-size:var(--text-lg);padding:var(--space-4) var(--space-5);background:var(--bg-elevated);border:2px solid var(--border-default);border-radius:var(--radius-lg);color:var(--text-primary);transition:all var(--duration-normal) var(--ease-out);width:100%}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.input::placeholder{color:var(--text-muted)}.input-lg{font-size:var(--text-xl);padding:var(--space-5) var(--space-6);text-align:center;letter-spacing:.1em;font-family:var(--font-display);font-weight:600}.input-error{border-color:var(--coral-500)}.input-error:focus{box-shadow:0 0 0 3px var(--coral-glow)}.loader{display:inline-block;width:24px;height:24px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.loader-lg{width:48px;height:48px;border-width:4px}@keyframes spin{to{transform:rotate(360deg)}}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.status-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;font-family:var(--font-display)}.status-badge:before{content:"";width:8px;height:8px;border-radius:50%}.status-open{background:#22c55e26;color:var(--success-500)}.status-open:before{background:var(--success-500);box-shadow:0 0 8px var(--success-glow);animation:pulse 2s ease-in-out infinite}.status-closed{background:#ff6b6b26;color:var(--coral-500)}.status-closed:before{background:var(--coral-500)}.status-pending{background:#f59e0b26;color:var(--warning-500)}.status-pending:before{background:var(--warning-500);animation:pulse 1.5s ease-in-out infinite}.attendance-state{display:flex;align-items:center;justify-content:center;padding:var(--space-4) var(--space-6);border-radius:var(--radius-xl);font-family:var(--font-display);font-weight:700;font-size:var(--text-lg)}.state-absent{background:linear-gradient(135deg,#ff6b6b1a,#ff6b6b33);color:var(--coral-400);border:1px solid rgba(255,107,107,.3)}.state-partial{background:linear-gradient(135deg,#f59e0b1a,#f59e0b33);color:var(--warning-500);border:1px solid rgba(245,158,11,.3)}.state-full{background:linear-gradient(135deg,#22c55e1a,#22c55e33);color:var(--success-500);border:1px solid rgba(34,197,94,.3)}.container{width:100%;max-width:480px;margin:0 auto;padding:0 var(--space-5)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mt-auto{margin-top:auto}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.w-full{width:100%}.h-full{height:100%}.page{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;padding:var(--space-6) 0}.page-header{padding:var(--space-4) var(--space-5);text-align:center}.page-content{flex:1;display:flex;flex-direction:column;padding:var(--space-6) var(--space-5)}.bg-mesh{background:radial-gradient(ellipse at 20% 0%,rgba(0,212,255,.15) 0%,transparent 50%),radial-gradient(ellipse at 80% 100%,rgba(255,107,107,.1) 0%,transparent 50%),var(--bg-base)}.bg-glow{position:relative}.bg-glow:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:200%;height:200%;background:radial-gradient(circle,var(--primary-glow) 0%,transparent 70%);pointer-events:none;z-index:-1}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-fade-in{animation:fadeIn var(--duration-normal) var(--ease-out) forwards}.animate-slide-up{animation:slideUp var(--duration-slow) var(--ease-out) forwards}.animate-scale-in{animation:scaleIn var(--duration-normal) var(--ease-out) forwards}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}@media(min-width:640px){.container{padding:0 var(--space-8)}}@supports (padding: max(0px)){.page{padding-top:max(var(--space-6),env(safe-area-inset-top));padding-bottom:max(var(--space-6),env(safe-area-inset-bottom))}.page-content{padding-left:max(var(--space-5),env(safe-area-inset-left));padding-right:max(var(--space-5),env(safe-area-inset-right))}}
